diff options
Diffstat (limited to 'src/com/android/calculator2')
-rw-r--r-- | src/com/android/calculator2/AlertDialogFragment.java | 4 | ||||
-rw-r--r-- | src/com/android/calculator2/Calculator.java | 29 | ||||
-rw-r--r-- | src/com/android/calculator2/CalculatorPadViewPager.java | 4 | ||||
-rw-r--r-- | src/com/android/calculator2/CalculatorResult.java | 6 | ||||
-rw-r--r-- | src/com/android/calculator2/DragController.java | 2 | ||||
-rw-r--r-- | src/com/android/calculator2/DragLayout.java | 21 | ||||
-rw-r--r-- | src/com/android/calculator2/Evaluator.java | 6 | ||||
-rw-r--r-- | src/com/android/calculator2/HistoryAdapter.java | 2 | ||||
-rw-r--r-- | src/com/android/calculator2/HistoryFragment.java | 6 |
9 files changed, 43 insertions, 37 deletions
diff --git a/src/com/android/calculator2/AlertDialogFragment.java b/src/com/android/calculator2/AlertDialogFragment.java index fdb7427..3939a73 100644 --- a/src/com/android/calculator2/AlertDialogFragment.java +++ b/src/com/android/calculator2/AlertDialogFragment.java @@ -23,8 +23,8 @@ import android.app.DialogFragment; import android.app.FragmentManager; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import android.view.LayoutInflater; import android.widget.TextView; diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java index b3d79eb..81ab1f6 100644 --- a/src/com/android/calculator2/Calculator.java +++ b/src/com/android/calculator2/Calculator.java @@ -44,10 +44,10 @@ import android.graphics.Color; import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; -import android.support.v4.content.ContextCompat; -import android.support.v4.view.ViewPager; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.core.content.ContextCompat; +import androidx.viewpager.widget.ViewPager; import android.text.Editable; import android.text.SpannableStringBuilder; import android.text.Spanned; @@ -535,9 +535,6 @@ public class Calculator extends Activity } public boolean isResultLayout() { - if (mCurrentState == CalculatorState.ANIMATE) { - throw new AssertionError("impossible state"); - } // Note that ERROR has INPUT, not RESULT layout. return mCurrentState == CalculatorState.INIT_FOR_RESULT || mCurrentState == CalculatorState.RESULT; @@ -1339,7 +1336,14 @@ public class Calculator extends Activity */ private boolean prepareForHistory() { if (mCurrentState == CalculatorState.ANIMATE) { - throw new AssertionError("onUserInteraction should have ended animation"); + // End the current animation and signal that preparation has failed. + // onUserInteraction is unreliable and onAnimationEnd() is asynchronous, so we + // aren't guaranteed to be out of the ANIMATE state by the time prepareForHistory is + // called. + if (mCurrentAnimator != null) { + mCurrentAnimator.end(); + } + return false; } else if (mCurrentState == CalculatorState.EVALUATE) { // Cancel current evaluation cancelIfEvaluating(true /* quiet */ ); @@ -1366,12 +1370,15 @@ public class Calculator extends Activity } private void showHistoryFragment() { - final FragmentManager manager = getFragmentManager(); - if (manager == null || manager.isDestroyed()) { + if (getHistoryFragment() != null) { + // If the fragment already exists, do nothing. return; } - if (getHistoryFragment() != null || !prepareForHistory()) { + final FragmentManager manager = getFragmentManager(); + if (manager == null || manager.isDestroyed() || !prepareForHistory()) { + // If the history fragment can not be shown, close the draglayout. + mDragLayout.setClosed(); return; } diff --git a/src/com/android/calculator2/CalculatorPadViewPager.java b/src/com/android/calculator2/CalculatorPadViewPager.java index 9197342..0f430b0 100644 --- a/src/com/android/calculator2/CalculatorPadViewPager.java +++ b/src/com/android/calculator2/CalculatorPadViewPager.java @@ -18,8 +18,8 @@ package com.android.calculator2; import android.content.Context; import android.graphics.Color; -import android.support.v4.view.PagerAdapter; -import android.support.v4.view.ViewPager; +import androidx.viewpager.widget.PagerAdapter; +import androidx.viewpager.widget.ViewPager; import android.util.AttributeSet; import android.util.Log; import android.view.GestureDetector; diff --git a/src/com/android/calculator2/CalculatorResult.java b/src/com/android/calculator2/CalculatorResult.java index d2ba9a8..8fa698b 100644 --- a/src/com/android/calculator2/CalculatorResult.java +++ b/src/com/android/calculator2/CalculatorResult.java @@ -23,9 +23,9 @@ import android.content.ClipboardManager; import android.content.Context; import android.graphics.Rect; import android.os.Build; -import android.support.annotation.IntDef; -import android.support.v4.content.ContextCompat; -import android.support.v4.os.BuildCompat; +import androidx.annotation.IntDef; +import androidx.core.content.ContextCompat; +import androidx.core.os.BuildCompat; import android.text.Layout; import android.text.Spannable; import android.text.SpannableString; diff --git a/src/com/android/calculator2/DragController.java b/src/com/android/calculator2/DragController.java index 1716cc9..5b9b1c6 100644 --- a/src/com/android/calculator2/DragController.java +++ b/src/com/android/calculator2/DragController.java @@ -17,7 +17,7 @@ package com.android.calculator2; import android.animation.ArgbEvaluator; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.TextView; diff --git a/src/com/android/calculator2/DragLayout.java b/src/com/android/calculator2/DragLayout.java index 3264b73..74b0a8e 100644 --- a/src/com/android/calculator2/DragLayout.java +++ b/src/com/android/calculator2/DragLayout.java @@ -24,8 +24,8 @@ import android.graphics.PointF; import android.graphics.Rect; import android.os.Bundle; import android.os.Parcelable; -import android.support.v4.view.ViewCompat; -import android.support.v4.widget.ViewDragHelper; +import androidx.core.view.ViewCompat; +import androidx.customview.widget.ViewDragHelper; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; @@ -209,14 +209,11 @@ public class DragLayout extends ViewGroup { return mIsOpen; } - private void setClosed() { - if (mIsOpen) { - mIsOpen = false; - mHistoryFrame.setVisibility(View.INVISIBLE); - - if (mCloseCallback != null) { - mCloseCallback.onClose(); - } + public void setClosed() { + mIsOpen = false; + mHistoryFrame.setVisibility(View.INVISIBLE); + if (mCloseCallback != null) { + mCloseCallback.onClose(); } } @@ -350,7 +347,9 @@ public class DragLayout extends ViewGroup { settleToOpen = releasedChild.getTop() > -(mVerticalRange / 2); } - if (mDragHelper.settleCapturedViewAt(0, settleToOpen ? 0 : -mVerticalRange)) { + // If the view is not visible, then settle it closed, not open. + if (mDragHelper.settleCapturedViewAt(0, settleToOpen && mIsOpen ? 0 + : -mVerticalRange)) { ViewCompat.postInvalidateOnAnimation(DragLayout.this); } } diff --git a/src/com/android/calculator2/Evaluator.java b/src/com/android/calculator2/Evaluator.java index 655aa70..eee9fa8 100644 --- a/src/com/android/calculator2/Evaluator.java +++ b/src/com/android/calculator2/Evaluator.java @@ -22,9 +22,9 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Handler; import android.preference.PreferenceManager; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.annotation.VisibleForTesting; import android.text.Spannable; import android.util.Log; diff --git a/src/com/android/calculator2/HistoryAdapter.java b/src/com/android/calculator2/HistoryAdapter.java index 629abe9..be50050 100644 --- a/src/com/android/calculator2/HistoryAdapter.java +++ b/src/com/android/calculator2/HistoryAdapter.java @@ -16,7 +16,7 @@ package com.android.calculator2; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/calculator2/HistoryFragment.java b/src/com/android/calculator2/HistoryFragment.java index c37241c..eb2a325 100644 --- a/src/com/android/calculator2/HistoryFragment.java +++ b/src/com/android/calculator2/HistoryFragment.java @@ -19,8 +19,8 @@ package com.android.calculator2; import android.animation.Animator; import android.app.Fragment; import android.os.Bundle; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.RecyclerView; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -29,7 +29,7 @@ import android.widget.Toolbar; import java.util.ArrayList; -import static android.support.v7.widget.RecyclerView.SCROLL_STATE_DRAGGING; +import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_DRAGGING; public class HistoryFragment extends Fragment implements DragLayout.DragCallback { |