Merge "Fix incorrect Settings assumption" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
cc8e87b0a5
@@ -91,14 +91,27 @@ public class BundleListPreferenceController extends NotificationPreferenceContro
|
|||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
PreferenceCategory category = (PreferenceCategory) preference;
|
PreferenceCategory category = (PreferenceCategory) preference;
|
||||||
|
|
||||||
createOrUpdatePrefForChannel(category,
|
NotificationChannel promos = mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID);
|
||||||
mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID));
|
if (promos != null) {
|
||||||
createOrUpdatePrefForChannel(category,
|
createOrUpdatePrefForChannel(category, promos);
|
||||||
mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID));
|
}
|
||||||
createOrUpdatePrefForChannel(category,
|
NotificationChannel recs = mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID);
|
||||||
mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID));
|
if (recs != null) {
|
||||||
createOrUpdatePrefForChannel(category,
|
createOrUpdatePrefForChannel(category, recs);
|
||||||
mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID));
|
}
|
||||||
|
NotificationChannel social = mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID);
|
||||||
|
if (social != null) {
|
||||||
|
createOrUpdatePrefForChannel(category, social);
|
||||||
|
}
|
||||||
|
NotificationChannel news = mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID);
|
||||||
|
if (news != null) {
|
||||||
|
createOrUpdatePrefForChannel(category, news);
|
||||||
|
}
|
||||||
|
|
||||||
|
int preferenceCount = ((PreferenceGroup) preference).getPreferenceCount();
|
||||||
|
if (preferenceCount == 0) {
|
||||||
|
preference.setVisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -167,5 +180,4 @@ public class BundleListPreferenceController extends NotificationPreferenceContro
|
|||||||
icon.setTintList(Utils.getColorAccent(mContext));
|
icon.setTintList(Utils.getColorAccent(mContext));
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -89,15 +89,6 @@ public class BundleListPreferenceControllerTest {
|
|||||||
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
|
||||||
mGroupList = new PreferenceCategory(mContext);
|
mGroupList = new PreferenceCategory(mContext);
|
||||||
mPreferenceScreen.addPreference(mGroupList);
|
mPreferenceScreen.addPreference(mGroupList);
|
||||||
|
|
||||||
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
|
|
||||||
new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
|
|
||||||
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID)).thenReturn(
|
|
||||||
new NotificationChannel(NEWS_ID, NEWS_ID, 2));
|
|
||||||
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID)).thenReturn(
|
|
||||||
new NotificationChannel(SOCIAL_MEDIA_ID, SOCIAL_MEDIA_ID, 2));
|
|
||||||
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID)).thenReturn(
|
|
||||||
new NotificationChannel(RECS_ID, RECS_ID, 2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -132,6 +123,14 @@ public class BundleListPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState() {
|
public void updateState() {
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
|
||||||
|
new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID)).thenReturn(
|
||||||
|
new NotificationChannel(NEWS_ID, NEWS_ID, 2));
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID)).thenReturn(
|
||||||
|
new NotificationChannel(SOCIAL_MEDIA_ID, SOCIAL_MEDIA_ID, 2));
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID)).thenReturn(
|
||||||
|
new NotificationChannel(RECS_ID, RECS_ID, 2));
|
||||||
mController.updateState(mGroupList);
|
mController.updateState(mGroupList);
|
||||||
assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
|
assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
|
||||||
assertThat(mGroupList.findPreference(PROMOTIONS_ID).getTitle()).isEqualTo(PROMOTIONS_ID);
|
assertThat(mGroupList.findPreference(PROMOTIONS_ID).getTitle()).isEqualTo(PROMOTIONS_ID);
|
||||||
@@ -142,19 +141,38 @@ public class BundleListPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_updateChildren() {
|
public void updateState_noBundles() {
|
||||||
mController.updateState(mGroupList);
|
mController.updateState(mGroupList);
|
||||||
assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
|
assertThat(mGroupList.getPreferenceCount()).isEqualTo(0);
|
||||||
|
assertThat(mGroupList.isVisible()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateState_onlySomeBundlesUsed() {
|
||||||
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
|
||||||
new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
|
new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
|
||||||
|
mController.updateState(mGroupList);
|
||||||
|
assertThat(mGroupList.getPreferenceCount()).isEqualTo(1);
|
||||||
|
assertThat(mGroupList.findPreference(PROMOTIONS_ID).getTitle()).isEqualTo(PROMOTIONS_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateState_noDuplicateChannelsOnReload() {
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
|
||||||
|
new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID)).thenReturn(
|
||||||
|
new NotificationChannel(NEWS_ID, NEWS_ID, 2));
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID)).thenReturn(
|
||||||
|
new NotificationChannel(SOCIAL_MEDIA_ID, SOCIAL_MEDIA_ID, 2));
|
||||||
|
when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID)).thenReturn(
|
||||||
|
new NotificationChannel(RECS_ID, RECS_ID, 2));
|
||||||
|
|
||||||
|
mController.updateState(mGroupList);
|
||||||
|
assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
|
||||||
mController.updateState(mGroupList);
|
mController.updateState(mGroupList);
|
||||||
assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
|
assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
|
||||||
|
|
||||||
assertThat(((PrimarySwitchPreference) mGroupList.findPreference(NEWS_ID)).isChecked())
|
assertThat(((PrimarySwitchPreference) mGroupList.findPreference(NEWS_ID)).isChecked())
|
||||||
.isEqualTo(false);
|
.isEqualTo(false);
|
||||||
assertThat(((PrimarySwitchPreference) mGroupList.findPreference(NEWS_ID)).isChecked())
|
|
||||||
.isEqualTo(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user