mirror of
https://github.com/github/codeql.git
synced 2026-04-22 23:35:14 +02:00
Merge pull request #6823 from atorralba/atorralba/android-notification-models
Android: Add models for `android.app.Notification` builders
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.Notifications
|
||||
private import semmle.code.java.frameworks.android.Slice
|
||||
private import semmle.code.java.frameworks.android.SQLite
|
||||
private import semmle.code.java.frameworks.android.XssSinks
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/** Provides classes and predicates related to Android notifications. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
private import semmle.code.java.dataflow.FlowSteps
|
||||
|
||||
private class NotificationBuildersSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"android.app;Notification$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint",
|
||||
"android.app;Notification$Action;true;getExtras;;;SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value",
|
||||
"android.app;Notification$Action$Builder;true;Builder;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint",
|
||||
"android.app;Notification$Action$Builder;true;Builder;(Icon,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint",
|
||||
"android.app;Notification$Action$Builder;true;Builder;(Action);;Argument[0];Argument[-1];taint",
|
||||
"android.app;Notification$Action$Builder;true;addExtras;;;MapKey of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value",
|
||||
"android.app;Notification$Action$Builder;true;addExtras;;;MapValue of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value",
|
||||
"android.app;Notification$Action$Builder;true;build;;;Argument[-1];ReturnValue;taint",
|
||||
"android.app;Notification$Action$Builder;true;build;;;SyntheticField[android.content.Intent.extras] of Argument[-1];SyntheticField[android.content.Intent.extras] of ReturnValue;value",
|
||||
"android.app;Notification$Action$Builder;true;getExtras;;;SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value",
|
||||
"android.app;Notification$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint",
|
||||
"android.app;Notification$Builder;true;addAction;(Action);;Argument[0];Argument[-1];taint",
|
||||
"android.app;Notification$Builder;true;addExtras;;;MapKey of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value",
|
||||
"android.app;Notification$Builder;true;addExtras;;;MapValue of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value",
|
||||
"android.app;Notification$Builder;true;build;;;Argument[-1];ReturnValue;taint",
|
||||
"android.app;Notification$Builder;true;build;;;SyntheticField[android.content.Intent.extras] of Argument[-1];Field[android.app.Notification.extras] of ReturnValue;value",
|
||||
"android.app;Notification$Builder;true;setContentIntent;;;Argument[0];Argument[-1];taint",
|
||||
"android.app;Notification$Builder;true;getExtras;;;SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value",
|
||||
"android.app;Notification$Builder;true;recoverBuilder;;;Argument[1];ReturnValue;taint",
|
||||
"android.app;Notification$Builder;true;setActions;;;ArrayElement of Argument[0];Argument[-1];taint",
|
||||
"android.app;Notification$Builder;true;setExtras;;;Argument[0];SyntheticField[android.content.Intent.extras] of Argument[-1];value",
|
||||
"android.app;Notification$Builder;true;setDeleteIntent;;;Argument[0];Argument[-1];taint",
|
||||
"android.app;Notification$Builder;true;setPublicVersion;;;Argument[0];Argument[-1];taint",
|
||||
// Fluent models
|
||||
"android.app;Notification$Action$Builder;true;" +
|
||||
[
|
||||
"addExtras", "addRemoteInput", "extend", "setAllowGeneratedReplies",
|
||||
"setAuthenticationRequired", "setContextual", "setSemanticAction"
|
||||
] + ";;;Argument[-1];ReturnValue;value",
|
||||
"android.app;Notification$Builder;true;" +
|
||||
[
|
||||
"addAction", "addExtras", "addPerson", "extend", "setActions", "setAutoCancel",
|
||||
"setBadgeIconType", "setBubbleMetadata", "setCategory", "setChannelId",
|
||||
"setChronometerCountDown", "setColor", "setColorized", "setContent", "setContentInfo",
|
||||
"setContentIntent", "setContentText", "setContentTitle", "setCustomBigContentView",
|
||||
"setCustomHeadsUpContentView", "setDefaults", "setDeleteIntent", "setExtras", "setFlag",
|
||||
"setForegroundServiceBehavior", "setFullScreenIntent", "setGroup",
|
||||
"setGroupAlertBehavior", "setGroupSummary", "setLargeIcon", "setLights", "setLocalOnly",
|
||||
"setLocusId", "setNumber", "setOngoing", "setOnlyAlertOnce", "setPriority",
|
||||
"setProgress", "setPublicVersion", "setRemoteInputHistory", "setSettingsText",
|
||||
"setShortcutId", "setShowWhen", "setSmallIcon", "setSortKey", "setSound", "setStyle",
|
||||
"setSubText", "setTicker", "setTimeoutAfter", "setUsesChronometer", "setVibrate",
|
||||
"setVisibility", "setWhen"
|
||||
] + ";;;Argument[-1];ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,702 @@
|
||||
package generatedtest;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.Person;
|
||||
import android.app.Notification.Action;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.media.AudioAttributes;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
// Test case generated by GenerateFlowTestCase.ql
|
||||
public class Test {
|
||||
|
||||
Object getMapKeyDefault(Bundle container) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Object getMapValueDefault(Bundle container) {
|
||||
return container.get("key");
|
||||
}
|
||||
|
||||
Bundle newWithMapKeyDefault(Object element) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString((String) element, null);
|
||||
return bundle;
|
||||
}
|
||||
|
||||
Bundle newWithMapValueDefault(Object element) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("key", (String) element);
|
||||
return bundle;
|
||||
}
|
||||
|
||||
Object source() {
|
||||
return null;
|
||||
}
|
||||
|
||||
void sink(Object o) {}
|
||||
|
||||
public void test() throws Exception {
|
||||
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;Builder;(Action);;Argument[0];Argument[-1];taint"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action in = (Notification.Action) source();
|
||||
out = new Notification.Action.Builder(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;Builder;(Icon,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint"
|
||||
Notification.Action.Builder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out = new Notification.Action.Builder((Icon) null, (CharSequence) null, in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;Builder;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint"
|
||||
Notification.Action.Builder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out = new Notification.Action.Builder(0, (CharSequence) null, in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;addExtras;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.addExtras(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;addExtras;;;MapKey of
|
||||
// Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of
|
||||
// Argument[-1];value"
|
||||
Notification.Action.Builder out = null;
|
||||
Bundle in = (Bundle) newWithMapKeyDefault(source());
|
||||
out.addExtras(in);
|
||||
sink(getMapKeyDefault(out.getExtras())); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;addExtras;;;MapValue of
|
||||
// Argument[0];MapValue of SyntheticField[android.content.Intent.extras]
|
||||
// of Argument[-1];value"
|
||||
Notification.Action.Builder out = null;
|
||||
Bundle in = (Bundle) newWithMapValueDefault(source());
|
||||
out.addExtras(in);
|
||||
sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;addRemoteInput;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.addRemoteInput(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;build;;;Argument[-1];ReturnValue;taint"
|
||||
Notification.Action out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.build();
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;build;;;SyntheticField[android.content.Intent.extras]
|
||||
// of Argument[-1];SyntheticField[android.content.Intent.extras] of ReturnValue;value"
|
||||
Notification.Action out = null;
|
||||
Notification.Action.Builder builder = null;
|
||||
Bundle in = (Bundle) newWithMapValueDefault(source());
|
||||
builder.addExtras(in);
|
||||
out = builder.build();
|
||||
sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;extend;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.extend(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;getExtras;;;SyntheticField[android.content.Intent.extras]
|
||||
// of Argument[-1];ReturnValue;value"
|
||||
Bundle out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.getExtras();
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;setAllowGeneratedReplies;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.setAllowGeneratedReplies(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;setAuthenticationRequired;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.setAuthenticationRequired(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;setContextual;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.setContextual(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action$Builder;true;setSemanticAction;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Action.Builder out = null;
|
||||
Notification.Action.Builder in = (Notification.Action.Builder) source();
|
||||
out = in.setSemanticAction(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint"
|
||||
Notification.Action out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out = new Notification.Action(0, null, in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addAction;(Action);;Argument[0];Argument[-1];taint"
|
||||
Notification.Builder out = null;
|
||||
Notification.Action in = (Notification.Action) source();
|
||||
out.addAction(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint"
|
||||
Notification.Builder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out.addAction(0, null, in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addAction;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.addAction(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addAction;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.addAction(0, null, null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addExtras;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.addExtras(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addExtras;;;MapKey of Argument[0];MapKey of
|
||||
// SyntheticField[android.content.Intent.extras] of Argument[-1];value"
|
||||
Notification.Builder out = null;
|
||||
Bundle in = (Bundle) newWithMapKeyDefault(source());
|
||||
out.addExtras(in);
|
||||
sink(getMapKeyDefault(out.getExtras())); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addExtras;;;MapValue of Argument[0];MapValue
|
||||
// of SyntheticField[android.content.Intent.extras] of Argument[-1];value"
|
||||
Notification.Builder out = null;
|
||||
Bundle in = (Bundle) newWithMapValueDefault(source());
|
||||
out.addExtras(in);
|
||||
sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addPerson;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.addPerson((String) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;addPerson;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.addPerson((Person) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;build;;;Argument[-1];ReturnValue;taint"
|
||||
Notification out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.build();
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;build;;;SyntheticField[android.content.Intent.extras]
|
||||
// of Argument[-1];Field[android.app.Notification.extras] of ReturnValue;value"
|
||||
Notification out = null;
|
||||
Notification.Builder builder = null;
|
||||
Bundle in = (Bundle) newWithMapValueDefault(source());
|
||||
builder.addExtras(in);
|
||||
out = builder.build();
|
||||
sink(getMapValueDefault(out.extras)); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;extend;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.extend(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;getExtras;;;SyntheticField[android.content.Intent.extras]
|
||||
// of Argument[-1];ReturnValue;value"
|
||||
Bundle out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.getExtras();
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;recoverBuilder;;;Argument[1];ReturnValue;taint"
|
||||
Notification.Builder out = null;
|
||||
Notification in = (Notification) source();
|
||||
out = Notification.Builder.recoverBuilder(null, in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setActions;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setActions((Notification.Action[]) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setActions;;;ArrayElement of
|
||||
// Argument[0];SyntheticField[android.app.Notification.action] of
|
||||
// Argument[-1];taint"
|
||||
Notification.Builder out = null;
|
||||
Notification.Action[] in = (Notification.Action[]) new Notification.Action[] {
|
||||
(Notification.Action) source()};
|
||||
out.setActions(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setAutoCancel;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setAutoCancel(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setBadgeIconType;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setBadgeIconType(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setBubbleMetadata;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setBubbleMetadata(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setCategory;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setCategory(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setChannelId;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setChannelId(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setChronometerCountDown;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setChronometerCountDown(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setColor;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setColor(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setColorized;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setColorized(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setContent;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setContent(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setContentInfo;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setContentInfo(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setContentIntent;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setContentIntent(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setContentIntent;;;Argument[0];Argument[-1];taint"
|
||||
Notification.Builder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out.setContentIntent(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setContentText;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setContentText(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setContentTitle;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setContentTitle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setCustomBigContentView;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setCustomBigContentView(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setCustomHeadsUpContentView;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setCustomHeadsUpContentView(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setDefaults;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setDefaults(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setDeleteIntent;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setDeleteIntent(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setDeleteIntent;;;Argument[0];Argument[-1];taint"
|
||||
Notification.Builder out = null;
|
||||
PendingIntent in = (PendingIntent) source();
|
||||
out.setDeleteIntent(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setExtras;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setExtras(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setExtras;;;Argument[0];SyntheticField[android.content.Intent.extras]
|
||||
// of Argument[-1];value"
|
||||
Notification.Builder out = null;
|
||||
Bundle in = (Bundle) source();
|
||||
out.setExtras(in);
|
||||
sink(out.getExtras()); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setFlag;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setFlag(0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setForegroundServiceBehavior;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setForegroundServiceBehavior(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setFullScreenIntent;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setFullScreenIntent(null, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setGroup;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setGroup(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setGroupAlertBehavior;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setGroupAlertBehavior(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setGroupSummary;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setGroupSummary(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setLargeIcon;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setLargeIcon((Icon) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setLargeIcon;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setLargeIcon((Bitmap) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setLights;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setLights(0, 0, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setLocalOnly;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setLocalOnly(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setLocusId;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setLocusId(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setNumber;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setNumber(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setOngoing;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setOngoing(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setOnlyAlertOnce;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setOnlyAlertOnce(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setPriority;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setPriority(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setProgress;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setProgress(0, 0, false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setPublicVersion;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setPublicVersion(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setPublicVersion;;;Argument[0];Argument[-1];taint"
|
||||
Notification.Builder out = null;
|
||||
Notification in = (Notification) source();
|
||||
out.setPublicVersion(in);
|
||||
sink(out); // $ hasTaintFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setRemoteInputHistory;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setRemoteInputHistory(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSettingsText;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSettingsText(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setShortcutId;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setShortcutId(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setShowWhen;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setShowWhen(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSmallIcon(0, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSmallIcon(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSmallIcon((Icon) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSortKey;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSortKey(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSound;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSound(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSound;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSound((Uri) null, 0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSound;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSound((Uri) null, (AudioAttributes) null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setStyle;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setStyle(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setSubText;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setSubText(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setTicker;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setTicker(null, null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setTicker;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setTicker(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setTimeoutAfter;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setTimeoutAfter(0L);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setUsesChronometer;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setUsesChronometer(false);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setVibrate;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setVibrate(null);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setVisibility;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setVisibility(0);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "android.app;Notification$Builder;true;setWhen;;;Argument[-1];ReturnValue;value"
|
||||
Notification.Builder out = null;
|
||||
Notification.Builder in = (Notification.Builder) source();
|
||||
out = in.setWhen(0L);
|
||||
sink(out); // $ hasValueFlow
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/google-android-9.0.0
|
||||
@@ -0,0 +1,13 @@
|
||||
import java
|
||||
import semmle.code.java.frameworks.android.Intent
|
||||
import TestUtilities.InlineFlowTest
|
||||
|
||||
class SummaryModelTest extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;inputspec;outputspec;kind",
|
||||
"generatedtest;Test;false;getMapKeyDefault;(Bundle);;MapKey of Argument[0];ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
21
java/ql/test/stubs/google-android-9.0.0/android/app/INotificationManager.java
generated
Normal file
21
java/ql/test/stubs/google-android-9.0.0/android/app/INotificationManager.java
generated
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* //device/java/android/android/app/INotificationManager.aidl
|
||||
**
|
||||
** Copyright 2007, The Android Open Source Project
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* 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 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;
|
||||
|
||||
interface INotificationManager {
|
||||
|
||||
}
|
||||
1467
java/ql/test/stubs/google-android-9.0.0/android/app/Notification.java
generated
Normal file
1467
java/ql/test/stubs/google-android-9.0.0/android/app/Notification.java
generated
Normal file
File diff suppressed because it is too large
Load Diff
215
java/ql/test/stubs/google-android-9.0.0/android/app/NotificationChannel.java
generated
Normal file
215
java/ql/test/stubs/google-android-9.0.0/android/app/NotificationChannel.java
generated
Normal file
@@ -0,0 +1,215 @@
|
||||
/*
|
||||
* Copyright (C) 2016 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.app.NotificationManager.Importance;
|
||||
import android.net.Uri;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
public final class NotificationChannel implements Parcelable {
|
||||
public static final int[] LOCKABLE_FIELDS = new int[] {};
|
||||
|
||||
public NotificationChannel(String id, CharSequence name, @Importance int importance) {}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {}
|
||||
|
||||
public void lockFields(int field) {}
|
||||
|
||||
public void unlockFields(int field) {}
|
||||
|
||||
public void setFgServiceShown(boolean shown) {}
|
||||
|
||||
public void setDeleted(boolean deleted) {}
|
||||
|
||||
public void setImportantConversation(boolean importantConvo) {}
|
||||
|
||||
public void setBlockable(boolean blockable) {}
|
||||
|
||||
public void setName(CharSequence name) {}
|
||||
|
||||
public void setDescription(String description) {}
|
||||
|
||||
public void setId(String id) {}
|
||||
|
||||
public void setGroup(String groupId) {}
|
||||
|
||||
public void setShowBadge(boolean showBadge) {}
|
||||
|
||||
public void enableLights(boolean lights) {}
|
||||
|
||||
public void setLightColor(int argb) {}
|
||||
|
||||
public void enableVibration(boolean vibration) {}
|
||||
|
||||
public void setVibrationPattern(long[] vibrationPattern) {}
|
||||
|
||||
public void setImportance(@Importance int importance) {}
|
||||
|
||||
public void setBypassDnd(boolean bypassDnd) {}
|
||||
|
||||
public void setLockscreenVisibility(int lockscreenVisibility) {}
|
||||
|
||||
public void setAllowBubbles(boolean allowBubbles) {}
|
||||
|
||||
public void setAllowBubbles(int allowed) {}
|
||||
|
||||
public void setConversationId(@NonNull String parentChannelId, @NonNull String conversationId) {}
|
||||
|
||||
public String getId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getImportance() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean canBypassDnd() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isImportantConversation() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Uri getSound() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean shouldShowLights() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getLightColor() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean shouldVibrate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public long[] getVibrationPattern() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getLockscreenVisibility() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean canShowBadge() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getGroup() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean canBubble() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getAllowBubbles() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public @Nullable String getParentChannelId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @Nullable String getConversationId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isDeleted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getUserLockedFields() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean isFgServiceShown() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isBlockable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setImportanceLockedByOEM(boolean locked) {}
|
||||
|
||||
public void setImportanceLockedByCriticalDeviceFunction(boolean locked) {}
|
||||
|
||||
public boolean isImportanceLockedByOEM() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isImportanceLockedByCriticalDeviceFunction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getOriginalImportance() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void setOriginalImportance(int importance) {}
|
||||
|
||||
public void setDemoted(boolean demoted) {}
|
||||
|
||||
public boolean isDemoted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasUserSetImportance() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasUserSetSound() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void dump(PrintWriter pw, String prefix, boolean redacted) {}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
86
java/ql/test/stubs/google-android-9.0.0/android/app/NotificationChannelGroup.java
generated
Normal file
86
java/ql/test/stubs/google-android-9.0.0/android/app/NotificationChannelGroup.java
generated
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* 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 android.app;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import java.util.List;
|
||||
|
||||
public final class NotificationChannelGroup implements Parcelable {
|
||||
public NotificationChannelGroup(String id, CharSequence name) {}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {}
|
||||
|
||||
public String getId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<NotificationChannel> getChannels() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isBlocked() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {}
|
||||
|
||||
public void setBlocked(boolean blocked) {}
|
||||
|
||||
public void addChannel(NotificationChannel channel) {}
|
||||
|
||||
public void setChannels(List<NotificationChannel> channels) {}
|
||||
|
||||
public void lockFields(int field) {}
|
||||
|
||||
public void unlockFields(int field) {}
|
||||
|
||||
public int getUserLockedFields() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NotificationChannelGroup clone() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
376
java/ql/test/stubs/google-android-9.0.0/android/app/NotificationManager.java
generated
Normal file
376
java/ql/test/stubs/google-android-9.0.0/android/app/NotificationManager.java
generated
Normal file
@@ -0,0 +1,376 @@
|
||||
/*
|
||||
* Copyright (C) 2007 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 java.util.List;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.UserHandle;
|
||||
|
||||
public class NotificationManager {
|
||||
public @interface AutomaticZenRuleStatus {
|
||||
}
|
||||
|
||||
public @interface InterruptionFilter {
|
||||
}
|
||||
|
||||
public @interface Importance {
|
||||
}
|
||||
|
||||
static public INotificationManager getService() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static NotificationManager from(Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void notify(int id, Notification notification) {}
|
||||
|
||||
public void notify(String tag, int id, Notification notification) {}
|
||||
|
||||
public void notifyAsPackage(@NonNull String targetPackage, @Nullable String tag, int id,
|
||||
@NonNull Notification notification) {}
|
||||
|
||||
public void notifyAsUser(String tag, int id, Notification notification, UserHandle user) {}
|
||||
|
||||
public void cancel(int id) {}
|
||||
|
||||
public void cancel(@Nullable String tag, int id) {}
|
||||
|
||||
public void cancelAsPackage(@NonNull String targetPackage, @Nullable String tag, int id) {}
|
||||
|
||||
public void cancelAsUser(String tag, int id, UserHandle user) {}
|
||||
|
||||
public void cancelAll() {}
|
||||
|
||||
public void setNotificationDelegate(@Nullable String delegate) {}
|
||||
|
||||
public @Nullable String getNotificationDelegate() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean canNotifyAsPackage(@NonNull String pkg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void createNotificationChannelGroup(@NonNull NotificationChannelGroup group) {}
|
||||
|
||||
public void createNotificationChannelGroups(@NonNull List<NotificationChannelGroup> groups) {}
|
||||
|
||||
public void createNotificationChannel(@NonNull NotificationChannel channel) {}
|
||||
|
||||
public void createNotificationChannels(@NonNull List<NotificationChannel> channels) {}
|
||||
|
||||
public NotificationChannel getNotificationChannel(String channelId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @Nullable NotificationChannel getNotificationChannel(@NonNull String channelId,
|
||||
@NonNull String conversationId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<NotificationChannel> getNotificationChannels() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void deleteNotificationChannel(String channelId) {}
|
||||
|
||||
public NotificationChannelGroup getNotificationChannelGroup(String channelGroupId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<NotificationChannelGroup> getNotificationChannelGroups() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void deleteNotificationChannelGroup(String groupId) {}
|
||||
|
||||
public ComponentName getEffectsSuppressor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean matchesCallFilter(Bundle extras) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSystemConditionProviderEnabled(String path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setZenMode(int mode, Uri conditionId, String reason) {}
|
||||
|
||||
public int getZenMode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public @NonNull NotificationManager.Policy getConsolidatedNotificationPolicy() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getRuleInstanceCount(ComponentName owner) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean removeAutomaticZenRule(String id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean removeAutomaticZenRules(String packageName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public @Importance int getImportance() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean areNotificationsEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean areBubblesAllowed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void silenceNotificationSound() {}
|
||||
|
||||
public boolean areNotificationsPaused() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isNotificationPolicyAccessGranted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isNotificationListenerAccessGranted(ComponentName listener) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isNotificationAssistantAccessGranted(@NonNull ComponentName assistant) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean shouldHideSilentStatusBarIcons() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void allowAssistantAdjustment(String capability) {}
|
||||
|
||||
public void disallowAssistantAdjustment(String capability) {}
|
||||
|
||||
public boolean isNotificationPolicyAccessGrantedForPackage(String pkg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<String> getEnabledNotificationListenerPackages() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Policy getNotificationPolicy() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setNotificationPolicy(@NonNull Policy policy) {}
|
||||
|
||||
public void setNotificationPolicyAccessGranted(String pkg, boolean granted) {}
|
||||
|
||||
public void setNotificationListenerAccessGranted(ComponentName listener, boolean granted) {}
|
||||
|
||||
public void setNotificationListenerAccessGrantedForUser(ComponentName listener, int userId,
|
||||
boolean granted) {}
|
||||
|
||||
public void setNotificationAssistantAccessGranted(@Nullable ComponentName assistant,
|
||||
boolean granted) {}
|
||||
|
||||
public List<ComponentName> getEnabledNotificationListeners(int userId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @Nullable ComponentName getAllowedNotificationAssistant() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static class Policy implements android.os.Parcelable {
|
||||
public static final int[] ALL_PRIORITY_CATEGORIES = new int[] {};
|
||||
|
||||
public @interface PrioritySenders {
|
||||
}
|
||||
|
||||
public @interface ConversationSenders {
|
||||
}
|
||||
|
||||
public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders) {}
|
||||
|
||||
public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders,
|
||||
int suppressedVisualEffects) {}
|
||||
|
||||
public Policy(int priorityCategories, @PrioritySenders int priorityCallSenders,
|
||||
@PrioritySenders int priorityMessageSenders, int suppressedVisualEffects,
|
||||
@ConversationSenders int priorityConversationSenders) {}
|
||||
|
||||
public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders,
|
||||
int suppressedVisualEffects, int state, int priorityConversationSenders) {}
|
||||
|
||||
public Policy(Parcel source) {}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int getAllSuppressedVisualEffects() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static boolean areAllVisualEffectsSuppressed(int effects) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String suppressedEffectsToString(int effects) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String priorityCategoriesToString(int priorityCategories) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String prioritySendersToString(int prioritySenders) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static @NonNull String conversationSendersToString(int priorityConversationSenders) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean allowAlarms() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowMedia() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowSystem() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowRepeatCallers() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowCalls() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowConversations() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowMessages() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowEvents() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean allowReminders() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int allowCallsFrom() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int allowMessagesFrom() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int allowConversationsFrom() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean showFullScreenIntents() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean showLights() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean showPeeking() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean showStatusBarIcons() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean showAmbient() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean showBadges() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean showInNotificationList() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Policy copy() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final @InterruptionFilter int getCurrentInterruptionFilter() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public final void setInterruptionFilter(@InterruptionFilter int interruptionFilter) {}
|
||||
|
||||
public static int zenModeToInterruptionFilter(int zen) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int zenModeFromInterruptionFilter(int interruptionFilter, int defValue) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
111
java/ql/test/stubs/google-android-9.0.0/android/app/Person.java
generated
Normal file
111
java/ql/test/stubs/google-android-9.0.0/android/app/Person.java
generated
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Copyright (C) 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 android.app;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.net.Uri;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
public final class Person implements Parcelable {
|
||||
public Builder toBuilder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public CharSequence getName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Icon getIcon() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isBot() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isImportant() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String resolveToLegacyUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Uri getIconUri() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {}
|
||||
|
||||
public static class Builder {
|
||||
public Builder() {}
|
||||
|
||||
public Person.Builder setName(@Nullable CharSequence name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Person.Builder setIcon(@Nullable Icon icon) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Person.Builder setUri(@Nullable String uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Person.Builder setKey(@Nullable String key) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Person.Builder setImportant(boolean isImportant) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Person.Builder setBot(boolean isBot) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Person build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,13 +2,11 @@
|
||||
|
||||
package android.content.pm;
|
||||
|
||||
import java.util.UUID;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageItemInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.Printer;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ApplicationInfo extends PackageItemInfo implements Parcelable
|
||||
{
|
||||
|
||||
@@ -2,18 +2,12 @@
|
||||
|
||||
package android.graphics;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ColorSpace;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Picture;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.Buffer;
|
||||
import android.hardware.HardwareBuffer;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.DisplayMetrics;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.Buffer;
|
||||
|
||||
public class Bitmap implements Parcelable
|
||||
{
|
||||
|
||||
@@ -7,7 +7,6 @@ import android.content.res.ColorStateList;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BlendMode;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
|
||||
198
java/ql/test/stubs/google-android-9.0.0/android/media/AudioAttributes.java
generated
Normal file
198
java/ql/test/stubs/google-android-9.0.0/android/media/AudioAttributes.java
generated
Normal file
@@ -0,0 +1,198 @@
|
||||
/*
|
||||
* Copyright (C) 2014 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.media;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import java.util.Set;
|
||||
|
||||
public final class AudioAttributes implements Parcelable {
|
||||
public final static int[] SDK_USAGES = new int[] {};
|
||||
|
||||
public @interface CapturePolicy {
|
||||
}
|
||||
|
||||
public int getContentType() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getUsage() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getSystemUsage() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getCapturePreset() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getFlags() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int getAllFlags() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Bundle getBundle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Set<String> getTags() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean areHapticChannelsMuted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getAllowedCapturePolicy() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
public Builder() {}
|
||||
|
||||
public Builder(AudioAttributes aa) {}
|
||||
|
||||
public AudioAttributes build() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setUsage(@AttributeSdkUsage int usage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @NonNull Builder setSystemUsage(@AttributeSystemUsage int systemUsage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setContentType(@AttributeContentType int contentType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setFlags(int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @NonNull Builder setAllowedCapturePolicy(@CapturePolicy int capturePolicy) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder replaceFlags(int flags) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addBundle(@NonNull Bundle bundle) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder addTag(String tag) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setLegacyStreamType(int streamType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setInternalLegacyStreamType(int streamType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setCapturePreset(int preset) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Builder setInternalCapturePreset(int preset) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @NonNull Builder setHapticChannelsMuted(boolean muted) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public @NonNull Builder setPrivacySensitive(boolean privacySensitive) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String usageToString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String usageToString(int usage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String contentTypeToString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isSystemUsage(@AttributeSystemUsage int usage) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getVolumeControlStream() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int toLegacyStreamType(@NonNull AudioAttributes aa) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int capturePolicyToFlags(@CapturePolicy int capturePolicy, int flags) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public @interface AttributeSystemUsage {
|
||||
}
|
||||
|
||||
public @interface AttributeSdkUsage {
|
||||
}
|
||||
|
||||
public @interface AttributeUsage {
|
||||
}
|
||||
|
||||
public @interface AttributeContentType {
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user