diff options
author | Amith Yamasani <yamasani@google.com> | 2012-06-08 13:35:47 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2012-06-08 15:21:05 -0700 |
commit | c8a9317649d59fb3e2fc7540aedba22a53900895 (patch) | |
tree | 2bf274a4edd682aa8246af3c74ec737cb2278d49 | |
parent | b3a049f5392da8500befaf2595f5170cf04cc432 (diff) | |
download | packages_apps_Settings-c8a9317649d59fb3e2fc7540aedba22a53900895.zip packages_apps_Settings-c8a9317649d59fb3e2fc7540aedba22a53900895.tar.gz packages_apps_Settings-c8a9317649d59fb3e2fc7540aedba22a53900895.tar.bz2 |
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
-rw-r--r-- | res/layout/preference_header_item.xml | 66 | ||||
-rw-r--r-- | res/layout/preference_header_switch_item.xml | 15 | ||||
-rw-r--r-- | src/com/android/settings/Settings.java | 4 | ||||
-rw-r--r-- | src/com/android/settings/accounts/AuthenticatorHelper.java | 3 | ||||
-rw-r--r-- | src/com/android/settings/accounts/ManageAccountsSettings.java | 5 |
5 files changed, 83 insertions, 10 deletions
diff --git a/res/layout/preference_header_item.xml b/res/layout/preference_header_item.xml new file mode 100644 index 0000000..28da8a1 --- /dev/null +++ b/res/layout/preference_header_item.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- Layout of a header item in PreferenceActivity. --> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="48dp" + android:background="?android:attr/activatedBackgroundIndicator" + android:gravity="center_vertical" + android:paddingRight="?android:attr/scrollbarSize"> + + <LinearLayout + android:layout_width="@dimen/header_icon_width" + android:layout_marginLeft="6dip" + android:layout_marginRight="6dip" + android:layout_height="wrap_content"> + <ImageView + android:id="@+id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" /> + </LinearLayout> + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="2dip" + android:layout_marginRight="6dip" + android:layout_marginTop="6dip" + android:layout_marginBottom="6dip" + android:layout_weight="1"> + + <TextView android:id="@+android:id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:ellipsize="marquee" + android:fadingEdge="horizontal" /> + + <TextView android:id="@+android:id/summary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@android:id/title" + android:layout_alignLeft="@android:id/title" + android:textAppearance="?android:attr/textAppearanceSmall" + android:ellipsize="end" + android:maxLines="2" /> + + </RelativeLayout> + +</LinearLayout> diff --git a/res/layout/preference_header_switch_item.xml b/res/layout/preference_header_switch_item.xml index 29b4b8a..9d89c25 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"> - <ImageView - android:id="@+id/icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" + <LinearLayout + android:layout_width="@dimen/header_icon_width" android:layout_marginLeft="6dip" android:layout_marginRight="6dip" - android:layout_gravity="center" - android:contentDescription="@null" /> + android:layout_height="wrap_content"> + <ImageView + android:id="@+id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" /> + </LinearLayout> <RelativeLayout android:layout_width="wrap_content" diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 5826154..37b47c2 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -625,9 +625,9 @@ public class Settings extends PreferenceActivity case HEADER_TYPE_NORMAL: view = mInflater.inflate( - com.android.internal.R.layout.preference_header_item, parent, + R.layout.preference_header_item, parent, false); - holder.icon = (ImageView) view.findViewById(com.android.internal.R.id.icon); + holder.icon = (ImageView) view.findViewById(R.id.icon); holder.title = (TextView) view.findViewById(com.android.internal.R.id.title); holder.summary = (TextView) diff --git a/src/com/android/settings/accounts/AuthenticatorHelper.java b/src/com/android/settings/accounts/AuthenticatorHelper.java index ab2fe74..eba785b 100644 --- a/src/com/android/settings/accounts/AuthenticatorHelper.java +++ b/src/com/android/settings/accounts/AuthenticatorHelper.java @@ -23,7 +23,6 @@ import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.Drawable; -import android.graphics.drawable.ScaleDrawable; import android.util.Log; import java.util.ArrayList; @@ -32,7 +31,7 @@ import java.util.Map; public class AuthenticatorHelper { - private static final String TAG = "AccountTypesHelper"; + private static final String TAG = "AuthenticatorHelper"; private Map<String, AuthenticatorDescription> mTypeToAuthDescription = new HashMap<String, AuthenticatorDescription>(); private AuthenticatorDescription[] mAuthDescs; diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java index bb1ebdd..a27fbbd 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(); } |