diff options
author | mrenouf <mrenouf@google.com> | 2023-12-13 14:33:30 -0500 |
---|---|---|
committer | mrenouf <mrenouf@google.com> | 2023-12-13 14:33:30 -0500 |
commit | fe8ffdee714f073d729a43a3601bd56f711201b3 (patch) | |
tree | de844974387a7ce290bf287cf153fe1c8b2bd58e | |
parent | 1f1556997629de4575d9ddeb1c30a4510e6ff70c (diff) | |
download | IntentResolver-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.java | 23 |
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) { |