From 92e2b4f4af417b14c8b7774afe09a2f2cb06c8bc Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Sat, 25 Aug 2012 07:47:43 -0700 Subject: [PATCH] Avoid re-creating a user when activity is resumed onCreate() was getting called again, resulting in another user being created. Keeping the new userid across pause/resume. Change-Id: Id7930227895e95a60a77efddf361ab9408a8f797 --- .../android/settings/users/UserDetailsSettings.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java index aa7f9b2481c..518c6b621c9 100644 --- a/src/com/android/settings/users/UserDetailsSettings.java +++ b/src/com/android/settings/users/UserDetailsSettings.java @@ -90,6 +90,11 @@ public class UserDetailsSettings extends SettingsPreferenceFragment mIPm = IPackageManager.Stub.asInterface(ServiceManager.getService("package")); mUm = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); + if (icicle != null && icicle.containsKey(EXTRA_USER_ID)) { + mUserId = icicle.getInt(EXTRA_USER_ID); + mNewUser = false; + } + if (mUserId == -1) { mUserId = mUm.createUser(getString(R.string.user_new_user_name), 0).id; } @@ -111,6 +116,12 @@ public class UserDetailsSettings extends SettingsPreferenceFragment } } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(EXTRA_USER_ID, mUserId); + } + @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { if (mUserId == 0) {