From 1b64c9d31536ec8b4a89b1b05bf493b50a2a6c4e Mon Sep 17 00:00:00 2001 From: Carlos Valdivia Date: Fri, 19 Apr 2013 01:07:12 -0700 Subject: Fix NPE when restarting ChooseTypeAndAccountActiivty. Note that this change still leaves things in an imperfect state. Now instead of ANR with an NPE it will reshow the Choose account activity and then on the second back, it will go away. So the user isn't hosed. But it is still a sloppy experience. Basically the bug fix reveals another not quite as bad bug (see https://b/8661942). Bug: 8151602 Change-Id: I44b188f5940d464c2dd81dd0b6b7cae3c189becd --- core/java/android/accounts/ChooseTypeAndAccountActivity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'core/java/android/accounts') diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java index 2aba163..58eb66f 100644 --- a/core/java/android/accounts/ChooseTypeAndAccountActivity.java +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -34,13 +34,11 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; -import android.widget.Toast; import com.android.internal.R; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.Set; @@ -110,6 +108,7 @@ public class ChooseTypeAndAccountActivity extends Activity private static final String KEY_INSTANCE_STATE_EXISTING_ACCOUNTS = "existingAccounts"; private static final String KEY_INSTANCE_STATE_SELECTED_ACCOUNT_NAME = "selectedAccountName"; private static final String KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT = "selectedAddAccount"; + private static final String KEY_INSTANCE_STATE_ACCOUNT_LIST = "accountList"; private static final int SELECTED_ITEM_NONE = -1; @@ -169,6 +168,7 @@ public class ChooseTypeAndAccountActivity extends Activity mSelectedAddNewAccount = savedInstanceState.getBoolean( KEY_INSTANCE_STATE_SELECTED_ADD_ACCOUNT, false); + mAccounts = savedInstanceState.getParcelableArrayList(KEY_INSTANCE_STATE_ACCOUNT_LIST); } else { mPendingRequest = REQUEST_NULL; mExistingAccounts = null; @@ -266,6 +266,7 @@ public class ChooseTypeAndAccountActivity extends Activity mAccounts.get(mSelectedItemIndex).name); } } + outState.putParcelableArrayList(KEY_INSTANCE_STATE_ACCOUNT_LIST, mAccounts); } public void onCancelButtonClicked(View view) { -- cgit v1.1