From fe8ffdee714f073d729a43a3601bd56f711201b3 Mon Sep 17 00:00:00 2001 From: mrenouf Date: Wed, 13 Dec 2023 14:33:30 -0500 Subject: 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 --- .../intentresolver/v2/ResolverActivity.java | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/intentresolver/v2/ResolverActivity.java b/java/src/com/android/intentresolver/v2/ResolverActivity.java index 64dda6f2..f65ae5a9 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) { -- cgit v1.2.3-59-g8ed1b