summaryrefslogtreecommitdiffstats
path: root/src/com/android/calculator2/CalculatorText.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/calculator2/CalculatorText.java')
-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;
}