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

Commit 0d2a8d20 authored by John Spurlock's avatar John Spurlock
Browse files

Settings: Migrate calls & messages priority settings.

Bug: 18635172
Change-Id: Ib5fe3bc80590875bb4a1547013ac3444939ab6fd
parent faadcd60
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -6160,17 +6160,17 @@
    <!-- [CHAR LIMIT=20] Zen mode settings: Messages option -->
    <string name="zen_mode_messages">Messages</string>

    <!-- [CHAR LIMIT=50] Zen mode settings: From option -->
    <string name="zen_mode_from">Calls/messages from</string>
    <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From anyone -->
    <string name="zen_mode_from_anyone">From anyone</string>

    <!-- [CHAR LIMIT=30] Zen mode settings: From option value: Anyone -->
    <string name="zen_mode_from_anyone">Anyone</string>
    <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From contacts only -->
    <string name="zen_mode_from_contacts">From contacts only</string>

    <!-- [CHAR LIMIT=30] Zen mode settings: From option value: Contacts -->
    <string name="zen_mode_from_contacts">Contacts only</string>
    <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From starred contacts only -->
    <string name="zen_mode_from_starred">From starred contacts only</string>

    <!-- [CHAR LIMIT=30] Zen mode settings: From option value: Starred contacts -->
    <string name="zen_mode_from_starred">Starred contacts only</string>
    <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: None -->
    <string name="zen_mode_from_none">None</string>

    <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
    <string name="zen_mode_alarms">Alarms</string>
+4 −14
Original line number Diff line number Diff line
@@ -46,25 +46,15 @@
        android:switchTextOn="" />

    <!-- Messages -->
    <SwitchPreference
    <com.android.settings.DropDownPreference
        android:key="messages"
        android:title="@string/zen_mode_messages"
        android:persistent="false"
        android:switchTextOff=""
        android:switchTextOn="" />
        android:persistent="false" />

    <!-- Calls -->
    <SwitchPreference
    <com.android.settings.DropDownPreference
        android:key="calls"
        android:title="@string/zen_mode_calls"
        android:persistent="false"
        android:switchTextOff=""
        android:switchTextOn="" />

    <!-- Messages/calls from -->
    <com.android.settings.DropDownPreference
            android:key="starred"
            android:title="@string/zen_mode_from"
        android:persistent="false" />

    <!-- Repeat callers -->
+42 −39
Original line number Diff line number Diff line
@@ -34,15 +34,15 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
    private static final String KEY_EVENTS = "events";
    private static final String KEY_MESSAGES = "messages";
    private static final String KEY_CALLS = "calls";
    private static final String KEY_STARRED = "starred";
    private static final String KEY_REPEAT_CALLERS = "repeat_callers";

    private static final int SOURCE_NONE = -1;

    private boolean mDisableListeners;
    private SwitchPreference mReminders;
    private SwitchPreference mEvents;
    private SwitchPreference mMessages;
    private SwitchPreference mCalls;
    private DropDownPreference mStarred;
    private DropDownPreference mMessages;
    private DropDownPreference mCalls;
    private SwitchPreference mRepeatCallers;

    @Override
