From c8a9317649d59fb3e2fc7540aedba22a53900895 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 8 Jun 2012 13:35:47 -0700 Subject: [PATCH] Exit to Settings when removing the only account for a type. Skip over the ManageAccounts screen which shows the list of accounts for a particular type, if there are no accounts there. Bug: 6630827 Also fix text alignment in top-level of settings. Change-Id: Icd446babc131e7052fc9e95514214fffe6e6e113 --- res/layout/preference_header_item.xml | 66 +++++++++++++++++++ res/layout/preference_header_switch_item.xml | 15 +++-- src/com/android/settings/Settings.java | 4 +- .../accounts/AuthenticatorHelper.java | 3 +- .../accounts/ManageAccountsSettings.java | 5 ++ 5 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 res/layout/preference_header_item.xml diff --git a/res/layout/preference_header_item.xml b/res/layout/preference_header_item.xml new file mode 100644 index 00000000000..28da8a1da16 --- /dev/null +++ b/res/layout/preference_header_item.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + diff --git a/res/layout/preference_header_switch_item.xml b/res/layout/preference_header_switch_item.xml index 29b4b8a4f77..9d89c252bf7 100644 --- a/res/layout/preference_header_switch_item.xml +++ b/res/layout/preference_header_switch_item.xml @@ -23,14 +23,17 @@ android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize"> - + android:layout_height="wrap_content"> + + mTypeToAuthDescription = new HashMap(); private AuthenticatorDescription[] mAuthDescs; diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java index bb1ebddd528..a27fbbd2584 100644 --- a/src/com/android/settings/accounts/ManageAccountsSettings.java +++ b/src/com/android/settings/accounts/ManageAccountsSettings.java @@ -333,6 +333,11 @@ public class ManageAccountsSettings extends AccountPreferenceBase } if (mAccountType != null && mFirstAccount != null) { addAuthenticatorSettings(); + } else { + // There's no account, reset to top-level of settings + Intent settingsTop = new Intent(android.provider.Settings.ACTION_SETTINGS); + settingsTop.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + getActivity().startActivity(settingsTop); } onSyncStateUpdated(); }