[Settings] NullPointerException when disable eSIM/Fi
When disabling eSIM/Fi, CarrierConfig retrieved on that subscription becomes null and need to perform null pointer checking when accessing it. Bug: 149484288 Test: manual Change-Id: If8a206788407a65c2cb9e5bafe3bc89b93cf63fe
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
package com.android.settings.network.telephony;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
@@ -37,4 +39,20 @@ public abstract class TelephonyBasePreferenceController extends BasePreferenceCo
|
||||
public int getAvailabilityStatus() {
|
||||
return MobileNetworkUtils.getAvailability(mContext, mSubId, this::getAvailabilityStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get carrier config based on specific subscription id.
|
||||
*
|
||||
* @param subId is the subscription id
|
||||
* @return {@link PersistableBundle} of carrier config, or {@code null} when carrier config
|
||||
* is not available.
|
||||
*/
|
||||
public PersistableBundle getCarrierConfigForSubId(int subId) {
|
||||
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
|
||||
return null;
|
||||
}
|
||||
final CarrierConfigManager carrierConfigMgr =
|
||||
mContext.getSystemService(CarrierConfigManager.class);
|
||||
return carrierConfigMgr.getConfigForSubId(subId);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user