Merge "Update subTitle of NotificationChannelSlice"
This commit is contained in:
@@ -10673,11 +10673,13 @@
|
|||||||
<string name="manage_app_notification">Manage <xliff:g id="app_name" example="Settings">%1$s</xliff:g> Notifications</string>
|
<string name="manage_app_notification">Manage <xliff:g id="app_name" example="Settings">%1$s</xliff:g> Notifications</string>
|
||||||
<!-- Title for no suggested app in notification channel slice. [CHAR LIMIT=NONE] -->
|
<!-- Title for no suggested app in notification channel slice. [CHAR LIMIT=NONE] -->
|
||||||
<string name="no_suggested_app">No suggested application</string>
|
<string name="no_suggested_app">No suggested application</string>
|
||||||
<!-- Summary for notification channel slice. [CHAR LIMIT=NONE] -->
|
<!-- Summary for the channels count is equal or less than 3 in notification channel slice. [CHAR LIMIT=NONE] -->
|
||||||
<plurals name="notification_channel_count_summary">
|
<plurals name="notification_few_channel_count_summary">
|
||||||
<item quantity="one"><xliff:g id="notification_channel_count">%1$d</xliff:g> notification channel. Tap to manage all.</item>
|
<item quantity="one"><xliff:g id="notification_channel_count" example="1">%1$d</xliff:g> notification channel.</item>
|
||||||
<item quantity="other"><xliff:g id="notification_channel_count">%1$d</xliff:g> notification channels. Tap to manage all.</item>
|
<item quantity="other"><xliff:g id="notification_channel_count" example="3">%1$d</xliff:g> notification channels.</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
|
<!-- Summary for the channels count is more than 3 in notification channel slice. [CHAR LIMIT=NONE] -->
|
||||||
|
<string name="notification_many_channel_count_summary"><xliff:g id="notification_channel_count" example="4">%1$d</xliff:g> notification channels. Tap to manage all.</string>
|
||||||
|
|
||||||
<!-- Title for the Switch output dialog (settings panel) with media related devices [CHAR LIMIT=50] -->
|
<!-- Title for the Switch output dialog (settings panel) with media related devices [CHAR LIMIT=50] -->
|
||||||
<string name="media_output_panel_title">Switch output</string>
|
<string name="media_output_panel_title">Switch output</string>
|
||||||
|
@@ -415,9 +415,13 @@ public class NotificationChannelSlice implements CustomSliceable {
|
|||||||
private CharSequence getSubTitle(String packageName, int uid) {
|
private CharSequence getSubTitle(String packageName, int uid) {
|
||||||
final int channelCount = mNotificationBackend.getChannelCount(packageName, uid);
|
final int channelCount = mNotificationBackend.getChannelCount(packageName, uid);
|
||||||
|
|
||||||
|
if (channelCount > DEFAULT_EXPANDED_ROW_COUNT) {
|
||||||
|
return mContext.getString(
|
||||||
|
R.string.notification_many_channel_count_summary, channelCount);
|
||||||
|
}
|
||||||
|
|
||||||
return mContext.getResources().getQuantityString(
|
return mContext.getResources().getQuantityString(
|
||||||
R.plurals.notification_channel_count_summary,
|
R.plurals.notification_few_channel_count_summary, channelCount, channelCount);
|
||||||
channelCount, channelCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getAppAndNotificationPageIntent() {
|
private Intent getAppAndNotificationPageIntent() {
|
||||||
|
@@ -229,6 +229,50 @@ public class NotificationChannelSliceTest {
|
|||||||
assertThat(rows).isEqualTo(NotificationChannelSlice.DEFAULT_EXPANDED_ROW_COUNT + 1);
|
assertThat(rows).isEqualTo(NotificationChannelSlice.DEFAULT_EXPANDED_ROW_COUNT + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
|
||||||
|
public void getSlice_channelCountIsLessThanDefaultRows_subTitleShouldNotHaveTapToManagerAll() {
|
||||||
|
addMockPackageToPackageManager(true /* isRecentlyInstalled */,
|
||||||
|
ApplicationInfo.FLAG_INSTALLED);
|
||||||
|
mockNotificationBackend(CHANNEL_COUNT - 1, NOTIFICATION_COUNT, false /* banned */);
|
||||||
|
|
||||||
|
final Slice slice = mNotificationChannelSlice.getSlice();
|
||||||
|
|
||||||
|
final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
|
||||||
|
assertThat(metadata.getSubtitle()).isEqualTo(mContext.getResources().getQuantityString(
|
||||||
|
R.plurals.notification_few_channel_count_summary, CHANNEL_COUNT - 1,
|
||||||
|
CHANNEL_COUNT - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
|
||||||
|
public void getSlice_channelCountIsEqualToDefaultRows_subTitleShouldNotHaveTapToManagerAll() {
|
||||||
|
addMockPackageToPackageManager(true /* isRecentlyInstalled */,
|
||||||
|
ApplicationInfo.FLAG_INSTALLED);
|
||||||
|
mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */);
|
||||||
|
|
||||||
|
final Slice slice = mNotificationChannelSlice.getSlice();
|
||||||
|
|
||||||
|
final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
|
||||||
|
assertThat(metadata.getSubtitle()).isEqualTo(mContext.getResources().getQuantityString(
|
||||||
|
R.plurals.notification_few_channel_count_summary, CHANNEL_COUNT, CHANNEL_COUNT));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
|
||||||
|
public void getSlice_channelCountIsMoreThanDefaultRows_subTitleShouldHaveTapToManagerAll() {
|
||||||
|
addMockPackageToPackageManager(true /* isRecentlyInstalled */,
|
||||||
|
ApplicationInfo.FLAG_INSTALLED);
|
||||||
|
mockNotificationBackend(CHANNEL_COUNT + 1, NOTIFICATION_COUNT, false /* banned */);
|
||||||
|
|
||||||
|
final Slice slice = mNotificationChannelSlice.getSlice();
|
||||||
|
|
||||||
|
final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
|
||||||
|
assertThat(metadata.getSubtitle()).isEqualTo(
|
||||||
|
mContext.getString(R.string.notification_many_channel_count_summary,
|
||||||
|
CHANNEL_COUNT + 1));
|
||||||
|
}
|
||||||
|
|
||||||
private void addMockPackageToPackageManager(boolean isRecentlyInstalled, int flags) {
|
private void addMockPackageToPackageManager(boolean isRecentlyInstalled, int flags) {
|
||||||
final ApplicationInfo applicationInfo = new ApplicationInfo();
|
final ApplicationInfo applicationInfo = new ApplicationInfo();
|
||||||
applicationInfo.name = APP_LABEL;
|
applicationInfo.name = APP_LABEL;
|
||||||
|
Reference in New Issue
Block a user