diff options
author | Hongguang Chen <hgchen@google.com> | 2023-05-24 16:53:23 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-24 16:53:23 +0000 |
commit | 3fb55f007b62b0da2775f80b1b03ba1906059a9d (patch) | |
tree | b8056fad069b7db833084b396b3b6ca0e59233e4 | |
parent | 3b0437d278200d4dba597a94ec090c00c581e957 (diff) | |
parent | 37b165f59e60010d36d77a69116179be3b957eef (diff) | |
download | TvSettings-3fb55f007b62b0da2775f80b1b03ba1906059a9d.tar.gz |
Merge "Localize numbers in resolution selection Setting" into udc-dev am: 37b165f59e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/TvSettings/+/23367057
Change-Id: I503b7b6eacafccceae2ffa63f5d2ee9d6e7d372e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | Settings/src/com/android/tv/settings/device/displaysound/ResolutionSelectionFragment.java | 3 | ||||
-rw-r--r-- | Settings/src/com/android/tv/settings/util/ResolutionSelectionUtils.java | 31 |
2 files changed, 28 insertions, 6 deletions
diff --git a/Settings/src/com/android/tv/settings/device/displaysound/ResolutionSelectionFragment.java b/Settings/src/com/android/tv/settings/device/displaysound/ResolutionSelectionFragment.java index b7426e7d0..db515ba65 100644 --- a/Settings/src/com/android/tv/settings/device/displaysound/ResolutionSelectionFragment.java +++ b/Settings/src/com/android/tv/settings/device/displaysound/ResolutionSelectionFragment.java @@ -169,7 +169,8 @@ public class ResolutionSelectionFragment extends PreferenceControllerFragment { mode.getPhysicalWidth(), mode.getPhysicalHeight()), ResolutionSelectionUtils.getRefreshRateString(mode.getRefreshRate())); - String summary = mode.getPhysicalWidth() + " x " + mode.getPhysicalHeight(); + String summary = ResolutionSelectionUtils.getResolutionSummary(mode.getPhysicalWidth(), + mode.getPhysicalHeight()); RadioPreference pref = new RadioPreference(getContext()); pref.setTitle(title); pref.setSummary(summary); diff --git a/Settings/src/com/android/tv/settings/util/ResolutionSelectionUtils.java b/Settings/src/com/android/tv/settings/util/ResolutionSelectionUtils.java index 3c2069aa9..72150403e 100644 --- a/Settings/src/com/android/tv/settings/util/ResolutionSelectionUtils.java +++ b/Settings/src/com/android/tv/settings/util/ResolutionSelectionUtils.java @@ -16,25 +16,35 @@ package com.android.tv.settings.util; +import static java.math.RoundingMode.HALF_UP; + import android.content.Context; +import android.icu.number.LocalizedNumberFormatter; +import android.icu.number.NumberFormatter; import android.view.Display; import com.android.tv.settings.R; +import java.util.Locale; + /** This utility class for Resolution Setting **/ public class ResolutionSelectionUtils { /** - * Returns the refresh rate converted to a string. If the refresh rate has only 0s after the - * floating point, they are removed. The unit "Hz" is added to end of refresh rate. + * Returns the refresh rate converted to a string in the local language. If the refresh rate has + * only 0s after the floating point, they are removed. + * The unit "Hz" is added to end of refresh rate. */ public static String getRefreshRateString(float refreshRate) { - float roundedRefreshRate = Math.round(refreshRate * 100.0f) / 100.0f; + LocalizedNumberFormatter localizedNumberFormatter = NumberFormatter.with().roundingMode( + HALF_UP).locale(Locale.getDefault()); + double roundedRefreshRate = Math.round(refreshRate * 100.0f) / 100.0f; if (roundedRefreshRate % 1 == 0) { - return Integer.toString((int) roundedRefreshRate); + return localizedNumberFormatter.format(roundedRefreshRate).toString(); } else { - return Float.toString(roundedRefreshRate); + return String.format(Locale.getDefault(), "%.2f", + localizedNumberFormatter.format(roundedRefreshRate).toBigDecimal()); } } @@ -64,4 +74,15 @@ public class ResolutionSelectionUtils { ResolutionSelectionUtils.getRefreshRateString(mode.getRefreshRate())); return modeString; } + + /** + * Returns the resolution mode converted to a string in the local language. + * Format: width + " x " + height + */ + public static String getResolutionSummary(int physicalWidth, int physicalHeight) { + LocalizedNumberFormatter localizedNumberFormatter = NumberFormatter.with().locale( + Locale.getDefault()); + return localizedNumberFormatter.format(physicalWidth).toString() + " x " + + localizedNumberFormatter.format(physicalHeight).toString(); + } } |