mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 14:18:34 +00:00
Fix Swipe to Reply progress reset when AnimatorDurationScale is 0.
Fixes #9051
This commit is contained in:
parent
8e332d0798
commit
14999800e2
@ -7,7 +7,6 @@ import android.animation.ObjectAnimator;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -24,6 +23,7 @@ import androidx.annotation.Nullable;
|
|||||||
|
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
import org.thoughtcrime.securesms.util.AccessibilityUtil;
|
||||||
import org.thoughtcrime.securesms.util.ServiceUtil;
|
import org.thoughtcrime.securesms.util.ServiceUtil;
|
||||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||||
|
|
||||||
@ -264,7 +264,7 @@ public final class WebRtcAnswerDeclineButton extends LinearLayout implements Acc
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void animateElements(int delay) {
|
private void animateElements(int delay) {
|
||||||
if (areAnimationsDisabled()) return;
|
if (AccessibilityUtil.areAnimationsDisabled(getContext())) return;
|
||||||
|
|
||||||
ObjectAnimator fabUp = getUpAnimation(answer);
|
ObjectAnimator fabUp = getUpAnimation(answer);
|
||||||
ObjectAnimator fabDown = getDownAnimation(answer);
|
ObjectAnimator fabDown = getDownAnimation(answer);
|
||||||
@ -300,11 +300,6 @@ public final class WebRtcAnswerDeclineButton extends LinearLayout implements Acc
|
|||||||
animatorSet.start();
|
animatorSet.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean areAnimationsDisabled() {
|
|
||||||
return Settings.Global.getFloat(getContext().getContentResolver(),
|
|
||||||
Settings.Global.ANIMATOR_DURATION_SCALE, 1) == 0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void resetElements() {
|
private void resetElements() {
|
||||||
animating = false;
|
animating = false;
|
||||||
complete = false;
|
complete = false;
|
||||||
|
@ -11,6 +11,7 @@ import androidx.recyclerview.widget.ItemTouchHelper;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
|
import org.thoughtcrime.securesms.util.AccessibilityUtil;
|
||||||
import org.thoughtcrime.securesms.util.ServiceUtil;
|
import org.thoughtcrime.securesms.util.ServiceUtil;
|
||||||
|
|
||||||
class ConversationItemSwipeCallback extends ItemTouchHelper.SimpleCallback {
|
class ConversationItemSwipeCallback extends ItemTouchHelper.SimpleCallback {
|
||||||
@ -123,6 +124,7 @@ class ConversationItemSwipeCallback extends ItemTouchHelper.SimpleCallback {
|
|||||||
case MotionEvent.ACTION_CANCEL:
|
case MotionEvent.ACTION_CANCEL:
|
||||||
swipeBack = true;
|
swipeBack = true;
|
||||||
shouldTriggerSwipeFeedback = false;
|
shouldTriggerSwipeFeedback = false;
|
||||||
|
resetProgressIfAnimationsDisabled(viewHolder);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -142,6 +144,14 @@ class ConversationItemSwipeCallback extends ItemTouchHelper.SimpleCallback {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void resetProgressIfAnimationsDisabled(RecyclerView.ViewHolder viewHolder) {
|
||||||
|
if (AccessibilityUtil.areAnimationsDisabled(viewHolder.itemView.getContext())) {
|
||||||
|
ConversationSwipeAnimationHelper.update((ConversationItem) viewHolder.itemView,
|
||||||
|
0f,
|
||||||
|
getSignFromDirection(viewHolder.itemView));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean cannotSwipeViewHolder(@NonNull RecyclerView.ViewHolder viewHolder) {
|
private boolean cannotSwipeViewHolder(@NonNull RecyclerView.ViewHolder viewHolder) {
|
||||||
if (!(viewHolder.itemView instanceof ConversationItem)) return true;
|
if (!(viewHolder.itemView instanceof ConversationItem)) return true;
|
||||||
|
|
||||||
|
14
src/org/thoughtcrime/securesms/util/AccessibilityUtil.java
Normal file
14
src/org/thoughtcrime/securesms/util/AccessibilityUtil.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package org.thoughtcrime.securesms.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.provider.Settings;
|
||||||
|
|
||||||
|
public final class AccessibilityUtil {
|
||||||
|
|
||||||
|
private AccessibilityUtil() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean areAnimationsDisabled(Context context) {
|
||||||
|
return Settings.Global.getFloat(context.getContentResolver(), Settings.Global.ANIMATOR_DURATION_SCALE, 1) == 0f;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user