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
This commit is contained in:
Chaohui Wang
2024-06-06 14:19:33 +08:00
parent 3e650c373c
commit f2930aad5d

View File

@@ -68,7 +68,6 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.function.Consumer;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class MobileNetworkSettings extends AbstractMobileNetworkSettings implements public class MobileNetworkSettings extends AbstractMobileNetworkSettings implements
@@ -359,23 +358,17 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme
} }
private void onSubscriptionDetailChanged() { private void onSubscriptionDetailChanged() {
if (mSubscriptionInfoEntity != null) { final SubscriptionInfoEntity subscriptionInfoEntity = mSubscriptionInfoEntity;
/** if (subscriptionInfoEntity == null) {
* Update the title when SIM stats got changed return;
*/
final Consumer<Activity> renameTitle = activity -> {
if (activity != null && !activity.isFinishing()) {
if (activity instanceof SettingsActivity) {
((SettingsActivity) activity).setTitle(mSubscriptionInfoEntity.uniqueName);
}
}
};
ThreadUtils.postOnMainThread(() -> {
renameTitle.accept(getActivity());
redrawPreferenceControllers();
});
} }
ThreadUtils.postOnMainThread(() -> {
if (getActivity() instanceof SettingsActivity activity && !activity.isFinishing()) {
// Update the title when SIM stats got changed
activity.setTitle(subscriptionInfoEntity.uniqueName);
}
redrawPreferenceControllers();
});
} }
@Override @Override