Fix OHM H/W key shortcut dosn't work appropriately
When one-handed mode disabled 1. Turn on the shortcut of the OHM with hold volume keys 2. Hold the volume keys Should trigger one-anded mode Due to S/W & H/W shortcut keys are mapping to different settings S/W : ACCESSIBILITY_BUTTON_TARGETS H/W : ACCESSIBILITY_SHORTCUT_TARGET_SERVICE We should check both status of the them. Bug: 193411296 Bug: 198739184 Test: atest WMShellUnitTests Change-Id: I3994ab89fd6163c283969cc3175877e29b44c67a Merged-Id: I3994ab89fd6163c283969cc3175877e29b44c67a
This commit is contained in:
@@ -445,6 +445,9 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
|
||||
mOneHandedSettingsUtil.registerSettingsKeyObserver(
|
||||
Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
|
||||
mContext.getContentResolver(), mShortcutEnabledObserver, newUserId);
|
||||
mOneHandedSettingsUtil.registerSettingsKeyObserver(
|
||||
Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
|
||||
mContext.getContentResolver(), mShortcutEnabledObserver, newUserId);
|
||||
}
|
||||
|
||||
private void unregisterSettingObservers() {
|
||||
|
||||
@@ -171,9 +171,22 @@ public final class OneHandedSettingsUtil {
|
||||
* @return true if user enabled one-handed shortcut in settings, false otherwise.
|
||||
*/
|
||||
public boolean getShortcutEnabled(ContentResolver resolver, int userId) {
|
||||
final String targets = Settings.Secure.getStringForUser(resolver,
|
||||
// Checks SOFTWARE_SHORTCUT_KEY
|
||||
final String targetsSwKey = Settings.Secure.getStringForUser(resolver,
|
||||
Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, userId);
|
||||
return TextUtils.isEmpty(targets) ? false : targets.contains(ONE_HANDED_MODE_TARGET_NAME);
|
||||
if (!TextUtils.isEmpty(targetsSwKey) && targetsSwKey.contains(
|
||||
ONE_HANDED_MODE_TARGET_NAME)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Checks HARDWARE_SHORTCUT_KEY
|
||||
final String targetsHwKey = Settings.Secure.getStringForUser(resolver,
|
||||
Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, userId);
|
||||
if (!TextUtils.isEmpty(targetsHwKey) && targetsHwKey.contains(
|
||||
ONE_HANDED_MODE_TARGET_NAME)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user