// Signature format: 3.0
package androidx.slice {

  @RequiresApi(19) public class SliceMetadata {
    method public static androidx.slice.SliceMetadata! from(android.content.Context, androidx.slice.Slice);
    method public long getExpiry();
    method public int getHeaderType();
    method public android.app.PendingIntent? getInputRangeAction();
    method public long getLastUpdatedTime();
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.slice.widget.ListContent! getListContent();
    method public int getLoadingState();
    method public androidx.slice.core.SliceAction? getPrimaryAction();
    method public androidx.core.util.Pair<java.lang.Integer!,java.lang.Integer!>? getRange();
    method public int getRangeValue();
    method public java.util.List<androidx.slice.core.SliceAction!>? getSliceActions();
    method public java.util.List<java.lang.String!>? getSliceKeywords();
    method public CharSequence? getSubtitle();
    method public CharSequence? getSummary();
    method public CharSequence? getTitle();
    method public java.util.List<androidx.slice.core.SliceAction!>! getToggles();
    method public boolean hasLargeMode();
    method public boolean isCachedSlice();
    method public boolean isErrorSlice();
    method public boolean isPermissionSlice();
    method public boolean isSelection();
    method public boolean sendInputRangeAction(int) throws android.app.PendingIntent.CanceledException;
    method public boolean sendToggleAction(androidx.slice.core.SliceAction!, boolean) throws android.app.PendingIntent.CanceledException;
    field public static final int LOADED_ALL = 2; // 0x2
    field public static final int LOADED_NONE = 0; // 0x0
    field public static final int LOADED_PARTIAL = 1; // 0x1
  }

  @RequiresApi(19) public class SliceStructure {
    ctor public SliceStructure(androidx.slice.Slice!);
  }

  @RequiresApi(19) public class SliceUtils {
    method public static androidx.slice.Slice parseSlice(android.content.Context, java.io.InputStream, String, androidx.slice.SliceUtils.SliceActionListener) throws java.io.IOException, androidx.slice.SliceUtils.SliceParseException;
    method public static void serializeSlice(androidx.slice.Slice, android.content.Context, java.io.OutputStream, androidx.slice.SliceUtils.SerializeOptions) throws java.lang.IllegalArgumentException;
    method public static androidx.slice.Slice stripSlice(androidx.slice.Slice, int, boolean);
  }

  public static class SliceUtils.SerializeOptions {
    ctor public SliceUtils.SerializeOptions();
    method public androidx.slice.SliceUtils.SerializeOptions! setActionMode(int);
    method public androidx.slice.SliceUtils.SerializeOptions! setImageConversionFormat(android.graphics.Bitmap.CompressFormat!, int);
    method public androidx.slice.SliceUtils.SerializeOptions! setImageMode(int);
    method public androidx.slice.SliceUtils.SerializeOptions! setMaxImageHeight(int);
    method public androidx.slice.SliceUtils.SerializeOptions! setMaxImageWidth(int);
    field public static final int MODE_CONVERT = 2; // 0x2
    field public static final int MODE_REMOVE = 1; // 0x1
    field public static final int MODE_THROW = 0; // 0x0
  }

  public static interface SliceUtils.SliceActionListener {
    method public void onSliceAction(android.net.Uri!, android.content.Context!, android.content.Intent!);
  }

  public static class SliceUtils.SliceParseException extends java.lang.Exception {
  }

  @RequiresApi(19) public abstract class SliceViewManager {
    method public abstract androidx.slice.Slice? bindSlice(android.net.Uri);
    method public abstract androidx.slice.Slice? bindSlice(android.content.Intent);
    method public static androidx.slice.SliceViewManager getInstance(android.content.Context);
    method @WorkerThread public abstract java.util.Collection<android.net.Uri!> getSliceDescendants(android.net.Uri);
    method public abstract android.net.Uri? mapIntentToUri(android.content.Intent);
    method public abstract void pinSlice(android.net.Uri);
    method public abstract void registerSliceCallback(android.net.Uri, androidx.slice.SliceViewManager.SliceCallback);
    method public abstract void registerSliceCallback(android.net.Uri, java.util.concurrent.Executor, androidx.slice.SliceViewManager.SliceCallback);
    method public abstract void unpinSlice(android.net.Uri);
    method public abstract void unregisterSliceCallback(android.net.Uri, androidx.slice.SliceViewManager.SliceCallback);
  }

  public static interface SliceViewManager.SliceCallback {
    method public void onSliceUpdated(androidx.slice.Slice);
  }

}

