Properly show conversation settings
... when the backing shortcut is missing, so users can change notification settings when the shortcut hasn't yet been recreated by the app when setting up a new device Test: Robotests (confirmed that the 2 controllers that used mConversationInfo already tested for null), manual Fixes: 203991823 Change-Id: I477c6b0aef0d978767788cbfc1bfadea4d36cda8
This commit is contained in:
@@ -41,13 +41,14 @@ public class ConversationNotificationSettings extends NotificationSettings {
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null
|
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null) {
|
||||||
|| mConversationInfo == null) {
|
|
||||||
Log.w(TAG, "Missing package or uid or packageinfo or channel");
|
Log.w(TAG, "Missing package or uid or packageinfo or channel");
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
getActivity().setTitle(mConversationInfo.getLabel());
|
getActivity().setTitle(mConversationInfo == null
|
||||||
|
? mChannel.getName()
|
||||||
|
: mConversationInfo.getLabel());
|
||||||
|
|
||||||
for (NotificationPreferenceController controller : mControllers) {
|
for (NotificationPreferenceController controller : mControllers) {
|
||||||
controller.onResume(mAppRow, mChannel, mChannelGroup, mConversationDrawable,
|
controller.onResume(mAppRow, mChannel, mChannelGroup, mConversationDrawable,
|
||||||
|
@@ -270,6 +270,9 @@ abstract public class NotificationSettings extends DashboardFragment {
|
|||||||
String conversationId = intent != null
|
String conversationId = intent != null
|
||||||
? intent.getStringExtra(Settings.EXTRA_CONVERSATION_ID) : null;
|
? intent.getStringExtra(Settings.EXTRA_CONVERSATION_ID) : null;
|
||||||
mChannel = mBackend.getChannel(mPkg, mUid, channelId, conversationId);
|
mChannel = mBackend.getChannel(mPkg, mUid, channelId, conversationId);
|
||||||
|
if (mChannel == null) {
|
||||||
|
mBackend.getChannel(mPkg, mUid, channelId, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadConversation() {
|
private void loadConversation() {
|
||||||
|
@@ -151,7 +151,7 @@ public class HeaderPreferenceControllerTest {
|
|||||||
NotificationChannel defaultChannel = new NotificationChannel(
|
NotificationChannel defaultChannel = new NotificationChannel(
|
||||||
NotificationChannel.DEFAULT_CHANNEL_ID, "", IMPORTANCE_NONE);
|
NotificationChannel.DEFAULT_CHANNEL_ID, "", IMPORTANCE_NONE);
|
||||||
mController.onResume(appRow, defaultChannel, null, null, null, null, null);
|
mController.onResume(appRow, defaultChannel, null, null, null, null, null);
|
||||||
assertEquals("", mController.getSummary());
|
assertEquals(appRow.label, mController.getSummary());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -159,13 +159,13 @@ public class HeaderPreferenceControllerTest {
|
|||||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||||
appRow.label = "bananas";
|
appRow.label = "bananas";
|
||||||
mController.onResume(appRow, null, null, null, null, null, null);
|
mController.onResume(appRow, null, null, null, null, null, null);
|
||||||
assertEquals("", mController.getSecondSummary());
|
assertEquals(null, mController.getSecondSummary());
|
||||||
|
|
||||||
NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
|
NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
|
||||||
|
|
||||||
NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
|
NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
|
||||||
mController.onResume(appRow, channel, group, null, null, null, null);
|
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||||
assertEquals("", mController.getSecondSummary());
|
assertEquals(null, mController.getSecondSummary());
|
||||||
|
|
||||||
channel.setDescription("description");
|
channel.setDescription("description");
|
||||||
mController.onResume(appRow, channel, group, null, null, null, null);
|
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||||
|
Reference in New Issue
Block a user