Expose permission-related Slice APIs

- Let providers know who is binding them
 - Let providers tell the system if a slice shouldn't be cached
   for different apps so the app can perform custom permission
   checks.

Test: update-api
Bug: 68751119
Change-Id: I9f74df5516e6efb354ad52fc5c266bd8d4da3c4d
This commit is contained in:
Jason Monk
2018-01-21 14:17:37 -05:00
parent e8f8be7698
commit e696acbbd7
3 changed files with 7 additions and 5 deletions

View File

@@ -7099,6 +7099,7 @@ package android.app.slice {
field public static final android.os.Parcelable.Creator<android.app.slice.Slice> CREATOR;
field public static final java.lang.String EXTRA_TOGGLE_STATE = "android.app.slice.extra.TOGGLE_STATE";
field public static final java.lang.String HINT_ACTIONS = "actions";
field public static final java.lang.String HINT_CALLER_NEEDED = "caller_needed";
field public static final java.lang.String HINT_HORIZONTAL = "horizontal";
field public static final java.lang.String HINT_LARGE = "large";
field public static final java.lang.String HINT_LIST = "list";
@@ -7195,6 +7196,7 @@ package android.app.slice {
public abstract class SliceProvider extends android.content.ContentProvider {
ctor public SliceProvider();
method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
method public final java.lang.String getBindingPackage();
method public final java.lang.String getType(android.net.Uri);
method public final android.net.Uri insert(android.net.Uri, android.content.ContentValues);
method public android.app.slice.Slice onBindSlice(android.net.Uri, java.util.List<android.app.slice.SliceSpec>);

View File

@@ -156,10 +156,11 @@ public final class Slice implements Parcelable {
*/
public static final String HINT_SEE_MORE = "see_more";
/**
* A hint to tell the system that this slice cares about the return value of
* {@link SliceProvider#getBindingPackage} and should not cache the result
* for multiple apps.
* @hide
* A hint used when implementing app-specific slice permissions.
* Tells the system that for this slice the return value of
* {@link SliceProvider#onBindSlice(Uri, List)} may be different depending on
* {@link SliceProvider#getBindingPackage} and should not be cached for multiple
* apps.
*/
public static final String HINT_CALLER_NEEDED = "caller_needed";
/**

View File

@@ -158,7 +158,6 @@ public abstract class SliceProvider extends ContentProvider {
* currently happening. The returned package will have been
* verified to belong to the calling UID. Returns {@code null} if not
* currently performing an {@link #onBindSlice(Uri, List)}.
* @hide
*/
public final @Nullable String getBindingPackage() {
return mBindingPkg;