Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42003671 authored by Bill Lin's avatar Bill Lin
Browse files

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
Test: atest WMShellUnitTests
Change-Id: I3994ab89fd6163c283969cc3175877e29b44c67a
parent 4559e5b9
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -169,9 +169,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;
    }

    /**