From 8861323dcc360b12de1c369fcb84e88d634cfcb7 Mon Sep 17 00:00:00 2001 From: Annie Chin Date: Wed, 4 Jan 2017 12:21:52 -0800 Subject: Polish History multiwindow support. Fixes: 34081054 Fixes: 34081005 Fixes: 32987283 -Hide quick result from current expression when we are in one-line display mode. -Adjust bottom padding for history item in one-line mode. -Add font padding when bottom padding for items is 0 to prevent running into the bottom edge of the display. Change-Id: Icf3ddd4951ac0e4ab680124ecff7dd5258ccc05f --- src/com/android/calculator2/Calculator.java | 12 ++++++---- src/com/android/calculator2/DragController.java | 30 ++++++++++++++++-------- src/com/android/calculator2/HistoryAdapter.java | 6 +++++ src/com/android/calculator2/HistoryFragment.java | 12 ++++++---- 4 files changed, 41 insertions(+), 19 deletions(-) (limited to 'src/com') diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java index c149e84..705225b 100644 --- a/src/com/android/calculator2/Calculator.java +++ b/src/com/android/calculator2/Calculator.java @@ -297,7 +297,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(); @@ -415,7 +415,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), @@ -519,7 +519,7 @@ public class Calculator extends Activity mClearButton.setVisibility(View.GONE); } - if (mOneLine) { + if (mIsOneLine) { if (mCurrentState == CalculatorState.RESULT || mCurrentState == CalculatorState.EVALUATE || mCurrentState == CalculatorState.ANIMATE) { @@ -562,6 +562,10 @@ public class Calculator extends Activity || mCurrentState == CalculatorState.RESULT; } + public boolean isOneLine() { + return mIsOneLine; + } + @Override protected void onDestroy() { mDragLayout.removeDragCallback(mDragCallback); @@ -1179,7 +1183,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 mDataSet; private boolean mIsResultLayout; + private boolean mIsOneLine; public HistoryAdapter(ArrayList dataSet) { mDataSet = dataSet; @@ -75,6 +76,7 @@ public class HistoryAdapter extends RecyclerView.Adapter