Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4596a46e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix "disappearing history fragment" issue." into ub-calculator-euler

parents a3a3375f a8b31db9
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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();

+7 −21
Original line number Diff line number Diff line
@@ -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() {
            @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);
                }
            }
        });
        if (!toOpen) {
        final ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f);
        animator.addListener(new AnimatorListenerAdapter() {
            @Override
                public void onAnimationEnd(Animator animator) {
                    setClosed();
            public void onAnimationStart(Animator animation) {
                mDragHelper.cancel();
                mDragHelper.smoothSlideViewTo(mHistoryFrame, 0, mIsOpen ? 0 : -mVerticalRange);
            }
        });
        }

        return animator;
    }
+1 −9
Original line number Diff line number Diff line
@@ -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