From 96b7a8340e9e4a199a011084804f7e87d0579966 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 31 Jan 2019 18:08:17 +0000 Subject: [PATCH] Simplified transition animations --- .../java/eu/faircode/email/ActivityView.java | 9 ------ .../eu/faircode/email/FragmentMessages.java | 29 +++++++++++-------- app/src/main/res/anim/exit_to_left.xml | 10 ------- app/src/main/res/anim/exit_to_right.xml | 10 ------- 4 files changed, 17 insertions(+), 41 deletions(-) delete mode 100644 app/src/main/res/anim/exit_to_left.xml delete mode 100644 app/src/main/res/anim/exit_to_right.xml diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 4ae16c90ce..b3cc927cdc 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -44,7 +44,6 @@ import android.os.ParcelFileDescriptor; import android.preference.PreferenceManager; import android.provider.ContactsContract; import android.text.TextUtils; -import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -1096,15 +1095,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB args.putBoolean("pane", true); } - TypedValue enter = new TypedValue(); - TypedValue exit = new TypedValue(); - getTheme().resolveAttribute(android.R.attr.activityOpenEnterAnimation, enter, false); - getTheme().resolveAttribute(android.R.attr.activityOpenExitAnimation, exit, false); - FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); - fragmentTransaction.setCustomAnimations( - enter.resourceId, exit.resourceId, - android.R.anim.fade_out, android.R.anim.fade_out); fragmentTransaction.replace(pane, fragment).addToBackStack("thread"); fragmentTransaction.commit(); } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 6d89b419f1..362c87cb4a 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -48,6 +48,7 @@ import android.view.SubMenu; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; +import android.view.animation.AnimationUtils; import android.widget.CheckBox; import android.widget.ImageButton; import android.widget.TextView; @@ -129,7 +130,6 @@ public class FragmentMessages extends FragmentBase { private boolean connected; private boolean searching = false; private AdapterMessage adapter; - private boolean animate = true; private AdapterMessage.ViewType viewType; private SelectionTracker selectionTracker = null; @@ -2166,6 +2166,8 @@ public class FragmentMessages extends FragmentBase { getFragmentManager().popBackStack("thread", FragmentManager.POP_BACK_STACK_INCLUSIVE); + getArguments().putBoolean("fade", true); + Bundle nargs = new Bundle(); nargs.putLong("account", message.account); nargs.putString("thread", message.thread); @@ -2173,16 +2175,13 @@ public class FragmentMessages extends FragmentBase { nargs.putBoolean("pane", pane); nargs.putLong("primary", primary); nargs.putBoolean("connected", connected); + nargs.putBoolean("left", left); FragmentMessages fragment = new FragmentMessages(); fragment.setArguments(nargs); int res = (pane ? R.id.content_pane : R.id.content_frame); FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); - fragmentTransaction.setCustomAnimations( - left ? R.anim.enter_from_left : R.anim.enter_from_right, - left ? R.anim.exit_to_right : R.anim.exit_to_left, - android.R.anim.fade_out, android.R.anim.fade_out); fragmentTransaction.replace(res, fragment).addToBackStack("thread"); fragmentTransaction.commit(); } @@ -2397,20 +2396,26 @@ public class FragmentMessages extends FragmentBase { return true; } - animate = false; - return false; } }; @Override public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) { - if (!animate) { - Animation a = new Animation() { - }; - a.setDuration(0); - return a; + Bundle args = getArguments(); + if (viewType == AdapterMessage.ViewType.THREAD && args != null) { + if (enter) { + Boolean left = (Boolean) args.get("left"); + if (left != null) + return AnimationUtils.loadAnimation(getContext(), left ? R.anim.enter_from_left : R.anim.enter_from_right); + } else { + if (args.getBoolean("fade")) { + args.remove("fade"); + return AnimationUtils.loadAnimation(getContext(), android.R.anim.fade_out); + } + } } + return super.onCreateAnimation(transit, enter, nextAnim); } diff --git a/app/src/main/res/anim/exit_to_left.xml b/app/src/main/res/anim/exit_to_left.xml deleted file mode 100644 index 383990e70f..0000000000 --- a/app/src/main/res/anim/exit_to_left.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/anim/exit_to_right.xml b/app/src/main/res/anim/exit_to_right.xml deleted file mode 100644 index 6184d3a739..0000000000 --- a/app/src/main/res/anim/exit_to_right.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file