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);
     }
 }