Merge "Map META (upon release) to launching all apps"

This commit is contained in:
Tracy Zhou
2023-01-06 21:59:14 +00:00
committed by Android (Google) Code Review
3 changed files with 30 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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) {
}
};
/**

View File

@@ -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) {
@@ -3139,7 +3156,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mPendingCapsLockToggle = false;
} else if (mPendingMetaAction) {
if (!canceled) {
// TODO: launch all apps here.
launchAllAppsViaA11y();
}
mPendingMetaAction = false;
}