Merge "Hide the enabling mobile data" into main
diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java
index 96c0eb6..aa42f3c 100644
--- a/src/com/android/settings/sim/PreferredSimDialogFragment.java
+++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java
@@ -21,10 +21,12 @@
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 @@
}
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 @@
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());