aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrenouf <mrenouf@google.com>2023-12-13 14:33:30 -0500
committermrenouf <mrenouf@google.com>2023-12-13 14:33:30 -0500
commitfe8ffdee714f073d729a43a3601bd56f711201b3 (patch)
treede844974387a7ce290bf287cf153fe1c8b2bd58e
parent1f1556997629de4575d9ddeb1c30a4510e6ff70c (diff)
downloadIntentResolver-fe8ffdee714f073d729a43a3601bd56f711201b3.tar.gz
Fix crash in onRestoreInstanceState
This fixes the startup sequence to initialize dependencies before restoring saved state (last selected tab). Bug: 316178537 Test: manual, open chooser, rotate the device Change-Id: I6e7d32e4625b91a6f2da40c74c1a80a7057710b1
-rw-r--r--java/src/com/android/intentresolver/v2/ResolverActivity.java23
1 files changed, 11 insertions, 12 deletions
diff --git a/java/src/com/android/intentresolver/v2/ResolverActivity.java b/java/src/com/android/intentresolver/v2/ResolverActivity.java
index 64dda6f..f65ae5a 100644
--- a/java/src/com/android/intentresolver/v2/ResolverActivity.java
+++ b/java/src/com/android/intentresolver/v2/ResolverActivity.java
@@ -87,6 +87,7 @@ import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.UiThread;
@@ -276,6 +277,15 @@ public class ResolverActivity extends FragmentActivity implements
protected final void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mInit.forEach(Runnable::run);
+
+ if (savedInstanceState != null) {
+ resetButtonBar();
+ ViewPager viewPager = findViewById(com.android.internal.R.id.profile_pager);
+ if (viewPager != null) {
+ viewPager.setCurrentItem(savedInstanceState.getInt(LAST_SHOWN_TAB_KEY));
+ }
+ mMultiProfilePagerAdapter.clearInactiveProfileCache();
+ }
}
private void init() {
@@ -1301,7 +1311,7 @@ public class ResolverActivity extends FragmentActivity implements
}
@Override
- protected final void onSaveInstanceState(Bundle outState) {
+ protected final void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
ViewPager viewPager = findViewById(com.android.internal.R.id.profile_pager);
if (viewPager != null) {
@@ -1309,17 +1319,6 @@ public class ResolverActivity extends FragmentActivity implements
}
}
- @Override
- protected final void onRestoreInstanceState(Bundle savedInstanceState) {
- super.onRestoreInstanceState(savedInstanceState);
- resetButtonBar();
- ViewPager viewPager = findViewById(com.android.internal.R.id.profile_pager);
- if (viewPager != null) {
- viewPager.setCurrentItem(savedInstanceState.getInt(LAST_SHOWN_TAB_KEY));
- }
- mMultiProfilePagerAdapter.clearInactiveProfileCache();
- }
-
private boolean hasManagedProfile() {
UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
if (userManager == null) {