Loading core/java/android/view/accessibility/AccessibilityManager.java +29 −2 Original line number Diff line number Diff line Loading @@ -1774,7 +1774,8 @@ public final class AccessibilityManager { } /** * Notifies that the accessibility button in the system's navigation area has been clicked * Notifies that the accessibility button in the system's navigation area has been clicked, * or a gesture shortcut input has been performed. * * @param displayId The logical display id. * @hide Loading @@ -1785,7 +1786,8 @@ public final class AccessibilityManager { } /** * Perform the accessibility button for the given target which is assigned to the button. * Perform the accessibility button or gesture * for the given target which is assigned to the button. * * @param displayId displayId The logical display id. * @param targetName The flattened {@link ComponentName} string or the class name of a system Loading @@ -1809,6 +1811,31 @@ public final class AccessibilityManager { } } /** * Notifies that a shortcut was long-clicked. * This displays the dialog used to select which target the given shortcut will use, * from its list of targets. * The current shortcut type is determined by the current navigation mode. * * @param displayId The id of the display to show the dialog on. * @hide */ @RequiresPermission(Manifest.permission.STATUS_BAR_SERVICE) public void notifyAccessibilityButtonLongClicked(int displayId) { final IAccessibilityManager service; synchronized (mLock) { service = getServiceLocked(); if (service == null) { return; } } try { service.notifyAccessibilityButtonLongClicked(displayId); } catch (RemoteException re) { Log.e(LOG_TAG, "Error while dispatching accessibility button long click. ", re); } } /** * Notifies that the visibility of the accessibility button in the system's navigation area * has changed. Loading core/java/android/view/accessibility/IAccessibilityManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,8 @@ interface IAccessibilityManager { @EnforcePermission("STATUS_BAR_SERVICE") void notifyAccessibilityButtonClicked(int displayId, String targetName); @EnforcePermission("STATUS_BAR_SERVICE") void notifyAccessibilityButtonLongClicked(int displayId); @EnforcePermission("STATUS_BAR_SERVICE") void notifyAccessibilityButtonVisibilityChanged(boolean available); Loading core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java +4 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME; import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.GESTURE; import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE; import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets; import static com.android.internal.accessibility.util.AccessibilityStatsLogUtils.logAccessibilityButtonLongPressStatus; Loading @@ -44,6 +43,8 @@ import java.util.List; * Activity used to display and persist a service or feature target for the Accessibility button. */ public class AccessibilityButtonChooserActivity extends Activity { public static final String EXTRA_TYPE_TO_CHOOSE = "TYPE"; private final List<AccessibilityTarget> mTargets = new ArrayList<>(); @Override Loading @@ -67,8 +68,8 @@ public class AccessibilityButtonChooserActivity extends Activity { NAV_BAR_MODE_GESTURAL == getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode); final int targetType = (isGestureNavigateEnabled && android.provider.Flags.a11yStandaloneGestureEnabled()) ? GESTURE : SOFTWARE; final int targetType = android.provider.Flags.a11yStandaloneGestureEnabled() ? getIntent().getIntExtra(EXTRA_TYPE_TO_CHOOSE, SOFTWARE) : SOFTWARE; if (isGestureNavigateEnabled) { final TextView promptPrologue = findViewById(R.id.accessibility_button_prompt_prologue); Loading packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java +3 −9 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package com.android.systemui.accessibility; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_ACCESSIBILITY_ACTIONS; import static com.android.internal.accessibility.common.ShortcutConstants.CHOOSER_PACKAGE_NAME; import android.accessibilityservice.AccessibilityService; import android.app.PendingIntent; import android.app.RemoteAction; Loading @@ -45,7 +43,6 @@ import android.view.accessibility.AccessibilityManager; import android.view.accessibility.Flags; import com.android.internal.R; import com.android.internal.accessibility.dialog.AccessibilityButtonChooserActivity; import com.android.internal.accessibility.util.AccessibilityUtils; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ScreenshotHelper; Loading Loading @@ -561,16 +558,13 @@ public class SystemActions implements CoreStartable, ConfigurationController.Con } private void handleAccessibilityButton() { AccessibilityManager.getInstance(mContext).notifyAccessibilityButtonClicked( mA11yManager.notifyAccessibilityButtonClicked( mDisplayTracker.getDefaultDisplayId()); } private void handleAccessibilityButtonChooser() { final Intent intent = new Intent(AccessibilityManager.ACTION_CHOOSE_ACCESSIBILITY_BUTTON); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); final String chooserClassName = AccessibilityButtonChooserActivity.class.getName(); intent.setClassName(CHOOSER_PACKAGE_NAME, chooserClassName); mContext.startActivityAsUser(intent, mUserTracker.getUserHandle()); mA11yManager.notifyAccessibilityButtonLongClicked( mDisplayTracker.getDefaultDisplayId()); } private void handleAccessibilityShortcut() { Loading packages/SystemUI/src/com/android/systemui/navigationbar/views/NavigationBar.java +3 −8 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static com.android.internal.accessibility.common.ShortcutConstants.CHOOSER_PACKAGE_NAME; import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.HOME_BUTTON_LONG_PRESS_DURATION_MS; import static com.android.systemui.navigationbar.NavBarHelper.transitionMode; import static com.android.systemui.recents.OverviewProxyService.OverviewProxyListener; Loading @@ -60,7 +59,6 @@ import android.app.ActivityTaskManager; import android.app.IActivityTaskManager; import android.app.StatusBarManager; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.graphics.Insets; import android.graphics.PixelFormat; Loading Loading @@ -105,7 +103,6 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.app.viewcapture.ViewCaptureAwareWindowManager; import com.android.internal.accessibility.dialog.AccessibilityButtonChooserActivity; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; Loading Loading @@ -1625,11 +1622,9 @@ public class NavigationBar extends ViewController<NavigationBarView> implements } private boolean onAccessibilityLongClick(View v) { final Intent intent = new Intent(AccessibilityManager.ACTION_CHOOSE_ACCESSIBILITY_BUTTON); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); final String chooserClassName = AccessibilityButtonChooserActivity.class.getName(); intent.setClassName(CHOOSER_PACKAGE_NAME, chooserClassName); mContext.startActivityAsUser(intent, mUserTracker.getUserHandle()); final Display display = v.getDisplay(); mAccessibilityManager.notifyAccessibilityButtonLongClicked( display != null ? display.getDisplayId() : mDisplayTracker.getDefaultDisplayId()); return true; } Loading Loading
core/java/android/view/accessibility/AccessibilityManager.java +29 −2 Original line number Diff line number Diff line Loading @@ -1774,7 +1774,8 @@ public final class AccessibilityManager { } /** * Notifies that the accessibility button in the system's navigation area has been clicked * Notifies that the accessibility button in the system's navigation area has been clicked, * or a gesture shortcut input has been performed. * * @param displayId The logical display id. * @hide Loading @@ -1785,7 +1786,8 @@ public final class AccessibilityManager { } /** * Perform the accessibility button for the given target which is assigned to the button. * Perform the accessibility button or gesture * for the given target which is assigned to the button. * * @param displayId displayId The logical display id. * @param targetName The flattened {@link ComponentName} string or the class name of a system Loading @@ -1809,6 +1811,31 @@ public final class AccessibilityManager { } } /** * Notifies that a shortcut was long-clicked. * This displays the dialog used to select which target the given shortcut will use, * from its list of targets. * The current shortcut type is determined by the current navigation mode. * * @param displayId The id of the display to show the dialog on. * @hide */ @RequiresPermission(Manifest.permission.STATUS_BAR_SERVICE) public void notifyAccessibilityButtonLongClicked(int displayId) { final IAccessibilityManager service; synchronized (mLock) { service = getServiceLocked(); if (service == null) { return; } } try { service.notifyAccessibilityButtonLongClicked(displayId); } catch (RemoteException re) { Log.e(LOG_TAG, "Error while dispatching accessibility button long click. ", re); } } /** * Notifies that the visibility of the accessibility button in the system's navigation area * has changed. Loading
core/java/android/view/accessibility/IAccessibilityManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,8 @@ interface IAccessibilityManager { @EnforcePermission("STATUS_BAR_SERVICE") void notifyAccessibilityButtonClicked(int displayId, String targetName); @EnforcePermission("STATUS_BAR_SERVICE") void notifyAccessibilityButtonLongClicked(int displayId); @EnforcePermission("STATUS_BAR_SERVICE") void notifyAccessibilityButtonVisibilityChanged(boolean available); Loading
core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java +4 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME; import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.GESTURE; import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE; import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets; import static com.android.internal.accessibility.util.AccessibilityStatsLogUtils.logAccessibilityButtonLongPressStatus; Loading @@ -44,6 +43,8 @@ import java.util.List; * Activity used to display and persist a service or feature target for the Accessibility button. */ public class AccessibilityButtonChooserActivity extends Activity { public static final String EXTRA_TYPE_TO_CHOOSE = "TYPE"; private final List<AccessibilityTarget> mTargets = new ArrayList<>(); @Override Loading @@ -67,8 +68,8 @@ public class AccessibilityButtonChooserActivity extends Activity { NAV_BAR_MODE_GESTURAL == getResources().getInteger( com.android.internal.R.integer.config_navBarInteractionMode); final int targetType = (isGestureNavigateEnabled && android.provider.Flags.a11yStandaloneGestureEnabled()) ? GESTURE : SOFTWARE; final int targetType = android.provider.Flags.a11yStandaloneGestureEnabled() ? getIntent().getIntExtra(EXTRA_TYPE_TO_CHOOSE, SOFTWARE) : SOFTWARE; if (isGestureNavigateEnabled) { final TextView promptPrologue = findViewById(R.id.accessibility_button_prompt_prologue); Loading
packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java +3 −9 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package com.android.systemui.accessibility; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_ACCESSIBILITY_ACTIONS; import static com.android.internal.accessibility.common.ShortcutConstants.CHOOSER_PACKAGE_NAME; import android.accessibilityservice.AccessibilityService; import android.app.PendingIntent; import android.app.RemoteAction; Loading @@ -45,7 +43,6 @@ import android.view.accessibility.AccessibilityManager; import android.view.accessibility.Flags; import com.android.internal.R; import com.android.internal.accessibility.dialog.AccessibilityButtonChooserActivity; import com.android.internal.accessibility.util.AccessibilityUtils; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ScreenshotHelper; Loading Loading @@ -561,16 +558,13 @@ public class SystemActions implements CoreStartable, ConfigurationController.Con } private void handleAccessibilityButton() { AccessibilityManager.getInstance(mContext).notifyAccessibilityButtonClicked( mA11yManager.notifyAccessibilityButtonClicked( mDisplayTracker.getDefaultDisplayId()); } private void handleAccessibilityButtonChooser() { final Intent intent = new Intent(AccessibilityManager.ACTION_CHOOSE_ACCESSIBILITY_BUTTON); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); final String chooserClassName = AccessibilityButtonChooserActivity.class.getName(); intent.setClassName(CHOOSER_PACKAGE_NAME, chooserClassName); mContext.startActivityAsUser(intent, mUserTracker.getUserHandle()); mA11yManager.notifyAccessibilityButtonLongClicked( mDisplayTracker.getDefaultDisplayId()); } private void handleAccessibilityShortcut() { Loading
packages/SystemUI/src/com/android/systemui/navigationbar/views/NavigationBar.java +3 −8 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; import static com.android.internal.accessibility.common.ShortcutConstants.CHOOSER_PACKAGE_NAME; import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.HOME_BUTTON_LONG_PRESS_DURATION_MS; import static com.android.systemui.navigationbar.NavBarHelper.transitionMode; import static com.android.systemui.recents.OverviewProxyService.OverviewProxyListener; Loading @@ -60,7 +59,6 @@ import android.app.ActivityTaskManager; import android.app.IActivityTaskManager; import android.app.StatusBarManager; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.graphics.Insets; import android.graphics.PixelFormat; Loading Loading @@ -105,7 +103,6 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import com.android.app.viewcapture.ViewCaptureAwareWindowManager; import com.android.internal.accessibility.dialog.AccessibilityButtonChooserActivity; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; Loading Loading @@ -1625,11 +1622,9 @@ public class NavigationBar extends ViewController<NavigationBarView> implements } private boolean onAccessibilityLongClick(View v) { final Intent intent = new Intent(AccessibilityManager.ACTION_CHOOSE_ACCESSIBILITY_BUTTON); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); final String chooserClassName = AccessibilityButtonChooserActivity.class.getName(); intent.setClassName(CHOOSER_PACKAGE_NAME, chooserClassName); mContext.startActivityAsUser(intent, mUserTracker.getUserHandle()); final Display display = v.getDisplay(); mAccessibilityManager.notifyAccessibilityButtonLongClicked( display != null ? display.getDisplayId() : mDisplayTracker.getDefaultDisplayId()); return true; } Loading