Format data usage and data limit consistently.
The usage formatter's format flag is change to match data limt flag.
Change-Id: I37d3c8c7bc67a918c793f4799e060010d269834d
Fixes: 63581756
Test: robotests
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index e37cc4a..6fddb2b 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -14,22 +14,15 @@
package com.android.settings.datausage;
-import static android.net.ConnectivityManager.TYPE_ETHERNET;
-
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.net.ConnectivityManager;
-import android.net.INetworkStatsSession;
import android.net.NetworkPolicyManager;
import android.net.NetworkTemplate;
-import android.net.TrafficStats;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.SystemProperties;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;
@@ -46,6 +39,7 @@
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SummaryPreference;
@@ -55,6 +49,7 @@
import com.android.settings.search.Indexable;
import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.net.DataUsageController;
+
import java.util.ArrayList;
import java.util.List;
@@ -244,13 +239,14 @@
updateState();
}
- private static CharSequence formatTitle(Context context, String template, long usageLevel) {
+ @VisibleForTesting
+ static CharSequence formatUsage(Context context, String template, long usageLevel) {
final float LARGER_SIZE = 1.25f * 1.25f; // (1/0.8)^2
final float SMALLER_SIZE = 1.0f / LARGER_SIZE; // 0.8^2
final int FLAGS = Spannable.SPAN_INCLUSIVE_INCLUSIVE;
final Formatter.BytesResult usedResult = Formatter.formatBytes(context.getResources(),
- usageLevel, Formatter.FLAG_SHORTER);
+ usageLevel, Formatter.FLAG_CALCULATE_ROUNDED);
final SpannableString enlargedValue = new SpannableString(usedResult.value);
enlargedValue.setSpan(new RelativeSizeSpan(LARGER_SIZE), 0, enlargedValue.length(), FLAGS);
@@ -263,7 +259,7 @@
final SpannableString fullTemplate = new SpannableString(template);
fullTemplate.setSpan(new RelativeSizeSpan(SMALLER_SIZE), 0, fullTemplate.length(), FLAGS);
return TextUtils.expandTemplate(fullTemplate,
- BidiFormatter.getInstance().unicodeWrap(formattedUsage));
+ BidiFormatter.getInstance().unicodeWrap(formattedUsage.toString()));
}
private void updateState() {
@@ -275,10 +271,9 @@
if (mSummaryPreference != null) {
mSummaryPreference.setTitle(
- formatTitle(context, getString(mDataUsageTemplate), info.usageLevel));
- long limit = mDataInfoController.getSummaryLimit(info);
+ formatUsage(context, getString(mDataUsageTemplate), info.usageLevel));
+ final long limit = mDataInfoController.getSummaryLimit(info);
mSummaryPreference.setSummary(info.period);
-
if (limit <= 0) {
mSummaryPreference.setChartEnabled(false);
} else {
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
index 750f785..dc53ca1 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
@@ -28,11 +28,13 @@
import android.net.ConnectivityManager;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
+import android.text.format.Formatter;
+
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settingslib.NetworkPolicyEditor;
-import java.util.ArrayList;
import org.junit.Before;
import org.junit.Test;
@@ -43,10 +45,13 @@
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DataUsageSummaryTest {
- @Mock private ConnectivityManager mManager;
+ @Mock
+ private ConnectivityManager mManager;
private Context mContext;
/**
@@ -77,6 +82,21 @@
dataUsageSummary.updateNetworkRestrictionSummary(preference);
verify(preference).setSummary(mContext.getResources().getQuantityString(
- R.plurals.network_restrictions_summary, 0, 0));
+ R.plurals.network_restrictions_summary, 0, 0));
+ }
+
+ @Test
+ @Config(shadows = {
+ SettingsShadowResources.class,
+ SettingsShadowResources.SettingsShadowTheme.class
+ })
+ public void formatUsage_shouldLookLikeFormatFileSize() {
+ SettingsShadowResources.overrideResource(com.android.internal.R.string.fileSizeSuffix,
+ "%1$s %2$s");
+ final long usage = 2147483648L; // 2GB
+ final String formattedUsage =
+ DataUsageSummary.formatUsage(mContext, "^1", usage).toString();
+ final String formattedAsFileSize = Formatter.formatFileSize(mContext, usage);
+ assertThat(formattedUsage).isEqualTo(formattedAsFileSize);
}
}