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

Commit edf00ca3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Don't allow requesting the assistant role." into qt-dev

parents d9502646 9844e24a
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -80,8 +80,7 @@
        exclusive="true"
        showNone="true"
        label="@string/role_assistant_label"
        requestDescription="@string/role_assistant_request_description"
        requestTitle="@string/role_assistant_request_title"
        requestable="false"
        shortLabel="@string/role_assistant_short_label">
        <required-components>
            <!-- Qualified components are determined int AssistantRoleBehavior. This comment here is
+15 −3
Original line number Diff line number Diff line
@@ -111,6 +111,12 @@ public class Role {
    @StringRes
    private final int mRequestTitleResource;

    /**
     * Whether this role is requestable by applications with
     * {@link android.app.role.RoleManager#createRequestRoleIntent(String)}.
     */
    private final boolean mRequestable;

    /**
     * The string resource for the short label of this role, currently used when in a list of roles.
     */
@@ -156,9 +162,10 @@ public class Role {
    public Role(@NonNull String name, @Nullable RoleBehavior behavior,
            @StringRes int descriptionResource, boolean exclusive, @StringRes int labelResource,
            @StringRes int requestDescriptionResource, @StringRes int requestTitleResource,
            @StringRes int shortLabelResource, boolean showNone, boolean systemOnly,
            @NonNull List<RequiredComponent> requiredComponents, @NonNull List<String> permissions,
            @NonNull List<AppOp> appOps, @NonNull List<PreferredActivity> preferredActivities) {
            boolean requestable, @StringRes int shortLabelResource, boolean showNone,
            boolean systemOnly, @NonNull List<RequiredComponent> requiredComponents,
            @NonNull List<String> permissions, @NonNull List<AppOp> appOps,
            @NonNull List<PreferredActivity> preferredActivities) {
        mName = name;
        mBehavior = behavior;
        mDescriptionResource = descriptionResource;
@@ -166,6 +173,7 @@ public class Role {
        mLabelResource = labelResource;
        mRequestDescriptionResource = requestDescriptionResource;
        mRequestTitleResource = requestTitleResource;
        mRequestable = requestable;
        mShortLabelResource = shortLabelResource;
        mShowNone = showNone;
        mSystemOnly = systemOnly;
@@ -209,6 +217,10 @@ public class Role {
        return mRequestTitleResource;
    }

    public boolean isRequestable() {
        return mRequestable;
    }

    @StringRes
    public int getShortLabelResource() {
        return mShortLabelResource;
+22 −13
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ public class Roles {
    private static final String ATTRIBUTE_LABEL = "label";
    private static final String ATTRIBUTE_REQUEST_TITLE = "requestTitle";
    private static final String ATTRIBUTE_REQUEST_DESCRIPTION = "requestDescription";
    private static final String ATTRIBUTE_REQUESTABLE = "requestable";
    private static final String ATTRIBUTE_SHORT_LABEL = "shortLabel";
    private static final String ATTRIBUTE_SHOW_NONE = "showNone";
    private static final String ATTRIBUTE_SYSTEM_ONLY = "systemOnly";
@@ -305,19 +306,27 @@ public class Roles {
            return null;
        }

        Integer requestDescriptionResource = requireAttributeResourceValue(parser,
        boolean requestable = getAttributeBooleanValue(parser, ATTRIBUTE_REQUESTABLE, true);
        Integer requestDescriptionResource;
        Integer requestTitleResource;
        if (requestable) {
            requestDescriptionResource = requireAttributeResourceValue(parser,
                    ATTRIBUTE_REQUEST_DESCRIPTION, 0, TAG_ROLE);
            if (requestDescriptionResource == null) {
                skipCurrentTag(parser);
                return null;
            }

        Integer requestTitleResource = requireAttributeResourceValue(parser,
                ATTRIBUTE_REQUEST_TITLE, 0, TAG_ROLE);
            requestTitleResource = requireAttributeResourceValue(parser, ATTRIBUTE_REQUEST_TITLE, 0,
                    TAG_ROLE);
            if (requestTitleResource == null) {
                skipCurrentTag(parser);
                return null;
            }
        } else {
            requestDescriptionResource = 0;
            requestTitleResource = 0;
        }

        Integer shortLabelResource = requireAttributeResourceValue(parser, ATTRIBUTE_SHORT_LABEL, 0,
                TAG_ROLE);
@@ -402,8 +411,8 @@ public class Roles {
            preferredActivities = Collections.emptyList();
        }
        return new Role(name, behavior, descriptionResource, exclusive, labelResource,
                requestDescriptionResource, requestTitleResource, shortLabelResource, showNone,
                systemOnly, requiredComponents, permissions, appOps, preferredActivities);
                requestDescriptionResource, requestTitleResource, requestable, shortLabelResource,
                showNone, systemOnly, requiredComponents, permissions, appOps, preferredActivities);
    }

    @NonNull
+6 −0
Original line number Diff line number Diff line
@@ -90,6 +90,12 @@ public class RequestRoleActivity extends FragmentActivity {
            return;
        }

        if (!role.isRequestable()) {
            Log.e(LOG_TAG, "Role is not requestable: " + mRoleName);
            finish();
            return;
        }

        if (!role.isExclusive()) {
            Log.e(LOG_TAG, "Role is not exclusive: " + mRoleName);
            finish();