Fix Stabilization Bugs

PiperOrigin-RevId: 408462735
Change-Id: Ia54550179ad88a213890529afa62d04e62346fd2
Bug: 203687523, 203700812, 203707755, 204487577
diff --git a/res/drawable/ic_launcher_icon.xml b/res/drawable/ic_launcher_icon.xml
index bf04507..caac05a 100644
--- a/res/drawable/ic_launcher_icon.xml
+++ b/res/drawable/ic_launcher_icon.xml
@@ -14,28 +14,15 @@
 limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="44dp"
-    android:height="44dp"
-    android:viewportHeight="44"
-    android:viewportWidth="44">
-    <path
-        android:fillColor="#1A73E8"
-        android:pathData="M22,44C34.1503,44 44,34.1503 44,22C44,9.8497 34.1503,0 22,0C9.8497,
-      0 0,9.8497 0,22C0,34.1503 9.8497,44 22,44Z" />
-    <path
-        android:fillColor="#ffffff"
-        android:pathData="M30,13H8.995C8.145,13 7.685,13.73 8.245,14.5L11,19.25V27.75C11,29.9225
-      12.59,31.75 14.75,31.75H30C32.16,31.75 34,29.9225 34,27.75V17C34,14.8275 32.16,13 30,13Z" />
-    <path
-        android:fillColor="#8AB4F8"
-        android:pathData="M29.75,19H15.25C14.615,19 14,18.6225 14,18C14,17.3775 14.615,17
-      15.25,17H29.75C30.385,17 31,17.3775 31,18C31,18.6225 30.385,19 29.75,19Z" />
-    <path
-        android:fillColor="#8AB4F8"
-        android:pathData="M29.75,23H15.25C14.615,23 14,22.6225 14,22C14,21.3775 14.615,21
-      15.25,21H29.75C30.385,21 31,21.3775 31,22C31,22.6225 30.385,23 29.75,23Z" />
-    <path
-        android:fillColor="#8AB4F8"
-        android:pathData="M25.75,27H15.25C14.62,27 14,26.6225 14,26C14,25.3775 14.62,25
-      15.25,25H25.75C26.38,25 27,25.3775 27,26C27,26.6225 26.38,27 25.75,27Z" />
+    android:width="80dp"
+    android:height="80dp"
+    android:viewportWidth="80"
+    android:viewportHeight="80">
+  <path
+      android:pathData="M40,40m-40,0a40,40 0,1 1,80 0a40,40 0,1 1,-80 0"
+      android:fillColor="#1E63BD"/>
+  <path
+      android:pathData="M56.6667,21.1667H23.3333C21.0417,21.1667 19.1667,23.0417 19.1667,25.3333V62.8333L27.5,54.5H56.6667C58.9583,54.5 60.8333,52.625 60.8333,50.3333V25.3333C60.8333,23.0417 58.9583,21.1667 56.6667,21.1667ZM56.6667,50.3333H23.3333V25.3333H56.6667V50.3333ZM29.5833,35.75H33.75V39.9167H29.5833V35.75ZM37.9167,35.75H42.0833V39.9167H37.9167V35.75ZM46.25,35.75H50.4167V39.9167H46.25V35.75Z"
+      android:fillColor="#ffffff"/>
 </vector>
+
diff --git a/res/layout/conversation_list_item.xml b/res/layout/conversation_list_item.xml
index b9455a3..09e106a 100644
--- a/res/layout/conversation_list_item.xml
+++ b/res/layout/conversation_list_item.xml
@@ -130,7 +130,7 @@
         app:layout_constraintEnd_toStartOf="@id/preview_dot"
         tools:visibility="visible"
         android:ellipsize="end"
-        android:maxEms="19"
+        android:maxLength="40"
         tools:text="Let this be the preview. Lots of preview with
         a whole lot of various texts, one that is quite long in every way.
         To verify that it still fits in the end" />
diff --git a/res/values/config.xml b/res/values/config.xml
index c44885f..60283a4 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -18,10 +18,9 @@
     <bool name="group_avatar_fill_background">false</bool>
     <bool name="direct_send_supported">true</bool>
     <bool name="direct_reply_supported">true</bool>
-    <bool name="ttr_conversation_supported">true</bool>
+    <bool name="ttr_conversation_supported">false</bool>
 
     <!--
-    The maximum number of individual avatars used for group avatar.
     A number between 1 and 4 is required.
     When the value is 1, the first avatar is used for the group avatar.
     When the value is 2-4, the first nth avatars make up the group avatar,
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 @@
 
     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 @@
 
     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 @@
         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 @@
             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 @@
         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 @@
         return sInstance;
     }
 
+    /** Posts value to listeners to refresh */
     public void refresh() {
         postValue(true);
     }