Merge changes from topics "ut_provision_api", "ims_prov_api_defs" am: 3fc958475b
am: 1e6ed3c5eb
Change-Id: Ib16f22466459b5a294cfab5d020f64aad11cecfc
This commit is contained in:
@@ -42126,7 +42126,9 @@ package android.telephony {
|
||||
field public static final String KEY_CARRIER_NAME_OVERRIDE_BOOL = "carrier_name_override_bool";
|
||||
field public static final String KEY_CARRIER_NAME_STRING = "carrier_name_string";
|
||||
field public static final String KEY_CARRIER_SETTINGS_ENABLE_BOOL = "carrier_settings_enable_bool";
|
||||
field public static final String KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL = "carrier_supports_ss_over_ut_bool";
|
||||
field public static final String KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL = "carrier_use_ims_first_for_emergency_bool";
|
||||
field public static final String KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL = "carrier_ut_provisioning_required_bool";
|
||||
field public static final String KEY_CARRIER_VOLTE_AVAILABLE_BOOL = "carrier_volte_available_bool";
|
||||
field public static final String KEY_CARRIER_VOLTE_PROVISIONED_BOOL = "carrier_volte_provisioned_bool";
|
||||
field public static final String KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL = "carrier_volte_provisioning_required_bool";
|
||||
|
||||
@@ -7180,9 +7180,11 @@ package android.telephony.ims {
|
||||
public class ProvisioningManager {
|
||||
method public static android.telephony.ims.ProvisioningManager createForSubscriptionId(android.content.Context, int);
|
||||
method @WorkerThread @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getProvisioningIntValue(int);
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getProvisioningStatusForCapability(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
|
||||
method @WorkerThread @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getProvisioningStringValue(int);
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningIntValue(int, int);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setProvisioningStatusForCapability(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningStringValue(int, String);
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback);
|
||||
field public static final int KEY_VOICE_OVER_WIFI_MODE_OVERRIDE = 27; // 0x1b
|
||||
|
||||
@@ -608,10 +608,40 @@ public class CarrierConfigManager {
|
||||
public static final String KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL =
|
||||
"carrier_promote_wfc_on_call_fail_bool";
|
||||
|
||||
/** Flag specifying whether provisioning is required for VOLTE. */
|
||||
/**
|
||||
* Flag specifying whether provisioning is required for VoLTE, Video Telephony, and WiFi
|
||||
* Calling.
|
||||
*/
|
||||
public static final String KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
|
||||
= "carrier_volte_provisioning_required_bool";
|
||||
|
||||
/**
|
||||
* Flag indicating whether or not the IMS MmTel UT capability requires carrier provisioning
|
||||
* before it can be set as enabled.
|
||||
*
|
||||
* If true, the UT capability will be set to false for the newly loaded subscription
|
||||
* and will require the carrier provisioning app to set the persistent provisioning result.
|
||||
* If false, the platform will not wait for provisioning status updates for the UT capability
|
||||
* and enable the UT over IMS capability for the subscription when the subscription is loaded.
|
||||
*
|
||||
* The default value for this key is {@code false}.
|
||||
*/
|
||||
public static final String KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL =
|
||||
"carrier_ut_provisioning_required_bool";
|
||||
|
||||
/**
|
||||
* Flag indicating whether or not the carrier supports Supplementary Services over the UT
|
||||
* interface for this subscription.
|
||||
*
|
||||
* If true, the device will use Supplementary Services over UT when provisioned (see
|
||||
* {@link #KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL}). If false, this device will fallback to
|
||||
* circuit switch for supplementary services and will disable this capability for IMS entirely.
|
||||
*
|
||||
* The default value for this key is {@code true}.
|
||||
*/
|
||||
public static final String KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL =
|
||||
"carrier_supports_ss_over_ut_bool";
|
||||
|
||||
/**
|
||||
* Flag specifying if WFC provisioning depends on VoLTE provisioning.
|
||||
*
|
||||
@@ -2405,6 +2435,8 @@ public class CarrierConfigManager {
|
||||
sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT, 2);
|
||||
sDefaults.putBoolean(KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, true);
|
||||
sDefaults.putBoolean(KEY_CARRIER_VOLTE_OVERRIDE_WFC_PROVISIONING_BOOL, false);
|
||||
sDefaults.putBoolean(KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, true);
|
||||
sDefaults.putBoolean(KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL, true);
|
||||
|
||||
@@ -26,9 +26,12 @@ import android.content.Context;
|
||||
import android.os.Binder;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.ims.aidl.IImsConfigCallback;
|
||||
import android.telephony.ims.feature.MmTelFeature;
|
||||
import android.telephony.ims.stub.ImsConfigImplBase;
|
||||
import android.telephony.ims.stub.ImsRegistrationImplBase;
|
||||
|
||||
import com.android.internal.telephony.ITelephony;
|
||||
|
||||
@@ -317,6 +320,55 @@ public class ProvisioningManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the provisioning status for the IMS MmTel capability using the specified subscription.
|
||||
*
|
||||
* Provisioning may or may not be required, depending on the carrier configuration. If
|
||||
* provisioning is not required for the carrier associated with this subscription or the device
|
||||
* does not support the capability/technology combination specified, this operation will be a
|
||||
* no-op.
|
||||
*
|
||||
* @see CarrierConfigManager#KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL
|
||||
* @see CarrierConfigManager#KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
|
||||
* @param isProvisioned true if the device is provisioned for UT over IMS, false otherwise.
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void setProvisioningStatusForCapability(
|
||||
@MmTelFeature.MmTelCapabilities.MmTelCapability int capability,
|
||||
@ImsRegistrationImplBase.ImsRegistrationTech int tech, boolean isProvisioned) {
|
||||
try {
|
||||
getITelephony().setImsProvisioningStatusForCapability(mSubId, capability, tech,
|
||||
isProvisioned);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowAsRuntimeException();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the provisioning status for the IMS MmTel capability specified.
|
||||
*
|
||||
* If provisioning is not required for the queried
|
||||
* {@link MmTelFeature.MmTelCapabilities.MmTelCapability} and
|
||||
* {@link ImsRegistrationImplBase.ImsRegistrationTech} combination specified, this method will
|
||||
* always return {@code true}.
|
||||
*
|
||||
* @see CarrierConfigManager#KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL
|
||||
* @see CarrierConfigManager#KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
|
||||
* @return true if the device is provisioned for the capability or does not require
|
||||
* provisioning, false if the capability does require provisioning and has not been
|
||||
* provisioned yet.
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public boolean getProvisioningStatusForCapability(
|
||||
@MmTelFeature.MmTelCapabilities.MmTelCapability int capability,
|
||||
@ImsRegistrationImplBase.ImsRegistrationTech int tech) {
|
||||
try {
|
||||
return getITelephony().getImsProvisioningStatusForCapability(mSubId, capability, tech);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowAsRuntimeException();
|
||||
}
|
||||
}
|
||||
|
||||
private static SubscriptionManager getSubscriptionManager(Context context) {
|
||||
SubscriptionManager manager = context.getSystemService(SubscriptionManager.class);
|
||||
if (manager == null) {
|
||||
|
||||
@@ -97,6 +97,13 @@ public final class CapabilityChangeRequest implements Parcelable {
|
||||
public @ImsRegistrationImplBase.ImsRegistrationTech int getRadioTech() {
|
||||
return radioTech;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CapabilityPair{"
|
||||
+ "mCapability=" + mCapability
|
||||
+ ", radioTech=" + radioTech + '}';
|
||||
}
|
||||
}
|
||||
|
||||
// Pair contains <radio tech, mCapability>
|
||||
@@ -212,6 +219,13 @@ public final class CapabilityChangeRequest implements Parcelable {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CapabilityChangeRequest{"
|
||||
+ "mCapabilitiesToEnable=" + mCapabilitiesToEnable
|
||||
+ ", mCapabilitiesToDisable=" + mCapabilitiesToDisable + '}';
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
|
||||
@@ -1763,6 +1763,24 @@ interface ITelephony {
|
||||
*/
|
||||
void unregisterImsProvisioningChangedCallback(int subId, IImsConfigCallback callback);
|
||||
|
||||
/**
|
||||
* Set the provisioning status for the IMS MmTel capability using the specified subscription.
|
||||
*/
|
||||
void setImsProvisioningStatusForCapability(int subId, int capability, int tech,
|
||||
boolean isProvisioned);
|
||||
|
||||
/**
|
||||
* Get the provisioning status for the IMS MmTel capability specified.
|
||||
*/
|
||||
boolean getImsProvisioningStatusForCapability(int subId, int capability, int tech);
|
||||
|
||||
/** Is the capability and tech flagged as provisioned in the cache */
|
||||
boolean isMmTelCapabilityProvisionedInCache(int subId, int capability, int tech);
|
||||
|
||||
/** Set the provisioning for the capability and tech in the cache */
|
||||
void cacheMmTelCapabilityProvisioning(int subId, int capability, int tech,
|
||||
boolean isProvisioned);
|
||||
|
||||
/**
|
||||
* Return an integer containing the provisioning value for the specified provisioning key.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user