[Povider Model] Fix string in SIMs

Bug: 192058192
Test: make
Change-Id: I4314802840a4952acf7f090d81ca19ec28b793b2
(cherry picked from commit 84073b98517ebd15621bcfcaa04fbce5dad497b0)
Merged-In: I4314802840a4952acf7f090d81ca19ec28b793b2
diff --git a/res/values/strings.xml b/res/values/strings.xml
index df409db..fce609c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -13357,8 +13357,10 @@
     <string name="carrier_wifi_network_title">W+ network</string>
     <!-- Provider Model: title of SIM category -->
     <string name="sim_category_title">SIM</string>
-    <!-- Provider Model: title of Downloaded category. [CHAR LIMIT=50] -->
+    <!-- Provider Model: title of Downloaded SIM category. [CHAR LIMIT=50] -->
     <string name="downloaded_sim_category_title">DOWNLOADED SIM</string>
+    <!-- Provider Model: title of Downloaded SIMs category. [CHAR LIMIT=50] -->
+    <string name="downloaded_sims_category_title">DOWNLOADED SIMS</string>
     <!-- Provider Model: summary of Active in SIM category. [CHAR LIMIT=50] -->
     <string name="sim_category_active_sim">Active</string>
     <!-- Provider Model: summary of Inactive in SIM category. [CHAR LIMIT=50] -->
diff --git a/src/com/android/settings/network/NetworkProviderDownloadedSimsCategoryController.java b/src/com/android/settings/network/NetworkProviderDownloadedSimsCategoryController.java
index 199740f..f7c70f2 100644
--- a/src/com/android/settings/network/NetworkProviderDownloadedSimsCategoryController.java
+++ b/src/com/android/settings/network/NetworkProviderDownloadedSimsCategoryController.java
@@ -3,9 +3,11 @@
 import android.content.Context;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.R;
 import com.android.settings.widget.PreferenceCategoryController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -15,6 +17,7 @@
 
     private static final String KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM =
             "provider_model_downloaded_sim_category";
+    private PreferenceCategory mPreferenceCategory;
     private NetworkProviderDownloadedSimListController mNetworkProviderDownloadedSimListController;
 
     public NetworkProviderDownloadedSimsCategoryController(Context context, String key) {
@@ -44,9 +47,19 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        PreferenceCategory preferenceCategory = screen.findPreference(
+        mPreferenceCategory = screen.findPreference(
                 KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM);
-        preferenceCategory.setVisible(isAvailable());
+        mPreferenceCategory.setVisible(isAvailable());
         mNetworkProviderDownloadedSimListController.displayPreference(screen);
     }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        int count = mPreferenceCategory.getPreferenceCount();
+        String title = mContext.getString(count > 1
+                ? R.string.downloaded_sims_category_title
+                : R.string.downloaded_sim_category_title);
+        mPreferenceCategory.setTitle(title);
+    }
 }