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
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null
|
||||
|| mConversationInfo == null) {
|
||||
if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null) {
|
||||
Log.w(TAG, "Missing package or uid or packageinfo or channel");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
getActivity().setTitle(mConversationInfo.getLabel());
|
||||
getActivity().setTitle(mConversationInfo == null
|
||||
? mChannel.getName()
|
||||
: mConversationInfo.getLabel());
|
||||
|
||||
for (NotificationPreferenceController controller : mControllers) {
|
||||
controller.onResume(mAppRow, mChannel, mChannelGroup, mConversationDrawable,
|
||||
|
@@ -270,6 +270,9 @@ abstract public class NotificationSettings extends DashboardFragment {
|
||||
String conversationId = intent != null
|
||||
? intent.getStringExtra(Settings.EXTRA_CONVERSATION_ID) : null;
|
||||
mChannel = mBackend.getChannel(mPkg, mUid, channelId, conversationId);
|
||||
if (mChannel == null) {
|
||||
mBackend.getChannel(mPkg, mUid, channelId, null);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadConversation() {
|
||||
|
@@ -151,7 +151,7 @@ public class HeaderPreferenceControllerTest {
|
||||
NotificationChannel defaultChannel = new NotificationChannel(
|
||||
NotificationChannel.DEFAULT_CHANNEL_ID, "", IMPORTANCE_NONE);
|
||||
mController.onResume(appRow, defaultChannel, null, null, null, null, null);
|
||||
assertEquals("", mController.getSummary());
|
||||
assertEquals(appRow.label, mController.getSummary());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -159,13 +159,13 @@ public class HeaderPreferenceControllerTest {
|
||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||
appRow.label = "bananas";
|
||||
mController.onResume(appRow, null, null, null, null, null, null);
|
||||
assertEquals("", mController.getSecondSummary());
|
||||
assertEquals(null, mController.getSecondSummary());
|
||||
|
||||
NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
|
||||
|
||||
NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
|
||||
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||
assertEquals("", mController.getSecondSummary());
|
||||
assertEquals(null, mController.getSecondSummary());
|
||||
|
||||
channel.setDescription("description");
|
||||
mController.onResume(appRow, channel, group, null, null, null, null);
|
||||
|
Reference in New Issue
Block a user