diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-02-09 19:05:32 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-02-09 19:05:32 +0000 |
commit | 4596a46e3040aefe570cf250d8f3311c90e1dff8 (patch) | |
tree | ee9ee33020202768b917c83276a723b92ccaae15 | |
parent | a3a3375f7b2ad00ff993f53eda8c1583cce61e02 (diff) | |
parent | a8b31db9656c2af194c8ff1e3062aa9667ae5da4 (diff) | |
download | ExactCalculator-4596a46e3040aefe570cf250d8f3311c90e1dff8.tar.gz |
Merge "Fix "disappearing history fragment" issue." into ub-calculator-euler
-rw-r--r-- | src/com/android/calculator2/Calculator.java | 12 | ||||
-rw-r--r-- | src/com/android/calculator2/DragLayout.java | 28 | ||||
-rw-r--r-- | src/com/android/calculator2/HistoryFragment.java | 10 |
3 files changed, 15 insertions, 35 deletions
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java index d184344..b3d79eb 100644 --- a/src/com/android/calculator2/Calculator.java +++ b/src/com/android/calculator2/Calculator.java @@ -33,6 +33,7 @@ import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.app.ActionBar; import android.app.Activity; +import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.ClipData; @@ -1279,7 +1280,7 @@ public class Calculator extends Activity public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_history: - showHistoryFragment(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); + showHistoryFragment(); return true; case R.id.menu_leading: displayFull(); @@ -1308,7 +1309,7 @@ public class Calculator extends Activity public void onStartDraggingOpen() { mDisplayView.hideToolbar(); - showHistoryFragment(FragmentTransaction.TRANSIT_NONE); + showHistoryFragment(); } @Override @@ -1360,10 +1361,11 @@ public class Calculator extends Activity if (manager == null || manager.isDestroyed()) { return null; } - return (HistoryFragment) manager.findFragmentByTag(HistoryFragment.TAG); + final Fragment fragment = manager.findFragmentByTag(HistoryFragment.TAG); + return fragment == null || fragment.isRemoving() ? null : (HistoryFragment) fragment; } - private void showHistoryFragment(int transit) { + private void showHistoryFragment() { final FragmentManager manager = getFragmentManager(); if (manager == null || manager.isDestroyed()) { return; @@ -1376,7 +1378,7 @@ public class Calculator extends Activity stopActionModeOrContextMenu(); manager.beginTransaction() .replace(R.id.history_frame, new HistoryFragment(), HistoryFragment.TAG) - .setTransition(transit) + .setTransition(FragmentTransaction.TRANSIT_NONE) .addToBackStack(HistoryFragment.TAG) .commit(); diff --git a/src/com/android/calculator2/DragLayout.java b/src/com/android/calculator2/DragLayout.java index 338edf1..3264b73 100644 --- a/src/com/android/calculator2/DragLayout.java +++ b/src/com/android/calculator2/DragLayout.java @@ -222,34 +222,20 @@ public class DragLayout extends ViewGroup { public Animator createAnimator(boolean toOpen) { if (mIsOpen == toOpen) { - return null; + return ValueAnimator.ofFloat(0f, 1f).setDuration(0L); } - mIsOpen = true; + mIsOpen = toOpen; mHistoryFrame.setVisibility(VISIBLE); - final ValueAnimator animator = ValueAnimator.ofInt(mHistoryFrame.getTop(), - toOpen ? 0 : -mVerticalRange); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + final ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f); + animator.addListener(new AnimatorListenerAdapter() { @Override - public void onAnimationUpdate(ValueAnimator animator) { - final int top = (int) animator.getAnimatedValue(); - mHistoryFrame.offsetTopAndBottom(top - mHistoryFrame.getTop()); - - for (DragCallback c : mDragCallbacks) { - // Top is between [-mVerticalRange, 0]. - c.whileDragging(1f + (float) top / mVerticalRange); - } + public void onAnimationStart(Animator animation) { + mDragHelper.cancel(); + mDragHelper.smoothSlideViewTo(mHistoryFrame, 0, mIsOpen ? 0 : -mVerticalRange); } }); - if (!toOpen) { - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animator) { - setClosed(); - } - }); - } return animator; } diff --git a/src/com/android/calculator2/HistoryFragment.java b/src/com/android/calculator2/HistoryFragment.java index 109d8fc..c37241c 100644 --- a/src/com/android/calculator2/HistoryFragment.java +++ b/src/com/android/calculator2/HistoryFragment.java @@ -18,7 +18,6 @@ package com.android.calculator2; import android.animation.Animator; import android.app.Fragment; -import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.widget.RecyclerView; @@ -165,14 +164,7 @@ public class HistoryFragment extends Fragment implements DragLayout.DragCallback @Override public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) { - if (enter) { - if (transit == FragmentTransaction.TRANSIT_FRAGMENT_OPEN) { - return mDragLayout.createAnimator(true /* toOpen */); - } else { - return null; - } - } - return mDragLayout.createAnimator(false /* toOpen */); + return mDragLayout.createAnimator(enter); } @Override |