// Signature format: 3.0
package androidx.slice {

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public interface Clock {
    method public long currentTimeMillis();
  }

  @RequiresApi(19) public final class Slice implements androidx.versionedparcelable.VersionedParcelable {
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.slice.Slice? bindSlice(android.content.Context!, android.net.Uri, java.util.Set<androidx.slice.SliceSpec!>!);
    method @androidx.slice.Slice.SliceHint public java.util.List<java.lang.String!>! getHints();
    method public java.util.List<androidx.slice.SliceItem!>! getItems();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.slice.SliceSpec? getSpec();
    method public android.net.Uri! getUri();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean hasHint(@androidx.slice.Slice.SliceHint String!);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static class Slice.Builder {
    ctor public Slice.Builder(android.net.Uri);
    ctor public Slice.Builder(androidx.slice.Slice.Builder);
    method public androidx.slice.Slice.Builder! addAction(android.app.PendingIntent, androidx.slice.Slice, String?);
    method public androidx.slice.Slice.Builder! addAction(androidx.slice.SliceItem.ActionHandler, androidx.slice.Slice, String?);
    method public androidx.slice.Slice.Builder! addHints(@androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addHints(@androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice.Builder! addIcon(androidx.core.graphics.drawable.IconCompat!, String?, @androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addIcon(androidx.core.graphics.drawable.IconCompat!, String?, @androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice.Builder! addInt(int, String?, @androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addInt(int, String?, @androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice.Builder! addLong(long, String?, @androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addLong(long, String?, @androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.slice.Slice.Builder! addRemoteInput(android.app.RemoteInput!, String?, @androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.slice.Slice.Builder! addRemoteInput(android.app.RemoteInput!, String?, @androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addSubSlice(androidx.slice.Slice);
    method public androidx.slice.Slice.Builder! addSubSlice(androidx.slice.Slice, String!);
    method public androidx.slice.Slice.Builder! addText(CharSequence!, String?, @androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addText(CharSequence!, String?, @androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method @Deprecated public androidx.slice.Slice.Builder! addTimestamp(long, String?, @androidx.slice.Slice.SliceHint java.lang.String!...);
    method public androidx.slice.Slice.Builder! addTimestamp(long, String?, @androidx.slice.Slice.SliceHint java.util.List<java.lang.String!>!);
    method public androidx.slice.Slice! build();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.slice.Slice.Builder! setSpec(androidx.slice.SliceSpec!);
  }


  @RequiresApi(28) public class SliceConvert {
    method public static android.app.slice.Slice! unwrap(androidx.slice.Slice!);
    method public static androidx.slice.Slice! wrap(android.app.slice.Slice!, android.content.Context!);
  }

  @RequiresApi(19) public final class SliceItem extends androidx.versionedparcelable.CustomVersionedParcelable {
    method public void fireAction(android.content.Context?, android.content.Intent?) throws android.app.PendingIntent.CanceledException;
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean fireActionInternal(android.content.Context?, android.content.Intent?) throws android.app.PendingIntent.CanceledException;
    method public android.app.PendingIntent! getAction();
    method @androidx.slice.SliceItem.SliceType public String! getFormat();
    method @androidx.slice.Slice.SliceHint public java.util.List<java.lang.String!> getHints();
    method public androidx.core.graphics.drawable.IconCompat! getIcon();
    method public int getInt();
    method public long getLong();
    method @RequiresApi(20) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.app.RemoteInput! getRemoteInput();
    method public androidx.slice.Slice! getSlice();
    method public String! getSubType();
    method public CharSequence! getText();
    method public boolean hasHint(@androidx.slice.Slice.SliceHint String!);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface SliceItem.ActionHandler {
    method public void onAction(androidx.slice.SliceItem!, android.content.Context!, android.content.Intent!);
  }



  @RequiresApi(19) public abstract class SliceManager {
    method public abstract int checkSlicePermission(android.net.Uri, int, int);
    method public static androidx.slice.SliceManager getInstance(android.content.Context);
    method public abstract java.util.List<android.net.Uri!> getPinnedSlices();
    method public abstract void grantSlicePermission(String, android.net.Uri);
    method public abstract void revokeSlicePermission(String, android.net.Uri);
  }

  public abstract class SliceProvider extends android.content.ContentProvider implements androidx.core.app.CoreComponentFactory.CompatWrapped {
    ctor public SliceProvider(java.lang.String!...);
    ctor public SliceProvider();
    method public final int bulkInsert(android.net.Uri, android.content.ContentValues![]);
    method @RequiresApi(19) public final android.net.Uri? canonicalize(android.net.Uri);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public static android.app.PendingIntent! createPermissionIntent(android.content.Context!, android.net.Uri!, String!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public static androidx.slice.Slice! createPermissionSlice(android.content.Context!, android.net.Uri!, String!);
    method public final int delete(android.net.Uri, String?, String![]?);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public static java.util.Set<androidx.slice.SliceSpec!>! getCurrentSpecs();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public static CharSequence! getPermissionString(android.content.Context!, String!);
    method @RequiresApi(19) public java.util.List<android.net.Uri!> getPinnedSlices();
    method public final String! getType(android.net.Uri!);
    method public final android.net.Uri? insert(android.net.Uri, android.content.ContentValues?);
    method @RequiresApi(19) public abstract androidx.slice.Slice! onBindSlice(android.net.Uri!);
    method public final boolean onCreate();
    method @RequiresApi(19) public abstract boolean onCreateSliceProvider();
    method @RequiresApi(19) public java.util.Collection<android.net.Uri!>! onGetSliceDescendants(android.net.Uri!);
    method @RequiresApi(19) public android.net.Uri onMapIntentToUri(android.content.Intent!);
    method @RequiresApi(19) public void onSlicePinned(android.net.Uri!);
    method @RequiresApi(19) public void onSliceUnpinned(android.net.Uri!);
    method public final android.database.Cursor? query(android.net.Uri, String![]?, String?, String![]?, String?);
    method @RequiresApi(28) public final android.database.Cursor? query(android.net.Uri, String![]?, android.os.Bundle?, android.os.CancellationSignal?);
    method @RequiresApi(16) public final android.database.Cursor? query(android.net.Uri, String![]?, String?, String![]?, String?, android.os.CancellationSignal?);
    method public final int update(android.net.Uri, android.content.ContentValues?, String?, String![]?);
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SliceSpec implements androidx.versionedparcelable.VersionedParcelable {
    ctor public SliceSpec(String, int);
    method public boolean canRender(androidx.slice.SliceSpec);
    method public int getRevision();
    method public String! getType();
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class SliceSpecs {
    field public static final androidx.slice.SliceSpec! BASIC;
    field public static final androidx.slice.SliceSpec! LIST;
    field public static final androidx.slice.SliceSpec! MESSAGING;
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class SystemClock implements androidx.slice.Clock {
    ctor public SystemClock();
    method public long currentTimeMillis();
  }

}

package androidx.slice.compat {


  public static class CompatPermissionManager.PermissionState {
    method public String! getKey();
    method public boolean hasAccess(java.util.List<java.lang.String!>!);
    method public boolean hasAllPermissions();
    method public java.util.Set<java.lang.String!>! toPersistable();
  }





  @RequiresApi(28) public static class SliceProviderWrapperContainer.SliceProviderWrapper extends android.app.slice.SliceProvider {
    ctor public SliceProviderWrapperContainer.SliceProviderWrapper(androidx.slice.SliceProvider!, String![]!);
    method public boolean onCreate();
  }

}

package androidx.slice.core {

  @RequiresApi(19) public interface SliceAction {
    method public android.app.PendingIntent getAction();
    method public CharSequence? getContentDescription();
    method public androidx.core.graphics.drawable.IconCompat? getIcon();
    method @androidx.slice.core.SliceHints.ImageMode public int getImageMode();
    method public int getPriority();
    method public CharSequence getTitle();
    method public boolean isActivity();
    method public boolean isChecked();
    method public boolean isDefaultToggle();
    method public boolean isToggle();
    method public androidx.slice.core.SliceAction! setChecked(boolean);
    method public androidx.slice.core.SliceAction? setContentDescription(CharSequence);
    method public androidx.slice.core.SliceAction! setPriority(@IntRange(from=0) int);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class SliceActionImpl implements androidx.slice.core.SliceAction {
    ctor public SliceActionImpl(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, CharSequence);
    ctor public SliceActionImpl(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, @androidx.slice.core.SliceHints.ImageMode int, CharSequence);
    ctor public SliceActionImpl(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat, CharSequence, boolean);
    ctor public SliceActionImpl(android.app.PendingIntent, CharSequence, boolean);
    method public androidx.slice.Slice buildPrimaryActionSlice(androidx.slice.Slice.Builder);
    method public androidx.slice.Slice buildSlice(androidx.slice.Slice.Builder);
    method public android.app.PendingIntent getAction();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.slice.SliceItem! getActionItem();
    method public CharSequence? getContentDescription();
    method public androidx.core.graphics.drawable.IconCompat? getIcon();
    method @androidx.slice.core.SliceHints.ImageMode public int getImageMode();
    method public int getPriority();
    method public androidx.slice.SliceItem? getSliceItem();
    method public String? getSubtype();
    method public CharSequence getTitle();
    method public boolean isActivity();
    method public boolean isChecked();
    method public boolean isDefaultToggle();
    method public boolean isToggle();
    method public void setActivity(boolean);
    method public androidx.slice.core.SliceActionImpl! setChecked(boolean);
    method public androidx.slice.core.SliceActionImpl? setContentDescription(CharSequence);
    method public androidx.slice.core.SliceActionImpl! setPriority(@IntRange(from=0) int);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class SliceHints {
    field public static final String HINT_ACTIVITY = "activity";
    field public static final int ICON_IMAGE = 0; // 0x0
    field public static final long INFINITY = -1L; // 0xffffffffffffffffL
    field public static final int LARGE_IMAGE = 2; // 0x2
    field public static final String SLICE_METADATA_KEY = "android.metadata.SLICE_URI";
    field public static final int SMALL_IMAGE = 1; // 0x1
    field public static final String SUBTYPE_MILLIS = "millis";
    field public static final String SUBTYPE_MIN = "min";
    field public static final int UNKNOWN_IMAGE = 3; // 0x3
  }

  @IntDef({androidx.slice.core.SliceHints.LARGE_IMAGE, androidx.slice.core.SliceHints.SMALL_IMAGE, androidx.slice.core.SliceHints.ICON_IMAGE, androidx.slice.core.SliceHints.UNKNOWN_IMAGE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SliceHints.ImageMode {
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class SliceQuery {
    method public static androidx.slice.SliceItem! find(androidx.slice.Slice!, String!, String!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.Slice!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.SliceItem!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.SliceItem!, String!, String!, String!);
    method public static androidx.slice.SliceItem! find(androidx.slice.Slice!, String!, String![]!, String![]!);
    method public static androidx.slice.SliceItem! find(androidx.slice.SliceItem!, String!, String![]!, String![]!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.SliceItem!, String!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.Slice!, String!, String!, String!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.SliceItem!, String!, String!, String!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.Slice!, String!, String![]!, String![]!);
    method public static java.util.List<androidx.slice.SliceItem!>! findAll(androidx.slice.SliceItem!, String!, String![]!, String![]!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.slice.SliceItem! findItem(androidx.slice.Slice!, android.net.Uri!);
    method public static androidx.slice.SliceItem! findNotContaining(androidx.slice.SliceItem!, java.util.List<androidx.slice.SliceItem!>!);
    method public static androidx.slice.SliceItem! findSubtype(androidx.slice.Slice!, String!, String!);
    method public static androidx.slice.SliceItem! findSubtype(androidx.slice.SliceItem!, String!, String!);
    method public static androidx.slice.SliceItem! findTopLevelItem(androidx.slice.Slice!, String!, String!, String![]!, String![]!);
    method public static boolean hasAnyHints(androidx.slice.SliceItem!, java.lang.String!...);
    method public static boolean hasHints(androidx.slice.SliceItem!, java.lang.String!...);
    method public static boolean hasHints(androidx.slice.Slice!, java.lang.String!...);
    method public static java.util.Iterator<androidx.slice.SliceItem!>! stream(androidx.slice.SliceItem!);
    method public static java.util.Iterator<androidx.slice.SliceItem!>! stream(androidx.slice.Slice!);
  }

}

