diff options
Diffstat (limited to 'java')
3 files changed, 25 insertions, 9 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java index 3db821c1..41804421 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -1566,6 +1566,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements mShouldDisplayLandscape = shouldDisplayLandscape(newConfig.orientation); mMaxTargetsPerRow = getResources().getInteger(R.integer.config_chooser_max_targets_per_row); mChooserMultiProfilePagerAdapter.setMaxTargetsPerRow(mMaxTargetsPerRow); + adjustMaxPreviewWidth(); adjustPreviewWidth(newConfig.orientation, null); updateStickyContentPreview(); updateTabPadding(); @@ -1578,6 +1579,14 @@ public class ChooserActivity extends Hilt_ChooserActivity implements return orientation == Configuration.ORIENTATION_LANDSCAPE && !isInMultiWindowMode(); } + private void adjustMaxPreviewWidth() { + if (mResolverDrawerLayout == null) { + return; + } + mResolverDrawerLayout.setMaxWidth( + getResources().getDimensionPixelSize(R.dimen.chooser_width)); + } + private void adjustPreviewWidth(int orientation, View parent) { int width = -1; if (mShouldDisplayLandscape) { @@ -2283,8 +2292,12 @@ public class ChooserActivity extends Hilt_ChooserActivity implements } final int availableWidth = right - left - v.getPaddingLeft() - v.getPaddingRight(); + final int maxChooserWidth = getResources().getDimensionPixelSize(R.dimen.chooser_width); boolean isLayoutUpdated = - gridAdapter.calculateChooserTargetWidth(availableWidth) + gridAdapter.calculateChooserTargetWidth( + maxChooserWidth >= 0 + ? Math.min(maxChooserWidth, availableWidth) + : availableWidth) || recyclerView.getAdapter() == null || availableWidth != mCurrAvailableWidth; diff --git a/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java b/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java index 1dd83566..9a50d7e4 100644 --- a/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java +++ b/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java @@ -88,7 +88,6 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter<RecyclerView. private final int mMaxTargetsPerRow; private final boolean mShouldShowContentPreview; - private final int mChooserWidthPixels; private final int mChooserRowTextOptionTranslatePixelSize; private final FeatureFlags mFeatureFlags; @Nullable @@ -117,7 +116,6 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter<RecyclerView. mShouldShowContentPreview = shouldShowContentPreview; mMaxTargetsPerRow = maxTargetsPerRow; - mChooserWidthPixels = context.getResources().getDimensionPixelSize(R.dimen.chooser_width); mChooserRowTextOptionTranslatePixelSize = context.getResources().getDimensionPixelSize( R.dimen.chooser_row_text_option_translate); mFeatureFlags = featureFlags; @@ -167,11 +165,6 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter<RecyclerView. return false; } - // Limit width to the maximum width of the chooser activity, if the maximum width is set - if (mChooserWidthPixels >= 0) { - width = Math.min(mChooserWidthPixels, width); - } - int newWidth = width / mMaxTargetsPerRow; if (newWidth != mChooserTargetWidth) { mChooserTargetWidth = newWidth; diff --git a/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java b/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java index 2c8140d9..07693b25 100644 --- a/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java +++ b/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java @@ -61,7 +61,7 @@ public class ResolverDrawerLayout extends ViewGroup { /** * Max width of the whole drawer layout */ - private final int mMaxWidth; + private int mMaxWidth; /** * Max total visible height of views not marked always-show when in the closed/initial state @@ -264,6 +264,16 @@ public class ResolverDrawerLayout extends ViewGroup { invalidate(); } + /** + * Sets max drawer width. + */ + public void setMaxWidth(int maxWidth) { + if (mMaxWidth != maxWidth) { + mMaxWidth = maxWidth; + requestLayout(); + } + } + public void setDismissLocked(boolean locked) { mDismissLocked = locked; } |