Loading packages/SystemUI/accessibility/accessibilitymenu/res/layout/grid_item.xml +1 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,7 @@ android:id="@+id/shortcutItem" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="@dimen/grid_item_padding" android:paddingBottom="@dimen/grid_item_padding" android:padding="@dimen/grid_item_padding" android:gravity="center"> <ImageButton Loading packages/SystemUI/accessibility/accessibilitymenu/res/layout/paged_menu.xml +14 −20 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/row_width" android:layout_height="match_parent" android:id="@+id/coordinatorLayout" android:background="@drawable/view_background" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> android:orientation="vertical" android:background="@drawable/view_background"> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:paddingTop="@dimen/table_margin_top" android:paddingBottom="@dimen/a11ymenu_layout_margin" android:layout_gravity="center" android:gravity="center" /> <include layout="@layout/footerlayout_switch_page"/> </LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout> packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuFooter.java +14 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,8 @@ public class A11yMenuFooter { private View mBottomListDivider; private final A11yMenuFooterCallBack mCallBack; private final ViewGroup mMenuLayout; private ViewGroup mFooterContainer; private int mFooterContainerBaseHeight = 0; private int mRightToLeftDirection = LAYOUT_DIRECTION_LTR; public A11yMenuFooter(ViewGroup menuLayout, A11yMenuFooterCallBack callBack) { Loading @@ -74,6 +76,15 @@ public class A11yMenuFooter { ? mPageRightBtn : mPageLeftBtn; } void adjustFooterToDensityScale(float densityScale) { mFooterContainer.getLayoutParams().height = (int) (mFooterContainerBaseHeight / densityScale); } int getHeight() { return mFooterContainer.getLayoutParams().height; } /** Sets right to left direction of footer. */ public void updateRightToLeftDirection(Configuration configuration) { mRightToLeftDirection = TextUtils.getLayoutDirectionFromLocale( Loading @@ -85,8 +96,9 @@ public class A11yMenuFooter { } private void configureFooterLayout(ViewGroup menuLayout) { ViewGroup footerContainer = menuLayout.findViewById(R.id.footerlayout); footerContainer.setVisibility(View.VISIBLE); mFooterContainer = menuLayout.findViewById(R.id.footerlayout); mFooterContainer.setVisibility(View.VISIBLE); mFooterContainerBaseHeight = mFooterContainer.getLayoutParams().height; mPageLeftBtn = menuLayout.findViewById(R.id.menu_left_button); mPageRightBtn = menuLayout.findViewById(R.id.menu_right_button); Loading packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuViewPager.java +16 −11 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.view.WindowManager; import android.view.WindowMetrics; import android.widget.GridView; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager2.widget.ViewPager2; import com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService; Loading Loading @@ -163,7 +164,9 @@ public class A11yMenuViewPager { mA11yMenuShortcutList = shortcutDataList; initViewPager(); initChildPage(); if (mA11yMenuFooter == null) { mA11yMenuFooter = new A11yMenuFooter(a11yMenuLayout, mFooterCallbacks); } mA11yMenuFooter.updateRightToLeftDirection( a11yMenuLayout.getResources().getConfiguration()); updateFooterState(); Loading Loading @@ -233,11 +236,17 @@ public class A11yMenuViewPager { return; } if (mGridPageList.isEmpty()) { if (mViewPagerAdapter.getItemCount() == 0) { return; } GridView firstGridView = mGridPageList.get(0); RecyclerView.ViewHolder viewHolder = ((RecyclerView) mViewPager.getChildAt(0)) .findViewHolderForAdapterPosition(0); if (viewHolder == null) { return; } GridView firstGridView = (GridView) viewHolder.itemView; if (firstGridView == null || firstGridView.getChildAt(0) == null) { return; Loading Loading @@ -280,10 +289,8 @@ public class A11yMenuViewPager { DisplayMetrics displayMetrics = mService.getResources().getDisplayMetrics(); float densityScale = (float) displayMetrics.densityDpi / DisplayMetrics.DENSITY_DEVICE_STABLE; View footerLayout = mA11yMenuLayout.findViewById(R.id.footerlayout); // Keeps footer window height unchanged no matter the density is changed. footerLayout.getLayoutParams().height = (int) (footerLayout.getLayoutParams().height / densityScale); mA11yMenuFooter.adjustFooterToDensityScale(densityScale); // Adjust the view pager height for system bar and display cutout insets. WindowManager windowManager = mA11yMenuLayout.getContext() .getSystemService(WindowManager.class); Loading @@ -292,20 +299,18 @@ public class A11yMenuViewPager { WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); viewPagerHeight = windowMetric.getBounds().height() - footerLayout.getLayoutParams().height - mA11yMenuFooter.getHeight() - windowInsets.bottom; // Sets vertical interval between grid items. int interval = (viewPagerHeight - topMargin - defaultMargin - (rowsInGridView * gridItemHeight)) / (rowsInGridView + 1); for (GridView gridView : mGridPageList) { gridView.setVerticalSpacing(interval); } mViewPagerAdapter.setVerticalSpacing(interval); // Sets padding to view pager. final int finalMarginTop = interval + topMargin; mViewPager.setPadding(defaultMargin, finalMarginTop, defaultMargin, defaultMargin); mViewPager.setPadding(0, finalMarginTop, 0, defaultMargin); } final ViewGroup.LayoutParams layoutParams = mViewPager.getLayoutParams(); layoutParams.height = viewPagerHeight; Loading packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/ViewPagerAdapter.java +9 −0 Original line number Diff line number Diff line Loading @@ -36,11 +36,19 @@ class ViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { /** List of shortcuts, split into sub lists per page */ private List<List<A11yMenuShortcut>> mShortcutList; private final AccessibilityMenuService mService; private int mVerticalSpacing = 0; ViewPagerAdapter(AccessibilityMenuService service) { mService = service; } public void setVerticalSpacing(int spacing) { if (mVerticalSpacing != spacing) { mVerticalSpacing = spacing; notifyDataSetChanged(); } } public void set(List<List<A11yMenuShortcut>> tList) { mShortcutList = tList; notifyDataSetChanged(); Loading @@ -61,6 +69,7 @@ class ViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { GridView gridView = (GridView) holder.itemView; gridView.setNumColumns(A11yMenuViewPager.GridViewParams.getGridColumnCount(mService)); gridView.setAdapter(adapter); gridView.setVerticalSpacing(mVerticalSpacing); } @Override Loading Loading
packages/SystemUI/accessibility/accessibilitymenu/res/layout/grid_item.xml +1 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,7 @@ android:id="@+id/shortcutItem" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="@dimen/grid_item_padding" android:paddingBottom="@dimen/grid_item_padding" android:padding="@dimen/grid_item_padding" android:gravity="center"> <ImageButton Loading
packages/SystemUI/accessibility/accessibilitymenu/res/layout/paged_menu.xml +14 −20 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/row_width" android:layout_height="match_parent" android:id="@+id/coordinatorLayout" android:background="@drawable/view_background" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> android:orientation="vertical" android:background="@drawable/view_background"> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:paddingTop="@dimen/table_margin_top" android:paddingBottom="@dimen/a11ymenu_layout_margin" android:layout_gravity="center" android:gravity="center" /> <include layout="@layout/footerlayout_switch_page"/> </LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuFooter.java +14 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,8 @@ public class A11yMenuFooter { private View mBottomListDivider; private final A11yMenuFooterCallBack mCallBack; private final ViewGroup mMenuLayout; private ViewGroup mFooterContainer; private int mFooterContainerBaseHeight = 0; private int mRightToLeftDirection = LAYOUT_DIRECTION_LTR; public A11yMenuFooter(ViewGroup menuLayout, A11yMenuFooterCallBack callBack) { Loading @@ -74,6 +76,15 @@ public class A11yMenuFooter { ? mPageRightBtn : mPageLeftBtn; } void adjustFooterToDensityScale(float densityScale) { mFooterContainer.getLayoutParams().height = (int) (mFooterContainerBaseHeight / densityScale); } int getHeight() { return mFooterContainer.getLayoutParams().height; } /** Sets right to left direction of footer. */ public void updateRightToLeftDirection(Configuration configuration) { mRightToLeftDirection = TextUtils.getLayoutDirectionFromLocale( Loading @@ -85,8 +96,9 @@ public class A11yMenuFooter { } private void configureFooterLayout(ViewGroup menuLayout) { ViewGroup footerContainer = menuLayout.findViewById(R.id.footerlayout); footerContainer.setVisibility(View.VISIBLE); mFooterContainer = menuLayout.findViewById(R.id.footerlayout); mFooterContainer.setVisibility(View.VISIBLE); mFooterContainerBaseHeight = mFooterContainer.getLayoutParams().height; mPageLeftBtn = menuLayout.findViewById(R.id.menu_left_button); mPageRightBtn = menuLayout.findViewById(R.id.menu_right_button); Loading
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/A11yMenuViewPager.java +16 −11 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.view.WindowManager; import android.view.WindowMetrics; import android.widget.GridView; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager2.widget.ViewPager2; import com.android.systemui.accessibility.accessibilitymenu.AccessibilityMenuService; Loading Loading @@ -163,7 +164,9 @@ public class A11yMenuViewPager { mA11yMenuShortcutList = shortcutDataList; initViewPager(); initChildPage(); if (mA11yMenuFooter == null) { mA11yMenuFooter = new A11yMenuFooter(a11yMenuLayout, mFooterCallbacks); } mA11yMenuFooter.updateRightToLeftDirection( a11yMenuLayout.getResources().getConfiguration()); updateFooterState(); Loading Loading @@ -233,11 +236,17 @@ public class A11yMenuViewPager { return; } if (mGridPageList.isEmpty()) { if (mViewPagerAdapter.getItemCount() == 0) { return; } GridView firstGridView = mGridPageList.get(0); RecyclerView.ViewHolder viewHolder = ((RecyclerView) mViewPager.getChildAt(0)) .findViewHolderForAdapterPosition(0); if (viewHolder == null) { return; } GridView firstGridView = (GridView) viewHolder.itemView; if (firstGridView == null || firstGridView.getChildAt(0) == null) { return; Loading Loading @@ -280,10 +289,8 @@ public class A11yMenuViewPager { DisplayMetrics displayMetrics = mService.getResources().getDisplayMetrics(); float densityScale = (float) displayMetrics.densityDpi / DisplayMetrics.DENSITY_DEVICE_STABLE; View footerLayout = mA11yMenuLayout.findViewById(R.id.footerlayout); // Keeps footer window height unchanged no matter the density is changed. footerLayout.getLayoutParams().height = (int) (footerLayout.getLayoutParams().height / densityScale); mA11yMenuFooter.adjustFooterToDensityScale(densityScale); // Adjust the view pager height for system bar and display cutout insets. WindowManager windowManager = mA11yMenuLayout.getContext() .getSystemService(WindowManager.class); Loading @@ -292,20 +299,18 @@ public class A11yMenuViewPager { WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout()); viewPagerHeight = windowMetric.getBounds().height() - footerLayout.getLayoutParams().height - mA11yMenuFooter.getHeight() - windowInsets.bottom; // Sets vertical interval between grid items. int interval = (viewPagerHeight - topMargin - defaultMargin - (rowsInGridView * gridItemHeight)) / (rowsInGridView + 1); for (GridView gridView : mGridPageList) { gridView.setVerticalSpacing(interval); } mViewPagerAdapter.setVerticalSpacing(interval); // Sets padding to view pager. final int finalMarginTop = interval + topMargin; mViewPager.setPadding(defaultMargin, finalMarginTop, defaultMargin, defaultMargin); mViewPager.setPadding(0, finalMarginTop, 0, defaultMargin); } final ViewGroup.LayoutParams layoutParams = mViewPager.getLayoutParams(); layoutParams.height = viewPagerHeight; Loading
packages/SystemUI/accessibility/accessibilitymenu/src/com/android/systemui/accessibility/accessibilitymenu/view/ViewPagerAdapter.java +9 −0 Original line number Diff line number Diff line Loading @@ -36,11 +36,19 @@ class ViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { /** List of shortcuts, split into sub lists per page */ private List<List<A11yMenuShortcut>> mShortcutList; private final AccessibilityMenuService mService; private int mVerticalSpacing = 0; ViewPagerAdapter(AccessibilityMenuService service) { mService = service; } public void setVerticalSpacing(int spacing) { if (mVerticalSpacing != spacing) { mVerticalSpacing = spacing; notifyDataSetChanged(); } } public void set(List<List<A11yMenuShortcut>> tList) { mShortcutList = tList; notifyDataSetChanged(); Loading @@ -61,6 +69,7 @@ class ViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { GridView gridView = (GridView) holder.itemView; gridView.setNumColumns(A11yMenuViewPager.GridViewParams.getGridColumnCount(mService)); gridView.setAdapter(adapter); gridView.setVerticalSpacing(mVerticalSpacing); } @Override Loading