From 48ba5fc9466c9fbbb8a925609ff1e635f1de0aaf Mon Sep 17 00:00:00 2001 From: Sebastiano Barezzi Date: Tue, 27 Aug 2024 02:33:20 +0200 Subject: [PATCH] Aperture: Add support for mute button and mic mute gesture Change-Id: I99d5384ef3c49069d9f9564213622a345b3a1f36 --- .../java/org/lineageos/aperture/CameraActivity.kt | 13 +++++++++++++ .../org/lineageos/aperture/ext/SharedPreferences.kt | 2 ++ .../org/lineageos/aperture/models/GestureAction.kt | 5 +++++ .../org/lineageos/aperture/models/HardwareKey.kt | 8 ++++++++ app/src/main/res/values/arrays.xml | 8 ++++++++ app/src/main/res/values/strings.xml | 2 ++ 6 files changed, 38 insertions(+) diff --git a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt index 29703d62..49ee12d6 100644 --- a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt +++ b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt @@ -2493,6 +2493,15 @@ open class CameraActivity : AppCompatActivity(R.layout.activity_camera) { true } + GestureAction.MIC_MUTE -> { + if (cameraMode == CameraMode.VIDEO && micButton.isEnabled && + event?.repeatCount == 0 + ) { + toggleMicrophoneMode() + } + true + } + GestureAction.ZOOM -> { when (increase) { true -> zoomIn() @@ -2545,6 +2554,10 @@ open class CameraActivity : AppCompatActivity(R.layout.activity_camera) { true } + GestureAction.MIC_MUTE -> { + true + } + GestureAction.ZOOM -> { true } diff --git a/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt b/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt index 18502923..2961b749 100644 --- a/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt +++ b/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt @@ -470,6 +470,7 @@ internal fun SharedPreferences.getHardwareKeyAction( ) = when (getString("${hardwareKey.sharedPreferencesKeyPrefix}_action", null)) { "shutter" -> GestureAction.SHUTTER "focus" -> GestureAction.FOCUS + "mic_mute" -> GestureAction.MIC_MUTE "zoom" -> GestureAction.ZOOM "volume", "default" -> GestureAction.DEFAULT // volume for compat "nothing" -> GestureAction.NOTHING @@ -485,6 +486,7 @@ internal fun SharedPreferences.getHardwareKeyInvert( internal fun gestureActionToString(gestureAction: GestureAction) = when (gestureAction) { GestureAction.SHUTTER -> "shutter" GestureAction.FOCUS -> "focus" + GestureAction.MIC_MUTE -> "mic_mute" GestureAction.ZOOM -> "zoom" GestureAction.DEFAULT -> "default" GestureAction.NOTHING -> "nothing" diff --git a/app/src/main/java/org/lineageos/aperture/models/GestureAction.kt b/app/src/main/java/org/lineageos/aperture/models/GestureAction.kt index 7d76a7c8..6e36fb1a 100644 --- a/app/src/main/java/org/lineageos/aperture/models/GestureAction.kt +++ b/app/src/main/java/org/lineageos/aperture/models/GestureAction.kt @@ -22,6 +22,11 @@ enum class GestureAction( */ FOCUS(false), + /** + * Microphone mute during video recording. + */ + MIC_MUTE(false), + /** * Zoom in or out. */ diff --git a/app/src/main/java/org/lineageos/aperture/models/HardwareKey.kt b/app/src/main/java/org/lineageos/aperture/models/HardwareKey.kt index 2cdf2ab5..92f9a9a7 100644 --- a/app/src/main/java/org/lineageos/aperture/models/HardwareKey.kt +++ b/app/src/main/java/org/lineageos/aperture/models/HardwareKey.kt @@ -47,6 +47,14 @@ enum class HardwareKey( GestureAction.FOCUS, R.string.focus_button_action_title, ), + MUTE( + KeyEvent.KEYCODE_MUTE, + null, + "mute_button", + false, + GestureAction.MIC_MUTE, + R.string.mute_button_action_title, + ), VOLUME( KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN, diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 95c0b04b..beb74913 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -8,6 +8,7 @@ @string/gesture_action_shutter @string/gesture_action_focus + @string/gesture_action_mic_mute @string/gesture_action_zoom @string/gesture_action_default @string/gesture_action_nothing @@ -16,6 +17,7 @@ shutter focus + mic_mute zoom default nothing @@ -25,6 +27,7 @@ @string/gesture_action_shutter @string/gesture_action_focus + @string/gesture_action_mic_mute @string/gesture_action_default @string/gesture_action_nothing @@ -32,6 +35,7 @@ shutter focus + mic_mute default nothing @@ -40,6 +44,7 @@ @string/gesture_action_shutter @string/gesture_action_focus + @string/gesture_action_mic_mute @string/gesture_action_zoom @string/gesture_action_nothing @@ -47,6 +52,7 @@ shutter focus + mic_mute zoom nothing @@ -55,12 +61,14 @@ @string/gesture_action_shutter @string/gesture_action_focus + @string/gesture_action_mic_mute @string/gesture_action_nothing shutter focus + mic_mute nothing diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bfd4b1d6..cdecd169 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -119,6 +119,7 @@ Single buttons Camera button action Focus button action + Mute button action Volume buttons Volume buttons action Invert volume buttons @@ -211,6 +212,7 @@ Shutter Focus + Microphone mute Zoom Android\'s default Nothing