diff options
author | 2024-09-24 22:35:19 +0000 | |
---|---|---|
committer | 2024-09-24 22:35:19 +0000 | |
commit | 85a8875b828c5e30418f66b9d681767ad87073f2 (patch) | |
tree | 96bcc526617c9bbeae5e07b7c3bb9e0f33ef18c6 /java | |
parent | 955534364f4fc749f53255b3a9606a97731f03a3 (diff) | |
parent | eb35273e23e3b75c4417af3f3bd689498d605fb1 (diff) |
Merge "Update Chooser drawer max width value on config change." into main
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 f7d81ca4..4441fc99 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -1568,6 +1568,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(); @@ -1580,6 +1581,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) { @@ -2285,8 +2294,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; } |