From 94d1cc66082517451c7ed41ef011c1ad41266bb1 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Fri, 19 Jul 2024 20:57:23 +0200 Subject: [PATCH] Simplify approach for animating advanced entry settings This slightly simplifies the approach we use to animate the advanced entry settings into view, by defaulting its alpha to 0 and setting it to VISIBLE before the animation starts. That way, we're not dependent on "animation ended" callbacks that apparently don't fire in all cases. The XML diff looks a bit scary, but it basically just removes a wrapping ``RelativeLayout`` that appears to not be necessary. --- .../aegis/ui/EditEntryActivity.java | 18 +- .../main/res/layout/activity_edit_entry.xml | 216 +++++++++--------- 2 files changed, 112 insertions(+), 122 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 c2280cc5..55ff2642 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java @@ -127,7 +127,7 @@ public class EditEntryActivity extends AegisActivity { private KropView _kropView; private RelativeLayout _advancedSettingsHeader; - private RelativeLayout _advancedSettings; + private LinearLayout _advancedSettingsLayout; private BackPressHandler _backPressHandler; private IconBackPressHandler _iconBackPressHandler; @@ -241,7 +241,7 @@ public class EditEntryActivity extends AegisActivity { _advancedSettingsHeader = findViewById(R.id.accordian_header); _advancedSettingsHeader.setOnClickListener(v -> openAdvancedSettings()); - _advancedSettings = findViewById(R.id.expandableLayout); + _advancedSettingsLayout = findViewById(R.id.layout_advanced); // fill the fields with values if possible GlideHelper.loadEntryIcon(Glide.with(this), _origEntry, _iconView); @@ -411,17 +411,13 @@ public class EditEntryActivity extends AegisActivity { fadeOut.setDuration((long) (220 * AnimationsHelper.Scale.ANIMATOR.getValue(this))); _advancedSettingsHeader.startAnimation(fadeOut); - Animation fadeIn = new AlphaAnimation(0, 1); - fadeIn.setInterpolator(new AccelerateInterpolator()); - fadeIn.setDuration((long) (250 * AnimationsHelper.Scale.ANIMATOR.getValue(this))); - fadeOut.setAnimationListener(new SimpleAnimationEndListener((a) -> { _advancedSettingsHeader.setVisibility(View.GONE); - _advancedSettings.startAnimation(fadeIn); - })); - - fadeIn.setAnimationListener(new SimpleAnimationEndListener((a) -> { - _advancedSettings.setVisibility(View.VISIBLE); + _advancedSettingsLayout.setVisibility(View.VISIBLE); + _advancedSettingsLayout.animate() + .setInterpolator(new AccelerateInterpolator()) + .setDuration((long) (250 * AnimationsHelper.Scale.ANIMATOR.getValue(this))) + .alpha(1); })); } diff --git a/app/src/main/res/layout/activity_edit_entry.xml b/app/src/main/res/layout/activity_edit_entry.xml index 509d927e..2b06060e 100644 --- a/app/src/main/res/layout/activity_edit_entry.xml +++ b/app/src/main/res/layout/activity_edit_entry.xml @@ -251,149 +251,143 @@ android:textStyle="bold" /> - + android:orientation="vertical" + android:visibility="gone" + android:alpha="0" + android:layout_marginHorizontal="10dp"> - + - - - + android:src="@drawable/ic_outline_info_24" + app:tint="?attr/colorOnSurface" + android:layout_marginStart="5dp" + android:layout_marginEnd="15dp" + android:layout_gravity="center_vertical"/> - - - - - - - - + android:layout_weight="1" + android:orientation="horizontal"> + - + + android:inputType="none"/> - + + android:inputType="none" /> + + + + + + + + + + + + - - - - + - - - + android:enabled="false" + android:inputType="number"/> + - - - - + +