diff --git a/src/com/android/settings/deviceinfo/simstatus/EidStatus.java b/src/com/android/settings/deviceinfo/simstatus/EidStatus.java index 2f986a3a675..5da671bf9e2 100644 --- a/src/com/android/settings/deviceinfo/simstatus/EidStatus.java +++ b/src/com/android/settings/deviceinfo/simstatus/EidStatus.java @@ -144,6 +144,7 @@ public class EidStatus { } return eid; }) + .filter(Objects::nonNull) .findFirst() .orElse(null); } diff --git a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.java b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.java index e0a8af67fc9..8f2083ff8a0 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.java @@ -121,11 +121,11 @@ public class SimEidPreferenceController extends BasePreferenceController @Override public CharSequence getSummary() { - String summary = mShowEidOnSummary ? mEidStatus.getEid() : null; - if (TextUtils.isEmpty(summary)) { - summary = mContext.getString(R.string.device_info_protected_single_press); + if (!mShowEidOnSummary) { + return mContext.getString(R.string.device_info_protected_single_press); } - return summary; + String summary = mEidStatus.getEid(); + return (summary == null) ? "" : summary; } @Override @@ -135,7 +135,8 @@ public class SimEidPreferenceController extends BasePreferenceController } boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) && mContext.getSystemService(UserManager.class).isAdminUser() && - !Utils.isWifiOnly(mContext); + !Utils.isWifiOnly(mContext) && + ((mEidStatus != null) && !TextUtils.isEmpty(mEidStatus.getEid())); return isAvailable ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @@ -149,15 +150,20 @@ public class SimEidPreferenceController extends BasePreferenceController WindowManager.LayoutParams.FLAG_SECURE); dialogShwon.setCanceledOnTouchOutside(false); - TextView textView = dialogShwon.findViewById(R.id.esim_id_value); - textView.setText(PhoneNumberUtil.expandByTts(mEidStatus.getEid())); - textView.setTextIsSelectable(true); - - ImageView qrCodeView = dialogShwon.findViewById(R.id.esim_id_qrcode); - qrCodeView.setImageBitmap(getEidQRcode(mEidStatus.getEid().toString(), - qrCodeView.getWidth())); + String eid = mEidStatus.getEid(); + if (eid != null) { + TextView textView = dialogShwon.findViewById(R.id.esim_id_value); + textView.setText(PhoneNumberUtil.expandByTts(eid)); + textView.setTextIsSelectable(true); + ImageView qrCodeView = dialogShwon.findViewById(R.id.esim_id_qrcode); + qrCodeView.setImageBitmap(getEidQRcode(eid, qrCodeView.getWidth())); + } mShowEidOnSummary = true; + + dialogShwon.setOnDismissListener(dlg -> { + mPreference.setSummary(getSummary()); + }); } /**