Update the summary for DND conditional

Since original string is too long for DND conditional subtext, separate
DND conditional to two different states, one is for "Phone muted" state,
the othe is for "With exceptions" state.

Also, clean up the strings of other product variants for the conditional.

Bug: 122929205
Test: visual
Change-Id: Icb156ff9a4858a26355d92e6d4fb82ad1927b278
This commit is contained in:
Mill Chen
2019-02-13 18:48:48 +08:00
parent 72ba39cdf4
commit 09fedbf7ec
4 changed files with 96 additions and 15 deletions

View File

@@ -16,13 +16,22 @@
package com.android.settings.homepage.contextualcards.conditional;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import android.app.NotificationManager;
import android.content.Context;
import android.service.notification.ZenModeConfig;
import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.testutils.shadow.ShadowNotificationManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,7 +39,10 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
@Config(shadows = ShadowNotificationManager.class)
@RunWith(RobolectricTestRunner.class)
public class DndConditionalCardControllerTest {
@@ -38,12 +50,14 @@ public class DndConditionalCardControllerTest {
private ConditionManager mConditionManager;
private Context mContext;
private DndConditionCardController mController;
private ShadowNotificationManager mNotificationManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
mController = new DndConditionCardController(mContext, mConditionManager);
mNotificationManager = Shadow.extract(mContext.getSystemService(NotificationManager.class));
}
@Test
@@ -55,4 +69,58 @@ public class DndConditionalCardControllerTest {
eq(DndConditionCardController.DND_FILTER));
verify(mContext).unregisterReceiver(any(DndConditionCardController.Receiver.class));
}
@Test
public void buildContextualCard_allSoundsMuted_shouldHavePhoneMutedSummary() {
mNotificationManager.setZenModeConfig(getMutedAllConfig());
final ContextualCard card = mController.buildContextualCard();
assertThat(card.getSummaryText()).isEqualTo(
mContext.getString(R.string.condition_zen_summary_phone_muted));
}
@Test
public void buildContextualCard_allowSomeSounds_shouldHaveWittExceptionsSummary() {
mNotificationManager.setZenModeConfig(getCustomConfig());
final ContextualCard card = mController.buildContextualCard();
assertThat(card.getSummaryText()).isEqualTo(
mContext.getString(R.string.condition_zen_summary_with_exceptions));
}
private ZenModeConfig getCustomConfig() {
final ZenModeConfig config = new ZenModeConfig();
// Some sounds allowed
config.allowAlarms = true;
config.allowMedia = false;
config.allowSystem = false;
config.allowCalls = true;
config.allowRepeatCallers = true;
config.allowMessages = false;
config.allowReminders = false;
config.allowEvents = false;
config.areChannelsBypassingDnd = false;
config.allowCallsFrom = ZenModeConfig.SOURCE_ANYONE;
config.allowMessagesFrom = ZenModeConfig.SOURCE_ANYONE;
config.suppressedVisualEffects = 0;
return config;
}
private ZenModeConfig getMutedAllConfig() {
final ZenModeConfig config = new ZenModeConfig();
// No sounds allowed
config.allowAlarms = false;
config.allowMedia = false;
config.allowSystem = false;
config.allowCalls = false;
config.allowRepeatCallers = false;
config.allowMessages = false;
config.allowReminders = false;
config.allowEvents = false;
config.areChannelsBypassingDnd = false;
config.suppressedVisualEffects = 0;
return config;
}
}

View File

@@ -18,6 +18,7 @@ package com.android.settings.testutils.shadow;
import android.app.NotificationManager;
import android.net.Uri;
import android.service.notification.ZenModeConfig;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
@@ -26,6 +27,7 @@ import org.robolectric.annotation.Implements;
public class ShadowNotificationManager {
private int mZenMode;
private ZenModeConfig mZenModeConfig;
@Implementation
protected void setZenMode(int mode, Uri conditionId, String reason) {
@@ -36,4 +38,13 @@ public class ShadowNotificationManager {
protected int getZenMode() {
return mZenMode;
}
@Implementation
public ZenModeConfig getZenModeConfig() {
return mZenModeConfig;
}
public void setZenModeConfig(ZenModeConfig config) {
mZenModeConfig = config;
}
}