Merge changes If6c32264,Idfdae761,I437fd3c4 into ub-calculator-euler
* changes:
Set accent color in theme.
Animate text colors for drag.
Show "Empty History" only when completely empty.
diff --git a/res/values/themes.xml b/res/values/themes.xml
index b8c7600..b75df94 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -19,6 +19,7 @@
<style name="Theme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="android:colorPrimary">@color/calculator_accent_color</item>
+ <item name="android:colorAccent">@color/calculator_accent_color</item>
<item name="android:statusBarColor">@color/calculator_accent_color</item>
<item name="android:windowSoftInputMode">stateAlwaysHidden</item>
</style>
diff --git a/src/com/android/calculator2/DragController.java b/src/com/android/calculator2/DragController.java
index e195463..1c31767 100644
--- a/src/com/android/calculator2/DragController.java
+++ b/src/com/android/calculator2/DragController.java
@@ -16,6 +16,7 @@
package com.android.calculator2;
+import android.animation.ArgbEvaluator;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
@@ -27,6 +28,8 @@
private static final String TAG = "DragController";
+ private static final ArgbEvaluator mColorEvaluator = new ArgbEvaluator();
+
// References to views from the Calculator Display.
private CalculatorFormula mDisplayFormula;
private CalculatorResult mDisplayResult;
@@ -42,6 +45,12 @@
private int mDisplayHeight;
+ private int mFormulaStartColor;
+ private int mFormulaEndColor;
+
+ private int mResultStartColor;
+ private int mResultEndColor;
+
private boolean mAnimationInitialized;
private AnimationController mAnimationController;
@@ -78,7 +87,7 @@
mToolbar = toolbar;
}
- public void animateViews(float yFraction, RecyclerView recyclerView, int itemCount) {
+ public void animateViews(float yFraction, RecyclerView recyclerView) {
final HistoryAdapter.ViewHolder vh = (HistoryAdapter.ViewHolder)
recyclerView.findViewHolderForAdapterPosition(0);
if (yFraction > 0) {
@@ -92,6 +101,8 @@
if (!mAnimationInitialized) {
mAnimationController.initializeScales(formula, result);
+ mAnimationController.initializeColorAnimators(formula, result);
+
mAnimationController.initializeFormulaTranslationX(formula);
mAnimationController.initializeFormulaTranslationY(formula, result);
@@ -122,6 +133,12 @@
result.setTranslationX(mAnimationController.getResultTranslationX(yFraction));
result.setTranslationY(mAnimationController.getResultTranslationY(yFraction));
+ formula.setTextColor((int) mColorEvaluator.evaluate(yFraction, mFormulaStartColor,
+ mFormulaEndColor));
+
+ result.setTextColor((int) mColorEvaluator.evaluate(yFraction, mResultStartColor,
+ mResultEndColor));
+
date.setTranslationY(mAnimationController.getDateTranslationY(yFraction));
}
} else if (EvaluatorStateUtils.isDisplayEmpty(mEvaluator)) {
@@ -165,6 +182,8 @@
void initializeDisplayHeight();
+ void initializeColorAnimators(AlignedTextView formula, CalculatorResult result);
+
void initializeScales(AlignedTextView formula, CalculatorResult result);
void initializeFormulaTranslationX(AlignedTextView formula);
@@ -205,6 +224,14 @@
// no-op
}
+ public void initializeColorAnimators(AlignedTextView formula, CalculatorResult result) {
+ mFormulaStartColor = mDisplayFormula.getCurrentTextColor();
+ mFormulaEndColor = formula.getCurrentTextColor();
+
+ mResultStartColor = mDisplayResult.getCurrentTextColor();
+ mResultEndColor = result.getCurrentTextColor();
+ }
+
public void initializeScales(AlignedTextView formula, CalculatorResult result) {
// Calculate the scale for the text
mFormulaScale = (mDisplayFormula.getTextSize() * 1.0f) / formula.getTextSize();
diff --git a/src/com/android/calculator2/HistoryFragment.java b/src/com/android/calculator2/HistoryFragment.java
index b16ccdb..3692a0f 100644
--- a/src/com/android/calculator2/HistoryFragment.java
+++ b/src/com/android/calculator2/HistoryFragment.java
@@ -44,7 +44,7 @@
@Override
public void whileDragging(float yFraction) {
- mDragController.animateViews(yFraction, mRecyclerView, mAdapter.getItemCount());
+ mDragController.animateViews(yFraction, mRecyclerView);
}
@Override
@@ -158,7 +158,7 @@
for (long i = 0; i < maxIndex; ++i) {
newDataSet.add(null);
}
- if (maxIndex == 0) {
+ if (newDataSet.isEmpty()) {
newDataSet.add(new HistoryItem());
}
mDataSet = newDataSet;