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

Commit 9dec71f7 authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Zen priority settings update" into oc-dr1-dev

parents afe4ce09 78f612b8
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -7166,6 +7166,9 @@
    <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
    <string name="zen_mode_alarms">Alarms</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option summary -->
    <string name="zen_mode_alarms_summary">Alarms are always a priority and make sound</string>
    <!-- [CHAR LIMIT=50] Zen mode settings: Reminders option -->
    <string name="zen_mode_reminders">Reminders</string>
+8 −7
Original line number Diff line number Diff line
@@ -19,13 +19,6 @@
    android:key="zen_mode_priority_settings"
    android:title="@string/zen_mode_priority_settings_title" >

    <!-- Alarms -->
    <SwitchPreference
        android:key="alarms"
        android:title="@string/zen_mode_alarms"
        android:enabled="false"
        android:defaultValue="true"/>

    <!-- Reminders -->
    <SwitchPreference
        android:key="reminders"
@@ -36,6 +29,14 @@
        android:key="events"
        android:title="@string/zen_mode_events"/>

    <!-- Alarms -->
    <SwitchPreference
        android:key="alarms"
        android:title="@string/zen_mode_alarms"
        android:summary="@string/zen_mode_alarms_summary"
        android:enabled="false"
        android:defaultValue="true"/>

    <!-- Messages -->
    <DropDownPreference
        android:key="messages"
+12 −3
Original line number Diff line number Diff line
@@ -358,10 +358,10 @@ public class ZenModeSettings extends ZenModeSettingsBase {

        String getPrioritySettingSummary(Policy policy) {
            String s = mContext.getString(R.string.zen_mode_alarms);
            s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_REMINDERS),
                R.string.zen_mode_reminders);
            s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS),
            s = prepend(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS),
                    R.string.zen_mode_events);
            s = prepend(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_REMINDERS),
                R.string.zen_mode_reminders);
            if (isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MESSAGES)) {
                if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) {
                    s = append(s, true, R.string.zen_mode_all_messages);
@@ -426,6 +426,15 @@ public class ZenModeSettings extends ZenModeSettingsBase {
            return s;
        }

        @VisibleForTesting
        String prepend(String s, boolean condition, int resId) {
            if (condition) {
                return mContext.getString(
                        R.string.join_many_items_middle, mContext.getString(resId), s);
            }
            return s;
        }

        private boolean isCategoryEnabled(Policy policy, int categoryType) {
            return (policy.priorityCategories & categoryType) != 0;
        }
+35 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.notification;

import android.app.NotificationManager;
import android.content.Context;

import com.android.settings.R;
@@ -30,6 +31,8 @@ import org.robolectric.annotation.Config;

import static com.google.common.truth.Truth.assertThat;

import static junit.framework.Assert.assertTrue;

@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ZenModeSettingsTest {
@@ -60,6 +63,38 @@ public class ZenModeSettingsTest {
        final String result = mBuilder.append(original, true, R.string.zen_mode_alarms);

        assertThat(result).contains(alarm);
        assertThat(result).contains(original);
        assertTrue(result.indexOf(original) < result.indexOf(alarm));
    }

    @Test
    public void testPrepend() {
        String original = mContext.getString(R.string.zen_mode_alarms);
        String reminders = mContext.getString(R.string.zen_mode_reminders);

        final String result = mBuilder.prepend(original, true, R.string.zen_mode_reminders);
        assertThat(result).contains(original);
        assertThat(result).contains(reminders);
        assertTrue(result.indexOf(reminders) < result.indexOf(original));
    }

    @Test
    public void testGetPrioritySettingSummary_sameOrderAsTargetPage() {
        NotificationManager.Policy policy = new NotificationManager.Policy(
                NotificationManager.Policy.PRIORITY_CATEGORY_EVENTS
                        | NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS,
                0, 0);
        final String result = mBuilder.getPrioritySettingSummary(policy);

        String alarms = mContext.getString(R.string.zen_mode_alarms);
        String reminders = mContext.getString(R.string.zen_mode_reminders);
        String events = mContext.getString(R.string.zen_mode_events);

        assertThat(result).contains(alarms);
        assertThat(result).contains(reminders);
        assertThat(result).contains(events);
        assertTrue(result.indexOf(reminders) < result.indexOf(events) &&
                result.indexOf(events) < result.indexOf(alarms));
    }

}