소스 검색

theme contact chat messages for Material 3

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 2 년 전
부모
커밋
bb4f073eb3

+ 2 - 1
app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java

@@ -26,6 +26,7 @@ import android.view.View;
 import android.widget.ProgressBar;
 
 import com.facebook.drawee.view.SimpleDraweeView;
+import com.google.android.material.card.MaterialCardView;
 import com.nextcloud.talk.R;
 import com.nextcloud.talk.databinding.ItemCustomIncomingPreviewMessageBinding;
 import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding;
@@ -73,7 +74,7 @@ public class IncomingPreviewMessageViewHolder extends MagicPreviewMessageViewHol
     }
 
     @Override
-    public View getPreviewContactContainer() {
+    public MaterialCardView getPreviewContactContainer() {
         return binding.contactContainer;
     }
 

+ 5 - 1
app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java

@@ -42,6 +42,7 @@ import android.widget.PopupMenu;
 import android.widget.ProgressBar;
 
 import com.facebook.drawee.view.SimpleDraweeView;
+import com.google.android.material.card.MaterialCardView;
 import com.nextcloud.talk.R;
 import com.nextcloud.talk.application.NextcloudTalkApplication;
 import com.nextcloud.talk.components.filebrowser.models.BrowserFile;
@@ -169,6 +170,9 @@ public abstract class MagicPreviewMessageViewHolder extends MessageHolders.Incom
                 progressBar = getPreviewContactProgressBar();
                 getMessageText().setVisibility(View.INVISIBLE);
                 clickView = getPreviewContactContainer();
+                viewThemeUtils.colorContactChatItemBackground(getPreviewContactContainer());
+                viewThemeUtils.colorContactChatItemName(getPreviewContactName());
+                viewThemeUtils.colorCircularProgressBarOnPrimaryContainer(getPreviewContactProgressBar());
             } else {
                 getPreviewContainer().setVisibility(View.VISIBLE);
                 getPreviewContactContainer().setVisibility(View.GONE);
@@ -362,7 +366,7 @@ public abstract class MagicPreviewMessageViewHolder extends MessageHolders.Incom
 
     public abstract View getPreviewContainer();
 
-    public abstract View getPreviewContactContainer();
+    public abstract MaterialCardView getPreviewContactContainer();
 
     public abstract SimpleDraweeView getPreviewContactPhoto();
 

+ 2 - 1
app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingPreviewMessageViewHolder.java

@@ -26,6 +26,7 @@ import android.view.View;
 import android.widget.ProgressBar;
 
 import com.facebook.drawee.view.SimpleDraweeView;
+import com.google.android.material.card.MaterialCardView;
 import com.nextcloud.talk.R;
 import com.nextcloud.talk.databinding.ItemCustomOutcomingPreviewMessageBinding;
 import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding;
@@ -74,7 +75,7 @@ public class OutcomingPreviewMessageViewHolder extends MagicPreviewMessageViewHo
     }
 
     @Override
-    public View getPreviewContactContainer() {
+    public MaterialCardView getPreviewContactContainer() {
         return binding.contactContainer;
     }
 

+ 24 - 0
app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt

@@ -125,6 +125,12 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
         }
     }
 
+    fun colorViewBackground(view: View) {
+        withScheme(view) { scheme ->
+            view.setBackgroundColor(scheme.surface)
+        }
+    }
+
     fun colorToolbarMenuIcon(context: Context, item: MenuItem) {
         withScheme(context) { scheme ->
             item.icon.setColorFilter(scheme.onSurface, PorterDuff.Mode.SRC_ATOP)
@@ -468,6 +474,24 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
         }
     }
 
+    fun colorContactChatItemName(contactName: androidx.emoji.widget.EmojiTextView) {
+        withScheme(contactName) { scheme ->
+            contactName.setTextColor(scheme.onPrimaryContainer)
+        }
+    }
+
+    fun colorContactChatItemBackground(card: MaterialCardView) {
+        withScheme(card) { scheme ->
+            card.setCardBackgroundColor(scheme.primaryContainer)
+        }
+    }
+
+    fun colorCircularProgressBarOnPrimaryContainer(progressBar: ProgressBar) {
+        withScheme(progressBar) { scheme ->
+            progressBar.indeterminateDrawable.setColorFilter(scheme.onPrimaryContainer, PorterDuff.Mode.SRC_ATOP)
+        }
+    }
+
     // TODO split this util into classes depending on framework views vs library views
     fun colorPreferenceCategory(category: MaterialPreferenceCategory) {
         withScheme(category) { scheme ->

+ 1 - 1
app/src/main/res/layout/item_custom_incoming_preview_message.xml

@@ -87,7 +87,7 @@
             android:layout_height="wrap_content"
             android:layout_margin="2dp"
             android:layout_marginBottom="1dp"
-            app:cardCornerRadius="8dp"
+            app:cardCornerRadius="@dimen/dialogBorderRadius"
             app:cardElevation="2dp"
             app:layout_alignSelf="flex_start"
             app:layout_flexGrow="1"

+ 1 - 1
app/src/main/res/layout/item_custom_outcoming_preview_message.xml

@@ -77,7 +77,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_margin="2dp"
-            app:cardCornerRadius="8dp"
+            app:cardCornerRadius="@dimen/dialogBorderRadius"
             app:cardElevation="2dp"
             app:layout_alignSelf="flex_start"
             app:layout_flexGrow="1"