From e7a1058618c7b7f15ece4f1867ec2749e5cdda50 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Mon, 11 Sep 2023 20:59:16 +0200 Subject: [PATCH] Fix two issues related to animation duration scale This patch addresses two issues: - The entry selection icon would flicker when a non-1x animator duration scale was set. - The advanced entry field animation was not shown if the animator duration scale was set to .5x, due to a rounding error. Introduced in: 9ff8efab69ec43c16cce41553ab3239a6613a050 --- .../java/com/beemdevelopment/aegis/ui/EditEntryActivity.java | 4 ++-- .../java/com/beemdevelopment/aegis/ui/views/EntryHolder.java | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java index 8812592b..3b7cc341 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java @@ -377,12 +377,12 @@ public class EditEntryActivity extends AegisActivity { private void openAdvancedSettings() { Animation fadeOut = new AlphaAnimation(1, 0); fadeOut.setInterpolator(new AccelerateInterpolator()); - fadeOut.setDuration(220 * (long) AnimationsHelper.Scale.ANIMATOR.getValue(this)); + fadeOut.setDuration((long) (220 * AnimationsHelper.Scale.ANIMATOR.getValue(this))); _advancedSettingsHeader.startAnimation(fadeOut); Animation fadeIn = new AlphaAnimation(0, 1); fadeIn.setInterpolator(new AccelerateInterpolator()); - fadeIn.setDuration(250 * (long) AnimationsHelper.Scale.ANIMATOR.getValue(this)); + fadeIn.setDuration((long) (250 * AnimationsHelper.Scale.ANIMATOR.getValue(this))); fadeOut.setAnimationListener(new SimpleAnimationEndListener((a) -> { _advancedSettingsHeader.setVisibility(View.GONE); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java index 25bdf2ab..a95f363a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java @@ -18,6 +18,7 @@ import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.ViewMode; import com.beemdevelopment.aegis.helpers.AnimationsHelper; import com.beemdevelopment.aegis.helpers.IconViewHelper; +import com.beemdevelopment.aegis.helpers.SimpleAnimationEndListener; import com.beemdevelopment.aegis.helpers.TextDrawableHelper; import com.beemdevelopment.aegis.helpers.ThemeHelper; import com.beemdevelopment.aegis.helpers.UiRefresher; @@ -258,7 +259,9 @@ public class EntryHolder extends RecyclerView.ViewHolder { _selected.startAnimation(_scaleIn); } else { _selected.startAnimation(_scaleOut); - _selectedHandler.postDelayed(() -> _selected.setVisibility(View.GONE), 150); + _scaleOut.setAnimationListener(new SimpleAnimationEndListener(animation -> { + _selected.setVisibility(View.GONE); + })); } }