From f0d1e6724dbb77e03afbae1fbcd1743f69e4cb27 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Sun, 16 Jan 2022 16:09:42 +0800 Subject: [PATCH] Refine the plural strings design in SettingsLib - Use MessageFormat instead of getQuantityString(). Bug: 199229953 Test: manual test See b/199229953#comment2 for a screenshot result. Change-Id: Id47e12814b3a4f7830d70cfe53e4d6df8cc38e24 --- packages/SettingsLib/res/values/strings.xml | 11 +++++++---- .../android/settingslib/wifi/WifiUtils.java | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 47b0744497ff4..f9ac01db54544 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1271,10 +1271,13 @@ MAC is randomized - - %1$d device connected - %1$d devices connected - + + {count, plural, + =0 {0 device connected} + =1 {1 device connected} + other {# devices connected} + } + More time. diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java index 56454e975370c..4ab6542d567a8 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java @@ -22,6 +22,7 @@ import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.getMaxNe import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; +import android.icu.text.MessageFormat; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.NetworkSelectionStatus; @@ -33,6 +34,8 @@ import androidx.annotation.VisibleForTesting; import com.android.settingslib.R; +import java.util.HashMap; +import java.util.Locale; import java.util.Map; public class WifiUtils { @@ -333,4 +336,20 @@ public class WifiUtils { intent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, bundle); return intent; } + + /** + * Returns the string of Wi-Fi tethering summary for connected devices. + * + * @param context The application context + * @param connectedDevices The count of connected devices + */ + public static String getWifiTetherSummaryForConnectedDevices(Context context, + int connectedDevices) { + MessageFormat msgFormat = new MessageFormat( + context.getResources().getString(R.string.wifi_tether_connected_summary), + Locale.getDefault()); + Map arguments = new HashMap<>(); + arguments.put("count", connectedDevices); + return msgFormat.format(arguments); + } }