package androidx.slice.widget {

  @RequiresApi(19) public class EventInfo {
    ctor public EventInfo(int, int, int, int);
    method public void setPosition(int, int, int);
    field public static final int ACTION_TYPE_BUTTON = 1; // 0x1
    field public static final int ACTION_TYPE_CONTENT = 3; // 0x3
    field public static final int ACTION_TYPE_SEE_MORE = 4; // 0x4
    field public static final int ACTION_TYPE_SELECTION = 5; // 0x5
    field public static final int ACTION_TYPE_SLIDER = 2; // 0x2
    field public static final int ACTION_TYPE_TOGGLE = 0; // 0x0
    field public static final int POSITION_CELL = 2; // 0x2
    field public static final int POSITION_END = 1; // 0x1
    field public static final int POSITION_START = 0; // 0x0
    field public static final int ROW_TYPE_GRID = 1; // 0x1
    field public static final int ROW_TYPE_LIST = 0; // 0x0
    field public static final int ROW_TYPE_MESSAGING = 2; // 0x2
    field public static final int ROW_TYPE_PROGRESS = 5; // 0x5
    field public static final int ROW_TYPE_SELECTION = 6; // 0x6
    field public static final int ROW_TYPE_SHORTCUT = -1; // 0xffffffff
    field public static final int ROW_TYPE_SLIDER = 4; // 0x4
    field public static final int ROW_TYPE_TOGGLE = 3; // 0x3
    field public static final int STATE_OFF = 0; // 0x0
    field public static final int STATE_ON = 1; // 0x1
    field public int actionCount;
    field public int actionIndex;
    field public int actionPosition;
    field public int actionType;
    field public int rowIndex;
    field public int rowTemplateType;
    field public int sliceMode;
    field public int state;
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class GridContent extends androidx.slice.widget.SliceContent {
    ctor public GridContent(androidx.slice.SliceItem!, int);
    method public int getAccentColor();
    method public CharSequence? getContentDescription();
    method public androidx.slice.SliceItem? getContentIntent();
    method public java.util.ArrayList<androidx.slice.widget.GridContent.CellContent!> getGridContent();
    method public int getHeight(androidx.slice.widget.SliceStyle!, androidx.slice.widget.SliceViewPolicy!);
    method public boolean getIsLastIndex();
    method public int getLargestImageMode();
    method public int getLayoutDir();
    method public int getMaxCellLineCount();
    method public int getRowIndex();
    method public androidx.slice.SliceItem? getSeeMoreItem();
    method public androidx.slice.core.SliceAction? getShortcut(android.content.Context?);
    method public androidx.slice.SliceItem? getSliceItem();
    method public CharSequence? getTitle();
    method public boolean hasImage();
    method public boolean isAllImages();
    method public boolean isValid();
    method public void setIsLastIndex(boolean);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static class GridContent.CellContent {
    ctor public GridContent.CellContent(androidx.slice.SliceItem!);
    method public java.util.ArrayList<androidx.slice.SliceItem!>! getCellItems();
    method public CharSequence? getContentDescription();
    method public androidx.slice.SliceItem! getContentIntent();
    method public int getImageMode();
    method public int getTextCount();
    method public androidx.slice.SliceItem? getTitleItem();
    method public boolean hasImage();
    method public boolean isImageOnly();
    method public boolean isValid();
    method public boolean populate(androidx.slice.SliceItem!);
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class ListContent extends androidx.slice.widget.SliceContent {
    ctor public ListContent(androidx.slice.Slice);
    ctor @Deprecated public ListContent(android.content.Context!, androidx.slice.Slice);
    method public int getAccentColor();
    method public CharSequence? getContentDescription();
    method public androidx.slice.widget.RowContent? getHeader();
    method public int getHeaderTemplateType();
    method public int getHeight(androidx.slice.widget.SliceStyle!, androidx.slice.widget.SliceViewPolicy!);
    method public int getLayoutDir();
    method public static int getListHeight(java.util.List<androidx.slice.widget.SliceContent!>!, androidx.slice.widget.SliceStyle!, androidx.slice.widget.SliceViewPolicy!);
    method public int getRowIndex();
    method public java.util.ArrayList<androidx.slice.widget.SliceContent!>! getRowItems(int, androidx.slice.widget.SliceStyle!, androidx.slice.widget.SliceViewPolicy!);
    method public java.util.ArrayList<androidx.slice.widget.SliceContent!> getRowItems();
    method public static int getRowType(androidx.slice.widget.SliceContent!, boolean, java.util.List<androidx.slice.core.SliceAction!>!);
    method public androidx.slice.widget.SliceContent! getSeeMoreItem();
    method public androidx.slice.core.SliceAction? getShortcut(android.content.Context?);
    method public java.util.List<androidx.slice.core.SliceAction!>? getSliceActions();
    method public androidx.slice.SliceItem? getSliceItem();
    method public boolean isValid();
    method public void showActionDividers(boolean);
    method public void showHeaderDivider(boolean);
    method public void showTitleItems(boolean);
  }

  @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class RowContent extends androidx.slice.widget.SliceContent {
    ctor public RowContent(androidx.slice.SliceItem!, int);
    method public int getAccentColor();
    method public CharSequence? getContentDescription();
    method public java.util.ArrayList<androidx.slice.SliceItem!>! getEndItems();
    method public int getHeight(androidx.slice.widget.SliceStyle!, androidx.slice.widget.SliceViewPolicy!);
    method public androidx.slice.SliceItem? getInputRangeThumb();
    method public boolean getIsHeader();
    method public int getLayoutDir();
    method public int getLineCount();
    method public androidx.slice.SliceItem? getPrimaryAction();
    method public androidx.slice.SliceItem? getRange();
    method public int getRowIndex();
    method public androidx.slice.SliceItem? getSelection();
    method public androidx.slice.core.SliceAction? getShortcut(android.content.Context?);
    method public androidx.slice.SliceItem? getSliceItem();
    method public androidx.slice.SliceItem? getStartItem();
    method public androidx.slice.SliceItem? getSubtitleItem();
    method public androidx.slice.SliceItem? getSummaryItem();
    method public androidx.slice.SliceItem? getTitleItem();
    method public java.util.ArrayList<androidx.slice.core.SliceAction!>! getToggleItems();
    method public boolean hasActionDivider();
    method public boolean hasBottomDivider();
    method public boolean hasTitleItems();
    method public boolean isDefaultSeeMore();
    method public boolean isValid();
    method public void setIsHeader(boolean);
    method public void showActionDivider(boolean);
    method public void showBottomDivider(boolean);
    method public void showTitleItems(boolean);
  }

  @RequiresApi(19) public final class SliceLiveData {
    method public static androidx.slice.widget.SliceLiveData.CachedSliceLiveData fromCachedSlice(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener!);
    method public static androidx.lifecycle.LiveData<androidx.slice.Slice!> fromIntent(android.content.Context, android.content.Intent);
    method public static androidx.lifecycle.LiveData<androidx.slice.Slice!> fromIntent(android.content.Context, android.content.Intent, androidx.slice.widget.SliceLiveData.OnErrorListener?);
    method public static androidx.lifecycle.LiveData<androidx.slice.Slice!> fromStream(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.slice.widget.SliceLiveData.CachedSliceLiveData fromStream(android.content.Context, androidx.slice.SliceViewManager!, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener!);
    method public static androidx.lifecycle.LiveData<androidx.slice.Slice!> fromUri(android.content.Context, android.net.Uri);
    method public static androidx.lifecycle.LiveData<androidx.slice.Slice!> fromUri(android.content.Context, android.net.Uri, androidx.slice.widget.SliceLiveData.OnErrorListener?);
  }

  public static class SliceLiveData.CachedSliceLiveData extends androidx.lifecycle.LiveData<androidx.slice.Slice> {
    method public void goLive();
    method public void parseStream();
  }

  public static interface SliceLiveData.OnErrorListener {
    method public void onSliceError(@androidx.slice.widget.SliceLiveData.OnErrorListener.ErrorType int, Throwable?);
    field public static final int ERROR_INVALID_INPUT = 3; // 0x3
    field public static final int ERROR_SLICE_NO_LONGER_PRESENT = 2; // 0x2
    field public static final int ERROR_STRUCTURE_CHANGED = 1; // 0x1
    field public static final int ERROR_UNKNOWN = 0; // 0x0
  }

  @IntDef({androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_UNKNOWN, androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_STRUCTURE_CHANGED, androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_SLICE_NO_LONGER_PRESENT, androidx.slice.widget.SliceLiveData.OnErrorListener.ERROR_INVALID_INPUT}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SliceLiveData.OnErrorListener.ErrorType {
  }

  @RequiresApi(19) public class SliceView extends android.view.ViewGroup implements androidx.lifecycle.Observer<androidx.slice.Slice> android.view.View.OnClickListener {
    ctor public SliceView(android.content.Context!);
    ctor public SliceView(android.content.Context!, android.util.AttributeSet?);
    ctor public SliceView(android.content.Context!, android.util.AttributeSet?, int);
    ctor @RequiresApi(21) public SliceView(android.content.Context!, android.util.AttributeSet!, int, int);
    method public int getMode();
    method public androidx.slice.Slice? getSlice();
    method public java.util.List<androidx.slice.core.SliceAction!>? getSliceActions();
    method public boolean isScrollable();
    method public void onChanged(androidx.slice.Slice?);
    method public void onClick(android.view.View!);
    method public void setAccentColor(@ColorInt int);
    method public void setMode(int);
    method public void setOnSliceActionListener(androidx.slice.widget.SliceView.OnSliceActionListener?);
    method public void setScrollable(boolean);
    method public void setShowActionDividers(boolean);
    method public void setShowHeaderDivider(boolean);
    method public void setShowTitleItems(boolean);
    method public void setSlice(androidx.slice.Slice?);
    method public void setSliceActions(java.util.List<androidx.slice.core.SliceAction!>?);
    field public static final int MODE_LARGE = 2; // 0x2
    field public static final int MODE_SHORTCUT = 3; // 0x3
    field public static final int MODE_SMALL = 1; // 0x1
  }

  public static interface SliceView.OnSliceActionListener {
    method public void onSliceAction(androidx.slice.widget.EventInfo, androidx.slice.SliceItem);
  }

}

