From 7ea38298ea724d40cf40bfcff2ce5eed6641355d Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 27 Jun 2023 12:14:56 -0400 Subject: [PATCH] Fix gif playback in CFv2. --- .../securesms/conversation/MaskDrawable.java | 92 ------------------- .../conversation/v2/ConversationAdapterV2.kt | 2 +- .../res/layout/v2_conversation_fragment.xml | 18 ++-- 3 files changed, 10 insertions(+), 102 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/conversation/MaskDrawable.java diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/MaskDrawable.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/MaskDrawable.java deleted file mode 100644 index 547333d3c2..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/MaskDrawable.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.thoughtcrime.securesms.conversation; - -import android.graphics.Canvas; -import android.graphics.ColorFilter; -import android.graphics.Path; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Region; -import android.graphics.drawable.Drawable; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * Drawable which lets you punch a hole through another drawable. - * - * TODO: Remove in favor of ClipProjectionDrawable - */ -public final class MaskDrawable extends Drawable { - - private final RectF bounds = new RectF(); - private final Path clipPath = new Path(); - - private Rect clipRect; - private float[] clipPathRadii; - - private final Drawable wrapped; - - public MaskDrawable(@NonNull Drawable wrapped) { - this.wrapped = wrapped; - } - - @Override - public void draw(@NonNull Canvas canvas) { - if (clipRect == null) { - wrapped.draw(canvas); - return; - } - - canvas.save(); - - if (clipPathRadii != null) { - clipPath.reset(); - bounds.set(clipRect); - clipPath.addRoundRect(bounds, clipPathRadii, Path.Direction.CW); - canvas.clipPath(clipPath, Region.Op.DIFFERENCE); - } else { - canvas.clipRect(clipRect, Region.Op.DIFFERENCE); - } - - wrapped.draw(canvas); - canvas.restore(); - } - - @Override - public void setAlpha(int alpha) { - wrapped.setAlpha(alpha); - } - - @Override - public void setColorFilter(@Nullable ColorFilter colorFilter) { - wrapped.setColorFilter(colorFilter); - } - - @Override - public int getOpacity() { - return wrapped.getOpacity(); - } - - @Override - public void setBounds(int left, int top, int right, int bottom) { - super.setBounds(left, top, right, bottom); - wrapped.setBounds(left, top, right, bottom); - } - - @Override - public boolean getPadding(@NonNull Rect padding) { - return wrapped.getPadding(padding); - } - - public void setMask(@Nullable Rect mask) { - this.clipRect = new Rect(mask); - - invalidateSelf(); - } - - public void setCorners(@Nullable float[] clipPathRadii) { - this.clipPathRadii = clipPathRadii; - - invalidateSelf(); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt index d35aacd2c9..53c7fb39e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt @@ -189,7 +189,7 @@ class ConversationAdapterV2( */ fun pulseAtPosition(position: Int) { if (position >= 0 && position < itemCount) { - // todo [cody] adjust for typing indicator + // TODO [cfv2] adjust for typing indicator val correctedPosition = position recordToPulse = getConversationMessage(correctedPosition) diff --git a/app/src/main/res/layout/v2_conversation_fragment.xml b/app/src/main/res/layout/v2_conversation_fragment.xml index 8199744950..a53853ac45 100644 --- a/app/src/main/res/layout/v2_conversation_fragment.xml +++ b/app/src/main/res/layout/v2_conversation_fragment.xml @@ -6,15 +6,6 @@ android:layout_height="match_parent" app:animateKeyboardChanges="true"> - - + +