summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorAnnie Chin <afchin@google.com>2017-01-06 01:26:50 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-01-06 01:26:50 +0000
commitef18cc85dda1d39c5c34e762f9cea4a0cbd6b95e (patch)
tree254db74cdd58b61faf856cb8584da7840513aa05 /src/com/android
parent0a5cff1f3de887920e7823432a7ebf350471f98a (diff)
parent8861323dcc360b12de1c369fcb84e88d634cfcb7 (diff)
downloadandroid_packages_apps_ExactCalculator-ef18cc85dda1d39c5c34e762f9cea4a0cbd6b95e.tar.gz
android_packages_apps_ExactCalculator-ef18cc85dda1d39c5c34e762f9cea4a0cbd6b95e.tar.bz2
android_packages_apps_ExactCalculator-ef18cc85dda1d39c5c34e762f9cea4a0cbd6b95e.zip
Merge "Polish History multiwindow support." into ub-calculator-euler
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/calculator2/Calculator.java12
-rw-r--r--src/com/android/calculator2/DragController.java30
-rw-r--r--src/com/android/calculator2/HistoryAdapter.java6
-rw-r--r--src/com/android/calculator2/HistoryFragment.java12
4 files changed, 41 insertions, 19 deletions
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java
index 1bd7c25..970683b 100644
--- a/src/com/android/calculator2/Calculator.java
+++ b/src/com/android/calculator2/Calculator.java
@@ -278,7 +278,7 @@ public class Calculator extends Activity
private ForegroundColorSpan mUnprocessedColorSpan = new ForegroundColorSpan(Color.RED);
// Whether the display is one line.
- private boolean mOneLine;
+ private boolean mIsOneLine;
private HistoryFragment mHistoryFragment = new HistoryFragment();
@@ -397,7 +397,7 @@ public class Calculator extends Activity
mInverseToggle = (TextView) findViewById(R.id.toggle_inv);
mModeToggle = (TextView) findViewById(R.id.toggle_mode);
- mOneLine = mResultText.getVisibility() == View.INVISIBLE;
+ mIsOneLine = mResultText.getVisibility() == View.INVISIBLE;
mInvertibleButtons = new View[] {
findViewById(R.id.fun_sin),
@@ -504,7 +504,7 @@ public class Calculator extends Activity
mClearButton.setVisibility(View.GONE);
}
- if (mOneLine) {
+ if (mIsOneLine) {
if (mCurrentState == CalculatorState.RESULT
|| mCurrentState == CalculatorState.EVALUATE
|| mCurrentState == CalculatorState.ANIMATE) {
@@ -547,6 +547,10 @@ public class Calculator extends Activity
|| mCurrentState == CalculatorState.RESULT;
}
+ public boolean isOneLine() {
+ return mIsOneLine;
+ }
+
@Override
protected void onDestroy() {
mDragLayout.removeDragCallback(this);
@@ -1159,7 +1163,7 @@ public class Calculator extends Activity
final float resultTranslationY = (mFormulaContainer.getBottom() - mResultText.getBottom())
- (mFormulaText.getPaddingBottom() - mResultText.getPaddingBottom());
float formulaTranslationY = -mFormulaContainer.getBottom();
- if (mOneLine) {
+ if (mIsOneLine) {
// Position the result text.
mResultText.setY(mResultText.getBottom());
formulaTranslationY = -(findViewById(R.id.toolbar).getBottom()
diff --git a/src/com/android/calculator2/DragController.java b/src/com/android/calculator2/DragController.java
index 7642a64..e90d1b4 100644
--- a/src/com/android/calculator2/DragController.java
+++ b/src/com/android/calculator2/DragController.java
@@ -56,6 +56,8 @@ public final class DragController {
private boolean mAnimationInitialized;
+ private boolean mOneLine;
+
private AnimationController mAnimationController;
private Evaluator mEvaluator;
@@ -64,7 +66,8 @@ public final class DragController {
mEvaluator = evaluator;
}
- public void initializeController(boolean isResult) {
+ public void initializeController(boolean isResult, boolean oneLine) {
+ mOneLine = oneLine;
if (EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
// Empty display
mAnimationController = new EmptyAnimationController();
@@ -179,10 +182,11 @@ public final class DragController {
* Reset all initialized values.
* If the DragLayout is closed, set recyclerview to INVISIBLE to avoid flickering.
*/
- public void initializeAnimation(RecyclerView recyclerView, boolean isResult, boolean isOpen) {
+ public void initializeAnimation(RecyclerView recyclerView, boolean isResult,
+ boolean oneLine, boolean isOpen) {
recyclerView.setVisibility(isOpen ? View.VISIBLE : View.INVISIBLE);
mAnimationInitialized = false;
- initializeController(isResult);
+ initializeController(isResult, oneLine);
}
public interface AnimateTextInterface {
@@ -246,13 +250,19 @@ public final class DragController {
public void initializeFormulaTranslationY(AlignedTextView formula,
CalculatorResult result) {
- // Baseline of formula moves by the difference in formula bottom padding and the
- // difference in result height.
- mFormulaTranslationY =
- mDisplayFormula.getPaddingBottom() - formula.getPaddingBottom()
- + mDisplayResult.getHeight() - result.getHeight()
- - mBottomPaddingHeight;
-
+ if (mOneLine) {
+ // Disregard result since we set it to GONE in the one-line case.
+ mFormulaTranslationY =
+ mDisplayFormula.getPaddingBottom() - formula.getPaddingBottom()
+ - mBottomPaddingHeight;
+ } else {
+ // Baseline of formula moves by the difference in formula bottom padding and the
+ // difference in result height.
+ mFormulaTranslationY =
+ mDisplayFormula.getPaddingBottom() - formula.getPaddingBottom()
+ + mDisplayResult.getHeight() - result.getHeight()
+ - mBottomPaddingHeight;
+ }
}
public void initializeFormulaTranslationX(AlignedTextView formula) {
diff --git a/src/com/android/calculator2/HistoryAdapter.java b/src/com/android/calculator2/HistoryAdapter.java
index 0e7ff34..fe2f2c0 100644
--- a/src/com/android/calculator2/HistoryAdapter.java
+++ b/src/com/android/calculator2/HistoryAdapter.java
@@ -43,6 +43,7 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
private List<HistoryItem> mDataSet;
private boolean mIsResultLayout;
+ private boolean mIsOneLine;
public HistoryAdapter(ArrayList<HistoryItem> dataSet) {
mDataSet = dataSet;
@@ -75,6 +76,7 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
holder.mResult.setEvaluator(mEvaluator, item.getEvaluatorIndex());
if (item.getEvaluatorIndex() == Evaluator.HISTORY_MAIN_INDEX) {
holder.mDate.setText(R.string.title_current_expression);
+ holder.mResult.setVisibility(mIsOneLine ? View.GONE : View.VISIBLE);
} else {
// If the previous item occurred on the same date, the current item does not need
// a date header.
@@ -129,6 +131,10 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
mIsResultLayout = isResult;
}
+ public void setIsOneLine(boolean isOneLine) {
+ mIsOneLine = isOneLine;
+ }
+
public void setEvaluator(Evaluator evaluator) {
mEvaluator = evaluator;
}
diff --git a/src/com/android/calculator2/HistoryFragment.java b/src/com/android/calculator2/HistoryFragment.java
index a4ae9c8..883f229 100644
--- a/src/com/android/calculator2/HistoryFragment.java
+++ b/src/com/android/calculator2/HistoryFragment.java
@@ -108,13 +108,14 @@ public class HistoryFragment extends Fragment implements DragLayout.DragCallback
mAdapter.setEvaluator(mEvaluator);
final boolean isResultLayout = activity.isResultLayout();
+ final boolean isOneLine = activity.isOneLine();
mDragLayout = (DragLayout) activity.findViewById(R.id.drag_layout);
mDragLayout.removeDragCallback(this);
mDragLayout.addDragCallback(this);
if (mEvaluator != null) {
- initializeController(isResultLayout);
+ initializeController(isResultLayout, isOneLine);
final long maxIndex = mEvaluator.getMaxIndex();
@@ -143,6 +144,7 @@ public class HistoryFragment extends Fragment implements DragLayout.DragCallback
mDataSet = newDataSet;
mAdapter.setDataSet(mDataSet);
mAdapter.setIsResultLayout(isResultLayout);
+ mAdapter.setIsOneLine(activity.isOneLine());
}
mAdapter.notifyDataSetChanged();
@@ -151,10 +153,10 @@ public class HistoryFragment extends Fragment implements DragLayout.DragCallback
@Override
public void onStart() {
super.onStart();
-
+ final Calculator activity = (Calculator) getActivity();
// The orientation may have changed.
mDragController.initializeAnimation(mRecyclerView,
- ((Calculator) getActivity()).isResultLayout(), mDragLayout.isOpen());
+ activity.isResultLayout(), activity.isOneLine(), mDragLayout.isOpen());
}
@Override
@@ -171,7 +173,7 @@ public class HistoryFragment extends Fragment implements DragLayout.DragCallback
super.onDestroyView();
}
- private void initializeController(boolean isResult) {
+ private void initializeController(boolean isResult, boolean isOneLine) {
mDragController.setDisplayFormula(
(CalculatorFormula) getActivity().findViewById(R.id.formula));
@@ -182,7 +184,7 @@ public class HistoryFragment extends Fragment implements DragLayout.DragCallback
mDragController.setEvaluator(mEvaluator);
- mDragController.initializeController(isResult);
+ mDragController.initializeController(isResult, isOneLine);
}
public boolean stopActionModeOrContextMenu() {