summaryrefslogtreecommitdiff
path: root/src/com/android/calculator2
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/calculator2')
-rw-r--r--src/com/android/calculator2/AlertDialogFragment.java4
-rw-r--r--src/com/android/calculator2/Calculator.java29
-rw-r--r--src/com/android/calculator2/CalculatorPadViewPager.java4
-rw-r--r--src/com/android/calculator2/CalculatorResult.java6
-rw-r--r--src/com/android/calculator2/DragController.java2
-rw-r--r--src/com/android/calculator2/DragLayout.java21
-rw-r--r--src/com/android/calculator2/Evaluator.java6
-rw-r--r--src/com/android/calculator2/HistoryAdapter.java2
-rw-r--r--src/com/android/calculator2/HistoryFragment.java6
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 {