Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bdf7174 authored by Bonian Chen's avatar Bonian Chen Committed by Android (Google) Code Review
Browse files

Merge "[Settings] Rename title of SIM UI when changed" into tm-dev

parents 38989c9c ba943c9b
Loading
Loading
Loading
Loading
+27 −5
Original line number Diff line number Diff line
@@ -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<Activity> 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) {
        ThreadUtils.postOnMainThread(() -> {
            if (subInfo == null) {
                finishFragment();
                return;
            }

        ThreadUtils.postOnMainThread(() -> {
            mActiveSubscriptionsListenerCount = 0;
            redrawPreferenceControllers();
        });