summaryrefslogtreecommitdiff
path: root/core/java/android/widget/TextView.java
diff options
context:
space:
mode:
authorSiyamed Sinir <siyamed@google.com>2018-03-19 22:15:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-03-19 22:15:31 +0000
commit46c84bf237f0e1e4a60fbe763d0b699ad253ca85 (patch)
tree7d67be162555e884bbb1f5ea0bea56b0d210f7b7 /core/java/android/widget/TextView.java
parent46c0e91b74fbddf0031175ec855b11a12581fe11 (diff)
parent948693ea28e72a42cd36a014e91016bc967a71a4 (diff)
Merge "Fix rounding error related to autoSize" into pi-dev
Diffstat (limited to 'core/java/android/widget/TextView.java')
-rw-r--r--core/java/android/widget/TextView.java17
1 files changed, 5 insertions, 12 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index f77a6b72787f..72c8426482aa 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -1918,19 +1918,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
// Calculate the sizes set based on minimum size, maximum size and step size if we do
// not have a predefined set of sizes or if the current sizes array is empty.
if (!mHasPresetAutoSizeValues || mAutoSizeTextSizesInPx.length == 0) {
- int autoSizeValuesLength = 1;
- float currentSize = Math.round(mAutoSizeMinTextSizeInPx);
- while (Math.round(currentSize + mAutoSizeStepGranularityInPx)
- <= Math.round(mAutoSizeMaxTextSizeInPx)) {
- autoSizeValuesLength++;
- currentSize += mAutoSizeStepGranularityInPx;
- }
-
- int[] autoSizeTextSizesInPx = new int[autoSizeValuesLength];
- float sizeToAdd = mAutoSizeMinTextSizeInPx;
+ final int autoSizeValuesLength = ((int) Math.floor((mAutoSizeMaxTextSizeInPx
+ - mAutoSizeMinTextSizeInPx) / mAutoSizeStepGranularityInPx)) + 1;
+ final int[] autoSizeTextSizesInPx = new int[autoSizeValuesLength];
for (int i = 0; i < autoSizeValuesLength; i++) {
- autoSizeTextSizesInPx[i] = Math.round(sizeToAdd);
- sizeToAdd += mAutoSizeStepGranularityInPx;
+ autoSizeTextSizesInPx[i] = Math.round(
+ mAutoSizeMinTextSizeInPx + (i * mAutoSizeStepGranularityInPx));
}
mAutoSizeTextSizesInPx = cleanupAutoSizePresetSizes(autoSizeTextSizesInPx);
}