From 56263a573e51ac5dc0dbe35d37edbcadfe4fe8b4 Mon Sep 17 00:00:00 2001 From: Uchenna Okoye Date: Mon, 8 Nov 2021 15:57:10 -0800 Subject: Fix Stabilization Bugs PiperOrigin-RevId: 408462735 Change-Id: Ia54550179ad88a213890529afa62d04e62346fd2 Bug: 203687523, 203700812, 203707755, 204487577 --- .../car/messenger/core/service/MessengerService.java | 2 +- .../messenger/core/shared/NotificationHandler.java | 19 +++++++------------ .../conversationlist/ConversationItemViewHolder.java | 1 + .../messenger/impl/datamodels/NewMessageLiveData.java | 9 +-------- .../messenger/impl/datamodels/RefreshLiveData.java | 1 + 5 files changed, 11 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/com/android/car/messenger/core/service/MessengerService.java b/src/com/android/car/messenger/core/service/MessengerService.java index aef64d6..9d70039 100644 --- a/src/com/android/car/messenger/core/service/MessengerService.java +++ b/src/com/android/car/messenger/core/service/MessengerService.java @@ -92,7 +92,7 @@ public class MessengerService extends Service { private void subscribeToNotificationUpdates() { DataModel dataModel = AppFactory.get().getDataModel(); - dataModel.getUnreadMessages().observeForever(NotificationHandler::postOrRemoveNotification); + dataModel.getUnreadMessages().observeForever(NotificationHandler::postNotification); dataModel.onConversationRemoved().observeForever(NotificationHandler::removeNotification); } diff --git a/src/com/android/car/messenger/core/shared/NotificationHandler.java b/src/com/android/car/messenger/core/shared/NotificationHandler.java index f63696c..1371b00 100644 --- a/src/com/android/car/messenger/core/shared/NotificationHandler.java +++ b/src/com/android/car/messenger/core/shared/NotificationHandler.java @@ -47,17 +47,8 @@ public class NotificationHandler { private NotificationHandler() {} - /** Posts, removes or updates a notification based on a conversation */ - public static void postOrRemoveNotification(@NonNull Conversation conversation) { - if (conversation.isMuted()) { - removeNotification(conversation.getId()); - } else { - postNotification(conversation); - } - } - - /* Posts or updates a notification based on a conversation */ - private static void postNotification(Conversation conversation) { + /** Posts or updates a notification based on a conversation */ + public static void postNotification(Conversation conversation) { int userAccountId = conversation.getExtras().getInt(EXTRA_ACCOUNT_ID, 0); if (userAccountId == 0) { L.w( @@ -69,7 +60,11 @@ public class NotificationHandler { Context context = AppFactory.get().getContext(); NotificationManager notificationManager = context.getSystemService(NotificationManager.class); - String channelId = MessengerService.MESSAGE_CHANNEL_ID; + + String channelId = + conversation.isMuted() + ? MessengerService.SILENT_MESSAGE_CHANNEL_ID + : MessengerService.MESSAGE_CHANNEL_ID; Notification notification = ConversationPayloadHandler.createNotificationFromConversation( context, channelId, tapToReadConversation, R.drawable.ic_message, null); diff --git a/src/com/android/car/messenger/core/ui/conversationlist/ConversationItemViewHolder.java b/src/com/android/car/messenger/core/ui/conversationlist/ConversationItemViewHolder.java index 1ac5a50..ecfcfb9 100644 --- a/src/com/android/car/messenger/core/ui/conversationlist/ConversationItemViewHolder.java +++ b/src/com/android/car/messenger/core/ui/conversationlist/ConversationItemViewHolder.java @@ -136,6 +136,7 @@ public class ConversationItemViewHolder extends RecyclerView.ViewHolder { ViewUtils.setVisible(mUnreadIconIndicator, /* visible= */ false); } mDotSeparatorView.setTextSize(context.getResources().getDimension(R.dimen.dot_size)); + mTextMetadataDotView.setTextSize(context.getResources().getDimension(R.dimen.dot_size)); } private void updateSubtitleIcon(@ColorInt int color) { diff --git a/src/com/android/car/messenger/impl/datamodels/NewMessageLiveData.java b/src/com/android/car/messenger/impl/datamodels/NewMessageLiveData.java index 2195bc5..f725418 100644 --- a/src/com/android/car/messenger/impl/datamodels/NewMessageLiveData.java +++ b/src/com/android/car/messenger/impl/datamodels/NewMessageLiveData.java @@ -125,18 +125,11 @@ public class NewMessageLiveData extends ContentProviderLiveData { Conversation conversation; try { conversation = fetchConversation(conversationId); - Instant offset = - Objects.requireNonNull( - mOffsetMap.getOrDefault( - userAccount.getId(), userAccount.getConnectionTime())); - conversation - .getMessages() - .removeIf(message -> message.getTimestamp() < offset.toEpochMilli()); - conversation.getExtras().putInt(MessageConstants.EXTRA_ACCOUNT_ID, userAccount.getId()); } catch (CursorIndexOutOfBoundsException e) { L.w("Error occurred fetching conversation Id " + conversationId); return false; } + conversation.getExtras().putInt(MessageConstants.EXTRA_ACCOUNT_ID, userAccount.getId()); Instant offset = Instant.ofEpochMilli(ConversationUtil.getConversationTimestamp(conversation)); mOffsetMap.put(userAccount.getId(), offset); diff --git a/src/com/android/car/messenger/impl/datamodels/RefreshLiveData.java b/src/com/android/car/messenger/impl/datamodels/RefreshLiveData.java index 0ca75bd..867870d 100644 --- a/src/com/android/car/messenger/impl/datamodels/RefreshLiveData.java +++ b/src/com/android/car/messenger/impl/datamodels/RefreshLiveData.java @@ -40,6 +40,7 @@ public class RefreshLiveData extends LiveData { return sInstance; } + /** Posts value to listeners to refresh */ public void refresh() { postValue(true); } -- cgit v1.2.3