summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/qs
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2015-04-07 14:01:28 -0400
committerJohn Spurlock <jspurlock@google.com>2015-04-07 14:15:40 -0400
commitcd863ad094f38ab6b2339bb7961a34ae11414412 (patch)
tree4a825f96f6ca80967fe4a14073237894850faff4 /packages/SystemUI/src/com/android/systemui/qs
parent9e0f8deae851ec917613256dfbe899ae5c1b1ca5 (diff)
downloadframeworks_base-cd863ad094f38ab6b2339bb7961a34ae11414412.zip
frameworks_base-cd863ad094f38ab6b2339bb7961a34ae11414412.tar.gz
frameworks_base-cd863ad094f38ab6b2339bb7961a34ae11414412.tar.bz2
ZenTile: Don't broadcast intents in-process.
Bug: 20091931 Change-Id: Id35691a56c9fd279a9fb271525e193cefdc44c7f
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/qs')
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java32
1 files changed, 21 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
index ff6a45a..64730c2 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.view.LayoutInflater;
@@ -46,20 +47,17 @@ public class DndTile extends QSTile<QSTile.BooleanState> {
private final DndDetailAdapter mDetailAdapter;
private boolean mListening;
- private boolean mVisible;
private boolean mShowingDetail;
public DndTile(Host host) {
super(host);
mController = host.getZenModeController();
mDetailAdapter = new DndDetailAdapter();
- mVisible = isVisible(host.getContext());
mContext.registerReceiver(mReceiver, new IntentFilter(ACTION_SET_VISIBLE));
}
public static void setVisible(Context context, boolean visible) {
- context.sendBroadcast(new Intent(DndTile.ACTION_SET_VISIBLE)
- .putExtra(DndTile.EXTRA_VISIBLE, visible));
+ getSharedPrefs(context).edit().putBoolean(PREF_KEY_VISIBLE, visible).commit();
}
public static boolean isVisible(Context context) {
@@ -98,7 +96,7 @@ public class DndTile extends QSTile<QSTile.BooleanState> {
protected void handleUpdateState(BooleanState state, Object arg) {
final int zen = arg instanceof Integer ? (Integer) arg : mController.getZen();
state.value = zen != Global.ZEN_MODE_OFF;
- state.visible = mVisible;
+ state.visible = isVisible(mContext);
switch (zen) {
case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
state.icon = ResourceIcon.get(R.drawable.ic_qs_dnd_on);
@@ -145,26 +143,38 @@ public class DndTile extends QSTile<QSTile.BooleanState> {
mListening = listening;
if (mListening) {
mController.addCallback(mZenCallback);
+ getSharedPrefs(mContext).registerOnSharedPreferenceChangeListener(mPrefListener);
} else {
mController.removeCallback(mZenCallback);
+ getSharedPrefs(mContext).unregisterOnSharedPreferenceChangeListener(mPrefListener);
}
}
+ private static SharedPreferences getSharedPrefs(Context context) {
+ return context.getSharedPreferences(context.getPackageName(), 0);
+ }
+
+ private final OnSharedPreferenceChangeListener mPrefListener
+ = new OnSharedPreferenceChangeListener() {
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if (PREF_KEY_COMBINED_ICON.equals(key) || PREF_KEY_VISIBLE.equals(key)) {
+ refreshState();
+ }
+ }
+ };
+
private final ZenModeController.Callback mZenCallback = new ZenModeController.Callback() {
public void onZenChanged(int zen) {
refreshState(zen);
}
};
- private static SharedPreferences getSharedPrefs(Context context) {
- return context.getSharedPreferences(context.getPackageName(), 0);
- }
-
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- mVisible = intent.getBooleanExtra(EXTRA_VISIBLE, false);
- getSharedPrefs(mContext).edit().putBoolean(PREF_KEY_VISIBLE, mVisible).commit();
+ final boolean visible = intent.getBooleanExtra(EXTRA_VISIBLE, false);
+ setVisible(mContext, visible);
refreshState();
}
};