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

Commit 4fe4b2e6 authored by arangelov's avatar arangelov
Browse files

Add extra to inform the role holder of the update attempt result

Role holders can request an update. When that happens, the flow
returns back to platform, platform performs the update and checks
the update result. If update was successful, it restared the role
holder, and if not, it failed provisioning. This CL updates this
so that the role holder is _always_ started, regardless of the
update result. That way the role holder can make a decision
whether to continue provisioning or fail it.

Bug: 224993192
Test: none
Change-Id: Ia7dd61d02c568e8c8ad17af0a61106d127c4869a
parent bcfeecc5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1149,6 +1149,7 @@ package android.app.admin {
    field public static final String EXTRA_RESTRICTION = "android.app.extra.RESTRICTION";
    field public static final String EXTRA_ROLE_HOLDER_PROVISIONING_INITIATOR_PACKAGE = "android.app.extra.ROLE_HOLDER_PROVISIONING_INITIATOR_PACKAGE";
    field public static final String EXTRA_ROLE_HOLDER_STATE = "android.app.extra.ROLE_HOLDER_STATE";
    field public static final String EXTRA_ROLE_HOLDER_UPDATE_RESULT_CODE = "android.app.extra.ROLE_HOLDER_UPDATE_RESULT_CODE";
    field public static final int FLAG_SUPPORTED_MODES_DEVICE_OWNER = 4; // 0x4
    field public static final int FLAG_SUPPORTED_MODES_ORGANIZATION_OWNED = 1; // 0x1
    field public static final int FLAG_SUPPORTED_MODES_PERSONALLY_OWNED = 2; // 0x2
+28 −0
Original line number Diff line number Diff line
@@ -3345,6 +3345,34 @@ public class DevicePolicyManager {
    public static final int
            RESULT_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER_PROVISIONING_DISABLED = 3;
    /**
     * An {@code int} extra which contains the result code of the last attempt to update
     * the device policy management role holder.
     *
     * <p>This extra is provided to the device policy management role holder via either {@link
     * #ACTION_ROLE_HOLDER_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE} or {@link
     * #ACTION_ROLE_HOLDER_PROVISION_MANAGED_PROFILE} when started after the role holder
     * had previously returned {@link #RESULT_UPDATE_ROLE_HOLDER}.
     *
     * <p>If the role holder update had failed, the role holder can use the value of this extra to
     * make a decision whether to fail the provisioning flow or to carry on with the older version
     * of the role holder.
     *
     * <p>Possible values can be:
     * <ul>
     *    <li>{@link Activity#RESULT_OK} if the update was successful
     *    <li>{@link #RESULT_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER_RECOVERABLE_ERROR} if it
     *    encounters a problem that may be solved by relaunching it again.
     *    <li>{@link #RESULT_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER_UNRECOVERABLE_ERROR} if
     *    it encounters a problem that will not be solved by relaunching it again.
     * </ul>
     *
     * @hide
     */
    @SystemApi
    public static final String EXTRA_ROLE_HOLDER_UPDATE_RESULT_CODE =
            "android.app.extra.ROLE_HOLDER_UPDATE_RESULT_CODE";
    /**
     * An {@link Intent} extra which resolves to a custom user consent screen.
     *