Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ad86dce authored by Chris Wren's avatar Chris Wren
Browse files

Support audience filtering in the Zen Mode settings.

Depends-On: I7c91dec1afeb54505426c4da59ec4d072a60c240
Change-Id: Idf5523e225c1368a43bf46338490c69ed9dffd09
parent 3afbdf00
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -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);