Loading packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java +3 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.accessibility.accessibilitymenu.view; import android.content.Context; import android.graphics.Rect; import android.view.LayoutInflater; import android.view.TouchDelegate; Loading @@ -43,16 +42,14 @@ public class A11yMenuAdapter extends BaseAdapter { private final int mLargeTextSize; private final AccessibilityMenuService mService; private final LayoutInflater mInflater; private final List<A11yMenuShortcut> mShortcutDataList; private final ShortcutDrawableUtils mShortcutDrawableUtils; public A11yMenuAdapter( AccessibilityMenuService service, Context displayContext, List<A11yMenuShortcut> shortcutDataList) { List<A11yMenuShortcut> shortcutDataList) { this.mService = service; this.mShortcutDataList = shortcutDataList; mInflater = LayoutInflater.from(displayContext); mShortcutDrawableUtils = new ShortcutDrawableUtils(service); Loading @@ -78,7 +75,8 @@ public class A11yMenuAdapter extends BaseAdapter { @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate(R.layout.grid_item, parent, false); convertView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.grid_item, parent, false); configureShortcutSize(convertView, A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService)); Loading packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java +33 −24 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.widget.FrameLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.UiContext; import com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService; import com.android.systemui.accessibility.accessibilitymenu.Flags; Loading Loading @@ -101,7 +102,6 @@ public class A11yMenuOverlayLayout { }; private final AccessibilityMenuService mService; private final WindowManager mWindowManager; private final DisplayManager mDisplayManager; private ViewGroup mLayout; private WindowManager.LayoutParams mLayoutParameter; Loading @@ -111,7 +111,6 @@ public class A11yMenuOverlayLayout { public A11yMenuOverlayLayout(AccessibilityMenuService service) { mService = service; mWindowManager = mService.getSystemService(WindowManager.class); mDisplayManager = mService.getSystemService(DisplayManager.class); configureLayout(); mHandler = new Handler(Looper.getMainLooper()); Loading @@ -134,8 +133,7 @@ public class A11yMenuOverlayLayout { int lastVisibilityState = View.GONE; if (mLayout != null) { lastVisibilityState = mLayout.getVisibility(); mWindowManager.removeView(mLayout); mLayout = null; clearLayout(); } if (mLayoutParameter == null) { Loading @@ -143,14 +141,15 @@ public class A11yMenuOverlayLayout { } final Display display = mDisplayManager.getDisplay(DEFAULT_DISPLAY); final Context context = mService.createDisplayContext(display).createWindowContext( TYPE_ACCESSIBILITY_OVERLAY, null); mLayout = new A11yMenuFrameLayout(context); updateLayoutPosition(); inflateLayoutAndSetOnTouchListener(mLayout, context); mA11yMenuViewPager = new A11yMenuViewPager(mService, context); final Context uiContext = mService.createWindowContext( display, TYPE_ACCESSIBILITY_OVERLAY, /* options= */null); final WindowManager windowManager = uiContext.getSystemService(WindowManager.class); mLayout = new A11yMenuFrameLayout(uiContext); updateLayoutPosition(uiContext); inflateLayoutAndSetOnTouchListener(mLayout, uiContext); mA11yMenuViewPager = new A11yMenuViewPager(mService); mA11yMenuViewPager.configureViewPagerAndFooter(mLayout, createShortcutList(), pageIndex); mWindowManager.addView(mLayout, mLayoutParameter); windowManager.addView(mLayout, mLayoutParameter); mLayout.setVisibility(lastVisibilityState); mA11yMenuViewPager.updateFooterState(); Loading @@ -159,7 +158,11 @@ public class A11yMenuOverlayLayout { public void clearLayout() { if (mLayout != null) { mWindowManager.removeView(mLayout); WindowManager windowManager = mLayout.getContext().getSystemService(WindowManager.class); if (windowManager != null) { windowManager.removeView(mLayout); } mLayout.setOnTouchListener(null); mLayout = null; } Loading @@ -170,8 +173,11 @@ public class A11yMenuOverlayLayout { if (mLayout == null || mLayoutParameter == null) { return; } updateLayoutPosition(); mWindowManager.updateViewLayout(mLayout, mLayoutParameter); updateLayoutPosition(mLayout.getContext()); WindowManager windowManager = mLayout.getContext().getSystemService(WindowManager.class); if (windowManager != null) { windowManager.updateViewLayout(mLayout, mLayoutParameter); } } private void initLayoutParams() { Loading @@ -183,8 +189,8 @@ public class A11yMenuOverlayLayout { mLayoutParameter.setTitle(mService.getString(R.string.accessibility_menu_service_name)); } private void inflateLayoutAndSetOnTouchListener(ViewGroup view, Context displayContext) { LayoutInflater inflater = LayoutInflater.from(displayContext); private void inflateLayoutAndSetOnTouchListener(ViewGroup view, @UiContext Context uiContext) { LayoutInflater inflater = LayoutInflater.from(uiContext); inflater.inflate(R.layout.paged_menu, view); view.setOnTouchListener(mService); } Loading Loading @@ -238,7 +244,11 @@ public class A11yMenuOverlayLayout { } /** Updates a11y menu layout position by configuring layout params. */ private void updateLayoutPosition() { private void updateLayoutPosition(@UiContext @NonNull Context uiContext) { WindowManager windowManager = uiContext.getSystemService(WindowManager.class); if (windowManager == null) { return; } final Display display = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY); final Configuration configuration = mService.getResources().getConfiguration(); final int orientation = configuration.orientation; Loading Loading @@ -276,14 +286,13 @@ public class A11yMenuOverlayLayout { mLayoutParameter.height = WindowManager.LayoutParams.WRAP_CONTENT; mLayout.setBackgroundResource(R.drawable.shadow_0deg); } // Adjusts the y position of a11y menu layout to make the layout not to overlap bottom // navigation bar window. updateLayoutByWindowInsetsIfNeeded(); updateLayoutByWindowInsetsIfNeeded(windowManager); mLayout.setOnApplyWindowInsetsListener( (view, insets) -> { if (updateLayoutByWindowInsetsIfNeeded()) { mWindowManager.updateViewLayout(mLayout, mLayoutParameter); if (updateLayoutByWindowInsetsIfNeeded(windowManager)) { windowManager.updateViewLayout(mLayout, mLayoutParameter); } return view.onApplyWindowInsets(insets); }); Loading @@ -295,9 +304,9 @@ public class A11yMenuOverlayLayout { * This method adjusts the layout position and size to * make a11y menu not to overlap navigation bar window. */ private boolean updateLayoutByWindowInsetsIfNeeded() { private boolean updateLayoutByWindowInsetsIfNeeded(@NonNull WindowManager windowManager) { boolean shouldUpdateLayout = false; WindowMetrics windowMetrics = mWindowManager.getCurrentWindowMetrics(); WindowMetrics windowMetrics = windowManager.getCurrentWindowMetrics(); Insets windowInsets = windowMetrics.getWindowInsets().getInsetsIgnoringVisibility( WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); int xOffset = max(windowInsets.left, windowInsets.right); Loading Loading @@ -396,7 +405,7 @@ public class A11yMenuOverlayLayout { } private class A11yMenuFrameLayout extends FrameLayout { A11yMenuFrameLayout(@NonNull Context context) { A11yMenuFrameLayout(@UiContext @NonNull Context context) { super(context); } Loading packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuViewPager.java +3 −6 Original line number Diff line number Diff line Loading @@ -146,12 +146,8 @@ public class A11yMenuViewPager { /** The container layout for a11y menu. */ private ViewGroup mA11yMenuLayout; /** Display context for inflating views. */ private Context mDisplayContext; public A11yMenuViewPager(AccessibilityMenuService service, Context displayContext) { public A11yMenuViewPager(AccessibilityMenuService service) { this.mService = service; this.mDisplayContext = displayContext; } /** Loading Loading @@ -289,7 +285,8 @@ public class A11yMenuViewPager { footerLayout.getLayoutParams().height = (int) (footerLayout.getLayoutParams().height / densityScale); // Adjust the view pager height for system bar and display cutout insets. WindowManager windowManager = mService.getSystemService(WindowManager.class); WindowManager windowManager = mA11yMenuLayout.getContext() .getSystemService(WindowManager.class); WindowMetrics windowMetric = windowManager.getCurrentWindowMetrics(); Insets windowInsets = windowMetric.getWindowInsets().getInsetsIgnoringVisibility( WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); Loading packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/ViewPagerAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ class ViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { A11yMenuAdapter adapter = new A11yMenuAdapter( mService, holder.itemView.getContext(), mShortcutList.get(position)); mService, mShortcutList.get(position)); GridView gridView = (GridView) holder.itemView; gridView.setNumColumns(A11yMenuViewPager.GridViewParams.getGridColumnCount(mService)); gridView.setAdapter(adapter); Loading Loading
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuAdapter.java +3 −5 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.accessibility.accessibilitymenu.view; import android.content.Context; import android.graphics.Rect; import android.view.LayoutInflater; import android.view.TouchDelegate; Loading @@ -43,16 +42,14 @@ public class A11yMenuAdapter extends BaseAdapter { private final int mLargeTextSize; private final AccessibilityMenuService mService; private final LayoutInflater mInflater; private final List<A11yMenuShortcut> mShortcutDataList; private final ShortcutDrawableUtils mShortcutDrawableUtils; public A11yMenuAdapter( AccessibilityMenuService service, Context displayContext, List<A11yMenuShortcut> shortcutDataList) { List<A11yMenuShortcut> shortcutDataList) { this.mService = service; this.mShortcutDataList = shortcutDataList; mInflater = LayoutInflater.from(displayContext); mShortcutDrawableUtils = new ShortcutDrawableUtils(service); Loading @@ -78,7 +75,8 @@ public class A11yMenuAdapter extends BaseAdapter { @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate(R.layout.grid_item, parent, false); convertView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.grid_item, parent, false); configureShortcutSize(convertView, A11yMenuPreferenceFragment.isLargeButtonsEnabled(mService)); Loading
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuOverlayLayout.java +33 −24 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.widget.FrameLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.UiContext; import com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService; import com.android.systemui.accessibility.accessibilitymenu.Flags; Loading Loading @@ -101,7 +102,6 @@ public class A11yMenuOverlayLayout { }; private final AccessibilityMenuService mService; private final WindowManager mWindowManager; private final DisplayManager mDisplayManager; private ViewGroup mLayout; private WindowManager.LayoutParams mLayoutParameter; Loading @@ -111,7 +111,6 @@ public class A11yMenuOverlayLayout { public A11yMenuOverlayLayout(AccessibilityMenuService service) { mService = service; mWindowManager = mService.getSystemService(WindowManager.class); mDisplayManager = mService.getSystemService(DisplayManager.class); configureLayout(); mHandler = new Handler(Looper.getMainLooper()); Loading @@ -134,8 +133,7 @@ public class A11yMenuOverlayLayout { int lastVisibilityState = View.GONE; if (mLayout != null) { lastVisibilityState = mLayout.getVisibility(); mWindowManager.removeView(mLayout); mLayout = null; clearLayout(); } if (mLayoutParameter == null) { Loading @@ -143,14 +141,15 @@ public class A11yMenuOverlayLayout { } final Display display = mDisplayManager.getDisplay(DEFAULT_DISPLAY); final Context context = mService.createDisplayContext(display).createWindowContext( TYPE_ACCESSIBILITY_OVERLAY, null); mLayout = new A11yMenuFrameLayout(context); updateLayoutPosition(); inflateLayoutAndSetOnTouchListener(mLayout, context); mA11yMenuViewPager = new A11yMenuViewPager(mService, context); final Context uiContext = mService.createWindowContext( display, TYPE_ACCESSIBILITY_OVERLAY, /* options= */null); final WindowManager windowManager = uiContext.getSystemService(WindowManager.class); mLayout = new A11yMenuFrameLayout(uiContext); updateLayoutPosition(uiContext); inflateLayoutAndSetOnTouchListener(mLayout, uiContext); mA11yMenuViewPager = new A11yMenuViewPager(mService); mA11yMenuViewPager.configureViewPagerAndFooter(mLayout, createShortcutList(), pageIndex); mWindowManager.addView(mLayout, mLayoutParameter); windowManager.addView(mLayout, mLayoutParameter); mLayout.setVisibility(lastVisibilityState); mA11yMenuViewPager.updateFooterState(); Loading @@ -159,7 +158,11 @@ public class A11yMenuOverlayLayout { public void clearLayout() { if (mLayout != null) { mWindowManager.removeView(mLayout); WindowManager windowManager = mLayout.getContext().getSystemService(WindowManager.class); if (windowManager != null) { windowManager.removeView(mLayout); } mLayout.setOnTouchListener(null); mLayout = null; } Loading @@ -170,8 +173,11 @@ public class A11yMenuOverlayLayout { if (mLayout == null || mLayoutParameter == null) { return; } updateLayoutPosition(); mWindowManager.updateViewLayout(mLayout, mLayoutParameter); updateLayoutPosition(mLayout.getContext()); WindowManager windowManager = mLayout.getContext().getSystemService(WindowManager.class); if (windowManager != null) { windowManager.updateViewLayout(mLayout, mLayoutParameter); } } private void initLayoutParams() { Loading @@ -183,8 +189,8 @@ public class A11yMenuOverlayLayout { mLayoutParameter.setTitle(mService.getString(R.string.accessibility_menu_service_name)); } private void inflateLayoutAndSetOnTouchListener(ViewGroup view, Context displayContext) { LayoutInflater inflater = LayoutInflater.from(displayContext); private void inflateLayoutAndSetOnTouchListener(ViewGroup view, @UiContext Context uiContext) { LayoutInflater inflater = LayoutInflater.from(uiContext); inflater.inflate(R.layout.paged_menu, view); view.setOnTouchListener(mService); } Loading Loading @@ -238,7 +244,11 @@ public class A11yMenuOverlayLayout { } /** Updates a11y menu layout position by configuring layout params. */ private void updateLayoutPosition() { private void updateLayoutPosition(@UiContext @NonNull Context uiContext) { WindowManager windowManager = uiContext.getSystemService(WindowManager.class); if (windowManager == null) { return; } final Display display = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY); final Configuration configuration = mService.getResources().getConfiguration(); final int orientation = configuration.orientation; Loading Loading @@ -276,14 +286,13 @@ public class A11yMenuOverlayLayout { mLayoutParameter.height = WindowManager.LayoutParams.WRAP_CONTENT; mLayout.setBackgroundResource(R.drawable.shadow_0deg); } // Adjusts the y position of a11y menu layout to make the layout not to overlap bottom // navigation bar window. updateLayoutByWindowInsetsIfNeeded(); updateLayoutByWindowInsetsIfNeeded(windowManager); mLayout.setOnApplyWindowInsetsListener( (view, insets) -> { if (updateLayoutByWindowInsetsIfNeeded()) { mWindowManager.updateViewLayout(mLayout, mLayoutParameter); if (updateLayoutByWindowInsetsIfNeeded(windowManager)) { windowManager.updateViewLayout(mLayout, mLayoutParameter); } return view.onApplyWindowInsets(insets); }); Loading @@ -295,9 +304,9 @@ public class A11yMenuOverlayLayout { * This method adjusts the layout position and size to * make a11y menu not to overlap navigation bar window. */ private boolean updateLayoutByWindowInsetsIfNeeded() { private boolean updateLayoutByWindowInsetsIfNeeded(@NonNull WindowManager windowManager) { boolean shouldUpdateLayout = false; WindowMetrics windowMetrics = mWindowManager.getCurrentWindowMetrics(); WindowMetrics windowMetrics = windowManager.getCurrentWindowMetrics(); Insets windowInsets = windowMetrics.getWindowInsets().getInsetsIgnoringVisibility( WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); int xOffset = max(windowInsets.left, windowInsets.right); Loading Loading @@ -396,7 +405,7 @@ public class A11yMenuOverlayLayout { } private class A11yMenuFrameLayout extends FrameLayout { A11yMenuFrameLayout(@NonNull Context context) { A11yMenuFrameLayout(@UiContext @NonNull Context context) { super(context); } Loading
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuViewPager.java +3 −6 Original line number Diff line number Diff line Loading @@ -146,12 +146,8 @@ public class A11yMenuViewPager { /** The container layout for a11y menu. */ private ViewGroup mA11yMenuLayout; /** Display context for inflating views. */ private Context mDisplayContext; public A11yMenuViewPager(AccessibilityMenuService service, Context displayContext) { public A11yMenuViewPager(AccessibilityMenuService service) { this.mService = service; this.mDisplayContext = displayContext; } /** Loading Loading @@ -289,7 +285,8 @@ public class A11yMenuViewPager { footerLayout.getLayoutParams().height = (int) (footerLayout.getLayoutParams().height / densityScale); // Adjust the view pager height for system bar and display cutout insets. WindowManager windowManager = mService.getSystemService(WindowManager.class); WindowManager windowManager = mA11yMenuLayout.getContext() .getSystemService(WindowManager.class); WindowMetrics windowMetric = windowManager.getCurrentWindowMetrics(); Insets windowInsets = windowMetric.getWindowInsets().getInsetsIgnoringVisibility( WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); Loading
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/ViewPagerAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ class ViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { A11yMenuAdapter adapter = new A11yMenuAdapter( mService, holder.itemView.getContext(), mShortcutList.get(position)); mService, mShortcutList.get(position)); GridView gridView = (GridView) holder.itemView; gridView.setNumColumns(A11yMenuViewPager.GridViewParams.getGridColumnCount(mService)); gridView.setAdapter(adapter); Loading