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

Commit 33c5a847 authored by Mady Mellor's avatar Mady Mellor
Browse files

Add permission hint, update permission slice structure

Test: atest cts/tests/tests/slices
Bug: 75500766
Change-Id: Ic26dbaa121a3745174a6e21171f35abad69c61de
parent b0558905
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7213,6 +7213,7 @@ package android.app.slice {
    field public static final java.lang.String HINT_LIST_ITEM = "list_item";
    field public static final java.lang.String HINT_NO_TINT = "no_tint";
    field public static final java.lang.String HINT_PARTIAL = "partial";
    field public static final java.lang.String HINT_PERMISSION_REQUEST = "permission_request";
    field public static final java.lang.String HINT_SEE_MORE = "see_more";
    field public static final java.lang.String HINT_SELECTED = "selected";
    field public static final java.lang.String HINT_SHORTCUT = "shortcut";
+6 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ public final class Slice implements Parcelable {
            HINT_ERROR,
            HINT_TTL,
            HINT_LAST_UPDATED,
            HINT_PERMISSION_REQUEST,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface SliceHint {}
@@ -183,6 +184,11 @@ public final class Slice implements Parcelable {
     * Hint indicating an item representing when the content was created or last updated.
     */
    public static final String HINT_LAST_UPDATED = "last_updated";
    /**
     * A hint to indicate that this slice represents a permission request for showing
     * slices.
     */
    public static final String HINT_PERMISSION_REQUEST = "permission_request";
    /**
     * Key to retrieve an extra added to an intent when a control is changed.
     */
+11 −9
Original line number Diff line number Diff line
@@ -428,15 +428,17 @@ public abstract class SliceProvider extends ContentProvider {
        } finally {
            Handler.getMain().removeCallbacks(mAnr);
        }
        return new Slice.Builder(sliceUri)
                .addAction(action,
                        new Slice.Builder(sliceUri.buildUpon().appendPath("permission").build())
        Slice.Builder parent = new Slice.Builder(sliceUri);
        Slice.Builder childAction = new Slice.Builder(parent)
                .addHints(Arrays.asList(Slice.HINT_TITLE, Slice.HINT_SHORTCUT))
                .addAction(action, new Slice.Builder(parent).build(), null);

        parent.addSubSlice(new Slice.Builder(sliceUri.buildUpon().appendPath("permission").build())
                .addText(getPermissionString(context, callingPackage), null,
                        Collections.emptyList())
                                .build(),
                        null)
                .addHints(Arrays.asList(Slice.HINT_LIST_ITEM))
                .build();
                .addSubSlice(childAction.build(), null)
                .build(), null);
        return parent.addHints(Arrays.asList(Slice.HINT_PERMISSION_REQUEST)).build();
    }

    /**