/**@class android.telephony.ims.ProvisioningManager @extends java.lang.Object Manages IMS provisioning and configuration parameters, as well as callbacks for apps to listen to changes in these configurations. IMS provisioning keys are defined per carrier or OEM using OMA-DM or other provisioning applications and may vary. It is up to the carrier and OEM applications to ensure that the correct provisioning keys are being used when integrating with a vendor's ImsService. Note: For compatibility purposes, the integer values [0 - 99] used in {@link #setProvisioningIntValue(int, int)} have been reserved for existing provisioning keys previously defined in the Android framework. Please do not redefine new provisioning keys in this range or it may generate collisions with existing keys. Some common constants have also been defined in this class to make integrating with other system apps easier. @hide */ var ProvisioningManager = { /** The query from {@link #getProvisioningStringValue}(int) has resulted in an unspecified error. */ STRING_QUERY_RESULT_ERROR_GENERIC : "STRING_QUERY_RESULT_ERROR_GENERIC", /** The query from {@link #getProvisioningStringValue}(int) has resulted in an error because the ImsService implementation was not ready for provisioning queries. */ STRING_QUERY_RESULT_ERROR_NOT_READY : "STRING_QUERY_RESULT_ERROR_NOT_READY", /** The integer result of provisioning for the queried key is disabled. */ PROVISIONING_VALUE_DISABLED : "0", /** The integer result of provisioning for the queried key is enabled. */ PROVISIONING_VALUE_ENABLED : "1", /** Override the user-defined WiFi Roaming enabled setting for this subscription, defined in {@link SubscriptionManager#WFC_ROAMING_ENABLED_CONTENT_URI}, for the purposes of provisioning the subscription for WiFi Calling. @see #getProvisioningIntValue(int) @see #setProvisioningIntValue(int, int) */ KEY_VOICE_OVER_WIFI_ROAMING_ENABLED_OVERRIDE : "26", /** Override the user-defined WiFi mode for this subscription, defined in {@link SubscriptionManager#WFC_MODE_CONTENT_URI}, for the purposes of provisioning this subscription for WiFi Calling. Valid values for this key are: {@link android.telephony.ims.ImsMmTelManager#WIFI_MODE_WIFI_ONLY}, {@link android.telephony.ims.ImsMmTelManager#WIFI_MODE_CELLULAR_PREFERRED}, or {@link android.telephony.ims.ImsMmTelManager#WIFI_MODE_WIFI_PREFERRED}. @see #getProvisioningIntValue(int) @see #setProvisioningIntValue(int, int) */ KEY_VOICE_OVER_WIFI_MODE_OVERRIDE : "27", /**Create a new {@link android.telephony.ims.ProvisioningManager} for the subscription specified. @param {Number} subId The ID of the subscription that this ProvisioningManager will use. @see android.telephony.SubscriptionManager#getActiveSubscriptionInfoList() @throws IllegalArgumentException if the subscription is invalid. */ createForSubscriptionId : function( ) {}, /**Register a new {@link android.telephony.ims.ProvisioningManager.Callback} to listen to changes to changes in IMS provisioning. When the subscription associated with this callback is removed (SIM removed, ESIM swap, etc...), this callback will automatically be removed. @param {Object {Executor}} executor The {@link Executor} to call the callback methods on @param {Object {ProvisioningManager.Callback}} callback The provisioning callbackto be registered. @see #unregisterProvisioningChangedCallback(Callback) @see SubscriptionManager.OnSubscriptionsChangedListener @throws IllegalArgumentException if the subscription associated with this callback is not active (SIM is not inserted, ESIM inactive) or the subscription is invalid. @throws ImsException if the subscription associated with this callback is valid, but the {@link ImsService} associated with the subscription is not available. This can happen if the service crashed, for example. See {@link ImsException#getCode()} for a more detailed reason. */ registerProvisioningChangedCallback : function( ) {}, /**Unregister an existing {@link android.telephony.ims.ProvisioningManager.Callback}. When the subscription associated with this callback is removed (SIM removed, ESIM swap, etc...), this callback will automatically be removed. If this method is called for an inactive subscription, it will result in a no-op. @param {Object {ProvisioningManager.Callback}} callback The existing {@link Callback} to be removed. @see #registerProvisioningChangedCallback(Executor, Callback) @throws IllegalArgumentException if the subscription associated with this callback is invalid. */ unregisterProvisioningChangedCallback : function( ) {}, /**Query for the integer value associated with the provided key. This operation is blocking and should not be performed on the UI thread. @param {Number} key An integer that represents the provisioning key, which is defined by the OEM. @return {Number} an integer value for the provided key, or {@link ImsConfigImplBase#CONFIG_RESULT_UNKNOWN} if the key doesn't exist. @throws IllegalArgumentException if the key provided was invalid. */ getProvisioningIntValue : function( ) {}, /**Query for the String value associated with the provided key. This operation is blocking and should not be performed on the UI thread. @param {Number} key A String that represents the provisioning key, which is defined by the OEM. @return {String} a String value for the provided key, {@code null} if the key doesn't exist, or {@link StringResultError} if there was an error getting the value for the provided key. @throws IllegalArgumentException if the key provided was invalid. */ getProvisioningStringValue : function( ) {}, /**Set the integer value associated with the provided key. This operation is blocking and should not be performed on the UI thread. Use {@link #setProvisioningStringValue(int, String)} with proper namespacing (to be defined per OEM or carrier) when possible instead to avoid key collision if needed. @param {Number} key An integer that represents the provisioning key, which is defined by the OEM. @param {Number} value a integer value for the provided key. @return {Number} the result of setting the configuration value. */ setProvisioningIntValue : function( ) {}, /**Set the String value associated with the provided key. This operation is blocking and should not be performed on the UI thread. @param {Number} key A String that represents the provisioning key, which is defined by the OEM and should be appropriately namespaced to avoid collision. @param {String} value a String value for the provided key. @return {Number} the result of setting the configuration value. */ setProvisioningStringValue : function( ) {}, /**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. @param {Number} isProvisioned true if the device is provisioned for UT over IMS, false otherwise. @see CarrierConfigManager#KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL @param isProvisioned true if the device is provisioned for UT over IMS, false otherwise. */ setProvisioningStatusForCapability : function( ) {}, /**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 {Boolean} 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. */ getProvisioningStatusForCapability : function( ) {}, };