Merge "Add global microphone mute key for keyboard" am: e85f271021 am: 13e8df2c0a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2263102 Change-Id: I31dc6e7e492de91da9def8b0ff33888edfbc0fd6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1975,7 +1975,6 @@ public class KeyEvent extends InputEvent implements Parcelable {
|
|||||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||||
case KeyEvent.KEYCODE_MUTE:
|
|
||||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler {
|
|||||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||||
case KeyEvent.KEYCODE_MUTE:
|
|
||||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||||
@@ -224,7 +223,6 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||||
case KeyEvent.KEYCODE_MUTE:
|
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ import android.content.res.Configuration;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.hardware.SensorPrivacyManager;
|
||||||
import android.hardware.display.DisplayManager;
|
import android.hardware.display.DisplayManager;
|
||||||
import android.hardware.display.DisplayManagerInternal;
|
import android.hardware.display.DisplayManagerInternal;
|
||||||
import android.hardware.hdmi.HdmiAudioSystemClient;
|
import android.hardware.hdmi.HdmiAudioSystemClient;
|
||||||
@@ -392,6 +393,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
IStatusBarService mStatusBarService;
|
IStatusBarService mStatusBarService;
|
||||||
StatusBarManagerInternal mStatusBarManagerInternal;
|
StatusBarManagerInternal mStatusBarManagerInternal;
|
||||||
AudioManagerInternal mAudioManagerInternal;
|
AudioManagerInternal mAudioManagerInternal;
|
||||||
|
SensorPrivacyManager mSensorPrivacyManager;
|
||||||
DisplayManager mDisplayManager;
|
DisplayManager mDisplayManager;
|
||||||
DisplayManagerInternal mDisplayManagerInternal;
|
DisplayManagerInternal mDisplayManagerInternal;
|
||||||
boolean mPreloadedRecentApps;
|
boolean mPreloadedRecentApps;
|
||||||
@@ -1882,6 +1884,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
mDreamManagerInternal = LocalServices.getService(DreamManagerInternal.class);
|
mDreamManagerInternal = LocalServices.getService(DreamManagerInternal.class);
|
||||||
mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
|
mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
|
||||||
mAppOpsManager = mContext.getSystemService(AppOpsManager.class);
|
mAppOpsManager = mContext.getSystemService(AppOpsManager.class);
|
||||||
|
mSensorPrivacyManager = mContext.getSystemService(SensorPrivacyManager.class);
|
||||||
mDisplayManager = mContext.getSystemService(DisplayManager.class);
|
mDisplayManager = mContext.getSystemService(DisplayManager.class);
|
||||||
mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
|
mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
|
||||||
mPackageManager = mContext.getPackageManager();
|
mPackageManager = mContext.getPackageManager();
|
||||||
@@ -3016,6 +3019,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
return key_not_consumed;
|
return key_not_consumed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleMicrophoneMuteFromKey() {
|
||||||
|
if (mSensorPrivacyManager.supportsSensorToggle(
|
||||||
|
SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE,
|
||||||
|
SensorPrivacyManager.Sensors.MICROPHONE)) {
|
||||||
|
boolean isEnabled = mSensorPrivacyManager.isSensorPrivacyEnabled(
|
||||||
|
SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE,
|
||||||
|
SensorPrivacyManager.Sensors.MICROPHONE);
|
||||||
|
mSensorPrivacyManager.setSensorPrivacy(SensorPrivacyManager.Sensors.MICROPHONE,
|
||||||
|
!isEnabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TV only: recognizes a remote control gesture for capturing a bug report.
|
* TV only: recognizes a remote control gesture for capturing a bug report.
|
||||||
*/
|
*/
|
||||||
@@ -3950,11 +3965,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case KeyEvent.KEYCODE_MUTE:
|
||||||
|
result &= ~ACTION_PASS_TO_USER;
|
||||||
|
if (down && event.getRepeatCount() == 0) {
|
||||||
|
toggleMicrophoneMuteFromKey();
|
||||||
|
}
|
||||||
|
break;
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||||
case KeyEvent.KEYCODE_MUTE:
|
|
||||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||||
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
|
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
|
||||||
|
|||||||
Reference in New Issue
Block a user