Loading core/java/android/app/NotificationManager.java +2 −1 Original line number Diff line number Diff line Loading @@ -1656,7 +1656,8 @@ public class NotificationManager { if (Flags.modesApi() && Flags.modesUi()) { PackageManager pm = mContext.getPackageManager(); return !pm.hasSystemFeature(PackageManager.FEATURE_WATCH) && !pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE); && !pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) && !pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK); } else { return false; } Loading core/tests/coretests/src/android/app/NotificationManagerTest.java +53 −0 Original line number Diff line number Diff line Loading @@ -30,8 +30,10 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.annotation.Nullable; import android.content.Context; import android.content.ContextWrapper; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.os.UserHandle; import android.platform.test.annotations.EnableFlags; Loading Loading @@ -441,6 +443,46 @@ public class NotificationManagerTest { .getOrCreateNotificationChannels(any(), any(), anyInt(), anyBoolean()); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_handheld_isTrue() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(any())).thenReturn(false); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isTrue(); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_auto_isFalse() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(eq(PackageManager.FEATURE_AUTOMOTIVE))).thenReturn(true); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isFalse(); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_tv_isFalse() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(eq(PackageManager.FEATURE_LEANBACK))).thenReturn(true); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isFalse(); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_watch_isFalse() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(eq(PackageManager.FEATURE_WATCH))).thenReturn(true); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isFalse(); } private Notification exampleNotification() { return new Notification.Builder(mContext, "channel") .setSmallIcon(android.R.drawable.star_big_on) Loading Loading @@ -470,6 +512,7 @@ public class NotificationManagerTest { // Helper context wrapper class where we can control just the return values of getPackageName, // getOpPackageName, and getUserId (used in getNotificationChannels). private static class PackageTestableContext extends ContextWrapper { private PackageManager mPm; private String mPackage; private String mOpPackage; private Integer mUserId; Loading @@ -478,12 +521,22 @@ public class NotificationManagerTest { super(base); } void setPackageManager(@Nullable PackageManager pm) { mPm = pm; } void setParameters(String packageName, String opPackageName, int userId) { mPackage = packageName; mOpPackage = opPackageName; mUserId = userId; } @Override public PackageManager getPackageManager() { if (mPm != null) return mPm; return super.getPackageManager(); } @Override public String getPackageName() { if (mPackage != null) return mPackage; Loading Loading
core/java/android/app/NotificationManager.java +2 −1 Original line number Diff line number Diff line Loading @@ -1656,7 +1656,8 @@ public class NotificationManager { if (Flags.modesApi() && Flags.modesUi()) { PackageManager pm = mContext.getPackageManager(); return !pm.hasSystemFeature(PackageManager.FEATURE_WATCH) && !pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE); && !pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) && !pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK); } else { return false; } Loading
core/tests/coretests/src/android/app/NotificationManagerTest.java +53 −0 Original line number Diff line number Diff line Loading @@ -30,8 +30,10 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.annotation.Nullable; import android.content.Context; import android.content.ContextWrapper; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.os.UserHandle; import android.platform.test.annotations.EnableFlags; Loading Loading @@ -441,6 +443,46 @@ public class NotificationManagerTest { .getOrCreateNotificationChannels(any(), any(), anyInt(), anyBoolean()); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_handheld_isTrue() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(any())).thenReturn(false); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isTrue(); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_auto_isFalse() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(eq(PackageManager.FEATURE_AUTOMOTIVE))).thenReturn(true); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isFalse(); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_tv_isFalse() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(eq(PackageManager.FEATURE_LEANBACK))).thenReturn(true); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isFalse(); } @Test @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI}) public void areAutomaticZenRulesUserManaged_watch_isFalse() { PackageManager pm = mock(PackageManager.class); when(pm.hasSystemFeature(eq(PackageManager.FEATURE_WATCH))).thenReturn(true); mContext.setPackageManager(pm); assertThat(mNotificationManager.areAutomaticZenRulesUserManaged()).isFalse(); } private Notification exampleNotification() { return new Notification.Builder(mContext, "channel") .setSmallIcon(android.R.drawable.star_big_on) Loading Loading @@ -470,6 +512,7 @@ public class NotificationManagerTest { // Helper context wrapper class where we can control just the return values of getPackageName, // getOpPackageName, and getUserId (used in getNotificationChannels). private static class PackageTestableContext extends ContextWrapper { private PackageManager mPm; private String mPackage; private String mOpPackage; private Integer mUserId; Loading @@ -478,12 +521,22 @@ public class NotificationManagerTest { super(base); } void setPackageManager(@Nullable PackageManager pm) { mPm = pm; } void setParameters(String packageName, String opPackageName, int userId) { mPackage = packageName; mOpPackage = opPackageName; mUserId = userId; } @Override public PackageManager getPackageManager() { if (mPm != null) return mPm; return super.getPackageManager(); } @Override public String getPackageName() { if (mPackage != null) return mPackage; Loading