summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2024-07-24 16:46:41 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-07-24 16:46:41 +0000
commit8537842648f158fef15061e601a795256dbdeca9 (patch)
tree9d62a087e17e9996e872d799a31477009d64c65d /java/src
parent4bd8bd63d47254ef9d8776c2792d1304556d40cc (diff)
parenta7b90069598ad145a0a2a33a83af23122433a045 (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.java18
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;
}