Loading src/com/android/settings/notification/NotificationBackend.java +6 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,12 @@ public class NotificationBackend { return row; } public boolean isBlockable(Context context, ApplicationInfo info) { final boolean blocked = getNotificationsBanned(info.packageName, info.uid); final boolean systemApp = isSystemApp(context, info); return !systemApp || (systemApp && blocked); } public AppRow loadAppRow(Context context, PackageManager pm, PackageInfo app) { final AppRow row = loadAppRow(context, pm, app.applicationInfo); recordCanBeBlocked(context, pm, app, row); Loading src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java +1 −15 Original line number Diff line number Diff line Loading @@ -82,17 +82,6 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC private Preference mSeeAllPref; private Preference mDivider; static { SKIP_SYSTEM_PACKAGES.addAll(Arrays.asList( "android", "com.android.phone", "com.android.settings", "com.android.systemui", "com.android.providers.calendar", "com.android.providers.media" )); } public RecentNotifyingAppsPreferenceController(Context context, NotificationBackend backend, Application app, Fragment host) { this(context, backend, app == null ? null : ApplicationsState.getInstance(app), host); Loading Loading @@ -226,6 +215,7 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC .setSourceMetricsCategory( MetricsProto.MetricsEvent.MANAGE_APPLICATIONS_NOTIFICATIONS) .toIntent()); pref.setEnabled(mNotificationBackend.isBlockable(mContext, appEntry.info)); pref.setOnPreferenceChangeListener((preference, newValue) -> { boolean blocked = !(Boolean) newValue; mNotificationBackend.setNotificationsEnabledForPackage( Loading Loading @@ -272,10 +262,6 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC * Whether or not the app should be included in recent list. */ private boolean shouldIncludePkgInRecents(String pkgName) { if (SKIP_SYSTEM_PACKAGES.contains(pkgName)) { Log.d(TAG, "System package, skipping " + pkgName); return false; } final Intent launchIntent = new Intent().addCategory(Intent.CATEGORY_LAUNCHER) .setPackage(pkgName); Loading tests/robotests/src/com/android/settings/notification/RecentNotifyingAppsPreferenceControllerTest.java +2 −32 Original line number Diff line number Diff line Loading @@ -189,9 +189,8 @@ public class RecentNotifyingAppsPreferenceControllerTest { mController.displayPreference(mScreen); verify(mCategory).setTitle(R.string.recent_notifications); // Only add app1. app2 is skipped because of the package name, app3 skipped because // it's invalid app. verify(mCategory, times(1)).addPreference(any(Preference.class)); // Only add app1 & app2. app3 skipped because it's invalid app. verify(mCategory, times(2)).addPreference(any(Preference.class)); verify(mSeeAllPref).setSummary(null); verify(mSeeAllPref).setIcon(R.drawable.ic_chevron_right_24dp); Loading Loading @@ -246,35 +245,6 @@ public class RecentNotifyingAppsPreferenceControllerTest { assertThat(prefs.get(0).getKey()).isEqualTo(app2.getPackage()); } @Test public void display_hasRecentButNoneDisplayable_showAppInfo() { final List<NotifyingApp> apps = new ArrayList<>(); final NotifyingApp app1 = new NotifyingApp() .setPackage("com.android.phone") .setLastNotified(System.currentTimeMillis()); final NotifyingApp app2 = new NotifyingApp() .setPackage("com.android.settings") .setLastNotified(System.currentTimeMillis()); apps.add(app1); apps.add(app2); // app1, app2 are not displayable when(mAppState.getEntry(app1.getPackage(), UserHandle.myUserId())) .thenReturn(mock(ApplicationsState.AppEntry.class)); when(mAppState.getEntry(app2.getPackage(), UserHandle.myUserId())) .thenReturn(mock(ApplicationsState.AppEntry.class)); when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn( new ResolveInfo()); when(mBackend.getRecentApps()).thenReturn(apps); mController.displayPreference(mScreen); verify(mCategory, never()).addPreference(any(Preference.class)); verify(mCategory).setTitle(null); verify(mSeeAllPref).setTitle(R.string.notifications_title); verify(mSeeAllPref).setIcon(null); } @Test public void display_showRecents_formatSummary() { final List<NotifyingApp> apps = new ArrayList<>(); Loading Loading
src/com/android/settings/notification/NotificationBackend.java +6 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,12 @@ public class NotificationBackend { return row; } public boolean isBlockable(Context context, ApplicationInfo info) { final boolean blocked = getNotificationsBanned(info.packageName, info.uid); final boolean systemApp = isSystemApp(context, info); return !systemApp || (systemApp && blocked); } public AppRow loadAppRow(Context context, PackageManager pm, PackageInfo app) { final AppRow row = loadAppRow(context, pm, app.applicationInfo); recordCanBeBlocked(context, pm, app, row); Loading
src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java +1 −15 Original line number Diff line number Diff line Loading @@ -82,17 +82,6 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC private Preference mSeeAllPref; private Preference mDivider; static { SKIP_SYSTEM_PACKAGES.addAll(Arrays.asList( "android", "com.android.phone", "com.android.settings", "com.android.systemui", "com.android.providers.calendar", "com.android.providers.media" )); } public RecentNotifyingAppsPreferenceController(Context context, NotificationBackend backend, Application app, Fragment host) { this(context, backend, app == null ? null : ApplicationsState.getInstance(app), host); Loading Loading @@ -226,6 +215,7 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC .setSourceMetricsCategory( MetricsProto.MetricsEvent.MANAGE_APPLICATIONS_NOTIFICATIONS) .toIntent()); pref.setEnabled(mNotificationBackend.isBlockable(mContext, appEntry.info)); pref.setOnPreferenceChangeListener((preference, newValue) -> { boolean blocked = !(Boolean) newValue; mNotificationBackend.setNotificationsEnabledForPackage( Loading Loading @@ -272,10 +262,6 @@ public class RecentNotifyingAppsPreferenceController extends AbstractPreferenceC * Whether or not the app should be included in recent list. */ private boolean shouldIncludePkgInRecents(String pkgName) { if (SKIP_SYSTEM_PACKAGES.contains(pkgName)) { Log.d(TAG, "System package, skipping " + pkgName); return false; } final Intent launchIntent = new Intent().addCategory(Intent.CATEGORY_LAUNCHER) .setPackage(pkgName); Loading
tests/robotests/src/com/android/settings/notification/RecentNotifyingAppsPreferenceControllerTest.java +2 −32 Original line number Diff line number Diff line Loading @@ -189,9 +189,8 @@ public class RecentNotifyingAppsPreferenceControllerTest { mController.displayPreference(mScreen); verify(mCategory).setTitle(R.string.recent_notifications); // Only add app1. app2 is skipped because of the package name, app3 skipped because // it's invalid app. verify(mCategory, times(1)).addPreference(any(Preference.class)); // Only add app1 & app2. app3 skipped because it's invalid app. verify(mCategory, times(2)).addPreference(any(Preference.class)); verify(mSeeAllPref).setSummary(null); verify(mSeeAllPref).setIcon(R.drawable.ic_chevron_right_24dp); Loading Loading @@ -246,35 +245,6 @@ public class RecentNotifyingAppsPreferenceControllerTest { assertThat(prefs.get(0).getKey()).isEqualTo(app2.getPackage()); } @Test public void display_hasRecentButNoneDisplayable_showAppInfo() { final List<NotifyingApp> apps = new ArrayList<>(); final NotifyingApp app1 = new NotifyingApp() .setPackage("com.android.phone") .setLastNotified(System.currentTimeMillis()); final NotifyingApp app2 = new NotifyingApp() .setPackage("com.android.settings") .setLastNotified(System.currentTimeMillis()); apps.add(app1); apps.add(app2); // app1, app2 are not displayable when(mAppState.getEntry(app1.getPackage(), UserHandle.myUserId())) .thenReturn(mock(ApplicationsState.AppEntry.class)); when(mAppState.getEntry(app2.getPackage(), UserHandle.myUserId())) .thenReturn(mock(ApplicationsState.AppEntry.class)); when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn( new ResolveInfo()); when(mBackend.getRecentApps()).thenReturn(apps); mController.displayPreference(mScreen); verify(mCategory, never()).addPreference(any(Preference.class)); verify(mCategory).setTitle(null); verify(mSeeAllPref).setTitle(R.string.notifications_title); verify(mSeeAllPref).setIcon(null); } @Test public void display_showRecents_formatSummary() { final List<NotifyingApp> apps = new ArrayList<>(); Loading