Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0764b830 authored by Hakjun Choi's avatar Hakjun Choi Committed by Automerger Merge Worker
Browse files

Add public API to ProvisioningManager for IMS/RCS provisioning by am:...

Add public API to ProvisioningManager for IMS/RCS provisioning by am: 893cc940 am: 14d4fd61 am: d90ecc9b

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1959039

Change-Id: Ie0f181a69847cc3b17c6c543bee97c54724d7cd2
parents 70a17b89 d90ecc9b
Loading
Loading
Loading
Loading
+39 −0
Original line number Original line Diff line number Diff line
@@ -42528,6 +42528,7 @@ package android.telephony.ims {
  public class ImsManager {
  public class ImsManager {
    method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int);
    method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int);
    method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int);
    method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int);
    method @NonNull public android.telephony.ims.ProvisioningManager getProvisioningManager(int);
    field public static final String ACTION_WFC_IMS_REGISTRATION_ERROR = "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR";
    field public static final String ACTION_WFC_IMS_REGISTRATION_ERROR = "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR";
    field public static final String EXTRA_WFC_REGISTRATION_FAILURE_MESSAGE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_MESSAGE";
    field public static final String EXTRA_WFC_REGISTRATION_FAILURE_MESSAGE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_MESSAGE";
    field public static final String EXTRA_WFC_REGISTRATION_FAILURE_TITLE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_TITLE";
    field public static final String EXTRA_WFC_REGISTRATION_FAILURE_TITLE = "android.telephony.ims.extra.WFC_REGISTRATION_FAILURE_TITLE";
@@ -42778,6 +42779,23 @@ package android.telephony.ims {
    field public static final int REASON_UNKNOWN_TEMPORARY_ERROR = 1; // 0x1
    field public static final int REASON_UNKNOWN_TEMPORARY_ERROR = 1; // 0x1
  }
  }
  public class ProvisioningManager {
    method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) @WorkerThread public boolean getProvisioningStatusForCapability(int, int);
    method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int, int);
    method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public boolean isProvisioningRequiredForCapability(int, int);
    method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public boolean isRcsProvisioningRequiredForCapability(int, int);
    method @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void registerFeatureProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback) throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(int, int, boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, int, boolean);
    method public void unregisterFeatureProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback);
  }
  public static class ProvisioningManager.FeatureProvisioningCallback {
    ctor public ProvisioningManager.FeatureProvisioningCallback();
    method public void onFeatureProvisioningChanged(int, int, boolean);
    method public void onRcsFeatureProvisioningChanged(int, int, boolean);
  }
  public class RcsUceAdapter {
  public class RcsUceAdapter {
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isUceSettingEnabled() throws android.telephony.ims.ImsException;
  }
  }