@@ -79,48 +79,46 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
            }
        });

        mMessages = (SwitchPreference) root.findPreference(KEY_MESSAGES);
        mMessages.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
        mMessages = (DropDownPreference) root.findPreference(KEY_MESSAGES);
        addSources(mMessages);
        mMessages.setCallback(new DropDownPreference.Callback() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
            public boolean onItemSelected(int pos, Object newValue) {
                if (mDisableListeners) return true;
                final boolean val = (Boolean) newValue;
                if (val == mConfig.allowMessages) return true;
                if (DEBUG) Log.d(TAG, "onPrefChange allowMessages=" + val);
                final ZenModeConfig newConfig = mConfig.copy();
                newConfig.allowMessages = val;
                return setZenModeConfig(newConfig);
                final int val = (Integer) newValue;
                final boolean allowMessages = val != SOURCE_NONE;
                final int allowMessagesFrom = val == SOURCE_NONE ? mConfig.allowMessagesFrom : val;
                if (allowMessages == mConfig.allowMessages
                        && allowMessagesFrom == mConfig.allowMessagesFrom) {
                    return true;
                }
        });

        mCalls = (SwitchPreference) root.findPreference(KEY_CALLS);
        mCalls.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                if (mDisableListeners) return true;
                final boolean val = (Boolean) newValue;
                if (val == mConfig.allowCalls) return true;
                if (DEBUG) Log.d(TAG, "onPrefChange allowCalls=" + val);
                if (DEBUG) Log.d(TAG, "onPrefChange allowMessages=" + allowMessages
                        + " allowMessagesFrom=" + ZenModeConfig.sourceToString(allowMessagesFrom));
                final ZenModeConfig newConfig = mConfig.copy();
                newConfig.allowCalls = val;
                newConfig.allowMessages = allowMessages;
                newConfig.allowMessagesFrom = allowMessagesFrom;
                return setZenModeConfig(newConfig);
            }
        });

        mStarred = (DropDownPreference) root.findPreference(KEY_STARRED);
        mStarred.addItem(R.string.zen_mode_from_anyone, ZenModeConfig.SOURCE_ANYONE);
        mStarred.addItem(R.string.zen_mode_from_contacts, ZenModeConfig.SOURCE_CONTACT);
        mStarred.addItem(R.string.zen_mode_from_starred, ZenModeConfig.SOURCE_STAR);
        mStarred.setCallback(new DropDownPreference.Callback() {
        mCalls = (DropDownPreference) root.findPreference(KEY_CALLS);
        addSources(mCalls);
        mCalls.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 boolean allowCalls = val != SOURCE_NONE;
                final int allowCallsFrom = val == SOURCE_NONE ? mConfig.allowCallsFrom : val;
                if (allowCalls == mConfig.allowCalls
                        && allowCallsFrom == mConfig.allowCallsFrom) {
                    return true;
                }
                if (DEBUG) Log.d(TAG, "onPrefChange allowCalls=" + allowCalls
                        + " allowCallsFrom=" + ZenModeConfig.sourceToString(allowCallsFrom));
                final ZenModeConfig newConfig = mConfig.copy();
                newConfig.allowFrom = val;
                newConfig.allowCalls = allowCalls;
                newConfig.allowCallsFrom = allowCallsFrom;
                return setZenModeConfig(newConfig);
            }
        });
@@ -158,16 +156,14 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
    private void updateControls() {
        mDisableListeners = true;
        if (mCalls != null) {
            mCalls.setChecked(mConfig.allowCalls);
            mCalls.setSelectedValue(mConfig.allowCalls ? mConfig.allowCallsFrom : SOURCE_NONE);
        }
        mMessages.setChecked(mConfig.allowMessages);
        mStarred.setSelectedValue(mConfig.allowFrom);
        mStarred.setEnabled(mConfig.allowCalls || mConfig.allowMessages);
        mMessages.setSelectedValue(mConfig.allowMessages ? mConfig.allowMessagesFrom : SOURCE_NONE);
        mReminders.setChecked(mConfig.allowReminders);
        mEvents.setChecked(mConfig.allowEvents);
        mRepeatCallers.setChecked(mConfig.allowRepeatCallers);
        mRepeatCallers.setEnabled(!mConfig.allowCalls
                || mConfig.allowFrom != ZenModeConfig.SOURCE_ANYONE);
                || mConfig.allowCallsFrom != ZenModeConfig.SOURCE_ANYONE);
        mDisableListeners = false;
    }

@@ -176,4 +172,11 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
        return MetricsLogger.NOTIFICATION_ZEN_MODE_PRIORITY;
    }

    private static void addSources(DropDownPreference pref) {
        pref.addItem(R.string.zen_mode_from_anyone, ZenModeConfig.SOURCE_ANYONE);
        pref.addItem(R.string.zen_mode_from_contacts, ZenModeConfig.SOURCE_CONTACT);
        pref.addItem(R.string.zen_mode_from_starred, ZenModeConfig.SOURCE_STAR);
        pref.addItem(R.string.zen_mode_from_none, SOURCE_NONE);
    }

}