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

Commit d57ee076 authored by Hui Wang's avatar Hui Wang Committed by Automerger Merge Worker
Browse files

Merge "Add onPreProvisioningRecevied to RcsProvisioningCallback" am: f395f2dd

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I39569c6bb7bdbdedf7182a7bb732d569761ff0e6
parents d783f90b f395f2dd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -11542,6 +11542,7 @@ package android.telephony.ims {
    method public void onAutoConfigurationErrorReceived(int, @NonNull String);
    method public void onConfigurationChanged(@NonNull byte[]);
    method public void onConfigurationReset();
    method public void onPreProvisioningReceived(@NonNull byte[]);
    method public void onRemoved();
  }
@@ -12011,6 +12012,7 @@ package android.telephony.ims.stub {
    method public int getConfigInt(int);
    method public String getConfigString(int);
    method public final void notifyAutoConfigurationErrorReceived(int, @NonNull String);
    method public final void notifyPreProvisioningReceived(@NonNull byte[]);
    method public final void notifyProvisionedValueChanged(int, int);
    method public final void notifyProvisionedValueChanged(int, String);
    method public void notifyRcsAutoConfigurationReceived(@NonNull byte[], boolean);
+25 −1
Original line number Diff line number Diff line
@@ -993,6 +993,16 @@ public class ProvisioningManager {
                }
            }

            @Override
            public void onPreProvisioningReceived(byte[] configXml) {
                final long identity = Binder.clearCallingIdentity();
                try {
                    mExecutor.execute(() -> mLocalCallback.onPreProvisioningReceived(configXml));
                } finally {
                    Binder.restoreCallingIdentity(identity);
                }
            }

            private void setExecutor(Executor executor) {
                mExecutor = executor;
            }
@@ -1005,7 +1015,7 @@ public class ProvisioningManager {
         * due to various triggers defined in GSMA RCC.14 for ACS(auto configuration
         * server) or other operator defined triggers. If RCS provisioning is already
         * completed at the time of callback registration, then this method shall be
         * invoked with the current configuration
         * invoked with the current configuration.
         * @param configXml The RCS configuration XML received by OTA. It is defined
         * by GSMA RCC.07.
         */
@@ -1038,6 +1048,20 @@ public class ProvisioningManager {
         */
        public void onRemoved() {}

        /**
         * Some carriers using ACS (auto configuration server) may send a carrier-specific
         * pre-provisioning configuration XML if the user has not been provisioned for RCS
         * services yet. When this provisioning XML is received, the framework will move
         * into a "not provisioned" state for RCS. In order for provisioning to proceed,
         * the application must parse this configuration XML and perform the carrier specific
         * opt-in flow for RCS services. If the user accepts, {@link #triggerRcsReconfiguration}
         * must be called in order for the device to move out of this state and try to fetch
         * the RCS provisioning information.
         *
         * @param configXml the pre-provisioning config in carrier specified format.
         */
        public void onPreProvisioningReceived(@NonNull byte[] configXml) {}

        /**@hide*/
        public final IRcsConfigCallback getBinder() {
            return mBinder;
+1 −0
Original line number Diff line number Diff line
@@ -25,5 +25,6 @@ oneway interface IRcsConfigCallback {
    void onAutoConfigurationErrorReceived(int errorCode, String errorString);
    void onConfigurationReset();
    void onRemoved();
    void onPreProvisioningReceived(in byte[] config);
}
+24 −1
Original line number Diff line number Diff line
@@ -542,11 +542,34 @@ public class ImsConfigImplBase {
        }
        mRcsCallbacks.broadcastAction(c -> {
            try {
                //TODO compressed by default?
                c.onAutoConfigurationErrorReceived(errorCode, errorString);
            } catch (RemoteException e) {
                Log.w(TAG, "dead binder in notifyAutoConfigurationErrorReceived, skipping.");
            }
        });
    }

    /**
     * Notifies application that pre-provisioning config is received.
     *
     * <p>Some carriers using ACS (auto configuration server) may send a carrier-specific
     * pre-provisioning configuration XML if the user has not been provisioned for RCS
     * services yet. When such provisioning XML is received, ACS client must call this
     * method to notify the application with the XML.
     *
     * @param configXml the pre-provisioning config in carrier specified format.
     */
    public final void notifyPreProvisioningReceived(@NonNull byte[] configXml) {
        // can be null in testing
        if (mRcsCallbacks == null) {
            return;
        }
        mRcsCallbacks.broadcastAction(c -> {
            try {
                c.onPreProvisioningReceived(configXml);
            } catch (RemoteException e) {
                Log.w(TAG, "dead binder in notifyPreProvisioningReceived, skipping.");
            }
        });
    }
}