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
This commit is contained in:
@@ -39,6 +39,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.DonutView;
|
import com.android.settings.widget.DonutView;
|
||||||
|
|
||||||
|
import java.text.NumberFormat;
|
||||||
import java.util.Locale;
|
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.
|
* on a given storage volume. It is visualized with a donut graphing the % used.
|
||||||
*/
|
*/
|
||||||
public class StorageSummaryDonutPreference extends Preference implements View.OnClickListener {
|
public class StorageSummaryDonutPreference extends Preference implements View.OnClickListener {
|
||||||
private int mPercent = -1;
|
private double mPercent = -1;
|
||||||
|
|
||||||
public StorageSummaryDonutPreference(Context context) {
|
public StorageSummaryDonutPreference(Context context) {
|
||||||
this(context, null);
|
this(context, null);
|
||||||
@@ -64,8 +65,7 @@ public class StorageSummaryDonutPreference extends Preference implements View.On
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mPercent = MathUtils.constrain((int) ((usedBytes * 100) / totalBytes),
|
mPercent = usedBytes / (double) totalBytes;
|
||||||
(usedBytes > 0) ? 1 : 0, 100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -39,7 +39,7 @@ public class DonutView extends View {
|
|||||||
// From manual testing, this is the longest we can go without visual errors.
|
// From manual testing, this is the longest we can go without visual errors.
|
||||||
private static final int LINE_CHARACTER_LIMIT = 10;
|
private static final int LINE_CHARACTER_LIMIT = 10;
|
||||||
private float mStrokeWidth;
|
private float mStrokeWidth;
|
||||||
private int mPercent;
|
private double mPercent;
|
||||||
private Paint mBackgroundCircle;
|
private Paint mBackgroundCircle;
|
||||||
private Paint mFilledArc;
|
private Paint mFilledArc;
|
||||||
private TextPaint mTextPaint;
|
private TextPaint mTextPaint;
|
||||||
@@ -118,7 +118,7 @@ public class DonutView extends View {
|
|||||||
getWidth() - mStrokeWidth,
|
getWidth() - mStrokeWidth,
|
||||||
getHeight() - mStrokeWidth,
|
getHeight() - mStrokeWidth,
|
||||||
TOP,
|
TOP,
|
||||||
(360 * mPercent / 100),
|
(360 * (float) mPercent),
|
||||||
false,
|
false,
|
||||||
mFilledArc);
|
mFilledArc);
|
||||||
}
|
}
|
||||||
@@ -140,7 +140,7 @@ public class DonutView extends View {
|
|||||||
/**
|
/**
|
||||||
* Set a percentage full to have the donut graph.
|
* Set a percentage full to have the donut graph.
|
||||||
*/
|
*/
|
||||||
public void setPercentage(int percent) {
|
public void setPercentage(double percent) {
|
||||||
mPercent = percent;
|
mPercent = percent;
|
||||||
mPercentString = Utils.formatPercentage(mPercent);
|
mPercentString = Utils.formatPercentage(mPercent);
|
||||||
mFullString = getContext().getString(R.string.storage_percent_full);
|
mFullString = getContext().getString(R.string.storage_percent_full);
|
||||||
|
Reference in New Issue
Block a user