@@ -42818,6 +42836,27 @@ package android.telephony.ims.feature {
    field public static final int CAPABILITY_TYPE_VOICE = 1; // 0x1
    field public static final int CAPABILITY_TYPE_VOICE = 1; // 0x1
  }
  }
  public class RcsFeature {
  }
  public static class RcsFeature.RcsImsCapabilities {
    field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0
    field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1
    field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2
  }
}
package android.telephony.ims.stub {
  public class ImsRegistrationImplBase {
    field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2
    field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1
    field public static final int REGISTRATION_TECH_LTE = 0; // 0x0
    field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff
    field public static final int REGISTRATION_TECH_NR = 3; // 0x3
  }
}
}
package android.telephony.mbms {
package android.telephony.mbms {
+2 −12
Original line number Original line Diff line number Diff line
@@ -13182,18 +13182,16 @@ package android.telephony.ims {
  public class ProvisioningManager {
  public class ProvisioningManager {
    method @NonNull public static android.telephony.ims.ProvisioningManager createForSubscriptionId(int);
    method @NonNull public static android.telephony.ims.ProvisioningManager createForSubscriptionId(int);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public int getProvisioningIntValue(int);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public int getProvisioningIntValue(int);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getProvisioningStatusForCapability(int, int);
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public String getProvisioningStringValue(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public String getProvisioningStringValue(int);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int);
    method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean getRcsProvisioningStatusForCapability(int);
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public boolean isRcsVolteSingleRegistrationCapable() throws android.telephony.ims.ImsException;
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public boolean isRcsVolteSingleRegistrationCapable() throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyRcsAutoConfigurationReceived(@NonNull byte[], boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyRcsAutoConfigurationReceived(@NonNull byte[], boolean);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback) throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback) throws android.telephony.ims.ImsException;
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void registerRcsProvisioningCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback) throws android.telephony.ims.ImsException;
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void registerRcsProvisioningCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback) throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningIntValue(int, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningIntValue(int, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(int, int, boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningStringValue(int, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningStringValue(int, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void setRcsClientConfiguration(@NonNull android.telephony.ims.RcsClientConfiguration) throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void setRcsClientConfiguration(@NonNull android.telephony.ims.RcsClientConfiguration) throws android.telephony.ims.ImsException;
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, boolean);
    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setRcsProvisioningStatusForCapability(int, boolean);
    method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void triggerRcsReconfiguration();
    method @RequiresPermission(android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION) public void triggerRcsReconfiguration();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback);
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void unregisterRcsProvisioningCallback(@NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback);
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) public void unregisterRcsProvisioningCallback(@NonNull android.telephony.ims.ProvisioningManager.RcsProvisioningCallback);
@@ -13628,9 +13626,6 @@ package android.telephony.ims.feature {
    method public void addCapabilities(int);
    method public void addCapabilities(int);
    method public boolean isCapable(int);
    method public boolean isCapable(int);
    method public void removeCapabilities(int);
    method public void removeCapabilities(int);
    field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0
    field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1
    field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2
  }
  }
}
}
@@ -13780,11 +13775,6 @@ package android.telephony.ims.stub {
    method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String);
    method public void triggerFullNetworkRegistration(@IntRange(from=100, to=699) int, @Nullable String);
    method public void triggerSipDelegateDeregistration();
    method public void triggerSipDelegateDeregistration();
    method public void updateSipDelegateRegistration();
    method public void updateSipDelegateRegistration();
    field public static final int REGISTRATION_TECH_CROSS_SIM = 2; // 0x2
    field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1
    field public static final int REGISTRATION_TECH_LTE = 0; // 0x0
    field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff
    field public static final int REGISTRATION_TECH_NR = 3; // 0x3
  }
  }
  public class ImsSmsImplBase {
  public class ImsSmsImplBase {
+32 −0
Original line number Original line Diff line number Diff line
@@ -4637,6 +4637,36 @@ public class CarrierConfigManager {
        public static final String KEY_RCS_REQUEST_RETRY_INTERVAL_MILLIS_LONG =
        public static final String KEY_RCS_REQUEST_RETRY_INTERVAL_MILLIS_LONG =
                KEY_PREFIX + "rcs_request_retry_interval_millis_long";
                KEY_PREFIX + "rcs_request_retry_interval_millis_long";


        /**
         * An array of strings, each entry contains a MMTEL capability and registration
         * technology tuple that requires provisioning. If a tuple is not present, the
         * framework will not require that the tuple requires provisioning before
         * enabling the capability.
         * <p>
         * Format for each tuple is two integers separated by a comma. The first
         * integer is an integer defined in
         * {@link MmTelFeature.MmTelCapabilities.MmTelCapability} and the second integer is
         * {@link android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech}
         * @hide
         */
        public static final String KEY_MMTEL_REQUIRES_PROVISIONING_STRING_ARRAY =
                KEY_PREFIX + "mmtel_requires_provisioning_string_array";

        /**
         * An array of strings, each entry contains a RCS capability and registration
         * technology tuple that requires provisioning. If a tuple is not present, the
         * framework will not require that the tuple requires provisioning before
         * enabling the capability.
         * <p>
         * Format for each tuple is two integers separated by a comma. The first
         * integer is an integer defined in
         * {@link RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag} and the second integer is
         * {@link android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech}
         * @hide
         */
        public static final String KEY_RCS_REQUIRES_PROVISIONING_STRING_ARRAY =
                KEY_PREFIX + "rcs_requires_provisioning_string_array";

        private Ims() {}
        private Ims() {}


        private static PersistableBundle getDefaults() {
        private static PersistableBundle getDefaults() {
@@ -4672,6 +4702,8 @@ public class CarrierConfigManager {
                    "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot.sa\"",
                    "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot.sa\"",
                    "+g.gsma.rcs.botversion=\"#=1,#=2\"",
                    "+g.gsma.rcs.botversion=\"#=1,#=2\"",
                    "+g.gsma.rcs.cpimext"});
                    "+g.gsma.rcs.cpimext"});
            defaults.putStringArray(KEY_MMTEL_REQUIRES_PROVISIONING_STRING_ARRAY, new String[] {});
            defaults.putStringArray(KEY_RCS_REQUIRES_PROVISIONING_STRING_ARRAY, new String[] {});


            return defaults;
            return defaults;
        }
        }
+20 −0
Original line number Original line Diff line number Diff line
@@ -160,6 +160,26 @@ public class ImsManager {
        return new SipDelegateManager(mContext, subscriptionId, sRcsCache, sTelephonyCache);
        return new SipDelegateManager(mContext, subscriptionId, sRcsCache, sTelephonyCache);
    }
    }



    /**
     * Create an instance of {@link ProvisioningManager} for the subscription id specified.
     * <p>
     * Provides a ProvisioningManager instance to carrier apps to update carrier provisioning
     * information, as well as provides a callback so that apps can listen for changes
     * in MMTEL/RCS provisioning
     * @param subscriptionId The ID of the subscription that this ProvisioningManager will use.
     * @throws IllegalArgumentException if the subscription is invalid.
     * @return a ProvisioningManager instance with the specific subscription ID.
     */
    @NonNull
    public ProvisioningManager getProvisioningManager(int subscriptionId) {
        if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) {
            throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId);
        }

        return new ProvisioningManager(subscriptionId);
    }

    private static IImsRcsController getIImsRcsControllerInterface() {
    private static IImsRcsController getIImsRcsControllerInterface() {
        return IImsRcsController.Stub.asInterface(
        return IImsRcsController.Stub.asInterface(
                TelephonyFrameworkInitializer
                TelephonyFrameworkInitializer
Loading