From ba943c9b946a429c456b5719247be3b1959d6c6b Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Thu, 28 Apr 2022 15:14:42 +0800 Subject: [PATCH] [Settings] Rename title of SIM UI when changed Title of subscription page should align with the SIM card. Bug: 230308627 Test: local Change-Id: Iab9ba25ac8c3faf7d37f97c8f3f3488cbaa2e228 --- .../telephony/MobileNetworkSettings.java | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java index 763962c492f..4eb8a857232 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java @@ -37,6 +37,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.Settings.MobileNetworkActivity; +import com.android.settings.SettingsActivity; import com.android.settings.datausage.BillingCyclePreferenceController; import com.android.settings.datausage.DataUsageSummaryPreferenceController; import com.android.settings.network.ActiveSubscriptionsListener; @@ -54,6 +55,7 @@ import com.android.settingslib.utils.ThreadUtils; import java.util.Arrays; import java.util.List; +import java.util.function.Consumer; @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class MobileNetworkSettings extends AbstractMobileNetworkSettings { @@ -275,17 +277,37 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings { Log.d(LOG_TAG, "Callback during onResume()"); return; } + + final SubscriptionInfo subInfo = SubscriptionUtil + .getSubscriptionOrDefault(getContext(), mSubId); + + if (subInfo != null) { + /** + * Update the title when SIM stats got changed + */ + final Consumer renameTitle = activity -> { + if (activity != null && !activity.isFinishing()) { + if (activity instanceof SettingsActivity) { + final CharSequence displayName = SubscriptionUtil + .getUniqueSubscriptionDisplayName(subInfo, activity); + ((SettingsActivity)activity).setTitle(displayName); + } + } + }; + + ThreadUtils.postOnMainThread(() -> renameTitle.accept(getActivity())); + } + mActiveSubscriptionsListenerCount++; if (mActiveSubscriptionsListenerCount != 1) { return; } - if (SubscriptionUtil.getSubscriptionOrDefault(getContext(), mSubId) == null) { - finishFragment(); - return; - } - ThreadUtils.postOnMainThread(() -> { + if (subInfo == null) { + finishFragment(); + return; + } mActiveSubscriptionsListenerCount = 0; redrawPreferenceControllers(); });