From 643eb7572f8a14f6bd21e5ad0584e6182fc49c76 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Thu, 2 May 2019 22:16:05 -0400 Subject: [PATCH] Gentle notifications screen With lockscreen and status bar settings Test: robo tests Bug: 128445911 Change-Id: I46c5943d4d8dc1ee74b5b920239f259f5880a2d3 --- .../gentle_notifications_shade.png | Bin 0 -> 29804 bytes .../gentle_notifications_shade_lock.png | Bin 0 -> 37633 bytes .../gentle_notifications_shade_status.png | Bin 0 -> 31281 bytes ...gentle_notifications_shade_status_lock.png | Bin 0 -> 37923 bytes res/layout/drawable_layout.xml | 27 ++++ res/values/strings.xml | 27 ++++ res/xml/configure_notification_settings.xml | 10 +- res/xml/gentle_notification_settings.xml | 56 +++++++++ .../GentleDrawablePreferenceController.java | 81 ++++++++++++ .../GentleNotificationSettings.java | 74 +++++++++++ ...ntleNotificationsPreferenceController.java | 78 ++++++++++++ .../SilentLockscreenPreferenceController.java | 70 +++++++++++ .../SilentStatusBarPreferenceController.java | 18 ++- ...entleDrawablePreferenceControllerTest.java | 113 +++++++++++++++++ ...NotificationsPreferenceControllerTest.java | 109 ++++++++++++++++ ...entLockscreenPreferenceControllerTest.java | 117 ++++++++++++++++++ ...lentStatusBarPreferenceControllerTest.java | 22 +++- 17 files changed, 790 insertions(+), 12 deletions(-) create mode 100644 res/drawable-nodpi/gentle_notifications_shade.png create mode 100644 res/drawable-nodpi/gentle_notifications_shade_lock.png create mode 100644 res/drawable-nodpi/gentle_notifications_shade_status.png create mode 100644 res/drawable-nodpi/gentle_notifications_shade_status_lock.png create mode 100644 res/layout/drawable_layout.xml create mode 100644 res/xml/gentle_notification_settings.xml create mode 100644 src/com/android/settings/notification/GentleDrawablePreferenceController.java create mode 100644 src/com/android/settings/notification/GentleNotificationSettings.java create mode 100644 src/com/android/settings/notification/GentleNotificationsPreferenceController.java create mode 100644 src/com/android/settings/notification/SilentLockscreenPreferenceController.java create mode 100644 tests/robotests/src/com/android/settings/notification/GentleDrawablePreferenceControllerTest.java create mode 100644 tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java create mode 100644 tests/robotests/src/com/android/settings/notification/SilentLockscreenPreferenceControllerTest.java diff --git a/res/drawable-nodpi/gentle_notifications_shade.png b/res/drawable-nodpi/gentle_notifications_shade.png new file mode 100644 index 0000000000000000000000000000000000000000..dddef5cf96c390a021504fad66b64eaa72302eea GIT binary patch literal 29804 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 On81?MUFd!O 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 CGGWjF literal 0 HcmV?d00001 diff --git a/res/drawable-nodpi/gentle_notifications_shade_lock.png b/res/drawable-nodpi/gentle_notifications_shade_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4de243420c66aef0f1fffff32a4f95e34daa3d GIT binary patch literal 37633 zcmeFZcUY3``v**WXG61L`e>zQJ`@1BeD~Mawo<*!3gN|Vp%%9c0JS)Y zCE*V{y{?;F2LS5Q4s5yZ0svlS8sE5X6}fGNcOcn+11j~CCm2uT%2MC=+<%_I3dzoJ zzkB}Bl!Y1LLf-{WG8%8;pc(!&27IIkFOv7{(Av9nEZIp@703`J9YnD+Hvm7 zpT9bJa+}ESOP!s2g|hke*?qHf$M1!*@^;DJi^u=`->rm#_&-_wvWEXNhTlH%f5!0t z&lo&)0G+$Fw6*thxqDm%U;dJilr({vfdF}K5QvU{K*|Siwf(lJ71NF`<5KLiggF$K z!`VXYRJY(qgm`)BtoUDoZhPCZm9gW&u*LIGE_=W=C`hS2h6B?)DL5RQQ?h*`gG>&d z>uwC@O^pY8NNoOnAx=XnMPNG97J;W2f3c|Ko4T~rtMVPApsUTt0P04UySD=l-d3>D z6MRUT{glO!x7rp~Vs;7C7JWf?z29~(M6qH$Vl_``=5Pd~U4k*wCI#>=>7*{C_{~n# z^AG%(fL654la?57ID!kfT=vxZKE(DFwQnP$uBo_s6~i-m-V<0KAGHHxe!0uC1&o#b$NCKMW|RGS34HFMQedAfVJt3aE1! z?DBKr?zYG1yKC$13)X4(WM6x#TEXR5liM`gMAzHd<7x4J@qs%Y{3QhX>Qc3!&QTD= z=KcN$yCkE27JgqmhdOwWz~e$@b5KB?jl-QGrL!hdX9YF))>wc}?c>7N0C(_Hs3(>i zkGmgiYtuxp=>|Eb_iS|?oD{vdZYp4MN6e2NK76MIm5$Bgn{LmO5$NRb)yq(7$sU`KD2FB9 zsv~y3QTUs;6TjX#WnH8m7`g0Mp6e&KOM4VW?gM@RC>D2h6~Aq6mST|GG&W!siMCy# zQzF+(?#msz7B=6{_{O}@>GA3gh{K@AaXHL_N~-(*PASMxak_|+a96*Cd*ZVk4JHsl zYW*muS-eo-8Q!hi|N2Uto=^5bTLcr~y&<~V&S*p-cLJ(W>(WnA(7BE8pYJxCHMC>X z0ld$YKA~*4Rx!spk4>cUHI5oP0M%!NaZ{Y3HkMSw84doHKSTw?RfLuhb$c@Fm9i6Sh z$Q)c~y87(f`o(YSJ}p-5+aIV@M1~6;qDRr)6vkbue|R@ly1=?U&7$`?TptwSeD# zxb6i^JbS$7acCCbe0^m{qRof1kH_Cdhjac(zk&V!;jUb6(&KUCwb4?uM11-Ogl+p* z8^D7Wi?rT7ak@)E-wr6Xp9Fj<+7}7XjKJ#)KGb!c-Wvh1xil2OPPCN(I+27A*AG_t zJnY}YL*%;vXAgH)T1n#{>75_lGjVWycc+oi4T5W3I`U+dFshslwXDa%dmgZAo!d^= zg0Sks3%7F3%#3)L6H}O^(~l)x#*TM>3clHPEF7#ym+u6je0#a zX?v$az#f36T+bm^di?%7$8RbPsDii-KWzoepafJ3wp{74$@g4ByQh

rp-#&Jjsq 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 literal 0 HcmV?d00001 diff --git a/res/drawable-nodpi/gentle_notifications_shade_status.png b/res/drawable-nodpi/gentle_notifications_shade_status.png new file mode 100644 index 0000000000000000000000000000000000000000..432dc3fa663874f8179c3c55c50f5684cb6b18dd GIT binary patch literal 31281 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 literal 0 HcmV?d00001 diff --git a/res/drawable-nodpi/gentle_notifications_shade_status_lock.png b/res/drawable-nodpi/gentle_notifications_shade_status_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..e8238dc11141651994577e6110fd5d0a2c6116e8 GIT binary patch literal 37923 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 literal 0 HcmV?d00001 diff --git a/res/layout/drawable_layout.xml b/res/layout/drawable_layout.xml new file mode 100644 index 00000000000..fe5d4c4b46b --- /dev/null +++ b/res/layout/drawable_layout.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 93b7fa2528d..53e9248eec4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7872,6 +7872,33 @@ Swipe left to dismiss, right to show menu + + Gentle notifications + + + Also display in + + + Status bar + + + Lock screen + + + Gentle notifications are always silent and always appear in the pull-down shade + + + Display in pull-down shade only + + + Display in pull-down shade & on lock screen + + + Display in pull-down shade & status bar + + + Display in pull-down shade, status bar & on lock screen + Blink light diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml index dd2cf8687d9..af27869b9ab 100644 --- a/res/xml/configure_notification_settings.xml +++ b/res/xml/configure_notification_settings.xml @@ -26,11 +26,11 @@ settings:controller="com.android.settings.widget.VideoPreferenceController" android:persistent="false" /> - + + + + + + + + + + + + + + + + diff --git a/src/com/android/settings/notification/GentleDrawablePreferenceController.java b/src/com/android/settings/notification/GentleDrawablePreferenceController.java new file mode 100644 index 00000000000..cdadf5acd24 --- /dev/null +++ b/src/com/android/settings/notification/GentleDrawablePreferenceController.java @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import android.content.Context; +import android.provider.Settings; +import android.widget.ImageView; + +import com.android.settings.R; +import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.widget.LayoutPreference; + +import androidx.annotation.VisibleForTesting; +import androidx.preference.Preference; + +public class GentleDrawablePreferenceController extends BasePreferenceController { + + @VisibleForTesting + static final int ON = 1; + + private NotificationBackend mBackend; + + public GentleDrawablePreferenceController(Context context, String preferenceKey) { + super(context, preferenceKey); + mBackend = new NotificationBackend(); + } + + @VisibleForTesting + void setBackend(NotificationBackend backend) { + mBackend = backend; + } + + @Override + public void updateState(Preference preference) { + LayoutPreference pref = (LayoutPreference) preference; + boolean showOnLockscreen = showOnLockscreen(); + boolean showOnStatusBar = showOnStatusBar(); + + ImageView view = pref.findViewById(R.id.drawable); + + if (showOnLockscreen) { + if (showOnStatusBar) { + view.setImageResource(R.drawable.gentle_notifications_shade_status_lock); + } else { + view.setImageResource(R.drawable.gentle_notifications_shade_lock); + } + } else if (showOnStatusBar) { + view.setImageResource(R.drawable.gentle_notifications_shade_status); + } else { + view.setImageResource(R.drawable.gentle_notifications_shade); + } + } + + @Override + public int getAvailabilityStatus() { + return AVAILABLE; + } + + private boolean showOnLockscreen() { + return Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0) == ON; + } + + private boolean showOnStatusBar() { + return !mBackend.shouldHideSilentStatusBarIcons(mContext); + } +} diff --git a/src/com/android/settings/notification/GentleNotificationSettings.java b/src/com/android/settings/notification/GentleNotificationSettings.java new file mode 100644 index 00000000000..5de6ab787a3 --- /dev/null +++ b/src/com/android/settings/notification/GentleNotificationSettings.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import android.app.settings.SettingsEnums; +import android.content.Context; +import android.provider.SearchIndexableResource; + +import com.android.settings.R; +import com.android.settings.dashboard.DashboardFragment; +import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.search.SearchIndexable; + +import java.util.Arrays; +import java.util.List; + +@SearchIndexable +public class GentleNotificationSettings extends DashboardFragment { + private static final String TAG = "GentleNotiSettings"; + + @Override + public int getMetricsCategory() { + return SettingsEnums.GENTLE_NOTIFICATIONS_SCREEN; + } + + @Override + protected String getLogTag() { + return TAG; + } + + @Override + protected int getPreferenceScreenResId() { + return R.xml.gentle_notification_settings; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + use(SilentStatusBarPreferenceController.class).setListener( + shown -> updatePreferenceStates()); + + use(SilentLockscreenPreferenceController.class).setListener( + shown -> updatePreferenceStates()); + } + + /** + * For Search. + */ + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider() { + @Override + public List getXmlResourcesToIndex( + Context context, boolean enabled) { + final SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = R.xml.gentle_notification_settings; + return Arrays.asList(sir); + } + }; +} diff --git a/src/com/android/settings/notification/GentleNotificationsPreferenceController.java b/src/com/android/settings/notification/GentleNotificationsPreferenceController.java new file mode 100644 index 00000000000..97e4e252d17 --- /dev/null +++ b/src/com/android/settings/notification/GentleNotificationsPreferenceController.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES; + +import android.content.Context; +import android.provider.Settings; + +import com.android.settings.R; +import com.android.settings.core.BasePreferenceController; + +import androidx.annotation.VisibleForTesting; + +public class GentleNotificationsPreferenceController extends BasePreferenceController { + + @VisibleForTesting + static final int ON = 1; + + private NotificationBackend mBackend; + + public GentleNotificationsPreferenceController(Context context, String preferenceKey) { + super(context, preferenceKey); + mBackend = new NotificationBackend(); + } + + @VisibleForTesting + void setBackend(NotificationBackend backend) { + mBackend = backend; + } + + @Override + public CharSequence getSummary() { + boolean showOnLockscreen = showOnLockscreen(); + boolean showOnStatusBar = showOnStatusBar(); + + if (showOnLockscreen) { + if (showOnStatusBar) { + return mContext.getString( + R.string.gentle_notifications_display_summary_shade_status_lock); + } else { + return mContext.getString(R.string.gentle_notifications_display_summary_shade_lock); + } + } else if (showOnStatusBar) { + return mContext.getString(R.string.gentle_notifications_display_summary_shade_status); + } else { + return mContext.getString(R.string.gentle_notifications_display_summary_shade); + } + } + + @Override + public int getAvailabilityStatus() { + return AVAILABLE; + } + + private boolean showOnLockscreen() { + return Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0) == ON; + } + + private boolean showOnStatusBar() { + return !mBackend.shouldHideSilentStatusBarIcons(mContext); + } +} diff --git a/src/com/android/settings/notification/SilentLockscreenPreferenceController.java b/src/com/android/settings/notification/SilentLockscreenPreferenceController.java new file mode 100644 index 00000000000..219d312b956 --- /dev/null +++ b/src/com/android/settings/notification/SilentLockscreenPreferenceController.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import static android.provider.Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL; + +import android.content.Context; +import android.os.UserHandle; +import android.provider.Settings; + +import com.android.settings.core.TogglePreferenceController; + +import com.google.common.annotations.VisibleForTesting; + +public class SilentLockscreenPreferenceController extends TogglePreferenceController { + + private static final String KEY = "lock_screen"; + private Listener mListener; + + public SilentLockscreenPreferenceController(Context context) { + super(context, KEY); + } + + @Override + public boolean isChecked() { + return Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0) == 1; + } + + @Override + public boolean setChecked(boolean isChecked) { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, isChecked ? 1 : 0); + if (mListener != null) { + mListener.onChange(isChecked); + } + return true; + } + + @Override + public int getAvailabilityStatus() { + return Settings.Secure.getInt( + mContext.getContentResolver(), NOTIFICATION_NEW_INTERRUPTION_MODEL, 1) != 0 + ? AVAILABLE : UNSUPPORTED_ON_DEVICE; + } + + public void setListener(Listener listener) { + mListener = listener; + } + + interface Listener { + void onChange(boolean shown); + } +} + + diff --git a/src/com/android/settings/notification/SilentStatusBarPreferenceController.java b/src/com/android/settings/notification/SilentStatusBarPreferenceController.java index 5bf943ac37a..e561508014e 100644 --- a/src/com/android/settings/notification/SilentStatusBarPreferenceController.java +++ b/src/com/android/settings/notification/SilentStatusBarPreferenceController.java @@ -28,9 +28,10 @@ import com.google.common.annotations.VisibleForTesting; public class SilentStatusBarPreferenceController extends TogglePreferenceController { - private static final String KEY = "hide_silent_icons"; + private static final String KEY = "silent_icons"; private static final int MY_USER_ID = UserHandle.myUserId(); private NotificationBackend mBackend; + private Listener mListener; public SilentStatusBarPreferenceController(Context context) { super(context, KEY); @@ -44,12 +45,15 @@ public class SilentStatusBarPreferenceController extends TogglePreferenceControl @Override public boolean isChecked() { - return mBackend.shouldHideSilentStatusBarIcons(mContext); + return !mBackend.shouldHideSilentStatusBarIcons(mContext); } @Override public boolean setChecked(boolean isChecked) { - mBackend.setHideSilentStatusIcons(isChecked); + mBackend.setHideSilentStatusIcons(!isChecked); + if (mListener != null) { + mListener.onChange(isChecked); + } return true; } @@ -60,6 +64,14 @@ public class SilentStatusBarPreferenceController extends TogglePreferenceControl ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } + public void setListener(Listener listener) { + mListener = listener; + } + + interface Listener { + void onChange(boolean shown); + } + } diff --git a/tests/robotests/src/com/android/settings/notification/GentleDrawablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/GentleDrawablePreferenceControllerTest.java new file mode 100644 index 00000000000..c8d1e018bea --- /dev/null +++ b/tests/robotests/src/com/android/settings/notification/GentleDrawablePreferenceControllerTest.java @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.provider.Settings; +import android.widget.ImageView; + +import com.android.settings.R; +import com.android.settingslib.widget.LayoutPreference; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +import androidx.preference.Preference; + +@RunWith(RobolectricTestRunner.class) +public class GentleDrawablePreferenceControllerTest { + + private Context mContext; + + private GentleDrawablePreferenceController mController; + @Mock + private LayoutPreference mPreference; + @Mock + NotificationBackend mBackend; + @Mock + ImageView mView; + + private static final String KEY = "gentle_notifications"; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mContext = RuntimeEnvironment.application; + mController = new GentleDrawablePreferenceController(mContext, KEY); + mController.setBackend(mBackend); + when(mPreference.findViewById(R.id.drawable)).thenReturn(mView); + } + + @Test + public void display_shouldDisplay() { + assertThat(mController.isAvailable()).isTrue(); + } + + @Test + public void updateState_lock() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(true); + + mController.updateState(mPreference); + + verify(mView).setImageResource(R.drawable.gentle_notifications_shade_lock); + } + + @Test + public void updateState_status() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(false); + + mController.updateState(mPreference); + + verify(mView).setImageResource(R.drawable.gentle_notifications_shade_status); + } + + @Test + public void updateState_both() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(false); + + mController.updateState(mPreference); + + verify(mView).setImageResource(R.drawable.gentle_notifications_shade_status_lock); + } + + @Test + public void updateState_neither() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(true); + + mController.updateState(mPreference); + + verify(mView).setImageResource(R.drawable.gentle_notifications_shade); + } +} diff --git a/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java new file mode 100644 index 00000000000..4821322cff7 --- /dev/null +++ b/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES; + +import static com.android.settings.notification.BadgingNotificationPreferenceController.OFF; +import static com.android.settings.notification.BadgingNotificationPreferenceController.ON; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.provider.Settings; + +import com.android.settings.R; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +import androidx.preference.Preference; + +@RunWith(RobolectricTestRunner.class) +public class GentleNotificationsPreferenceControllerTest { + + private Context mContext; + + @Mock + NotificationBackend mBackend; + + private GentleNotificationsPreferenceController mController; + private Preference mPreference; + + private static final String KEY = "gentle_notifications"; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mContext = RuntimeEnvironment.application; + mController = new GentleNotificationsPreferenceController(mContext, KEY); + mController.setBackend(mBackend); + mPreference = new Preference(mContext); + } + + @Test + public void display_shouldDisplay() { + assertThat(mPreference.isVisible()).isTrue(); + } + + @Test + public void getSummary_lock() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(true); + + assertThat(mController.getSummary()).isEqualTo( + mContext.getString(R.string.gentle_notifications_display_summary_shade_lock)); + } + + @Test + public void getSummary_status() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(false); + + assertThat(mController.getSummary()).isEqualTo( + mContext.getString(R.string.gentle_notifications_display_summary_shade_status)); + } + + @Test + public void getSummary_both() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(false); + + assertThat(mController.getSummary()).isEqualTo(mContext.getString( + R.string.gentle_notifications_display_summary_shade_status_lock)); + } + + @Test + public void getSummary_neither() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0); + when(mBackend.shouldHideSilentStatusBarIcons(mContext)).thenReturn(true); + + assertThat(mController.getSummary()).isEqualTo( + mContext.getString(R.string.gentle_notifications_display_summary_shade)); + } +} diff --git a/tests/robotests/src/com/android/settings/notification/SilentLockscreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SilentLockscreenPreferenceControllerTest.java new file mode 100644 index 00000000000..dcfdea59a8a --- /dev/null +++ b/tests/robotests/src/com/android/settings/notification/SilentLockscreenPreferenceControllerTest.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.notification; + +import static android.provider.Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.provider.Settings; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; + +@RunWith(RobolectricTestRunner.class) +public class SilentLockscreenPreferenceControllerTest { + + @Mock + private PreferenceScreen mScreen; + + private Context mContext; + private SilentLockscreenPreferenceController mController; + private Preference mPreference; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mContext = RuntimeEnvironment.application; + mController = new SilentLockscreenPreferenceController(mContext); + mPreference = new Preference(mContext); + mPreference.setKey(mController.getPreferenceKey()); + when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); + } + + @Test + public void isAvailable_featureEnabled() { + Settings.Secure.putInt( + mContext.getContentResolver(), NOTIFICATION_NEW_INTERRUPTION_MODEL, 1); + assertThat(mController.isAvailable()).isTrue(); + } + + @Test + public void isAvailable_featureDisabled() { + Settings.Secure.putInt( + mContext.getContentResolver(), NOTIFICATION_NEW_INTERRUPTION_MODEL, 0); + assertThat(mController.isAvailable()).isFalse(); + } + + @Test + public void isChecked_settingIsOff_false() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0); + assertThat(mController.isChecked()).isFalse(); + } + + @Test + public void isChecked_settingIsOn_true() { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1); + assertThat(mController.isChecked()).isTrue(); + } + + @Test + public void onPreferenceChange_on() { + mController.onPreferenceChange(mPreference, true); + assertThat(Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0)).isEqualTo(1); + } + + @Test + public void onPreferenceChange_off() { + mController.onPreferenceChange(mPreference, false); + assertThat(Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1)).isEqualTo(0); + } + + @Test + public void listenerTriggered() { + SilentLockscreenPreferenceController.Listener listener = mock( + SilentLockscreenPreferenceController.Listener.class); + mController.setListener(listener); + + mController.setChecked(false); + verify(listener).onChange(false); + + mController.setChecked(true); + verify(listener).onChange(true); + } +} + diff --git a/tests/robotests/src/com/android/settings/notification/SilentStatusBarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SilentStatusBarPreferenceControllerTest.java index 9dd8ff9f5c6..55a85494e43 100644 --- a/tests/robotests/src/com/android/settings/notification/SilentStatusBarPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/SilentStatusBarPreferenceControllerTest.java @@ -21,6 +21,7 @@ import static android.provider.Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MOD import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -79,26 +80,39 @@ public class SilentStatusBarPreferenceControllerTest { @Test public void isChecked_settingIsOff_false() { - when(mBackend.shouldHideSilentStatusBarIcons(any())).thenReturn(false); + when(mBackend.shouldHideSilentStatusBarIcons(any())).thenReturn(true); assertThat(mController.isChecked()).isFalse(); } @Test public void isChecked_settingIsOn_true() { - when(mBackend.shouldHideSilentStatusBarIcons(any())).thenReturn(true); + when(mBackend.shouldHideSilentStatusBarIcons(any())).thenReturn(false); assertThat(mController.isChecked()).isTrue(); } @Test public void onPreferenceChange_on() { mController.onPreferenceChange(mPreference, true); - verify(mBackend).setHideSilentStatusIcons(true); + verify(mBackend).setHideSilentStatusIcons(false); } @Test public void onPreferenceChange_off() { mController.onPreferenceChange(mPreference, false); - verify(mBackend).setHideSilentStatusIcons(false); + verify(mBackend).setHideSilentStatusIcons(true); + } + + @Test + public void listenerTriggered() { + SilentStatusBarPreferenceController.Listener listener = mock( + SilentStatusBarPreferenceController.Listener.class); + mController.setListener(listener); + + mController.setChecked(false); + verify(listener).onChange(false); + + mController.setChecked(true); + verify(listener).onChange(true); } }