From 97a64401e865df198669b384daf10ed7f71c3b14 Mon Sep 17 00:00:00 2001 From: Anthony Restaino Date: Sun, 6 Mar 2016 14:34:01 -0500 Subject: [PATCH] Fixed layout bug, fixed bug slowing down recyclerview animations --- .../browser/lightning/activity/BrowserActivity.java | 13 +++++-------- .../fragment/anim/HorizontalItemAnimator.java | 7 +++++-- .../fragment/anim/VerticalItemAnimator.java | 7 +++++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java b/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java index 74813c3..8106de7 100644 --- a/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java +++ b/app/src/main/java/acr/browser/lightning/activity/BrowserActivity.java @@ -131,9 +131,6 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements private static final String INTENT_PANIC_TRIGGER = "info.guardianproject.panic.action.TRIGGER"; // Static Layout - @Bind(R.id.main_layout) - View mRootLayout; - @Bind(R.id.drawer_layout) DrawerLayout mDrawerLayout; @@ -1044,7 +1041,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements initializeTabHeight(); - doOnLayout(mRootLayout, new Runnable() { + doOnLayout(mUiLayout, new Runnable() { @Override public void run() { int toolbarSize; @@ -1849,7 +1846,7 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements * first. */ private void initializeTabHeight() { - doOnLayout(mRootLayout, new Runnable() { + doOnLayout(mUiLayout, new Runnable() { @Override public void run() { setTabHeight(); @@ -1885,12 +1882,12 @@ public abstract class BrowserActivity extends ThemableBrowserActivity implements * laid out in order to set the correct height. */ private void setTabHeight() { - if (mRootLayout.getHeight() == 0) { - mRootLayout.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); + if (mUiLayout.getHeight() == 0) { + mUiLayout.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); } if (mFullScreen) { - mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, mRootLayout.getHeight())); + mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, mUiLayout.getHeight())); } else { mBrowserFrame.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } diff --git a/app/src/main/java/acr/browser/lightning/fragment/anim/HorizontalItemAnimator.java b/app/src/main/java/acr/browser/lightning/fragment/anim/HorizontalItemAnimator.java index cc5c03e..7eedb5d 100644 --- a/app/src/main/java/acr/browser/lightning/fragment/anim/HorizontalItemAnimator.java +++ b/app/src/main/java/acr/browser/lightning/fragment/anim/HorizontalItemAnimator.java @@ -22,7 +22,6 @@ import android.support.v4.view.ViewPropertyAnimatorListener; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.support.v7.widget.SimpleItemAnimator; -import android.util.Log; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; @@ -262,13 +261,13 @@ public class HorizontalItemAnimator extends SimpleItemAnimator { final View view = holder.itemView; fromX += ViewCompat.getTranslationX(holder.itemView); fromY += ViewCompat.getTranslationY(holder.itemView); - resetAnimation(holder); int deltaX = toX - fromX; int deltaY = toY - fromY; if (deltaX == 0 && deltaY == 0) { dispatchMoveFinished(holder); return false; } + resetAnimation(holder); if (deltaX != 0) { ViewCompat.setTranslationX(view, -deltaX); } @@ -337,6 +336,10 @@ public class HorizontalItemAnimator extends SimpleItemAnimator { if (oldHolder == newHolder) { // Don't know how to run change animations when the same view holder is re-used. // run a move animation to handle position changes. + if ((fromX - toX) == 0 && (fromY - toY) == 0) { + dispatchMoveFinished(oldHolder); + return false; + } return animateMove(oldHolder, fromX, fromY, toX, toY); } final float prevTranslationX = ViewCompat.getTranslationX(oldHolder.itemView); diff --git a/app/src/main/java/acr/browser/lightning/fragment/anim/VerticalItemAnimator.java b/app/src/main/java/acr/browser/lightning/fragment/anim/VerticalItemAnimator.java index 463a4b3..9da1908 100644 --- a/app/src/main/java/acr/browser/lightning/fragment/anim/VerticalItemAnimator.java +++ b/app/src/main/java/acr/browser/lightning/fragment/anim/VerticalItemAnimator.java @@ -22,7 +22,6 @@ import android.support.v4.view.ViewPropertyAnimatorListener; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.support.v7.widget.SimpleItemAnimator; -import android.util.Log; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; @@ -261,13 +260,13 @@ public class VerticalItemAnimator extends SimpleItemAnimator { final View view = holder.itemView; fromX += ViewCompat.getTranslationX(holder.itemView); fromY += ViewCompat.getTranslationY(holder.itemView); - resetAnimation(holder); int deltaX = toX - fromX; int deltaY = toY - fromY; if (deltaX == 0 && deltaY == 0) { dispatchMoveFinished(holder); return false; } + resetAnimation(holder); if (deltaX != 0) { ViewCompat.setTranslationX(view, -deltaX); } @@ -336,6 +335,10 @@ public class VerticalItemAnimator extends SimpleItemAnimator { if (oldHolder == newHolder) { // Don't know how to run change animations when the same view holder is re-used. // run a move animation to handle position changes. + if ((fromX - toX) == 0 && (fromY - toY) == 0) { + dispatchMoveFinished(oldHolder); + return false; + } return animateMove(oldHolder, fromX, fromY, toX, toY); } final float prevTranslationX = ViewCompat.getTranslationX(oldHolder.itemView);