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

Commit f2930aad authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Fix mSubscriptionInfoEntity NullPointerException

Due to concurrent, mSubscriptionInfoEntity could become null when
inference.

Save the subscriptionInfoEntity to local variable to fix.

Fix: 345319514
Test: manual on MobileNetworkSettings
Change-Id: I9d286b30ade65dabdfd4a394cdbe1c1c87435d02
parent 3e650c37
Loading
Loading
Loading
Loading
+10 −17
Original line number Diff line number Diff line
@@ -68,7 +68,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.function.Consumer;

@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class MobileNetworkSettings extends AbstractMobileNetworkSettings implements
@@ -359,24 +358,18 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme
    }

    private void onSubscriptionDetailChanged() {
        if (mSubscriptionInfoEntity != null) {
            /**
             * Update the title when SIM stats got changed
             */
            final Consumer<Activity> renameTitle = activity -> {
                if (activity != null && !activity.isFinishing()) {
                    if (activity instanceof SettingsActivity) {
                        ((SettingsActivity) activity).setTitle(mSubscriptionInfoEntity.uniqueName);
                    }
        final SubscriptionInfoEntity subscriptionInfoEntity = mSubscriptionInfoEntity;
        if (subscriptionInfoEntity == null) {
            return;
        }
            };

        ThreadUtils.postOnMainThread(() -> {
                renameTitle.accept(getActivity());
            if (getActivity() instanceof SettingsActivity activity && !activity.isFinishing()) {
                // Update the title when SIM stats got changed
                activity.setTitle(subscriptionInfoEntity.uniqueName);
            }
            redrawPreferenceControllers();
        });
    }
    }

    @Override
    public void onPause() {