From 6b7cf2577623e061439ce7050f885a92167c2304 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 14 Nov 2011 15:15:38 -0800 Subject: [PATCH] Kill the Switch on top-right after exiting Accounts & sync. Bug: 5564377 - Bluetooth screen showing a Switch that doesn't follow the bluetooth setting. This seems to have been the Switch in Accounts & sync being set as a custom view for the Settings activity and not removed on changing fragments. Change-Id: I4575a769fbf5482048dbc4e912c6b6f782f505a0 --- .../accounts/ManageAccountsSettings.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/accounts/ManageAccountsSettings.java b/src/com/android/settings/accounts/ManageAccountsSettings.java index 1396e03960a..0177491bf56 100644 --- a/src/com/android/settings/accounts/ManageAccountsSettings.java +++ b/src/com/android/settings/accounts/ManageAccountsSettings.java @@ -74,7 +74,14 @@ public class ManageAccountsSettings extends AccountPreferenceBase @Override public void onStart() { super.onStart(); - AccountManager.get(getActivity()).addOnAccountsUpdatedListener(this, null, true); + Activity activity = getActivity(); + AccountManager.get(activity).addOnAccountsUpdatedListener(this, null, true); + activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, + ActionBar.DISPLAY_SHOW_CUSTOM); + activity.getActionBar().setCustomView(mAutoSyncSwitch, new ActionBar.LayoutParams( + ActionBar.LayoutParams.WRAP_CONTENT, + ActionBar.LayoutParams.WRAP_CONTENT, + Gravity.CENTER_VERTICAL | Gravity.RIGHT)); } @Override @@ -100,12 +107,6 @@ public class ManageAccountsSettings extends AccountPreferenceBase final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); mAutoSyncSwitch.setPadding(0, 0, padding, 0); - activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, - ActionBar.DISPLAY_SHOW_CUSTOM); - activity.getActionBar().setCustomView(mAutoSyncSwitch, new ActionBar.LayoutParams( - ActionBar.LayoutParams.WRAP_CONTENT, - ActionBar.LayoutParams.WRAP_CONTENT, - Gravity.CENTER_VERTICAL | Gravity.RIGHT)); mAutoSyncSwitch.setChecked(ContentResolver.getMasterSyncAutomatically()); mAutoSyncSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override @@ -123,7 +124,10 @@ public class ManageAccountsSettings extends AccountPreferenceBase @Override public void onStop() { super.onStop(); - AccountManager.get(getActivity()).removeOnAccountsUpdatedListener(this); + final Activity activity = getActivity(); + AccountManager.get(activity).removeOnAccountsUpdatedListener(this); + activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM); + activity.getActionBar().setCustomView(null); } @Override