Merge "Add global microphone mute key for keyboard"
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_PAUSE:
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||
case KeyEvent.KEYCODE_MUTE:
|
||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||
|
||||
@@ -97,7 +97,6 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler {
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||
case KeyEvent.KEYCODE_MUTE:
|
||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||
@@ -224,7 +223,6 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler {
|
||||
}
|
||||
|
||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||
case KeyEvent.KEYCODE_MUTE:
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY:
|
||||
case KeyEvent.KEYCODE_MEDIA_PAUSE:
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||
|
||||
@@ -117,6 +117,7 @@ import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.graphics.Rect;
|
||||
import android.hardware.SensorPrivacyManager;
|
||||
import android.hardware.display.DisplayManager;
|
||||
import android.hardware.display.DisplayManagerInternal;
|
||||
import android.hardware.hdmi.HdmiAudioSystemClient;
|
||||
@@ -395,6 +396,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
IStatusBarService mStatusBarService;
|
||||
StatusBarManagerInternal mStatusBarManagerInternal;
|
||||
AudioManagerInternal mAudioManagerInternal;
|
||||
SensorPrivacyManager mSensorPrivacyManager;
|
||||
DisplayManager mDisplayManager;
|
||||
DisplayManagerInternal mDisplayManagerInternal;
|
||||
boolean mPreloadedRecentApps;
|
||||
@@ -1882,6 +1884,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
mDreamManagerInternal = LocalServices.getService(DreamManagerInternal.class);
|
||||
mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
|
||||
mAppOpsManager = mContext.getSystemService(AppOpsManager.class);
|
||||
mSensorPrivacyManager = mContext.getSystemService(SensorPrivacyManager.class);
|
||||
mDisplayManager = mContext.getSystemService(DisplayManager.class);
|
||||
mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
|
||||
mPackageManager = mContext.getPackageManager();
|
||||
@@ -3017,6 +3020,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
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.
|
||||
*/
|
||||
@@ -3952,11 +3967,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
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_PAUSE:
|
||||
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
|
||||
case KeyEvent.KEYCODE_HEADSETHOOK:
|
||||
case KeyEvent.KEYCODE_MUTE:
|
||||
case KeyEvent.KEYCODE_MEDIA_STOP:
|
||||
case KeyEvent.KEYCODE_MEDIA_NEXT:
|
||||
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
|
||||
|
||||
Reference in New Issue
Block a user