Merge "Fixing StrictMode errors in A11yMenu"

This commit is contained in:
Riley Jones
2023-06-22 22:39:58 +00:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 16 deletions

View File

@@ -16,6 +16,7 @@
package com.android.systemui.accessibility.accessibilitymenu.view;
import android.content.Context;
import android.graphics.Rect;
import android.view.LayoutInflater;
import android.view.TouchDelegate;
@@ -47,10 +48,11 @@ public class A11yMenuAdapter extends BaseAdapter {
private final ShortcutDrawableUtils mShortcutDrawableUtils;
public A11yMenuAdapter(
AccessibilityMenuService service, List<A11yMenuShortcut> shortcutDataList) {
AccessibilityMenuService service,
Context displayContext, List<A11yMenuShortcut> shortcutDataList) {
this.mService = service;
this.mShortcutDataList = shortcutDataList;
mInflater = LayoutInflater.from(service);
mInflater = LayoutInflater.from(displayContext);
mShortcutDrawableUtils = new ShortcutDrawableUtils(service);
@@ -75,7 +77,9 @@ public class A11yMenuAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(R.layout.grid_item, null);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.grid_item, parent, false);
}
A11yMenuShortcut shortcutItem = (A11yMenuShortcut) getItem(position);
// Sets shortcut icon and label resource.

View File

@@ -17,11 +17,13 @@
package com.android.systemui.accessibility.accessibilitymenu.view;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
import static java.lang.Math.max;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Insets;
import android.graphics.PixelFormat;
@@ -135,15 +137,13 @@ public class A11yMenuOverlayLayout {
initLayoutParams();
}
final Display display = mService.getSystemService(
DisplayManager.class).getDisplay(DEFAULT_DISPLAY);
mLayout = new FrameLayout(
mService.createDisplayContext(display).createWindowContext(
WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY, null));
final Display display = mDisplayManager.getDisplay(DEFAULT_DISPLAY);
final Context context = mService.createDisplayContext(display).createWindowContext(
TYPE_ACCESSIBILITY_OVERLAY, null);
mLayout = new FrameLayout(context);
updateLayoutPosition();
inflateLayoutAndSetOnTouchListener(mLayout);
mA11yMenuViewPager = new A11yMenuViewPager(mService);
inflateLayoutAndSetOnTouchListener(mLayout, context);
mA11yMenuViewPager = new A11yMenuViewPager(mService, context);
mA11yMenuViewPager.configureViewPagerAndFooter(mLayout, createShortcutList(), pageIndex);
mWindowManager.addView(mLayout, mLayoutParameter);
mLayout.setVisibility(lastVisibilityState);
@@ -169,8 +169,8 @@ public class A11yMenuOverlayLayout {
mLayoutParameter.setTitle(mService.getString(R.string.accessibility_menu_service_name));
}
private void inflateLayoutAndSetOnTouchListener(ViewGroup view) {
LayoutInflater inflater = LayoutInflater.from(mService);
private void inflateLayoutAndSetOnTouchListener(ViewGroup view, Context displayContext) {
LayoutInflater inflater = LayoutInflater.from(displayContext);
inflater.inflate(R.layout.paged_menu, view);
view.setOnTouchListener(mService);
}

View File

@@ -147,8 +147,12 @@ public class A11yMenuViewPager {
/** The container layout for a11y menu. */
private ViewGroup mA11yMenuLayout;
public A11yMenuViewPager(AccessibilityMenuService service) {
/** Display context for inflating views. */
private Context mDisplayContext;
public A11yMenuViewPager(AccessibilityMenuService service, Context displayContext) {
this.mService = service;
this.mDisplayContext = displayContext;
}
/**
@@ -213,10 +217,11 @@ public class A11yMenuViewPager {
}
private void addGridPage(List<A11yMenuShortcut> shortcutDataListInPage) {
LayoutInflater inflater = LayoutInflater.from(mService);
LayoutInflater inflater = LayoutInflater.from(mDisplayContext);
View view = inflater.inflate(R.layout.grid_view, null);
GridView gridView = view.findViewById(R.id.gridview);
A11yMenuAdapter adapter = new A11yMenuAdapter(mService, shortcutDataListInPage);
A11yMenuAdapter adapter = new A11yMenuAdapter(
mService, mDisplayContext, shortcutDataListInPage);
gridView.setNumColumns(GridViewParams.getGridColumnCount(mService));
gridView.setAdapter(adapter);
mGridPageList.add(gridView);