From 71d793cc2a89355816bfb12d9ee9dcdeb68db15e Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 3 May 2019 15:57:05 -0700 Subject: [PATCH] Format app data usage using IEC unit, not SI unit. Fixes: 131924586 Test: visual Change-Id: Iedbd15fb9c98a5c93089708e40175cbf5572eeda --- .../DataUsageSummaryPreferenceController.java | 3 +-- ...iDataUsageSummaryPreferenceController.java | 5 ++-- .../DataUsagePreferenceController.java | 3 ++- .../DataUsagePreferenceControllerTest.java | 27 ++++++++++--------- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index a06bb7709c3..600b9e8236c 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -25,7 +25,6 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionPlan; import android.text.TextUtils; -import android.text.format.Formatter; import android.util.Log; import android.util.RecurrenceRule; @@ -247,7 +246,7 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll summaryPreference.setChartEnabled(false); } else { summaryPreference.setChartEnabled(true); - summaryPreference.setLabels(Formatter.formatFileSize(mContext, 0 /* sizeBytes */), + summaryPreference.setLabels(DataUsageUtils.formatDataUsage(mContext, 0 /* sizeBytes */), DataUsageUtils.formatDataUsage(mContext, mDataBarSize)); summaryPreference.setProgress(mDataplanUse / (float) mDataBarSize); } diff --git a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java index 8b6d10a5a3f..0551fc2391f 100644 --- a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java @@ -19,7 +19,6 @@ package com.android.settings.datausage; import android.app.Activity; import android.net.NetworkTemplate; import android.telephony.SubscriptionManager; -import android.text.format.Formatter; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; @@ -28,7 +27,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.net.DataUsageController; /** - * The controller displays a data usage chart for the specified Wi-Fi network. + * The controller displays a data usage chart for the specified Wi-Fi network. */ public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPreferenceController { final String mNetworkId; @@ -66,7 +65,7 @@ public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPr // TODO(b/126142293): Passpoint Wi-Fi should have limit of data usage and time remaining mPreference.setProgress(100); - mPreference.setLabels(Formatter.formatFileSize(mContext, /* sizeBytes */ 0), + mPreference.setLabels(DataUsageUtils.formatDataUsage(mContext, /* sizeBytes */ 0), DataUsageUtils.formatDataUsage(mContext, info.usageLevel)); } } diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java index f9e0a9724d6..3f55003801f 100644 --- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java +++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java @@ -28,6 +28,7 @@ import android.text.format.Formatter; import androidx.preference.Preference; import com.android.settings.R; +import com.android.settings.datausage.DataUsageUtils; import com.android.settingslib.net.DataUsageController; /** @@ -77,7 +78,7 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro if (enabled) { preference.setSummary(mContext.getString(R.string.data_usage_template, - Formatter.formatFileSize(mContext, mDataUsageInfo.usageLevel), + DataUsageUtils.formatDataUsage(mContext, mDataUsageInfo.usageLevel), mDataUsageInfo.period)); } } diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java index 348f8b4cbe1..5ffda8179e2 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java @@ -18,20 +18,15 @@ package com.android.settings.network.telephony; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyLong; -import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import android.app.Activity; -import android.app.usage.NetworkStats; import android.app.usage.NetworkStatsManager; import android.content.Context; import android.content.Intent; +import android.net.TrafficStats; import android.provider.Settings; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -114,16 +109,24 @@ public class DataUsagePreferenceControllerTest { } @Test - public void updateState_noUsageData_shouldDisablePreference() throws Exception { - final NetworkStatsManager networkStatsManager = mock(NetworkStatsManager.class); - when(networkStatsManager.querySummaryForDevice(anyInt() /* networkType */, - anyString() /* subscriberId */, anyLong() /* startTime */, anyLong() /* endTime */)) - .thenReturn(mock(NetworkStats.Bucket.class)); + public void updateState_noUsageData_shouldDisablePreference() { ReflectionHelpers.setField( - mController, "mDataUsageInfo", new DataUsageController.DataUsageInfo()); + mController, "mDataUsageInfo", new DataUsageController.DataUsageInfo()); mController.updateState(mPreference); assertThat(mPreference.isEnabled()).isFalse(); } + + @Test + public void updateState_shouldUseIECUnit() { + final DataUsageController.DataUsageInfo usageInfo = new DataUsageController.DataUsageInfo(); + usageInfo.usageLevel = TrafficStats.MB_IN_BYTES; + ReflectionHelpers.setField(mController, "mDataUsageInfo", usageInfo); + + mController.updateState(mPreference); + + assertThat(mPreference.getSummary().toString()) + .contains("1.00 MB"); + } }