Add new dialogue when user is going to delete sim that use RAC.

Test: make
Bug: 316419093
Change-Id: Iaed54afa7cfd20c1dd6adbd4d50f54cab3da095d
This commit is contained in:
Rafael Higuera Silva
2024-02-14 19:36:16 +00:00
parent 74f8cb6eeb
commit 736df6d2ef
8 changed files with 450 additions and 2 deletions

View File

@@ -17,13 +17,15 @@
package com.android.settings.network;
import static android.telephony.SubscriptionManager.INVALID_SIM_SLOT_INDEX;
import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;
import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
import static com.android.internal.util.CollectionUtils.emptyIfNull;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkCapabilities;
import android.os.ParcelUuid;
import android.provider.Settings;
import android.telephony.PhoneNumberUtils;
@@ -560,6 +562,7 @@ public class SubscriptionUtil {
Log.i(TAG, "Unable to delete subscription due to invalid subscription ID.");
return;
}
// TODO(b/325693582): Add verification if carrier is RAC and logic for new dialog
context.startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(context, subId));
}
@@ -832,4 +835,29 @@ public class SubscriptionUtil {
}
return true;
}
/**
* Returns {@code true} if device is connected to Wi-Fi or mobile data provided by a different
* subId.
*
* @param context context
* @param targetSubId subscription that is going to be deleted
*/
@VisibleForTesting
static boolean isConnectedToWifiOrDifferentSubId(@NonNull Context context, int targetSubId) {
ConnectivityManager connectivityManager =
context.getSystemService(ConnectivityManager.class);
NetworkCapabilities capabilities =
connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
if (capabilities != null) {
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
// Connected to WiFi
return true;
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
return targetSubId != SubscriptionManager.getActiveDataSubscriptionId();
}
}
return false;
}
}