Migrate getSimStateForSlotIndex to TelephonyManager

Most of the SIM APIs are in TelephonyManager. SubscriptionManager
handles subscription related information only.

Test: Manual
Bug: 239607619
Change-Id: If654ac4ef65b5be3cda99cbfd8694e4027fd4d65
This commit is contained in:
Jack Yu
2022-12-08 00:14:04 -08:00
parent 3ba84a1710
commit e161df7fb2
4 changed files with 38 additions and 47 deletions

View File

@@ -2604,37 +2604,6 @@ public class SubscriptionManager {
return TelephonyManager.getDefault().isNetworkRoaming(subId);
}
/**
* Returns a constant indicating the state of sim for the slot index.
*
* @param slotIndex
*
* {@See TelephonyManager#SIM_STATE_UNKNOWN}
* {@See TelephonyManager#SIM_STATE_ABSENT}
* {@See TelephonyManager#SIM_STATE_PIN_REQUIRED}
* {@See TelephonyManager#SIM_STATE_PUK_REQUIRED}
* {@See TelephonyManager#SIM_STATE_NETWORK_LOCKED}
* {@See TelephonyManager#SIM_STATE_READY}
* {@See TelephonyManager#SIM_STATE_NOT_READY}
* {@See TelephonyManager#SIM_STATE_PERM_DISABLED}
* {@See TelephonyManager#SIM_STATE_CARD_IO_ERROR}
*
* {@hide}
*/
public static int getSimStateForSlotIndex(int slotIndex) {
int simState = TelephonyManager.SIM_STATE_UNKNOWN;
try {
ISub iSub = TelephonyManager.getSubscriptionService();
if (iSub != null) {
simState = iSub.getSimStateForSlotIndex(slotIndex);
}
} catch (RemoteException ex) {
}
return simState;
}
/**
* Store properties associated with SubscriptionInfo in database
* @param subId Subscription Id of Subscription

View File

@@ -71,7 +71,6 @@ import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.WorkSource;
import android.provider.Settings.SettingNotFoundException;
import android.service.carrier.CarrierIdentifier;
@@ -127,7 +126,6 @@ import com.android.internal.telephony.IccLogicalChannelRequest;
import com.android.internal.telephony.OperatorInfo;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.SmsApplication;
import com.android.telephony.Rlog;
import java.io.IOException;
@@ -3558,7 +3556,7 @@ public class TelephonyManager {
"state as absent");
return SIM_STATE_ABSENT;
}
return SubscriptionManager.getSimStateForSlotIndex(slotIndex);
return getSimStateForSlotIndex(slotIndex);
}
/**
@@ -3705,9 +3703,7 @@ public class TelephonyManager {
@Deprecated
public @SimState int getSimApplicationState(int physicalSlotIndex) {
int activePort = getFirstActivePortIndex(physicalSlotIndex);
int simState =
SubscriptionManager.getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex,
activePort));
int simState = getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex, activePort));
return getSimApplicationStateFromSimState(simState);
}
@@ -3733,9 +3729,7 @@ public class TelephonyManager {
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
public @SimState int getSimApplicationState(int physicalSlotIndex, int portIndex) {
int simState =
SubscriptionManager.getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex,
portIndex));
int simState = getSimStateForSlotIndex(getLogicalSlotIndex(physicalSlotIndex, portIndex));
return getSimApplicationStateFromSimState(simState);
}
@@ -3804,7 +3798,7 @@ public class TelephonyManager {
*/
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
public @SimState int getSimState(int slotIndex) {
int simState = SubscriptionManager.getSimStateForSlotIndex(slotIndex);
int simState = getSimStateForSlotIndex(slotIndex);
if (simState == SIM_STATE_LOADED) {
simState = SIM_STATE_READY;
}
@@ -17747,4 +17741,30 @@ public class TelephonyManager {
}
return null;
}
/**
* Returns a constant indicating the state of sim for the slot index.
*
* @param slotIndex Logical SIM slot index.
*
* @see TelephonyManager.SimState
*
* @hide
*/
@SimState
public static int getSimStateForSlotIndex(int slotIndex) {
try {
ITelephony telephony = ITelephony.Stub.asInterface(
TelephonyFrameworkInitializer
.getTelephonyServiceManager()
.getTelephonyServiceRegisterer()
.get());
if (telephony != null) {
return telephony.getSimStateForSlotIndex(slotIndex);
}
} catch (RemoteException e) {
Log.e(TAG, "Error in getSimStateForSlotIndex: " + e);
}
return TelephonyManager.SIM_STATE_UNKNOWN;
}
}

View File

@@ -274,11 +274,6 @@ interface ISub {
boolean isSubscriptionEnabled(int subId);
int getEnabledSubscriptionId(int slotIndex);
/**
* Get the SIM state for the slot index
* @return SIM state as the ordinal of IccCardConstants.State
*/
int getSimStateForSlotIndex(int slotIndex);
boolean isActiveSubId(int subId, String callingPackage, String callingFeatureId);

View File

@@ -2628,5 +2628,12 @@ interface ITelephony {
* {@code null} if the functionality is not supported.
* @hide
*/
ComponentName getDefaultRespondViaMessageApplication(int subId, boolean updateIfNeeded);
ComponentName getDefaultRespondViaMessageApplication(int subId, boolean updateIfNeeded);
/**
* Get the SIM state for the logical SIM slot index.
*
* @param slotIndex Logical SIM slot index.
*/
int getSimStateForSlotIndex(int slotIndex);
}