From 5d272ce4ff457557070fc81cf7e2aa93f69ba5c8 Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Mon, 26 Jun 2017 13:42:36 -0700 Subject: [PATCH] Unify storage calculations. Due to one calculation using longs and the other using doubles, there were situations where the percentage was off-by-one between the two places. By changing both places to now use doubles to calculate percentages, the numbers should be unified. Change-Id: I4f4ed19326562e198273adc60a1593c7d1a6b6a7 Fixes: 37923610 Test: Manual --- .../deviceinfo/storage/StorageSummaryDonutPreference.java | 6 +++--- src/com/android/settings/widget/DonutView.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreference.java b/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreference.java index 44d3d44e714..d653f7c3d74 100644 --- a/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreference.java +++ b/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreference.java @@ -39,6 +39,7 @@ import com.android.settings.R; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.DonutView; +import java.text.NumberFormat; import java.util.Locale; /** @@ -46,7 +47,7 @@ import java.util.Locale; * on a given storage volume. It is visualized with a donut graphing the % used. */ public class StorageSummaryDonutPreference extends Preference implements View.OnClickListener { - private int mPercent = -1; + private double mPercent = -1; public StorageSummaryDonutPreference(Context context) { this(context, null); @@ -64,8 +65,7 @@ public class StorageSummaryDonutPreference extends Preference implements View.On return; } - mPercent = MathUtils.constrain((int) ((usedBytes * 100) / totalBytes), - (usedBytes > 0) ? 1 : 0, 100); + mPercent = usedBytes / (double) totalBytes; } @Override diff --git a/src/com/android/settings/widget/DonutView.java b/src/com/android/settings/widget/DonutView.java index 9a14b3bca4a..b50a50a5f7f 100644 --- a/src/com/android/settings/widget/DonutView.java +++ b/src/com/android/settings/widget/DonutView.java @@ -39,7 +39,7 @@ public class DonutView extends View { // From manual testing, this is the longest we can go without visual errors. private static final int LINE_CHARACTER_LIMIT = 10; private float mStrokeWidth; - private int mPercent; + private double mPercent; private Paint mBackgroundCircle; private Paint mFilledArc; private TextPaint mTextPaint; @@ -118,7 +118,7 @@ public class DonutView extends View { getWidth() - mStrokeWidth, getHeight() - mStrokeWidth, TOP, - (360 * mPercent / 100), + (360 * (float) mPercent), false, mFilledArc); } @@ -140,7 +140,7 @@ public class DonutView extends View { /** * Set a percentage full to have the donut graph. */ - public void setPercentage(int percent) { + public void setPercentage(double percent) { mPercent = percent; mPercentString = Utils.formatPercentage(mPercent); mFullString = getContext().getString(R.string.storage_percent_full);