// 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 @androidx.slice.widget.EventInfo.SliceRowType public int getHeaderType();
    method public android.app.PendingIntent? getInputRangeAction();
    method public long getLastUpdatedTime();
    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 isErrorSlice();
    method public boolean isPermissionSlice();
    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, @androidx.slice.widget.SliceView.SliceMode 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(@androidx.slice.widget.SliceView.SliceMode int, @androidx.slice.widget.EventInfo.SliceActionType int, @androidx.slice.widget.EventInfo.SliceRowType int, int);
    method public void setPosition(@androidx.slice.widget.EventInfo.SliceButtonPosition 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_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_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 @androidx.slice.widget.EventInfo.SliceButtonPosition public int actionPosition;
    field @androidx.slice.widget.EventInfo.SliceActionType public int actionType;
    field public int rowIndex;
    field @androidx.slice.widget.EventInfo.SliceRowType public int rowTemplateType;
    field @androidx.slice.widget.SliceView.SliceMode public int sliceMode;
    field public int state;
  }




  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class GridContent {
    ctor public GridContent(android.content.Context!, androidx.slice.SliceItem!);
    method public int getActualHeight();
    method public androidx.slice.SliceItem? getColorItem();
    method public CharSequence? getContentDescription();
    method public androidx.slice.SliceItem? getContentIntent();
    method public java.util.ArrayList<androidx.slice.widget.GridContent.CellContent!> getGridContent();
    method public int getLargestImageMode();
    method public androidx.slice.SliceItem? getLayoutDirItem();
    method public int getMaxCellLineCount();
    method public androidx.slice.SliceItem? getSeeMoreItem();
    method public int getSmallHeight();
    method public CharSequence? getTitle();
    method public boolean hasImage();
    method public boolean isAllImages();
    method public boolean isValid();
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) 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!);
  }



  public class LargeSliceAdapter.SliceViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder implements android.view.View.OnClickListener android.view.View.OnTouchListener {
    ctor public LargeSliceAdapter.SliceViewHolder(android.view.View!);
    method public void onClick(android.view.View!);
    method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
    field public final androidx.slice.widget.SliceChildView! mSliceChildView;
  }

  protected static class LargeSliceAdapter.SliceWrapper {
    ctor public LargeSliceAdapter.SliceWrapper(androidx.slice.SliceItem!, androidx.slice.widget.LargeSliceAdapter.IdGenerator!, int);
    method public static int getFormat(androidx.slice.SliceItem!);
  }


  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class ListContent {
    ctor public ListContent(android.content.Context!, androidx.slice.Slice!);
    ctor public ListContent(android.content.Context!, androidx.slice.Slice!, androidx.slice.widget.SliceStyle!);
    ctor public ListContent(android.content.Context!, androidx.slice.Slice!, android.util.AttributeSet!, int, int);
    method public androidx.slice.SliceItem? getColorItem();
    method public androidx.slice.SliceItem? getHeaderItem();
    method public int getHeaderTemplateType();
    method public java.util.ArrayList<androidx.slice.SliceItem!> getItemsForNonScrollingList(int);
    method public int getLargeHeight(int, boolean);
    method public androidx.slice.SliceItem? getLayoutDirItem();
    method public int getListHeight(java.util.List<androidx.slice.SliceItem!>!);
    method public androidx.slice.SliceItem? getPrimaryAction();
    method public java.util.ArrayList<androidx.slice.SliceItem!> getRowItems();
    method public static int getRowType(android.content.Context!, androidx.slice.SliceItem!, boolean, java.util.List<androidx.slice.core.SliceAction!>!);
    method public androidx.slice.SliceItem? getSeeMoreItem();
    method public androidx.slice.Slice? getSlice();
    method public java.util.List<androidx.slice.core.SliceAction!>? getSliceActions();
    method public int getSmallHeight();
    method public boolean hasHeader();
    method public boolean isValid();
    method public static boolean isValidHeader(androidx.slice.SliceItem!);
    method public void setMaxSmallHeight(int);
  }



  public static class RemoteInputView.RemoteEditText extends android.widget.EditText {
    ctor public RemoteInputView.RemoteEditText(android.content.Context!, android.util.AttributeSet!);
  }

  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class RowContent {
    ctor public RowContent(android.content.Context!, androidx.slice.SliceItem!, boolean);
    method public boolean endItemsContainAction();
    method public int getActualHeight(int);
    method public CharSequence? getContentDescription();
    method public java.util.ArrayList<androidx.slice.SliceItem!>! getEndItems();
    method public androidx.slice.SliceItem? getInputRangeThumb();
    method public androidx.slice.SliceItem? getLayoutDirItem();
    method public int getLineCount();
    method public androidx.slice.SliceItem? getPrimaryAction();
    method public androidx.slice.SliceItem? getRange();
    method public androidx.slice.SliceItem getSlice();
    method public int getSmallHeight(int);
    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 isDefaultSeeMore();
    method public boolean isValid();
  }


  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RequiresApi(19) public class ShortcutContent {
    ctor public ShortcutContent(androidx.slice.widget.ListContent);
    method public androidx.slice.Slice! buildSlice(androidx.slice.Slice.Builder!);
    method public androidx.slice.SliceItem! getActionItem();
    method public androidx.slice.SliceItem! getColorItem();
    method public androidx.slice.SliceItem! getIcon();
    method public androidx.slice.SliceItem! getLabel();
  }




  @RequiresApi(19) public final class SliceLiveData {
    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!> fromStream(android.content.Context, java.io.InputStream, androidx.slice.widget.SliceLiveData.OnErrorListener!);
    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.lifecycle.LiveData<androidx.slice.Slice!> 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);
  }

  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.CLASS) 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 @androidx.slice.widget.SliceView.SliceMode 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(@androidx.slice.widget.SliceView.SliceMode int);
    method public void setOnSliceActionListener(androidx.slice.widget.SliceView.OnSliceActionListener?);
    method public void setScrollable(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);
  }



}

