diff options
| author | 2024-07-24 16:46:41 +0000 | |
|---|---|---|
| committer | 2024-07-24 16:46:41 +0000 | |
| commit | 8537842648f158fef15061e601a795256dbdeca9 (patch) | |
| tree | 9d62a087e17e9996e872d799a31477009d64c65d /java/src | |
| parent | 4bd8bd63d47254ef9d8776c2792d1304556d40cc (diff) | |
| parent | a7b90069598ad145a0a2a33a83af23122433a045 (diff) | |
Merge "Fix drawer offset calculation when rotating from a non-initial profile" into main
Diffstat (limited to 'java/src')
| -rw-r--r-- | java/src/com/android/intentresolver/ChooserActivity.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java index 7e0f148d..84f29e21 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -204,7 +204,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements private static final String TAB_TAG_PERSONAL = "personal"; private static final String TAB_TAG_WORK = "work"; - private static final String LAST_SHOWN_TAB_KEY = "last_shown_tab_key"; + private static final String LAST_SHOWN_PROFILE = "last_shown_tab_key"; public static final String METRICS_CATEGORY_CHOOSER = "intent_chooser"; private int mLayoutId; @@ -349,6 +349,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements mChooserHelper.setOnPendingSelection(this::onPendingSelection); } } + private int mInitialProfile = -1; @Override protected final void onStart() { @@ -410,7 +411,8 @@ public class ChooserActivity extends Hilt_ChooserActivity implements protected final void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (mViewPager != null) { - outState.putInt(LAST_SHOWN_TAB_KEY, mViewPager.getCurrentItem()); + outState.putInt( + LAST_SHOWN_PROFILE, mChooserMultiProfilePagerAdapter.getActiveProfile()); } } @@ -679,6 +681,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements mRequest.getModifyShareAction() != null ); mEnterTransitionAnimationDelegate.postponeTransition(); + mInitialProfile = findSelectedProfile(); Tracer.INSTANCE.markLaunched(); } @@ -828,7 +831,12 @@ public class ChooserActivity extends Hilt_ChooserActivity implements @Override protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { if (mViewPager != null) { - mViewPager.setCurrentItem(savedInstanceState.getInt(LAST_SHOWN_TAB_KEY)); + int profile = savedInstanceState.getInt(LAST_SHOWN_PROFILE); + int profileNumber = mChooserMultiProfilePagerAdapter.getPageNumberForProfile(profile); + if (profileNumber != -1) { + mViewPager.setCurrentItem(profileNumber); + mInitialProfile = profile; + } } mChooserMultiProfilePagerAdapter.clearInactiveProfileCache(); } @@ -2257,7 +2265,9 @@ public class ChooserActivity extends Hilt_ChooserActivity implements } int currentProfile = mChooserMultiProfilePagerAdapter.getActiveProfile(); - int initialProfile = findSelectedProfile(); + int initialProfile = Flags.fixDrawerOffsetOnConfigChange() + ? mInitialProfile + : findSelectedProfile(); if (currentProfile != initialProfile) { return; } |