mirror of
https://github.com/github/codeql.git
synced 2026-04-24 08:15:14 +02:00
Merge pull request #6801 from atorralba/atorralba/android_slice_models
Android: Add `androidx.slice.builders` models
This commit is contained in:
@@ -79,6 +79,7 @@ private module Frameworks {
|
||||
private import internal.ContainerFlow
|
||||
private import semmle.code.java.frameworks.android.Android
|
||||
private import semmle.code.java.frameworks.android.Intent
|
||||
private import semmle.code.java.frameworks.android.Slice
|
||||
private import semmle.code.java.frameworks.android.SQLite
|
||||
private import semmle.code.java.frameworks.android.XssSinks
|
||||
private import semmle.code.java.frameworks.ApacheHttp
|
||||
|
||||
95
java/ql/lib/semmle/code/java/frameworks/android/Slice.qll
Normal file
95
java/ql/lib/semmle/code/java/frameworks/android/Slice.qll
Normal file
@@ -0,0 +1,95 @@
|
||||
/** Provides classes and predicates related to `androidx.slice`. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.FlowSteps
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class SliceActionsInheritTaint extends DataFlow::SyntheticFieldContent,
|
||||
TaintInheritingContent {
|
||||
SliceActionsInheritTaint() { this.getField().matches("androidx.slice.Slice.action") }
|
||||
}
|
||||
|
||||
private class SliceBuildersSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"androidx.slice.builders;ListBuilder;true;addAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;addGridRow;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;addInputRange;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;addRange;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;addRating;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;addRow;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;addSelection;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;setHeader;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;setSeeMoreAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;setSeeMoreRow;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder;true;build;;;SyntheticField[androidx.slice.Slice.action] of Argument[-1];ReturnValue;taint",
|
||||
"androidx.slice.builders;ListBuilder$HeaderBuilder;true;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RangeBuilder;true;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RatingBuilder;true;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;(SliceAction,boolean);;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;(SliceAction);;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;(SliceAction,boolean);;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;(SliceAction);;SyntheticField[androidx.slice.Slice.action] of Argument[0];SyntheticField[androidx.slice.Slice.action] of Argument[-1];taint",
|
||||
"androidx.slice.builders;SliceAction;true;create;(PendingIntent,IconCompat,int,CharSequence);;Argument[0];SyntheticField[androidx.slice.Slice.action] of ReturnValue;taint",
|
||||
"androidx.slice.builders;SliceAction;true;createDeeplink;(PendingIntent,IconCompat,int,CharSequence);;Argument[0];SyntheticField[androidx.slice.Slice.action] of ReturnValue;taint",
|
||||
"androidx.slice.builders;SliceAction;true;createToggle;(PendingIntent,CharSequence,boolean);;Argument[0];SyntheticField[androidx.slice.Slice.action] of ReturnValue;taint",
|
||||
"androidx.slice.builders;SliceAction;true;getAction;;;SyntheticField[androidx.slice.Slice.action] of Argument[-1];ReturnValue;taint",
|
||||
// Fluent models
|
||||
"androidx.slice.builders;ListBuilder;true;" +
|
||||
[
|
||||
"addAction", "addGridRow", "addInputRange", "addRange", "addRating", "addRow",
|
||||
"addSelection", "setAccentColor", "setHeader", "setHostExtras", "setIsError",
|
||||
"setKeywords", "setLayoutDirection", "setSeeMoreAction", "setSeeMoreRow"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"androidx.slice.builders;ListBuilder$HeaderBuilder;true;" +
|
||||
[
|
||||
"setContentDescription", "setLayoutDirection", "setPrimaryAction", "setSubtitle",
|
||||
"setSummary", "setTitle"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"androidx.slice.builders;ListBuilder$InputRangeBuilder;true;" +
|
||||
[
|
||||
"addEndItem", "setContentDescription", "setInputAction", "setLayoutDirection", "setMax",
|
||||
"setMin", "setPrimaryAction", "setSubtitle", "setThumb", "setTitle", "setTitleItem",
|
||||
"setValue"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"androidx.slice.builders;ListBuilder$RangeBuilder;true;" +
|
||||
[
|
||||
"setContentDescription", "setMax", "setMode", "setPrimaryAction", "setSubtitle",
|
||||
"setTitle", "setTitleItem", "setValue"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"androidx.slice.builders;ListBuilder$RatingBuilder;true;" +
|
||||
[
|
||||
"setContentDescription", "setInputAction", "setMax", "setMin", "setPrimaryAction",
|
||||
"setSubtitle", "setTitle", "setTitleItem", "setValue"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;" +
|
||||
[
|
||||
"addEndItem", "setContentDescription", "setEndOfSection", "setLayoutDirection",
|
||||
"setPrimaryAction", "setSubtitle", "setTitle", "setTitleItem"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"androidx.slice.builders;SliceAction;true;" +
|
||||
["setChecked", "setContentDescription", "setPriority"] +
|
||||
";;;Argument[-1];ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SliceProviderSourceModels extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"androidx.slice;SliceProvider;true;onBindSlice;;;Parameter[0];contentprovider",
|
||||
"androidx.slice;SliceProvider;true;onCreatePermissionRequest;;;Parameter[0];contentprovider",
|
||||
"androidx.slice;SliceProvider;true;onMapIntentToUri;;;Parameter[0];contentprovider",
|
||||
"androidx.slice;SliceProvider;true;onSlicePinned;;;Parameter[0];contentprovider",
|
||||
"androidx.slice;SliceProvider;true;onSliceUnpinned;;;Parameter[0];contentprovider"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0"
|
||||
package="com.example.app">
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<provider
|
||||
android:name=".TestSources"
|
||||
android:authority="com.example.myapp.Test"
|
||||
android:exported="true" />
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
841
java/ql/test/library-tests/frameworks/android/slice/Test.java
Normal file
841
java/ql/test/library-tests/frameworks/android/slice/Test.java
Normal file
@@ -0,0 +1,841 @@
|
||||
package generatedtest;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.remotecallback.RemoteCallback;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.builders.GridRowBuilder;
|
||||
import androidx.slice.builders.ListBuilder;
|
||||
import androidx.slice.builders.SelectionBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
|
||||
// Test case generated by GenerateFlowTestCase.ql
|
||||
public class Test {
|
||||
|
||||
Object newWithSlice_actionDefault(Object element) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Object source() {
|
||||
return null;
|
||||
}
|
||||
|
||||
void sink(Object o) {}
|
||||
|
||||
public void test() throws Exception {
|
||||
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setPrimaryAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setContentDescription(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setLayoutDirection(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setPrimaryAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setSubtitle(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setSubtitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSummary;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setSummary(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSummary;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setSummary(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setTitle(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.HeaderBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out = in.setTitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;addEndItem;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.addEndItem(in, false);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;addEndItem;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.addEndItem(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;setInputAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[-1];taint"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out.setInputAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setPrimaryAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.addEndItem(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.addEndItem(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setContentDescription(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setInputAction((RemoteCallback) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setInputAction((PendingIntent) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setLayoutDirection(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setMax;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setMax(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setMin;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setMin(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setPrimaryAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setSubtitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setThumb;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setThumb(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setTitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setTitleItem(null, 0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setTitleItem(null, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setValue;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.InputRangeBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out = in.setValue(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setPrimaryAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setContentDescription(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setMax;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setMax(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setMode;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setMode(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setPrimaryAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setSubtitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setTitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setTitleItem(null, 0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setTitleItem(null, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RangeBuilder;true;setValue;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RangeBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out = in.setValue(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;false;setInputAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[-1];taint"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out.setInputAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setPrimaryAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setContentDescription(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setInputAction((RemoteCallback) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setInputAction((PendingIntent) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setMax;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setMax(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setMin;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setMin(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setPrimaryAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setSubtitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setTitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setTitleItem(null, 0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setTitleItem(null, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RatingBuilder;true;setValue;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RatingBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out = in.setValue(0.0f);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;false;addEndItem;(SliceAction);;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.addEndItem(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;false;addEndItem;(SliceAction,boolean);;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.addEndItem(in, false);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setPrimaryAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;false;setTitleItem;(SliceAction);;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setTitleItem(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;false;setTitleItem;(SliceAction,boolean);;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.setTitleItem(in, false);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.addEndItem(null, 0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.addEndItem(0L);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.addEndItem((SliceAction) null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.addEndItem((SliceAction) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.addEndItem((IconCompat) null, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setContentDescription(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setEndOfSection;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setEndOfSection(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setLayoutDirection(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setPrimaryAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setSubtitle(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setSubtitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitle(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitle;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitleItem(null, 0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitleItem(0L);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitleItem((SliceAction) null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitleItem((SliceAction) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder.RowBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out = in.setTitleItem((IconCompat) null, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out.addAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addGridRow;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
GridRowBuilder in = (GridRowBuilder) source();
|
||||
out.addGridRow(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addInputRange;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source();
|
||||
out.addInputRange(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addRange;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source();
|
||||
out.addRange(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addRating;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source();
|
||||
out.addRating(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addRow;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out.addRow(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;addSelection;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
SelectionBuilder in = (SelectionBuilder) source();
|
||||
out.addSelection(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;setHeader;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source();
|
||||
out.setHeader(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;false;setSeeMoreAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out.setSeeMoreAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addGridRow;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addGridRow(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addInputRange;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addInputRange(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addRange;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addRange(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addRating;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addRating(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addRow;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addRow(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;addSelection;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.addSelection(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;build;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[-1];ReturnValue;taint"
|
||||
Slice out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.build();
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setAccentColor;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setAccentColor(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setHeader;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setHeader(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setHostExtras;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setHostExtras(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setIsError;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setIsError(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setKeywords;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setKeywords(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setLayoutDirection(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setSeeMoreAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setSeeMoreAction((RemoteCallback) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setSeeMoreAction;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setSeeMoreAction((PendingIntent) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setSeeMoreRow;;;Argument[-1];ReturnValue;value"
|
||||
ListBuilder out = null;
|
||||
ListBuilder in = (ListBuilder) source();
|
||||
out = in.setSeeMoreRow(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;ListBuilder;true;setSeeMoreRow;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[0];SyntheticField[androidx.slice.Slice.action] of
|
||||
// Argument[-1];taint"
|
||||
ListBuilder out = null;
|
||||
ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source();
|
||||
out.setSeeMoreRow(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;false;create;(PendingIntent,IconCompat,int,CharSequence);;Argument[0];SyntheticField[androidx.slice.Slice.action]
|
||||
// of ReturnValue;taint"
|
||||
SliceAction out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out = SliceAction.create(in, (IconCompat) null, 0, (CharSequence) null);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;false;createDeeplink;(PendingIntent,IconCompat,int,CharSequence);;Argument[0];SyntheticField[androidx.slice.Slice.action]
|
||||
// of ReturnValue;taint"
|
||||
SliceAction out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out = SliceAction.createDeeplink(in, (IconCompat) null, 0, (CharSequence) null);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;false;createToggle;(PendingIntent,CharSequence,boolean);;Argument[0];SyntheticField[androidx.slice.Slice.action]
|
||||
// of ReturnValue;taint"
|
||||
SliceAction out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out = SliceAction.createToggle(in, (CharSequence) null, false);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;false;getAction;;;SyntheticField[androidx.slice.Slice.action]
|
||||
// of Argument[-1];ReturnValue;taint"
|
||||
PendingIntent out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out = in.getAction();
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;true;setChecked;;;Argument[-1];ReturnValue;value"
|
||||
SliceAction out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out = in.setChecked(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;true;setContentDescription;;;Argument[-1];ReturnValue;value"
|
||||
SliceAction out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out = in.setContentDescription(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "androidx.slice.builders;SliceAction;true;setPriority;;;Argument[-1];ReturnValue;value"
|
||||
SliceAction out = null;
|
||||
SliceAction in = (SliceAction) source();
|
||||
out = in.setPriority(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.example.app;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Intent;
|
||||
import android.content.res.AssetFileDescriptor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.CancellationSignal;
|
||||
import android.os.RemoteException;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.SliceProvider;
|
||||
|
||||
public class TestSources extends SliceProvider {
|
||||
|
||||
void sink(Object o) {}
|
||||
|
||||
// "androidx.slice;SliceProvider;true;onBindSlice;;;Parameter[0];contentprovider",
|
||||
@Override
|
||||
public Slice onBindSlice(Uri sliceUri) {
|
||||
sink(sliceUri); // $hasValueFlow
|
||||
return null;
|
||||
}
|
||||
|
||||
// "androidx.slice;SliceProvider;true;onCreatePermissionRequest;;;Parameter[0];contentprovider",
|
||||
@Override
|
||||
public PendingIntent onCreatePermissionRequest(Uri sliceUri, String callingPackage) {
|
||||
sink(sliceUri); // $hasValueFlow
|
||||
sink(callingPackage); // Safe
|
||||
return null;
|
||||
}
|
||||
|
||||
// "androidx.slice;SliceProvider;true;onMapIntentToUri;;;Parameter[0];contentprovider",
|
||||
@Override
|
||||
public Uri onMapIntentToUri(Intent intent) {
|
||||
sink(intent); // $hasValueFlow
|
||||
return null;
|
||||
}
|
||||
|
||||
// "androidx.slice;SliceProvider;true;onSlicePinned;;;Parameter[0];contentprovider",
|
||||
public void onSlicePinned(Uri sliceUri) {
|
||||
sink(sliceUri); // $hasValueFlow
|
||||
}
|
||||
|
||||
// "androidx.slice;SliceProvider;true;onSliceUnpinned;;;Parameter[0];contentprovider"
|
||||
public void onSliceUnpinned(Uri sliceUri) {
|
||||
sink(sliceUri); // $hasValueFlow
|
||||
}
|
||||
|
||||
// Methods needed for compilation
|
||||
|
||||
@Override
|
||||
public AssetFileDescriptor openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts,
|
||||
CancellationSignal signal) throws RemoteException, FileNotFoundException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bundle call(String authority, String method, String arg, Bundle extras)
|
||||
throws RemoteException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateSliceProvider() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/google-android-9.0.0
|
||||
18
java/ql/test/library-tests/frameworks/android/slice/test.ql
Normal file
18
java/ql/test/library-tests/frameworks/android/slice/test.ql
Normal file
@@ -0,0 +1,18 @@
|
||||
import java
|
||||
import TestUtilities.InlineFlowTest
|
||||
import semmle.code.java.dataflow.FlowSources
|
||||
|
||||
class SliceValueFlowConf extends DefaultValueFlowConf {
|
||||
override predicate isSource(DataFlow::Node source) {
|
||||
super.isSource(source) or source instanceof RemoteFlowSource
|
||||
}
|
||||
}
|
||||
|
||||
class SliceTaintFlowConf extends DefaultTaintFlowConf {
|
||||
override predicate allowImplicitRead(DataFlow::Node node, DataFlow::Content c) {
|
||||
super.allowImplicitRead(node, c)
|
||||
or
|
||||
isSink(node) and
|
||||
c.(DataFlow::SyntheticFieldContent).getField() = "androidx.slice.Slice.action"
|
||||
}
|
||||
}
|
||||
214
java/ql/test/stubs/google-android-9.0.0/android/app/PendingIntent.java
generated
Normal file
214
java/ql/test/stubs/google-android-9.0.0/android/app/PendingIntent.java
generated
Normal file
@@ -0,0 +1,214 @@
|
||||
/*
|
||||
* Copyright (C) 2006 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package android.app;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.os.UserHandle;
|
||||
import android.util.AndroidException;
|
||||
|
||||
public final class PendingIntent implements Parcelable {
|
||||
public @interface Flags {
|
||||
|
||||
}
|
||||
|
||||
public static final int FLAG_ONE_SHOT = 1 << 30;
|
||||
public static final int FLAG_NO_CREATE = 1 << 29;
|
||||
public static final int FLAG_CANCEL_CURRENT = 1 << 28;
|
||||
public static final int FLAG_UPDATE_CURRENT = 1 << 27;
|
||||
public static final int FLAG_IMMUTABLE = 1 << 26;
|
||||
|
||||
public static class CanceledException extends AndroidException {
|
||||
public CanceledException() {}
|
||||
|
||||
public CanceledException(String name) {}
|
||||
|
||||
public CanceledException(Exception cause) {}
|
||||
|
||||
}
|
||||
|
||||
public interface OnFinished {
|
||||
void onSendFinished(PendingIntent pendingIntent, Intent intent, int resultCode,
|
||||
String resultData, Bundle resultExtras);
|
||||
|
||||
}
|
||||
|
||||
public interface OnMarshaledListener {
|
||||
void onMarshaled(PendingIntent intent, Parcel parcel, int flags);
|
||||
}
|
||||
|
||||
public static void setOnMarshaledListener(OnMarshaledListener listener) {}
|
||||
|
||||
public static PendingIntent getActivity(Context context, int requestCode, Intent intent,
|
||||
@Flags int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getActivity(Context context, int requestCode, @NonNull Intent intent,
|
||||
@Flags int flags, @Nullable Bundle options) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getActivityAsUser(Context context, int requestCode,
|
||||
@NonNull Intent intent, int flags, Bundle options, UserHandle user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getActivities(Context context, int requestCode,
|
||||
@NonNull Intent[] intents, @Flags int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getActivities(Context context, int requestCode,
|
||||
@NonNull Intent[] intents, @Flags int flags, @Nullable Bundle options) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getActivitiesAsUser(Context context, int requestCode,
|
||||
@NonNull Intent[] intents, int flags, Bundle options, UserHandle user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getBroadcast(Context context, int requestCode, Intent intent,
|
||||
@Flags int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getBroadcastAsUser(Context context, int requestCode, Intent intent,
|
||||
int flags, UserHandle userHandle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getService(Context context, int requestCode, @NonNull Intent intent,
|
||||
@Flags int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static PendingIntent getForegroundService(Context context, int requestCode,
|
||||
@NonNull Intent intent, @Flags int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void cancel() {}
|
||||
|
||||
public void send() throws CanceledException {}
|
||||
|
||||
public void send(int code) throws CanceledException {}
|
||||
|
||||
public void send(Context context, int code, @Nullable Intent intent) throws CanceledException {}
|
||||
|
||||
public void send(int code, @Nullable OnFinished onFinished, @Nullable Handler handler)
|
||||
throws CanceledException {}
|
||||
|
||||
public void send(Context context, int code, @Nullable Intent intent,
|
||||
@Nullable OnFinished onFinished, @Nullable Handler handler) throws CanceledException {}
|
||||
|
||||
public void send(Context context, int code, @Nullable Intent intent,
|
||||
@Nullable OnFinished onFinished, @Nullable Handler handler,
|
||||
@Nullable String requiredPermission) throws CanceledException {}
|
||||
|
||||
public void send(Context context, int code, @Nullable Intent intent,
|
||||
@Nullable OnFinished onFinished, @Nullable Handler handler,
|
||||
@Nullable String requiredPermission, @Nullable Bundle options) throws CanceledException {}
|
||||
|
||||
public int sendAndReturnResult(Context context, int code, @Nullable Intent intent,
|
||||
@Nullable OnFinished onFinished, @Nullable Handler handler,
|
||||
@Nullable String requiredPermission, @Nullable Bundle options) throws CanceledException {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getTargetPackage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getCreatorPackage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getCreatorUid() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void registerCancelListener(CancelListener cancelListener) {}
|
||||
|
||||
public void unregisterCancelListener(CancelListener cancelListener) {}
|
||||
|
||||
public UserHandle getCreatorUserHandle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTargetedToPackage() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isActivity() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isForegroundService() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isBroadcast() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Intent getIntent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getTag(String prefix) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object otherObj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void writeToParcel(Parcel out, int flags) {}
|
||||
|
||||
public static void writePendingIntentOrNullToParcel(@Nullable PendingIntent sender,
|
||||
@NonNull Parcel out) {}
|
||||
|
||||
public static PendingIntent readPendingIntentOrNullFromParcel(@NonNull Parcel in) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public interface CancelListener {
|
||||
void onCancelled(PendingIntent intent);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
package android.content;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
@@ -24,11 +25,17 @@ public class ComponentName implements Cloneable, Comparable<ComponentName>, Parc
|
||||
public int compareTo(ComponentName p0){ return 0; }
|
||||
public int describeContents(){ return 0; }
|
||||
public int hashCode(){ return 0; }
|
||||
public static void appendShortString(StringBuilder sb, String packageName, String className) {}
|
||||
public static ComponentName createRelative(Context p0, String p1){ return null; }
|
||||
public static ComponentName createRelative(String p0, String p1){ return null; }
|
||||
public static String flattenToShortString(ComponentName componentName) { return null; }
|
||||
public static void printShortString(PrintWriter pw, String packageName, String className) {}
|
||||
public static ComponentName readFromParcel(Parcel p0){ return null; }
|
||||
public static ComponentName unflattenFromString(String p0){ return null; }
|
||||
public static Parcelable.Creator<ComponentName> CREATOR = null;
|
||||
public static void writeToParcel(ComponentName p0, Parcel p1){}
|
||||
public void writeToParcel(Parcel p0, int p1){}
|
||||
public interface WithComponentName {
|
||||
ComponentName getComponentName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
|
||||
package android.os;
|
||||
|
||||
import android.os.BaseBundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class PersistableBundle extends BaseBundle implements Cloneable, Parcelable
|
||||
{
|
||||
@@ -20,4 +18,5 @@ public class PersistableBundle extends BaseBundle implements Cloneable, Parcelab
|
||||
public static PersistableBundle EMPTY = null;
|
||||
public void putPersistableBundle(String p0, PersistableBundle p1){}
|
||||
public void writeToParcel(Parcel p0, int p1){}
|
||||
public static PersistableBundle readFromStream(InputStream inputStream){ return null; }
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
package android.os;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
public class UserHandle implements Parcelable
|
||||
{
|
||||
protected UserHandle() {}
|
||||
@@ -15,4 +17,28 @@ public class UserHandle implements Parcelable
|
||||
public static UserHandle readFromParcel(Parcel p0){ return null; }
|
||||
public static void writeToParcel(UserHandle p0, Parcel p1){}
|
||||
public void writeToParcel(Parcel p0, int p1){}
|
||||
public static boolean isSameUser(int uid1, int uid2) { return false; }
|
||||
public static boolean isSameApp(int uid1, int uid2) { return false; }
|
||||
public static boolean isIsolated(int uid) { return false; }
|
||||
public static boolean isApp(int uid) { return false; }
|
||||
public static boolean isCore(int uid) { return false; }
|
||||
public static int getUserId(int uid) { return 0; }
|
||||
public static int getCallingUserId() { return 0; }
|
||||
public static int getCallingAppId() { return 0; }
|
||||
public static UserHandle of(int userId) { return null; }
|
||||
public static int getUid(int userId, int appId) { return 0; }
|
||||
public static int getAppId(int uid) { return 0; }
|
||||
public static int getUserGid(int userId) { return 0; }
|
||||
public static int getSharedAppGid(int uid) { return 0; }
|
||||
public static int getSharedAppGid(int userId, int appId) { return 0; }
|
||||
public static int getAppIdFromSharedAppGid(int gid) { return 0; }
|
||||
public static int getCacheAppGid(int uid) { return 0; }
|
||||
public static int getCacheAppGid(int userId, int appId) { return 0; }
|
||||
public static void formatUid(StringBuilder sb, int uid) {}
|
||||
public static String formatUid(int uid) { return null; }
|
||||
public static void formatUid(PrintWriter pw, int uid) {}
|
||||
public static int parseUserArg(String arg) { return 0; }
|
||||
public static int myUserId() { return 0; }
|
||||
public boolean isOwner() { return false; }
|
||||
public boolean isSystem() { return false; }
|
||||
}
|
||||
|
||||
23
java/ql/test/stubs/google-android-9.0.0/androidx/annotation/IntRange.java
generated
Normal file
23
java/ql/test/stubs/google-android-9.0.0/androidx/annotation/IntRange.java
generated
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package androidx.annotation;
|
||||
|
||||
public @interface IntRange {
|
||||
long from() default Long.MIN_VALUE;
|
||||
|
||||
long to() default Long.MAX_VALUE;
|
||||
|
||||
}
|
||||
19
java/ql/test/stubs/google-android-9.0.0/androidx/annotation/Nullable.java
generated
Normal file
19
java/ql/test/stubs/google-android-9.0.0/androidx/annotation/Nullable.java
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2013 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package androidx.annotation;
|
||||
|
||||
public @interface Nullable {
|
||||
}
|
||||
102
java/ql/test/stubs/google-android-9.0.0/androidx/core/graphics/drawable/IconCompat.java
generated
Normal file
102
java/ql/test/stubs/google-android-9.0.0/androidx/core/graphics/drawable/IconCompat.java
generated
Normal file
@@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.core.graphics.drawable;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class IconCompat {
|
||||
public @interface IconType {
|
||||
}
|
||||
|
||||
public static IconCompat createWithData(byte[] data, int offset, int length) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createWithContentUri(String uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createWithContentUri(Uri uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createWithAdaptiveBitmapContentUri(@NonNull String uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createWithAdaptiveBitmapContentUri(@NonNull Uri uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public IconCompat() {}
|
||||
|
||||
public int getType() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getResPackage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getResId() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Uri getUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Icon toIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Icon toIcon(@Nullable Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void checkResource(@NonNull Context context) {}
|
||||
|
||||
|
||||
public InputStream getUriInputStream(@NonNull Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Bundle toBundle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static @Nullable IconCompat createFromBundle(@NonNull Bundle bundle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createFromIcon(@NonNull Context context, @NonNull Icon icon) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createFromIcon(@NonNull Icon icon) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IconCompat createFromIconOrNullIfZeroResId(@NonNull Icon icon) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
22
java/ql/test/stubs/google-android-9.0.0/androidx/core/util/Consumer.java
generated
Normal file
22
java/ql/test/stubs/google-android-9.0.0/androidx/core/util/Consumer.java
generated
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package androidx.core.util;
|
||||
|
||||
public interface Consumer<T> {
|
||||
void accept(T t);
|
||||
|
||||
}
|
||||
42
java/ql/test/stubs/google-android-9.0.0/androidx/core/util/Pair.java
generated
Normal file
42
java/ql/test/stubs/google-android-9.0.0/androidx/core/util/Pair.java
generated
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2009 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package androidx.core.util;
|
||||
|
||||
public class Pair<F, S> {
|
||||
public Pair(F first, S second) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <A, B> Pair<A, B> create(A a, B b) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
51
java/ql/test/stubs/google-android-9.0.0/androidx/remotecallback/RemoteCallback.java
generated
Normal file
51
java/ql/test/stubs/google-android-9.0.0/androidx/remotecallback/RemoteCallback.java
generated
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package androidx.remotecallback;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public class RemoteCallback {
|
||||
public @interface RemoteCallbackType {
|
||||
}
|
||||
|
||||
public RemoteCallback(@NonNull Context context, @RemoteCallbackType int type,
|
||||
@NonNull Intent intent, @NonNull String receiverClass, @NonNull Bundle arguments) {}
|
||||
|
||||
public int getType() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getReceiverClass() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getMethodName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Bundle getArgumentBundle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent toPendingIntent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static final RemoteCallback LOCAL = new RemoteCallback(null, -1, null, null, null);
|
||||
|
||||
}
|
||||
160
java/ql/test/stubs/google-android-9.0.0/androidx/slice/Slice.java
generated
Normal file
160
java/ql/test/stubs/google-android-9.0.0/androidx/slice/Slice.java
generated
Normal file
@@ -0,0 +1,160 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public final class Slice {
|
||||
public @interface SliceHint {
|
||||
}
|
||||
|
||||
public Slice() {}
|
||||
|
||||
public Slice(Bundle in) {}
|
||||
|
||||
public Bundle toBundle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Uri getUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<SliceItem> getItems() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceItem[] getItemArray() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @SliceHint List<String> getHints() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @SliceHint String[] getHintArray() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean hasHint(@SliceHint String hint) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
public Builder(@NonNull Uri uri) {}
|
||||
|
||||
public Builder(@NonNull Slice.Builder parent) {}
|
||||
|
||||
public Builder addHints(@SliceHint String... hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addHints(@SliceHint List<String> hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addSubSlice(@NonNull Slice slice) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addSubSlice(@NonNull Slice slice, String subType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addAction(@NonNull PendingIntent action, @NonNull Slice s,
|
||||
@Nullable String subType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addAction(@NonNull SliceItem.ActionHandler action, @NonNull Slice s,
|
||||
@Nullable String subType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addText(CharSequence text, @Nullable String subType,
|
||||
@SliceHint String... hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addText(CharSequence text, @Nullable String subType,
|
||||
@SliceHint List<String> hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addIcon(IconCompat icon, @Nullable String subType, @SliceHint String... hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addIcon(IconCompat icon, @Nullable String subType,
|
||||
@SliceHint List<String> hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addInt(int value, @Nullable String subType, @SliceHint String... hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addInt(int value, @Nullable String subType, @SliceHint List<String> hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addLong(long time, @Nullable String subType, @SliceHint String... hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addLong(long time, @Nullable String subType,
|
||||
@SliceHint List<String> hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addTimestamp(long time, @Nullable String subType,
|
||||
@SliceHint String... hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addTimestamp(long time, @Nullable String subType,
|
||||
@SliceHint List<String> hints) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice.Builder addItem(SliceItem item) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String toString(String indent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void appendHints(StringBuilder sb, String[] hints) {}
|
||||
|
||||
public static Slice bindSlice(Context context, @NonNull Uri uri, Set<SliceSpec> supportedSpecs) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
137
java/ql/test/stubs/google-android-9.0.0/androidx/slice/SliceItem.java
generated
Normal file
137
java/ql/test/stubs/google-android-9.0.0/androidx/slice/SliceItem.java
generated
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import java.util.List;
|
||||
|
||||
public final class SliceItem {
|
||||
public @interface SliceType {
|
||||
}
|
||||
|
||||
public SliceItem(Object obj, @SliceType String format, String subType,
|
||||
@Slice.SliceHint String[] hints) {}
|
||||
|
||||
public SliceItem(Object obj, @SliceType String format, String subType,
|
||||
@Slice.SliceHint List<String> hints) {}
|
||||
|
||||
public SliceItem() {}
|
||||
|
||||
public SliceItem(PendingIntent intent, Slice slice, String format, String subType,
|
||||
@Slice.SliceHint String[] hints) {}
|
||||
|
||||
public SliceItem(ActionHandler action, Slice slice, String format, String subType,
|
||||
@Slice.SliceHint String[] hints) {}
|
||||
|
||||
public @NonNull @Slice.SliceHint List<String> getHints() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @NonNull @Slice.SliceHint String[] getHintArray() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void addHint(@Slice.SliceHint String hint) {}
|
||||
|
||||
public @SliceType String getFormat() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getSubType() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getText() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getSanitizedText() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getRedactedText() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public IconCompat getIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void fireAction(@Nullable Context context, @Nullable Intent i)
|
||||
throws PendingIntent.CanceledException {}
|
||||
|
||||
public boolean fireActionInternal(@Nullable Context context, @Nullable Intent i)
|
||||
throws PendingIntent.CanceledException {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getInt() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Slice getSlice() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public long getLong() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean hasHint(@Slice.SliceHint String hint) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public SliceItem(Bundle in) {}
|
||||
|
||||
public Bundle toBundle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean hasHints(@Slice.SliceHint String[] hints) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasAnyHints(@Slice.SliceHint String... hints) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String typeToString(String format) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String toString(String indent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public interface ActionHandler {
|
||||
void onAction(SliceItem item, Context context, Intent intent);
|
||||
|
||||
}
|
||||
}
|
||||
130
java/ql/test/stubs/google-android-9.0.0/androidx/slice/SliceProvider.java
generated
Normal file
130
java/ql/test/stubs/google-android-9.0.0/androidx/slice/SliceProvider.java
generated
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package androidx.slice;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentProvider;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.CancellationSignal;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
public abstract class SliceProvider extends ContentProvider {
|
||||
public SliceProvider(@NonNull String... autoGrantPermissions) {}
|
||||
|
||||
public SliceProvider() {}
|
||||
|
||||
public abstract boolean onCreateSliceProvider();
|
||||
|
||||
@Override
|
||||
public final boolean onCreate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final String getType(@NonNull Uri uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bundle call(@NonNull String method, @Nullable String arg, @Nullable Bundle extras) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri,
|
||||
@NonNull String callingPackage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice createPermissionSlice(@NonNull Uri sliceUri, @NonNull String callingPackage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract Slice onBindSlice(@NonNull Uri sliceUri);
|
||||
|
||||
public void onSlicePinned(@NonNull Uri sliceUri) {}
|
||||
|
||||
public void onSliceUnpinned(@NonNull Uri sliceUri) {}
|
||||
|
||||
public void handleSlicePinned(@NonNull Uri sliceUri) {}
|
||||
|
||||
public void handleSliceUnpinned(@NonNull Uri sliceUri) {}
|
||||
|
||||
public Uri onMapIntentToUri(@NonNull Intent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Collection<Uri> onGetSliceDescendants(@NonNull Uri uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Uri> getPinnedSlices() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void validateIncomingAuthority(@Nullable String authority) throws SecurityException {}
|
||||
|
||||
@Override
|
||||
public final Cursor query(@NonNull Uri uri, @Nullable String[] projection,
|
||||
@Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Cursor query(@NonNull Uri uri, @Nullable String[] projection,
|
||||
@Nullable Bundle queryArgs, @Nullable CancellationSignal cancellationSignal) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Cursor query(@NonNull Uri uri, @Nullable String[] projection,
|
||||
@Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder,
|
||||
@Nullable CancellationSignal cancellationSignal) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int bulkInsert(@NonNull Uri uri, @NonNull ContentValues[] values) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int delete(@NonNull Uri uri, @Nullable String selection,
|
||||
@Nullable String[] selectionArgs) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int update(@NonNull Uri uri, @Nullable ContentValues values,
|
||||
@Nullable String selection, @Nullable String[] selectionArgs) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Uri canonicalize(@NonNull Uri url) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
51
java/ql/test/stubs/google-android-9.0.0/androidx/slice/SliceSpec.java
generated
Normal file
51
java/ql/test/stubs/google-android-9.0.0/androidx/slice/SliceSpec.java
generated
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public final class SliceSpec {
|
||||
public SliceSpec() {}
|
||||
|
||||
public SliceSpec(@NonNull String type, int revision) {}
|
||||
|
||||
public String getType() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getRevision() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean canRender(@NonNull SliceSpec candidate) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
168
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/GridRowBuilder.java
generated
Normal file
168
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/GridRowBuilder.java
generated
Normal file
@@ -0,0 +1,168 @@
|
||||
/*
|
||||
* Copyright 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders;
|
||||
import android.app.PendingIntent;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.remotecallback.RemoteCallback;
|
||||
import java.util.List;
|
||||
|
||||
public class GridRowBuilder {
|
||||
public GridRowBuilder() {
|
||||
}
|
||||
|
||||
public GridRowBuilder addCell(@NonNull CellBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRowBuilder setSeeMoreCell(@NonNull CellBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRowBuilder setSeeMoreAction(@NonNull PendingIntent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRowBuilder setSeeMoreAction(@NonNull RemoteCallback callback) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRowBuilder setPrimaryAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRowBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRowBuilder setLayoutDirection(@ListBuilder.LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<CellBuilder> getCells() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder getSeeMoreCell() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getSeeMoreIntent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLayoutDirection() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static class CellBuilder {
|
||||
public CellBuilder() {
|
||||
}
|
||||
|
||||
public CellBuilder addText(@NonNull CharSequence text) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addText(@Nullable CharSequence text, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addTitleText(@NonNull CharSequence text) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addTitleText(@Nullable CharSequence text, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addImage(@NonNull IconCompat image,
|
||||
@ListBuilder.ImageMode int imageMode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addImage(@Nullable IconCompat image,
|
||||
@ListBuilder.ImageMode int imageMode, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addOverlayText(@NonNull CharSequence text) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder addOverlayText(@Nullable CharSequence text, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder setContentIntent(@NonNull PendingIntent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder setContentIntent(@NonNull RemoteCallback callback) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CellBuilder setSliceAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Object> getObjects() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Integer> getTypes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Boolean> getLoadings() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getCellDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getContentIntent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getSliceAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
701
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/ListBuilder.java
generated
Normal file
701
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/ListBuilder.java
generated
Normal file
@@ -0,0 +1,701 @@
|
||||
/*
|
||||
* Copyright 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.PersistableBundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.remotecallback.RemoteCallback;
|
||||
import androidx.slice.Slice;
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class ListBuilder extends TemplateSliceBuilder {
|
||||
public @interface ImageMode {
|
||||
}
|
||||
public @interface LayoutDirection {
|
||||
}
|
||||
|
||||
public ListBuilder addRating(@NonNull RatingBuilder b) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder(@NonNull Context context, @NonNull Uri uri, long ttl) {
|
||||
super(null, null);
|
||||
}
|
||||
|
||||
public ListBuilder(@NonNull Context context, @NonNull Uri uri, @Nullable Duration ttl) {
|
||||
super(null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Slice build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder addRow(@NonNull RowBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder addGridRow(@NonNull GridRowBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setHeader(@NonNull HeaderBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder addAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setAccentColor(int color) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setKeywords(@NonNull final Set<String> keywords) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setLayoutDirection(@LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setHostExtras(@NonNull PersistableBundle extras) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setSeeMoreRow(@NonNull RowBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setSeeMoreAction(@NonNull PendingIntent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setSeeMoreAction(@NonNull RemoteCallback callback) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder setIsError(boolean isError) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public androidx.slice.builders.impl.ListBuilder getImpl() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @interface RangeMode {
|
||||
}
|
||||
|
||||
public ListBuilder addInputRange(@NonNull InputRangeBuilder b) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder addRange(@NonNull RangeBuilder rangeBuilder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ListBuilder addSelection(@NonNull SelectionBuilder selectionBuilder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static class RangeBuilder {
|
||||
public RangeBuilder() {}
|
||||
|
||||
public RangeBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode,
|
||||
boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setMax(int max) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setValue(int value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setTitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setSubtitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setPrimaryAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setLayoutDirection(@LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RangeBuilder setMode(@RangeMode int mode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTitleItemLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getTitleImageMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public IconCompat getTitleIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getMax() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean isValueSet() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLayoutDirection() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
public static final class RatingBuilder {
|
||||
public RatingBuilder() {}
|
||||
|
||||
public int getMin() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public RatingBuilder setMin(int min) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getMax() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public RatingBuilder setMax(int max) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public float getValue() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public RatingBuilder setValue(float value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isValueSet() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public PendingIntent getAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setTitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setSubtitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setPrimaryAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode,
|
||||
boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getInputAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setInputAction(@NonNull PendingIntent action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RatingBuilder setInputAction(@NonNull RemoteCallback callback) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTitleItemLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getTitleImageMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public IconCompat getTitleIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
public static class InputRangeBuilder {
|
||||
public InputRangeBuilder() {}
|
||||
|
||||
public InputRangeBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder addEndItem(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder addEndItem(@NonNull SliceAction action, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode,
|
||||
boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setMin(int min) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setMax(int max) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setValue(int value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setTitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setSubtitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setInputAction(@NonNull PendingIntent action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setInputAction(@NonNull RemoteCallback callback) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setThumb(@NonNull IconCompat thumb) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setPrimaryAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public InputRangeBuilder setLayoutDirection(@LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTitleItemLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getTitleImageMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public IconCompat getTitleIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Object> getEndItems() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Integer> getEndTypes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Boolean> getEndLoads() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getMin() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getMax() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean isValueSet() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getInputAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public IconCompat getThumb() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLayoutDirection() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
public static class RowBuilder {
|
||||
public RowBuilder() {}
|
||||
|
||||
public RowBuilder(@NonNull final Uri uri) {}
|
||||
|
||||
public RowBuilder setEndOfSection(boolean isEndOfSection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitleItem(long timeStamp) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitleItem(@NonNull IconCompat icon, @ImageMode int imageMode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitleItem(@Nullable IconCompat icon, @ImageMode int imageMode,
|
||||
boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitleItem(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitleItem(@NonNull SliceAction action, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setPrimaryAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setTitle(@Nullable CharSequence title, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setSubtitle(@NonNull CharSequence subtitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setSubtitle(@Nullable CharSequence subtitle, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder addEndItem(long timeStamp) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder addEndItem(@NonNull IconCompat icon, @ImageMode int imageMode) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder addEndItem(@Nullable IconCompat icon, @ImageMode int imageMode,
|
||||
boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder addEndItem(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder addEndItem(@NonNull SliceAction action, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RowBuilder setLayoutDirection(@LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Uri getUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isEndOfSection() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasEndActionOrToggle() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasEndImage() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasDefaultToggle() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasTimestamp() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public long getTimeStamp() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean isTitleItemLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getTitleImageMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public IconCompat getTitleIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getTitleAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTitleLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isSubtitleLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLayoutDirection() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public List<Object> getEndItems() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Integer> getEndTypes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Boolean> getEndLoads() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTitleActionLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
public static class HeaderBuilder {
|
||||
public HeaderBuilder() {}
|
||||
|
||||
public HeaderBuilder(@NonNull final Uri uri) {}
|
||||
|
||||
public HeaderBuilder setTitle(@NonNull CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setTitle(@NonNull CharSequence title, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setSubtitle(@NonNull CharSequence subtitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setSubtitle(@NonNull CharSequence subtitle, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setSummary(@NonNull CharSequence summary) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setSummary(@NonNull CharSequence summary, boolean isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setPrimaryAction(@NonNull SliceAction action) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public HeaderBuilder setLayoutDirection(@LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Uri getUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isTitleLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isSubtitleLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public CharSequence getSummary() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isSummaryLoading() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLayoutDirection() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
59
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/MessagingSliceBuilder.java
generated
Normal file
59
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/MessagingSliceBuilder.java
generated
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.net.Uri;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.core.util.Consumer;
|
||||
|
||||
public class MessagingSliceBuilder extends TemplateSliceBuilder {
|
||||
public MessagingSliceBuilder(@NonNull Context context, @NonNull Uri uri) {
|
||||
super(null, null);
|
||||
}
|
||||
|
||||
public MessagingSliceBuilder add(MessageBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public MessagingSliceBuilder add(Consumer<MessageBuilder> c) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static final class MessageBuilder extends TemplateSliceBuilder {
|
||||
public MessageBuilder(MessagingSliceBuilder parent) {
|
||||
super(null, null);
|
||||
}
|
||||
|
||||
public MessageBuilder addSource(Icon source) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public MessageBuilder addSource(IconCompat source) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public MessageBuilder addText(CharSequence text) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public MessageBuilder addTimestamp(long timestamp) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
92
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/SelectionBuilder.java
generated
Normal file
92
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/SelectionBuilder.java
generated
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.remotecallback.RemoteCallback;
|
||||
|
||||
public class SelectionBuilder {
|
||||
public SelectionBuilder() {}
|
||||
|
||||
public SelectionBuilder addOption(String optionKey, CharSequence optionText) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setPrimaryAction(@NonNull SliceAction primaryAction) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setInputAction(@NonNull PendingIntent inputAction) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setInputAction(@NonNull RemoteCallback inputAction) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setSelectedOption(String selectedOption) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setTitle(@Nullable CharSequence title) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setSubtitle(@Nullable CharSequence subtitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setContentDescription(@Nullable CharSequence contentDescription) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SelectionBuilder setLayoutDirection(
|
||||
@androidx.slice.builders.ListBuilder.LayoutDirection int layoutDirection) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceAction getPrimaryAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PendingIntent getInputAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getSelectedOption() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getSubtitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLayoutDirection() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void check() {}
|
||||
|
||||
}
|
||||
188
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/SliceAction.java
generated
Normal file
188
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/SliceAction.java
generated
Normal file
@@ -0,0 +1,188 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.graphics.drawable.Icon;
|
||||
import androidx.annotation.IntRange;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.remotecallback.RemoteCallback;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.core.SliceActionImpl;
|
||||
|
||||
public class SliceAction implements androidx.slice.core.SliceAction {
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull Icon actionIcon,
|
||||
@NonNull CharSequence actionTitle) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull Icon actionIcon,
|
||||
@ListBuilder.ImageMode int imageMode, @NonNull CharSequence actionTitle) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull Icon actionIcon,
|
||||
@NonNull CharSequence actionTitle, boolean isChecked) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@NonNull CharSequence actionTitle) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@ListBuilder.ImageMode int imageMode, @NonNull CharSequence actionTitle) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@NonNull CharSequence actionTitle, boolean isChecked) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
|
||||
boolean isChecked) {}
|
||||
|
||||
public SliceAction(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
|
||||
long dateTimeMillis, boolean isDatePicker) {}
|
||||
|
||||
public static SliceAction create(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@ListBuilder.ImageMode int imageMode, @NonNull CharSequence actionTitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction create(@NonNull RemoteCallback action, @NonNull IconCompat actionIcon,
|
||||
@ListBuilder.ImageMode int imageMode, @NonNull CharSequence actionTitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createDatePicker(@NonNull PendingIntent action,
|
||||
@NonNull CharSequence actionTitle, long dateTimeMillis) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createTimePicker(@NonNull PendingIntent action,
|
||||
@NonNull CharSequence actionTitle, long dateTimeMillis) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createDeeplink(@NonNull PendingIntent action,
|
||||
@NonNull IconCompat actionIcon, @ListBuilder.ImageMode int imageMode,
|
||||
@NonNull CharSequence actionTitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createDeeplink(@NonNull RemoteCallback action,
|
||||
@NonNull IconCompat actionIcon, @ListBuilder.ImageMode int imageMode,
|
||||
@NonNull CharSequence actionTitle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createToggle(@NonNull PendingIntent action,
|
||||
@NonNull CharSequence actionTitle, boolean isChecked) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createToggle(@NonNull RemoteCallback action,
|
||||
@NonNull CharSequence actionTitle, boolean isChecked) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createToggle(@NonNull PendingIntent action,
|
||||
@NonNull IconCompat actionIcon, @NonNull CharSequence actionTitle, boolean isChecked) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static SliceAction createToggle(@NonNull RemoteCallback action,
|
||||
@NonNull IconCompat actionIcon, @NonNull CharSequence actionTitle, boolean isChecked) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SliceAction setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SliceAction setChecked(boolean isChecked) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SliceAction setPriority(@IntRange(from = 0) int priority) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PendingIntent getAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IconCompat getIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActivity() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isToggle() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @ListBuilder.ImageMode int getImageMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDefaultToggle() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Slice buildSlice(@NonNull Slice.Builder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceActionImpl getImpl() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setPrimaryAction(@NonNull Slice.Builder builder) {}
|
||||
|
||||
@Override
|
||||
public androidx.slice.core.SliceAction setKey(String key) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
30
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/TemplateSliceBuilder.java
generated
Normal file
30
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/TemplateSliceBuilder.java
generated
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import androidx.slice.Slice;
|
||||
|
||||
public abstract class TemplateSliceBuilder {
|
||||
public TemplateSliceBuilder(Context context, Uri uri) {
|
||||
}
|
||||
|
||||
public Slice build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
67
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/impl/ListBuilder.java
generated
Normal file
67
java/ql/test/stubs/google-android-9.0.0/androidx/slice/builders/impl/ListBuilder.java
generated
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.builders.impl;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.os.PersistableBundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.slice.builders.GridRowBuilder;
|
||||
import androidx.slice.builders.ListBuilder.HeaderBuilder;
|
||||
import androidx.slice.builders.ListBuilder.InputRangeBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RangeBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RatingBuilder;
|
||||
import androidx.slice.builders.ListBuilder.RowBuilder;
|
||||
import androidx.slice.builders.SelectionBuilder;
|
||||
import androidx.slice.builders.SliceAction;
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
|
||||
public interface ListBuilder {
|
||||
void addRow(@NonNull RowBuilder impl);
|
||||
|
||||
void addGridRow(@NonNull GridRowBuilder impl);
|
||||
|
||||
void setHeader(@NonNull HeaderBuilder impl);
|
||||
|
||||
void addAction(@NonNull SliceAction action);
|
||||
|
||||
void addRating(@NonNull RatingBuilder builder);
|
||||
|
||||
void addInputRange(@NonNull InputRangeBuilder builder);
|
||||
|
||||
void addRange(@NonNull RangeBuilder builder);
|
||||
|
||||
void addSelection(@NonNull SelectionBuilder builder);
|
||||
|
||||
void setSeeMoreRow(@NonNull RowBuilder builder);
|
||||
|
||||
void setSeeMoreAction(@NonNull PendingIntent intent);
|
||||
|
||||
void setColor(int color);
|
||||
|
||||
void setKeywords(@NonNull Set<String> keywords);
|
||||
|
||||
void setTtl(long ttl);
|
||||
|
||||
void setTtl(@Nullable Duration ttl);
|
||||
|
||||
void setIsError(boolean isError);
|
||||
|
||||
void setLayoutDirection(int layoutDirection);
|
||||
|
||||
void setHostExtras(@NonNull PersistableBundle extras);
|
||||
|
||||
}
|
||||
54
java/ql/test/stubs/google-android-9.0.0/androidx/slice/core/SliceAction.java
generated
Normal file
54
java/ql/test/stubs/google-android-9.0.0/androidx/slice/core/SliceAction.java
generated
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.core;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import androidx.annotation.IntRange;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
|
||||
public interface SliceAction {
|
||||
SliceAction setContentDescription(@NonNull CharSequence description);
|
||||
|
||||
SliceAction setChecked(boolean isChecked);
|
||||
|
||||
SliceAction setPriority(@IntRange(from = 0) int priority);
|
||||
|
||||
SliceAction setKey(@NonNull String key);
|
||||
|
||||
PendingIntent getAction();
|
||||
|
||||
IconCompat getIcon();
|
||||
|
||||
CharSequence getTitle();
|
||||
|
||||
CharSequence getContentDescription();
|
||||
|
||||
int getPriority();
|
||||
|
||||
String getKey();
|
||||
|
||||
boolean isToggle();
|
||||
|
||||
boolean isChecked();
|
||||
|
||||
boolean isActivity();
|
||||
|
||||
@SliceHints.ImageMode
|
||||
int getImageMode();
|
||||
|
||||
boolean isDefaultToggle();
|
||||
|
||||
}
|
||||
142
java/ql/test/stubs/google-android-9.0.0/androidx/slice/core/SliceActionImpl.java
generated
Normal file
142
java/ql/test/stubs/google-android-9.0.0/androidx/slice/core/SliceActionImpl.java
generated
Normal file
@@ -0,0 +1,142 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.core;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.slice.Slice;
|
||||
import androidx.slice.SliceItem;
|
||||
|
||||
public class SliceActionImpl implements SliceAction {
|
||||
public SliceActionImpl(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@NonNull CharSequence actionTitle) {}
|
||||
|
||||
public SliceActionImpl(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
|
||||
long dateTimeMillis, boolean isDatePicker) {}
|
||||
|
||||
public SliceActionImpl(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@SliceHints.ImageMode int imageMode, @NonNull CharSequence actionTitle) {}
|
||||
|
||||
public SliceActionImpl(@NonNull PendingIntent action, @NonNull IconCompat actionIcon,
|
||||
@NonNull CharSequence actionTitle, boolean isChecked) {}
|
||||
|
||||
public SliceActionImpl(@NonNull PendingIntent action, @NonNull CharSequence actionTitle,
|
||||
boolean isChecked) {}
|
||||
|
||||
public SliceActionImpl(SliceItem slice) {}
|
||||
|
||||
@Override
|
||||
public SliceActionImpl setContentDescription(@NonNull CharSequence description) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SliceActionImpl setChecked(boolean isChecked) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SliceActionImpl setKey(@NonNull String key) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PendingIntent getAction() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SliceItem getActionItem() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IconCompat getIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getContentDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isToggle() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @SliceHints.ImageMode int getImageMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDefaultToggle() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public SliceItem getSliceItem() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isActivity() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Slice buildSlice(@NonNull Slice.Builder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Slice buildPrimaryActionSlice(@NonNull Slice.Builder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getSubtype() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setActivity(boolean isActivity) {}
|
||||
|
||||
public static int parseImageMode(@NonNull SliceItem iconItem) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SliceAction setPriority(int priority) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
20
java/ql/test/stubs/google-android-9.0.0/androidx/slice/core/SliceHints.java
generated
Normal file
20
java/ql/test/stubs/google-android-9.0.0/androidx/slice/core/SliceHints.java
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
* or implied. See the License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package androidx.slice.core;
|
||||
|
||||
public class SliceHints {
|
||||
public @interface ImageMode {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user