Fix crash when the FEATURE_TELEPHONY_EUICC is not defined
If the device does not declare FEATURE_TELEPHONY_EUICC, RadioInfo
can make a crash because EuiccManager cannot be obtained.
Fixed it to check whether a feature is declared and display messages
according to the Euicc availability.
Bug: 341619122
Test: tested with euiccmanager null.
Change-Id: Iad5fc08f9d069327844a1f6d9c8f2e2815e5bdf0
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index a153090..86b3afe 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -1462,15 +1462,18 @@
mQueuedWork.execute(new Runnable() {
@Override
public void run() {
- if (!mEuiccManager.isEnabled()) {
- mEuiccInfoResult = "Not enabled";
- }
- try {
- mEuiccInfoResult = " { Available memory in bytes:"
- + mEuiccManager.getAvailableMemoryInBytes()
- + " }";
- } catch (Exception e) {
- mEuiccInfoResult = e.getMessage();
+ if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC)) {
+ mEuiccInfoResult = "Euicc Feature is disabled";
+ } else if (mEuiccManager == null || !mEuiccManager.isEnabled()) {
+ mEuiccInfoResult = "EuiccManager is not enabled";
+ } else {
+ try {
+ mEuiccInfoResult = " { Available memory in bytes:"
+ + mEuiccManager.getAvailableMemoryInBytes()
+ + " }";
+ } catch (Exception e) {
+ mEuiccInfoResult = e.getMessage();
+ }
}
mHandler.post(setEuiccInfo);
}