From ed5e803c87fba644b0c6cb5b54247717217431c4 Mon Sep 17 00:00:00 2001 From: songferngwang Date: Fri, 27 Sep 2024 08:42:08 +0000 Subject: [PATCH] Hide the enabling mobile data Since the framework behavior was changed after the enabling mobile data dialog was implemented. Bug: 368450590 Test: manully test the dialog. Change-Id: I08e0e1b9643781e52f6a9d4fa2c0eccf0feb7901 --- .../sim/PreferredSimDialogFragment.java | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java index 96c0eb61a75..aa42f3cb8f8 100644 --- a/src/com/android/settings/sim/PreferredSimDialogFragment.java +++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java @@ -21,10 +21,12 @@ import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING; import android.app.Activity; import android.app.Dialog; import android.app.settings.SettingsEnums; +import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; import android.util.Log; import androidx.annotation.NonNull; @@ -91,8 +93,12 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements } if (dialog == null) { - Log.d(TAG, "Dialog is null."); - dismiss(); + dismiss("Dialog is null."); + return; + } + Context context = getContext(); + if (context == null) { + dismiss("getContext is null."); return; } @@ -100,24 +106,44 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements if (info == null || (info.isEmbedded() && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING || (Flags.oemEnabledSatelliteFlag() && info.isOnlyNonTerrestrialNetwork())))) { - dismiss(); + dismiss("SubscriptionInfo is null or other esim's cases."); return; } Log.d(TAG, "SubscriptionInfo: " + info); + TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); + if (telephonyManager == null) { + dismiss("TelephonyManager is null."); + return; + } + telephonyManager = telephonyManager.createForSubscriptionId(info.getSubscriptionId()); + if (telephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)) { + dismiss("mobile data is on."); + final SimDialogActivity activity = (SimDialogActivity) getActivity(); + if (activity != null) { + activity.finish(); + } + return; + } + final CharSequence simName = - SubscriptionUtil.getUniqueSubscriptionDisplayName(info, getContext()); + SubscriptionUtil.getUniqueSubscriptionDisplayName(info, context); final String title = - getContext().getString( + context.getString( getTitleResId(), simName); final String message = - getContext().getString( + context.getString( R.string.sim_preferred_message, simName); dialog.setTitle(title); dialog.setMessage(message); } + private void dismiss(String log) { + Log.d(TAG, log); + dismiss(); + } + @Override public void updateDialog() { updateDialog((AlertDialog) getDialog());