Fix the bytes displayed unit
This used to by MByte and GByte, not used in other places in Settings, and not align with the data summary on the same page. Unify to MB and GB to align with other places in Settings and the data summary on the same page. Fix: 277900792 Test: Visual Test: Unit test Change-Id: I9f8ceac470aede135b7921c391c063ba87da661e
This commit is contained in:
@@ -22,8 +22,6 @@ import android.app.settings.SettingsEnums;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.icu.text.MeasureFormat;
|
|
||||||
import android.icu.util.MeasureUnit;
|
|
||||||
import android.net.NetworkPolicy;
|
import android.net.NetworkPolicy;
|
||||||
import android.net.NetworkTemplate;
|
import android.net.NetworkTemplate;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -322,14 +320,10 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
|
|||||||
final boolean isLimit = getArguments().getBoolean(EXTRA_LIMIT);
|
final boolean isLimit = getArguments().getBoolean(EXTRA_LIMIT);
|
||||||
final long bytes = isLimit ? editor.getPolicyLimitBytes(template)
|
final long bytes = isLimit ? editor.getPolicyLimitBytes(template)
|
||||||
: editor.getPolicyWarningBytes(template);
|
: editor.getPolicyWarningBytes(template);
|
||||||
final long limitDisabled = isLimit ? LIMIT_DISABLED : WARNING_DISABLED;
|
|
||||||
|
|
||||||
final MeasureFormat formatter = MeasureFormat.getInstance(
|
|
||||||
getContext().getResources().getConfiguration().locale,
|
|
||||||
MeasureFormat.FormatWidth.SHORT);
|
|
||||||
final String[] unitNames = new String[] {
|
final String[] unitNames = new String[] {
|
||||||
formatter.getUnitDisplayName(MeasureUnit.MEGABYTE),
|
DataUsageFormatter.INSTANCE.getBytesDisplayUnit(getResources(), MIB_IN_BYTES),
|
||||||
formatter.getUnitDisplayName(MeasureUnit.GIGABYTE)
|
DataUsageFormatter.INSTANCE.getBytesDisplayUnit(getResources(), GIB_IN_BYTES),
|
||||||
};
|
};
|
||||||
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
|
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
|
||||||
getContext(), android.R.layout.simple_spinner_item, unitNames);
|
getContext(), android.R.layout.simple_spinner_item, unitNames);
|
||||||
|
32
src/com/android/settings/datausage/DataUsageFormatter.kt
Normal file
32
src/com/android/settings/datausage/DataUsageFormatter.kt
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.settings.datausage
|
||||||
|
|
||||||
|
import android.content.res.Resources
|
||||||
|
import android.text.format.Formatter
|
||||||
|
|
||||||
|
object DataUsageFormatter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the display unit of the given bytes.
|
||||||
|
*
|
||||||
|
* Similar to MeasureFormat.getUnitDisplayName(), but with the expected result for the bytes in
|
||||||
|
* Settings, and align with other places in Settings.
|
||||||
|
*/
|
||||||
|
fun Resources.getBytesDisplayUnit(bytes: Long): String =
|
||||||
|
Formatter.formatBytes(this, bytes, Formatter.FLAG_IEC_UNITS).units
|
||||||
|
}
|
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2023 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.settings.datausage
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.test.core.app.ApplicationProvider
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import com.android.settings.datausage.DataUsageFormatter.getBytesDisplayUnit
|
||||||
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
|
@RunWith(AndroidJUnit4::class)
|
||||||
|
class DataUsageFormatterTest {
|
||||||
|
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun getUnitDisplayName_megaByte() {
|
||||||
|
val displayName = context.resources.getBytesDisplayUnit(ONE_MEGA_BYTE_IN_BYTES)
|
||||||
|
|
||||||
|
assertThat(displayName).isEqualTo("MB")
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun getUnitDisplayName_gigaByte() {
|
||||||
|
val displayName = context.resources.getBytesDisplayUnit(ONE_GIGA_BYTE_IN_BYTES)
|
||||||
|
|
||||||
|
assertThat(displayName).isEqualTo("GB")
|
||||||
|
}
|
||||||
|
|
||||||
|
private companion object {
|
||||||
|
const val ONE_MEGA_BYTE_IN_BYTES = 1024L * 1024
|
||||||
|
const val ONE_GIGA_BYTE_IN_BYTES = 1024L * 1024 * 1024
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user