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);
             }