From 7ad86dce1c1dd07bb06bd996b0daa6b059eeca21 Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Wed, 28 May 2014 15:11:19 -0400 Subject: [PATCH] Support audience filtering in the Zen Mode settings. Depends-On: I7c91dec1afeb54505426c4da59ec4d072a60c240 Change-Id: Idf5523e225c1368a43bf46338490c69ed9dffd09 --- .../notification/ZenModeSettings.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java index 8a66d1b29bd..cdc4d3ae861 100644 --- a/src/com/android/settings/notification/ZenModeSettings.java +++ b/src/com/android/settings/notification/ZenModeSettings.java @@ -74,6 +74,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index private static final String KEY_GENERAL = "general"; private static final String KEY_CALLS = "phone_calls"; private static final String KEY_MESSAGES = "messages"; + private static final String KEY_STARRED = "starred"; private static final String KEY_AUTOMATIC = "automatic"; private static final String KEY_WHEN = "when"; @@ -91,6 +92,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index rt.put(R.string.zen_mode_phone_calls, KEY_CALLS); } rt.put(R.string.zen_mode_messages, KEY_MESSAGES); + rt.put(R.string.zen_mode_from_starred, KEY_STARRED); rt.put(R.string.zen_mode_automatic_category, KEY_AUTOMATIC); rt.put(R.string.zen_mode_when, KEY_WHEN); rt.put(R.string.zen_mode_start_time, KEY_START_TIME); @@ -194,12 +196,25 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index }); mStarred = new DropDownPreference(mContext); - mStarred.setEnabled(false); + mStarred.setKey(KEY_STARRED); mStarred.setTitle(R.string.zen_mode_from); mStarred.setDropDownWidth(R.dimen.zen_mode_dropdown_width); - mStarred.addItem(R.string.zen_mode_from_anyone, null); - mStarred.addItem(R.string.zen_mode_from_starred, null); - mStarred.addItem(R.string.zen_mode_from_contacts, null); + mStarred.addItem(R.string.zen_mode_from_anyone, ZenModeConfig.SOURCE_ANYONE); + mStarred.addItem(R.string.zen_mode_from_starred, ZenModeConfig.SOURCE_STAR); + mStarred.addItem(R.string.zen_mode_from_contacts, ZenModeConfig.SOURCE_CONTACT); + mStarred.setCallback(new DropDownPreference.Callback() { + @Override + public boolean onItemSelected(int pos, Object newValue) { + if (mDisableListeners) return true; + final int val = (Integer) newValue; + if (val == mConfig.allowFrom) return true; + if (DEBUG) Log.d(TAG, "onPrefChange allowFrom=" + + ZenModeConfig.sourceToString(val)); + final ZenModeConfig newConfig = mConfig.copy(); + newConfig.allowFrom = val; + return setZenModeConfig(newConfig); + } + }); general.addPreference(mStarred); final Preference alarmInfo = new Preference(mContext) { @@ -317,7 +332,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index mCalls.setChecked(mConfig.allowCalls); } mMessages.setChecked(mConfig.allowMessages); - mStarred.setSelectedItem(0); + mStarred.setSelectedValue(mConfig.allowFrom); mWhen.setSelectedValue(mConfig.sleepMode); mStart.setTime(mConfig.sleepStartHour, mConfig.sleepStartMinute); mEnd.setTime(mConfig.sleepEndHour, mConfig.sleepEndMinute);