Loading packages/SystemUI/accessibility/accessibilitymenu/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ android_app { "androidx.core_core", "androidx.preference_preference", "androidx.viewpager_viewpager", "com_android_systemui_flags_lib", "SettingsLibDisplayUtils", "SettingsLibSettingsTheme", "com_android_a11y_menu_flags_lib", Loading packages/SystemUI/accessibility/accessibilitymenu/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package="com.android.systemui.accessibility.accessibilitymenu"> <uses-permission android:name="android.permission.CONTROL_DISPLAY_BRIGHTNESS"/> <uses-permission android:name="android.permission.MANAGE_USERS"/> <application android:supportsRtl="true"> <service Loading packages/SystemUI/accessibility/accessibilitymenu/aconfig/accessibility.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -29,3 +29,13 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "hide_restricted_actions" namespace: "accessibility" description: "Hides shortcut buttons for possibly restricted actions like brightness/volume adjustment" bug: "347269196" metadata { purpose: PURPOSE_BUGFIX } } packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java +40 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.accessibility.accessibilitymenu.view; import static android.os.UserManager.DISALLOW_ADJUST_VOLUME; import static android.os.UserManager.DISALLOW_CONFIG_BRIGHTNESS; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.View.ACCESSIBILITY_LIVE_REGION_POLITE; import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY; Loading @@ -24,6 +26,7 @@ import static java.lang.Math.max; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Configuration; import android.graphics.Insets; Loading @@ -32,6 +35,8 @@ import android.graphics.Rect; import android.hardware.display.DisplayManager; import android.os.Handler; import android.os.Looper; import android.os.UserHandle; import android.os.UserManager; import android.view.Display; import android.view.Gravity; import android.view.LayoutInflater; Loading @@ -48,6 +53,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService; import com.android.systemui.accessibility.accessibilitymenu.Flags; import com.android.systemui.accessibility.accessibilitymenu.R; import com.android.systemui.accessibility.accessibilitymenu.activity.A11yMenuSettingsActivity.A11yMenuPreferenceFragment; import com.android.systemui.accessibility.accessibilitymenu.model.A11yMenuShortcut; Loading Loading @@ -94,8 +100,6 @@ public class A11yMenuOverlayLayout { A11yMenuShortcut.ShortcutId.ID_SCREENSHOT_VALUE.ordinal() }; private final AccessibilityMenuService mService; private final WindowManager mWindowManager; private final DisplayManager mDisplayManager; Loading Loading @@ -195,11 +199,43 @@ public class A11yMenuOverlayLayout { for (int shortcutId : (A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService) ? LARGE_SHORTCUT_LIST_DEFAULT : SHORTCUT_LIST_DEFAULT)) { if (!isShortcutRestricted(shortcutId)) { shortcutList.add(new A11yMenuShortcut(shortcutId)); } } return shortcutList; } @SuppressLint("MissingPermission") private boolean isShortcutRestricted(int shortcutId) { if (!Flags.hideRestrictedActions()) { return false; } final UserManager userManager = mService.getSystemService(UserManager.class); if (userManager == null) { return false; } final int userId = mService.getUserId(); final UserHandle userHandle = UserHandle.of(userId); if (shortcutId == A11yMenuShortcut.ShortcutId.ID_BRIGHTNESS_DOWN_VALUE.ordinal() || shortcutId == A11yMenuShortcut.ShortcutId.ID_BRIGHTNESS_UP_VALUE.ordinal()) { if (userManager.hasUserRestriction(DISALLOW_CONFIG_BRIGHTNESS) || (com.android.systemui.Flags.enforceBrightnessBaseUserRestriction() && userManager.hasBaseUserRestriction( DISALLOW_CONFIG_BRIGHTNESS, userHandle))) { return true; } } if (shortcutId == A11yMenuShortcut.ShortcutId.ID_VOLUME_DOWN_VALUE.ordinal() || shortcutId == A11yMenuShortcut.ShortcutId.ID_VOLUME_UP_VALUE.ordinal()) { if (userManager.hasUserRestriction(DISALLOW_ADJUST_VOLUME) || userManager.hasBaseUserRestriction(DISALLOW_ADJUST_VOLUME, userHandle)) { return true; } } return false; } /** Updates a11y menu layout position by configuring layout params. */ private void updateLayoutPosition() { final Display display = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY); Loading Loading @@ -326,8 +362,7 @@ public class A11yMenuOverlayLayout { return; } snackbar.setText(text); if (com.android.systemui.accessibility.accessibilitymenu .Flags.a11yMenuSnackbarLiveRegion()) { if (Flags.a11yMenuSnackbarLiveRegion()) { snackbar.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE); } Loading packages/SystemUI/accessibility/accessibilitymenu/tests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ android_test { "androidx.test.core", "androidx.test.runner", "androidx.test.ext.junit", "com_android_a11y_menu_flags_lib", "compatibility-device-util-axt", "platform-test-annotations", "truth", Loading Loading
packages/SystemUI/accessibility/accessibilitymenu/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ android_app { "androidx.core_core", "androidx.preference_preference", "androidx.viewpager_viewpager", "com_android_systemui_flags_lib", "SettingsLibDisplayUtils", "SettingsLibSettingsTheme", "com_android_a11y_menu_flags_lib", Loading
packages/SystemUI/accessibility/accessibilitymenu/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package="com.android.systemui.accessibility.accessibilitymenu"> <uses-permission android:name="android.permission.CONTROL_DISPLAY_BRIGHTNESS"/> <uses-permission android:name="android.permission.MANAGE_USERS"/> <application android:supportsRtl="true"> <service Loading
packages/SystemUI/accessibility/accessibilitymenu/aconfig/accessibility.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -29,3 +29,13 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "hide_restricted_actions" namespace: "accessibility" description: "Hides shortcut buttons for possibly restricted actions like brightness/volume adjustment" bug: "347269196" metadata { purpose: PURPOSE_BUGFIX } }
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java +40 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.accessibility.accessibilitymenu.view; import static android.os.UserManager.DISALLOW_ADJUST_VOLUME; import static android.os.UserManager.DISALLOW_CONFIG_BRIGHTNESS; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.View.ACCESSIBILITY_LIVE_REGION_POLITE; import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY; Loading @@ -24,6 +26,7 @@ import static java.lang.Math.max; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Configuration; import android.graphics.Insets; Loading @@ -32,6 +35,8 @@ import android.graphics.Rect; import android.hardware.display.DisplayManager; import android.os.Handler; import android.os.Looper; import android.os.UserHandle; import android.os.UserManager; import android.view.Display; import android.view.Gravity; import android.view.LayoutInflater; Loading @@ -48,6 +53,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService; import com.android.systemui.accessibility.accessibilitymenu.Flags; import com.android.systemui.accessibility.accessibilitymenu.R; import com.android.systemui.accessibility.accessibilitymenu.activity.A11yMenuSettingsActivity.A11yMenuPreferenceFragment; import com.android.systemui.accessibility.accessibilitymenu.model.A11yMenuShortcut; Loading Loading @@ -94,8 +100,6 @@ public class A11yMenuOverlayLayout { A11yMenuShortcut.ShortcutId.ID_SCREENSHOT_VALUE.ordinal() }; private final AccessibilityMenuService mService; private final WindowManager mWindowManager; private final DisplayManager mDisplayManager; Loading Loading @@ -195,11 +199,43 @@ public class A11yMenuOverlayLayout { for (int shortcutId : (A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService) ? LARGE_SHORTCUT_LIST_DEFAULT : SHORTCUT_LIST_DEFAULT)) { if (!isShortcutRestricted(shortcutId)) { shortcutList.add(new A11yMenuShortcut(shortcutId)); } } return shortcutList; } @SuppressLint("MissingPermission") private boolean isShortcutRestricted(int shortcutId) { if (!Flags.hideRestrictedActions()) { return false; } final UserManager userManager = mService.getSystemService(UserManager.class); if (userManager == null) { return false; } final int userId = mService.getUserId(); final UserHandle userHandle = UserHandle.of(userId); if (shortcutId == A11yMenuShortcut.ShortcutId.ID_BRIGHTNESS_DOWN_VALUE.ordinal() || shortcutId == A11yMenuShortcut.ShortcutId.ID_BRIGHTNESS_UP_VALUE.ordinal()) { if (userManager.hasUserRestriction(DISALLOW_CONFIG_BRIGHTNESS) || (com.android.systemui.Flags.enforceBrightnessBaseUserRestriction() && userManager.hasBaseUserRestriction( DISALLOW_CONFIG_BRIGHTNESS, userHandle))) { return true; } } if (shortcutId == A11yMenuShortcut.ShortcutId.ID_VOLUME_DOWN_VALUE.ordinal() || shortcutId == A11yMenuShortcut.ShortcutId.ID_VOLUME_UP_VALUE.ordinal()) { if (userManager.hasUserRestriction(DISALLOW_ADJUST_VOLUME) || userManager.hasBaseUserRestriction(DISALLOW_ADJUST_VOLUME, userHandle)) { return true; } } return false; } /** Updates a11y menu layout position by configuring layout params. */ private void updateLayoutPosition() { final Display display = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY); Loading Loading @@ -326,8 +362,7 @@ public class A11yMenuOverlayLayout { return; } snackbar.setText(text); if (com.android.systemui.accessibility.accessibilitymenu .Flags.a11yMenuSnackbarLiveRegion()) { if (Flags.a11yMenuSnackbarLiveRegion()) { snackbar.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE); } Loading
packages/SystemUI/accessibility/accessibilitymenu/tests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ android_test { "androidx.test.core", "androidx.test.runner", "androidx.test.ext.junit", "com_android_a11y_menu_flags_lib", "compatibility-device-util-axt", "platform-test-annotations", "truth", Loading