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

Commit 96d28aae authored by Tracy Zhou's avatar Tracy Zhou
Browse files

Map META (upon release) to launching all apps

Fixes: 246661170
Test: Tap meta key, and see all apps launched upon release
Change-Id: I717899b6f72dabf36312db9f02d61eb761ee852f
parent 36f8a6ae
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -368,6 +368,11 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
            mService.scheduleStartInput(remoteAccessibilityInputConnection, editorInfo, restarting);
        }

        @Override
        public void performSystemAction(int actionId) {
            mService.getSystemActionPerformer().performSystemAction(actionId);
        }

        @Override
        public boolean isTouchExplorationEnabled(@UserIdInt int userId) {
            synchronized (mService.mLock) {
+7 −0
Original line number Diff line number Diff line
@@ -50,6 +50,9 @@ public abstract class AccessibilityManagerInternal {
            IRemoteAccessibilityInputConnection remoteAccessibilityInputConnection,
            EditorInfo editorInfo, boolean restarting);

    /** Trigger a system action with the provided {@code actionId}. */
    public abstract void performSystemAction(int actionId);

    /**
     * Queries whether touch-exploration mode is enabled or not for the specified user.
     *
@@ -86,6 +89,10 @@ public abstract class AccessibilityManagerInternal {
        public boolean isTouchExplorationEnabled(int userId) {
            return false;
        }

        @Override
        public void performSystemAction(int actionId) {
        }
    };

    /**
+18 −1
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ import static com.android.server.wm.WindowManagerPolicyProto.ROTATION_MODE;
import static com.android.server.wm.WindowManagerPolicyProto.SCREEN_ON_FULLY;
import static com.android.server.wm.WindowManagerPolicyProto.WINDOW_MANAGER_DRAW_COMPLETE;

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.Nullable;
import android.app.ActivityManager;
@@ -200,6 +201,7 @@ import com.android.internal.policy.PhoneWindow;
import com.android.internal.policy.TransitionAnimation;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.util.ArrayUtils;
import com.android.server.AccessibilityManagerInternal;
import com.android.server.ExtconStateObserver;
import com.android.server.ExtconUEventObserver;
import com.android.server.GestureLauncherService;
@@ -404,6 +406,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    Vibrator mVibrator; // Vibrator for giving feedback of orientation changes
    SearchManager mSearchManager;
    AccessibilityManager mAccessibilityManager;
    AccessibilityManagerInternal mAccessibilityManagerInternal;
    BurnInProtectionHelper mBurnInProtectionHelper;
    private DisplayFoldController mDisplayFoldController;
    AppOpsManager mAppOpsManager;
@@ -851,6 +854,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        }
    }

    AccessibilityManagerInternal getAccessibilityManagerInternal() {
        synchronized (mServiceAcquireLock) {
            if (mAccessibilityManagerInternal == null) {
                mAccessibilityManagerInternal =
                        LocalServices.getService(AccessibilityManagerInternal.class);
            }
            return mAccessibilityManagerInternal;
        }
    }

    // returns true if the key was handled and should not be passed to the user
    private boolean backKeyPress() {
@@ -1710,6 +1722,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        startActivityAsUser(intent, UserHandle.CURRENT);
    }

    private void launchAllAppsViaA11y() {
        getAccessibilityManagerInternal().performSystemAction(
                AccessibilityService.GLOBAL_ACTION_ACCESSIBILITY_ALL_APPS);
    }

    private void toggleNotificationPanel() {
        IStatusBarService statusBarService = getStatusBarService();
        if (isUserSetupComplete() && statusBarService != null) {
@@ -3138,7 +3155,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                        mPendingCapsLockToggle = false;
                    } else if (mPendingMetaAction) {
                        if (!canceled) {
                            // TODO: launch all apps here.
                            launchAllAppsViaA11y();
                        }
                        mPendingMetaAction = false;
                    }