summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-02-09 19:05:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-02-09 19:05:32 +0000
commit4596a46e3040aefe570cf250d8f3311c90e1dff8 (patch)
treeee9ee33020202768b917c83276a723b92ccaae15
parenta3a3375f7b2ad00ff993f53eda8c1583cce61e02 (diff)
parenta8b31db9656c2af194c8ff1e3062aa9667ae5da4 (diff)
downloadExactCalculator-4596a46e3040aefe570cf250d8f3311c90e1dff8.tar.gz
Merge "Fix "disappearing history fragment" issue." into ub-calculator-euler
-rw-r--r--src/com/android/calculator2/Calculator.java12
-rw-r--r--src/com/android/calculator2/DragLayout.java28
-rw-r--r--src/com/android/calculator2/HistoryFragment.java10
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