From 6cab5e823a0053c60576c65cd307c865512eac38 Mon Sep 17 00:00:00 2001 From: Alice Yang Date: Thu, 31 May 2012 15:48:51 -0700 Subject: [PATCH] Fix bug where existing account not pre-checked The fix was to call ListView.setItemChecked() instead of ListView.setSelection() for setting radio button status. Also refactored the code a bit so it's less verbose. Bug 6588533 Change-Id: I8add072a0277183baec7c0d5634a28f2d3a28c5e --- .../ChooseTypeAndAccountActivity.java | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java index 85438487d22ee..6b3b7fd59f528 100644 --- a/core/java/android/accounts/ChooseTypeAndAccountActivity.java +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -22,7 +22,6 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import android.view.View; -import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; @@ -280,23 +279,16 @@ public class ChooseTypeAndAccountActivity extends Activity if (selectedAddNewAccount) { mSelectedItemIndex = mAccounts.size(); } - if (Log.isLoggable(TAG, Log.VERBOSE)) { - Log.v(TAG, "mSelectedItemIndex is " + mSelectedItemIndex); - } - - ViewGroup buttonBar = (ViewGroup) findViewById(R.id.button_bar); - if (buttonBar != null) { - mOkButton = (Button) buttonBar.findViewById(android.R.id.button2); - if (mSelectedItemIndex != SELECTED_ITEM_NONE) { - // If caller specified a selectedAccount, then display that as selected and enable - // the "OK" button by default. - list.setSelection(mSelectedItemIndex); - mOkButton.setEnabled(true); - } else { - // Otherwise "OK" button is disabled since nothing is pre-selected. - mOkButton.setEnabled(false); + if (mSelectedItemIndex != SELECTED_ITEM_NONE) { + list.setItemChecked(mSelectedItemIndex, true); + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "List item " + mSelectedItemIndex + " should be selected"); } } + + // Only enable "OK" button if something has been selected. + mOkButton = (Button) findViewById(android.R.id.button2); + mOkButton.setEnabled(mSelectedItemIndex != SELECTED_ITEM_NONE); } @Override