summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/accessibility/accessibilitymenu/Android.bp1
-rw-r--r--packages/SystemUI/accessibility/accessibilitymenu/aconfig/Android.bp12
-rw-r--r--packages/SystemUI/accessibility/accessibilitymenu/aconfig/accessibility.aconfig8
-rw-r--r--packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/activity/A11yMenuSettingsActivity.java19
-rw-r--r--packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java25
5 files changed, 62 insertions, 3 deletions
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/Android.bp b/packages/SystemUI/accessibility/accessibilitymenu/Android.bp
index f358417e6bea..ff723e34d6bc 100644
--- a/packages/SystemUI/accessibility/accessibilitymenu/Android.bp
+++ b/packages/SystemUI/accessibility/accessibilitymenu/Android.bp
@@ -36,6 +36,7 @@ android_app {
"androidx.preference_preference",
"androidx.viewpager_viewpager",
"SettingsLibDisplayUtils",
+ "com_android_a11y_menu_flags_lib",
],
optimize: {
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/aconfig/Android.bp b/packages/SystemUI/accessibility/accessibilitymenu/aconfig/Android.bp
new file mode 100644
index 000000000000..6d63409ffc06
--- /dev/null
+++ b/packages/SystemUI/accessibility/accessibilitymenu/aconfig/Android.bp
@@ -0,0 +1,12 @@
+aconfig_declarations {
+ name: "com_android_a11y_menu_flags",
+ package: "com.android.systemui.accessibility.accessibilitymenu",
+ srcs: [
+ "accessibility.aconfig",
+ ],
+}
+
+java_aconfig_library {
+ name: "com_android_a11y_menu_flags_lib",
+ aconfig_declarations: "com_android_a11y_menu_flags",
+}
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/aconfig/accessibility.aconfig b/packages/SystemUI/accessibility/accessibilitymenu/aconfig/accessibility.aconfig
new file mode 100644
index 000000000000..03cbc169a90f
--- /dev/null
+++ b/packages/SystemUI/accessibility/accessibilitymenu/aconfig/accessibility.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.systemui.accessibility.accessibilitymenu"
+
+flag {
+ name: "a11y_menu_settings_back_button_fix_and_large_button_sizing"
+ namespace: "accessibility"
+ description: "Provides/restores back button functionality for the a11yMenu settings page. Also, fixes sizing problems with large shortcut buttons."
+ bug: "298467628"
+} \ No newline at end of file
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/activity/A11yMenuSettingsActivity.java b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/activity/A11yMenuSettingsActivity.java
index c26cd12a0c61..bf51e23855d5 100644
--- a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/activity/A11yMenuSettingsActivity.java
+++ b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/activity/A11yMenuSettingsActivity.java
@@ -27,6 +27,7 @@ import android.provider.Browser;
import android.provider.Settings;
import android.view.View;
import android.widget.TextView;
+import android.window.OnBackInvokedCallback;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
@@ -34,12 +35,16 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
+import com.android.systemui.accessibility.accessibilitymenu.Flags;
import com.android.systemui.accessibility.accessibilitymenu.R;
/**
* Settings activity for AccessibilityMenu.
*/
public class A11yMenuSettingsActivity extends FragmentActivity {
+ private OnBackInvokedCallback mCallback = () -> {
+ finish();
+ };
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -51,6 +56,10 @@ public class A11yMenuSettingsActivity extends FragmentActivity {
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowCustomEnabled(true);
+
+ if (Flags.a11yMenuSettingsBackButtonFixAndLargeButtonSizing()) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
actionBar.setCustomView(R.layout.preferences_action_bar);
((TextView) findViewById(R.id.action_bar_title)).setText(
getResources().getString(R.string.accessibility_menu_settings_name)
@@ -61,6 +70,16 @@ public class A11yMenuSettingsActivity extends FragmentActivity {
| ActionBar.DISPLAY_HOME_AS_UP);
}
+ @Override
+ public boolean onNavigateUp() {
+ if (Flags.a11yMenuSettingsBackButtonFixAndLargeButtonSizing()) {
+ mCallback.onBackInvoked();
+ return true;
+ } else {
+ return false;
+ }
+ }
+
/**
* Settings/preferences fragment for AccessibilityMenu.
*/
diff --git a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java
index c64ec6f11b93..c4f372cbce51 100644
--- a/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java
+++ b/packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java
@@ -28,6 +28,7 @@ import android.widget.ImageButton;
import android.widget.TextView;
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;
@@ -79,6 +80,11 @@ public class A11yMenuAdapter extends BaseAdapter {
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.grid_item, parent, false);
+
+ if (Flags.a11yMenuSettingsBackButtonFixAndLargeButtonSizing()) {
+ configureShortcutSize(convertView,
+ A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService));
+ }
}
A11yMenuShortcut shortcutItem = (A11yMenuShortcut) getItem(position);
@@ -126,16 +132,29 @@ public class A11yMenuAdapter extends BaseAdapter {
});
}
- private void configureShortcutView(View convertView, A11yMenuShortcut shortcutItem) {
+ private void configureShortcutSize(View convertView, boolean isLargeButtonsEnabled) {
ImageButton shortcutIconButton = convertView.findViewById(R.id.shortcutIconBtn);
TextView shortcutLabel = convertView.findViewById(R.id.shortcutLabel);
-
- if (A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService)) {
+ if (isLargeButtonsEnabled) {
ViewGroup.LayoutParams params = shortcutIconButton.getLayoutParams();
params.width = (int) (params.width * LARGE_BUTTON_SCALE);
params.height = (int) (params.height * LARGE_BUTTON_SCALE);
shortcutLabel.setTextSize(android.util.TypedValue.COMPLEX_UNIT_PX, mLargeTextSize);
}
+ }
+
+ private void configureShortcutView(View convertView, A11yMenuShortcut shortcutItem) {
+ ImageButton shortcutIconButton = convertView.findViewById(R.id.shortcutIconBtn);
+ TextView shortcutLabel = convertView.findViewById(R.id.shortcutLabel);
+
+ if (!Flags.a11yMenuSettingsBackButtonFixAndLargeButtonSizing()) {
+ if (A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService)) {
+ ViewGroup.LayoutParams params = shortcutIconButton.getLayoutParams();
+ params.width = (int) (params.width * LARGE_BUTTON_SCALE);
+ params.height = (int) (params.height * LARGE_BUTTON_SCALE);
+ shortcutLabel.setTextSize(android.util.TypedValue.COMPLEX_UNIT_PX, mLargeTextSize);
+ }
+ }
if (shortcutItem.getId() == A11yMenuShortcut.ShortcutId.UNSPECIFIED_ID_VALUE.ordinal()) {
// Sets empty shortcut icon and label when the shortcut is ADD_ITEM.