theme contact chat messages for Material 3

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
Andy Scherzinger 2022-08-10 00:05:29 +02:00
parent ed452f1747
commit bb4f073eb3
No known key found for this signature in database
GPG Key ID: 6CADC7E3523C308B
6 changed files with 35 additions and 5 deletions

View File

@ -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;
}

View File

@ -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();

View File

@ -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;
}

View File

@ -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 ->

View File

@ -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"

View File

@ -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"