summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Boehm <hboehm@google.com>2015-10-01 14:41:37 -0700
committerHans Boehm <hboehm@google.com>2015-10-13 00:14:45 +0000
commit9bc3f44b3118ab801f1ab6f48d0a2b9e818017cb (patch)
tree45bc3b45f1246cd864be409790169dc937e591fa
parent26dfa3dd39607d075c53ed6798ad9ffae443846f (diff)
downloadandroid_packages_apps_ExactCalculator-9bc3f44b3118ab801f1ab6f48d0a2b9e818017cb.tar.gz
android_packages_apps_ExactCalculator-9bc3f44b3118ab801f1ab6f48d0a2b9e818017cb.tar.bz2
android_packages_apps_ExactCalculator-9bc3f44b3118ab801f1ab6f48d0a2b9e818017cb.zip
Correctly set formula text size after rotation
Bug: 22233200 Avoid repeatedly resetting text size to maximum, due to repeated onMeasure calls. Suppress text size change animation when the application is restarted. Change-Id: Ic8b20deab2553176260051fa787416654bf0b3ef
-rw-r--r--src/com/android/calculator2/CalculatorText.java29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/com/android/calculator2/CalculatorText.java b/src/com/android/calculator2/CalculatorText.java
index 109c2af..f944071 100644
--- a/src/com/android/calculator2/CalculatorText.java
+++ b/src/com/android/calculator2/CalculatorText.java
@@ -138,18 +138,22 @@ public class CalculatorText extends AlignedTextView implements View.OnLongClickL
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- // Prevent shrinking/resizing with our variable textSize.
- if (!isLaidOut()) {
- setTextSize(TypedValue.COMPLEX_UNIT_PX, mMaximumTextSize);
- setMinHeight(getLineHeight() + getCompoundPaddingBottom() + getCompoundPaddingTop());
- }
-
// Re-calculate our textSize based on new width.
final int width = MeasureSpec.getSize(widthMeasureSpec)
- getPaddingLeft() - getPaddingRight();
if (mWidthConstraint != width) {
mWidthConstraint = width;
- setTextSize(TypedValue.COMPLEX_UNIT_PX, getVariableTextSize(getText()));
+
+ if (!isLaidOut()) {
+ // Prevent shrinking/resizing with our variable textSize.
+ setTextSizeInternal(TypedValue.COMPLEX_UNIT_PX, mMaximumTextSize,
+ false /* notifyListener */);
+ setMinHeight(getLineHeight() + getCompoundPaddingBottom()
+ + getCompoundPaddingTop());
+ }
+
+ setTextSizeInternal(TypedValue.COMPLEX_UNIT_PX, getVariableTextSize(getText()),
+ false);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
@@ -164,16 +168,19 @@ public class CalculatorText extends AlignedTextView implements View.OnLongClickL
setTextSize(TypedValue.COMPLEX_UNIT_PX, getVariableTextSize(text.toString()));
}
- @Override
- public void setTextSize(int unit, float size) {
+ private void setTextSizeInternal(int unit, float size, boolean notifyListener) {
final float oldTextSize = getTextSize();
super.setTextSize(unit, size);
-
- if (mOnTextSizeChangeListener != null && getTextSize() != oldTextSize) {
+ if (notifyListener && mOnTextSizeChangeListener != null && getTextSize() != oldTextSize) {
mOnTextSizeChangeListener.onTextSizeChanged(this, oldTextSize);
}
}
+ @Override
+ public void setTextSize(int unit, float size) {
+ setTextSizeInternal(unit, size, true);
+ }
+
public float getMinimumTextSize() {
return mMinimumTextSize;
}