diff options
| author | 2023-09-12 14:49:19 +0000 | |
|---|---|---|
| committer | 2023-09-18 17:08:42 +0000 | |
| commit | 877918c77c5d42c6f80c47deb3f33e6750b8417c (patch) | |
| tree | 30826ffddd5449b1b34447f096fad417ddae59f2 | |
| parent | a0e3d97e04cb2a1f070d718a7a2e9153aee970c7 (diff) | |
PSS: AppSelector's should update its width when unfold
Update the maxWidth so that it respects config change
Fixes: 297507829
Test: TODO: Screenshot tests are currently disabled; E2e tests will be done with follow up bug
Test: Manual: Start AppSelector, unfold, then check with hsv
Change-Id: Iffa074dbda877cc99949b346d5598f1a7f6dc0ca
| -rw-r--r-- | core/java/com/android/internal/widget/ResolverDrawerLayout.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/core/java/com/android/internal/widget/ResolverDrawerLayout.java b/core/java/com/android/internal/widget/ResolverDrawerLayout.java index 52ffc984c41e..a513ca535620 100644 --- a/core/java/com/android/internal/widget/ResolverDrawerLayout.java +++ b/core/java/com/android/internal/widget/ResolverDrawerLayout.java @@ -21,6 +21,7 @@ import static android.content.res.Resources.ID_NULL; import android.annotation.IdRes; import android.content.Context; +import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; @@ -53,10 +54,13 @@ public class ResolverDrawerLayout extends ViewGroup { private static final String TAG = "ResolverDrawerLayout"; private MetricsLogger mMetricsLogger; + + /** - * Max width of the whole drawer layout + * Max width of the whole drawer layout and its res id */ - private final int mMaxWidth; + private int mMaxWidthResId; + private int mMaxWidth; /** * Max total visible height of views not marked always-show when in the closed/initial state @@ -152,6 +156,7 @@ public class ResolverDrawerLayout extends ViewGroup { final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ResolverDrawerLayout, defStyleAttr, 0); + mMaxWidthResId = a.getResourceId(R.styleable.ResolverDrawerLayout_maxWidth, -1); mMaxWidth = a.getDimensionPixelSize(R.styleable.ResolverDrawerLayout_maxWidth, -1); mMaxCollapsedHeight = a.getDimensionPixelSize( R.styleable.ResolverDrawerLayout_maxCollapsedHeight, 0); @@ -1042,6 +1047,18 @@ public class ResolverDrawerLayout extends ViewGroup { return mAlwaysShowHeight; } + /** + * Max width of the drawer needs to be updated after the configuration is changed. + * For example, foldables have different layout width when the device is folded and unfolded. + */ + @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + if (mMaxWidthResId > 0) { + mMaxWidth = getResources().getDimensionPixelSize(mMaxWidthResId); + } + } + @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { final int width = getWidth(); |