1{
2  "methods": {
3    "__constructor__(android.content.Context,com.android.internal.app.IAppOpsService)": {
4      "isImplementation": true,
5      "modifiers": [
6        "protected"
7      ],
8      "params": [
9        "context",
10        "service"
11      ],
12      "returnType": "void",
13      "exceptions": [],
14      "minSdk": 19,
15      "name": "__constructor__(android.content.Context,com.android.internal.app.IAppOpsService)"
16    },
17    "checkOpNoThrow(int,int,java.lang.String)": {
18      "isImplementation": true,
19      "modifiers": [
20        "public"
21      ],
22      "params": [
23        "op",
24        "uid",
25        "packageName"
26      ],
27      "returnType": "int",
28      "exceptions": [],
29      "minSdk": 19,
30      "name": "checkOpNoThrow(int,int,java.lang.String)",
31      "documentation": "Like {@link AppOpsManager#checkOp} but instead of throwing a {@link SecurityException} it\nreturns {@link AppOpsManager#MODE_ERRORED}.\n\n\u003cp\u003eMade public for testing {@link #setMode} as the method is {@coe @hide}.\n"
32    },
33    "checkOpNoThrow(java.lang.String,int,java.lang.String)": {
34      "isImplementation": true,
35      "modifiers": [
36        "protected"
37      ],
38      "params": [
39        "op",
40        "uid",
41        "packageName"
42      ],
43      "returnType": "int",
44      "exceptions": [],
45      "minSdk": 28,
46      "name": "checkOpNoThrow(java.lang.String,int,java.lang.String)"
47    },
48    "checkPackage(int,java.lang.String)": {
49      "isImplementation": true,
50      "modifiers": [
51        "protected"
52      ],
53      "params": [
54        "uid",
55        "packageName"
56      ],
57      "returnType": "void",
58      "exceptions": [],
59      "minSdk": 19,
60      "name": "checkPackage(int,java.lang.String)"
61    },
62    "getAudioRestrictionKey(int,int)": {
63      "isImplementation": false,
64      "modifiers": [
65        "private",
66        "static"
67      ],
68      "params": [
69        "code",
70        "usage"
71      ],
72      "returnType": "int",
73      "exceptions": [],
74      "name": "getAudioRestrictionKey(int,int)"
75    },
76    "getInternalKey(int,java.lang.String)": {
77      "isImplementation": false,
78      "modifiers": [
79        "private",
80        "static"
81      ],
82      "params": [
83        "uid",
84        "packageName"
85      ],
86      "returnType": "java.lang.String",
87      "exceptions": [],
88      "name": "getInternalKey(int,java.lang.String)"
89    },
90    "getListenerKey(int,java.lang.String)": {
91      "isImplementation": false,
92      "modifiers": [
93        "private",
94        "static"
95      ],
96      "params": [
97        "op",
98        "packageName"
99      ],
100      "returnType": "java.lang.String",
101      "exceptions": [],
102      "name": "getListenerKey(int,java.lang.String)"
103    },
104    "getOpMapKey(int,java.lang.String,int)": {
105      "isImplementation": false,
106      "modifiers": [
107        "private",
108        "static"
109      ],
110      "params": [
111        "uid",
112        "packageName",
113        "opInt"
114      ],
115      "returnType": "java.lang.String",
116      "exceptions": [],
117      "name": "getOpMapKey(int,java.lang.String,int)"
118    },
119    "getOpsForPackage(int,java.lang.String,int[])": {
120      "isImplementation": true,
121      "modifiers": [
122        "public"
123      ],
124      "params": [
125        "uid",
126        "packageName",
127        "ops"
128      ],
129      "returnType": "java.util.List\u003candroid.app.AppOpsManager.PackageOps\u003e",
130      "exceptions": [],
131      "minSdk": 19,
132      "name": "getOpsForPackage(int,java.lang.String,int[])"
133    },
134    "getRestriction(int,int)": {
135      "isImplementation": false,
136      "modifiers": [
137        "public"
138      ],
139      "params": [
140        "code",
141        "usage"
142      ],
143      "returnType": "org.robolectric.shadows.ShadowAppOpsManager.ModeAndException",
144      "exceptions": [],
145      "name": "getRestriction(int,int)"
146    },
147    "noteOp(int,int,java.lang.String)": {
148      "isImplementation": true,
149      "modifiers": [
150        "public"
151      ],
152      "params": [
153        "op",
154        "uid",
155        "packageName"
156      ],
157      "returnType": "int",
158      "exceptions": [],
159      "minSdk": 19,
160      "maxSdk": 29,
161      "name": "noteOp(int,int,java.lang.String)"
162    },
163    "noteOp(int,int,java.lang.String,java.lang.String)": {
164      "isImplementation": true,
165      "modifiers": [
166        "public"
167      ],
168      "params": [
169        "op",
170        "uid",
171        "packageName",
172        "message"
173      ],
174      "returnType": "int",
175      "exceptions": [],
176      "minSdk": 30,
177      "name": "noteOp(int,int,java.lang.String,java.lang.String)"
178    },
179    "noteProxyOpNoThrow(int,java.lang.String)": {
180      "isImplementation": true,
181      "modifiers": [
182        "protected"
183      ],
184      "params": [
185        "op",
186        "proxiedPackageName"
187      ],
188      "returnType": "int",
189      "exceptions": [],
190      "minSdk": 23,
191      "maxSdk": 29,
192      "name": "noteProxyOpNoThrow(int,java.lang.String)"
193    },
194    "noteProxyOpNoThrow(int,java.lang.String,int,java.lang.String,java.lang.String)": {
195      "isImplementation": true,
196      "modifiers": [
197        "protected"
198      ],
199      "params": [
200        "op",
201        "proxiedPackageName",
202        "proxiedUid",
203        "featureId",
204        "message"
205      ],
206      "returnType": "int",
207      "exceptions": [],
208      "minSdk": 30,
209      "name": "noteProxyOpNoThrow(int,java.lang.String,int,java.lang.String,java.lang.String)"
210    },
211    "setMode(int,int,java.lang.String,int)": {
212      "isImplementation": true,
213      "modifiers": [
214        "public"
215      ],
216      "params": [
217        "op",
218        "uid",
219        "packageName",
220        "mode"
221      ],
222      "returnType": "void",
223      "exceptions": [],
224      "minSdk": 19,
225      "name": "setMode(int,int,java.lang.String,int)",
226      "documentation": "Int version of {@link #setMode(String, int, String, int)}.\n\n\u003cp\u003eThis method is public for testing {@link #checkOpNoThrow}. If {@link #checkOpNoThrow} is *\ncalled afterwards with the {@code op}, {@code ui}, and {@code packageName} provided, it will *\nreturn the {@code mode} set here.\n"
227    },
228    "setMode(java.lang.String,int,java.lang.String,int)": {
229      "isImplementation": true,
230      "modifiers": [
231        "public"
232      ],
233      "params": [
234        "op",
235        "uid",
236        "packageName",
237        "mode"
238      ],
239      "returnType": "void",
240      "exceptions": [],
241      "minSdk": 28,
242      "name": "setMode(java.lang.String,int,java.lang.String,int)",
243      "documentation": "Change the operating mode for the given op in the given app package. You must pass in both the\nuid and name of the application whose mode is being modified; if these do not match, the\nmodification will not be applied.\n\n\u003cp\u003eThis method is public for testing {@link #checkOpNoThrow}. If {@link #checkOpNoThrow} is\ncalled afterwards with the {@code op}, {@code ui}, and {@code packageName} provided, it will\nreturn the {@code mode} set here.\n\n@param op The operation to modify. One of the OPSTR_* constants.\n@param uid The user id of the application whose mode will be changed.\n@param packageName The name of the application package name whose mode will be changed.\n"
244    },
245    "setRestriction(int,int,int,java.lang.String[])": {
246      "isImplementation": true,
247      "modifiers": [
248        "public"
249      ],
250      "params": [
251        "code",
252        "usage",
253        "mode",
254        "exceptionPackages"
255      ],
256      "returnType": "void",
257      "exceptions": [],
258      "minSdk": 21,
259      "name": "setRestriction(int,int,int,java.lang.String[])",
260      "documentation": "Sets audio restrictions.\n\n\u003cp\u003eThis method is public for testing, as the original method is {@code @hide}.\n"
261    },
262    "startWatchingMode(int,java.lang.String,android.app.AppOpsManager.OnOpChangedListener)": {
263      "isImplementation": true,
264      "modifiers": [
265        "protected"
266      ],
267      "params": [
268        "op",
269        "packageName",
270        "callback"
271      ],
272      "returnType": "void",
273      "exceptions": [],
274      "minSdk": 19,
275      "name": "startWatchingMode(int,java.lang.String,android.app.AppOpsManager.OnOpChangedListener)"
276    },
277    "stopWatchingMode(android.app.AppOpsManager.OnOpChangedListener)": {
278      "isImplementation": true,
279      "modifiers": [
280        "protected"
281      ],
282      "params": [
283        "callback"
284      ],
285      "returnType": "void",
286      "exceptions": [],
287      "minSdk": 19,
288      "name": "stopWatchingMode(android.app.AppOpsManager.OnOpChangedListener)"
289    },
290    "toOpEntry(java.lang.Integer)": {
291      "isImplementation": false,
292      "modifiers": [
293        "private",
294        "static"
295      ],
296      "params": [
297        "op"
298      ],
299      "returnType": "android.app.AppOpsManager.OpEntry",
300      "exceptions": [],
301      "name": "toOpEntry(java.lang.Integer)"
302    },
303    "unsafeCheckOpNoThrow(java.lang.String,int,java.lang.String)": {
304      "isImplementation": true,
305      "modifiers": [
306        "public"
307      ],
308      "params": [
309        "op",
310        "uid",
311        "packageName"
312      ],
313      "returnType": "int",
314      "exceptions": [],
315      "minSdk": 29,
316      "name": "unsafeCheckOpNoThrow(java.lang.String,int,java.lang.String)"
317    },
318    "unsafeCheckOpRawNoThrow(int,int,java.lang.String)": {
319      "isImplementation": true,
320      "modifiers": [
321        "protected"
322      ],
323      "params": [
324        "op",
325        "uid",
326        "packageName"
327      ],
328      "returnType": "int",
329      "exceptions": [],
330      "minSdk": 29,
331      "name": "unsafeCheckOpRawNoThrow(int,int,java.lang.String)",
332      "documentation": "Returns the \u003cem\u003eraw\u003c/em\u003e mode associated with the op.\nDoes not throw a security exception, does not translate {@link AppOpsManager#MODE_FOREGROUND}.\n"
333    },
334    "unsafeCheckOpRawNoThrow(java.lang.String,int,java.lang.String)": {
335      "isImplementation": true,
336      "modifiers": [
337        "protected"
338      ],
339      "params": [
340        "op",
341        "uid",
342        "packageName"
343      ],
344      "returnType": "int",
345      "exceptions": [],
346      "minSdk": 29,
347      "name": "unsafeCheckOpRawNoThrow(java.lang.String,int,java.lang.String)",
348      "documentation": "Like {@link #unsafeCheckOpNoThrow(String, int, String)} but returns the \u003cem\u003eraw\u003c/em\u003e mode\nassociated with the op. Does not throw a security exception, does not translate {@link\nAppOpsManager#MODE_FOREGROUND}.\n"
349    }
350  },
351  "imports": [
352    "android.os.Build.VERSION_CODES.KITKAT",
353    "android.os.Build.VERSION_CODES.LOLLIPOP",
354    "android.os.Build.VERSION_CODES.M",
355    "android.os.Build.VERSION_CODES.P",
356    "android.os.Build.VERSION_CODES.Q",
357    "android.os.Build.VERSION_CODES.R",
358    "org.robolectric.shadow.api.Shadow.invokeConstructor",
359    "android.annotation.Nullable",
360    "android.annotation.RequiresPermission",
361    "android.annotation.SystemApi",
362    "android.app.AppOpsManager",
363    "android.app.AppOpsManager.AttributedOpEntry",
364    "android.app.AppOpsManager.OnOpChangedListener",
365    "android.app.AppOpsManager.OpEntry",
366    "android.app.AppOpsManager.PackageOps",
367    "android.content.Context",
368    "android.content.pm.PackageManager.NameNotFoundException",
369    "android.media.AudioAttributes.AttributeUsage",
370    "android.os.Binder",
371    "android.os.Build",
372    "android.util.LongSparseArray",
373    "android.util.LongSparseLongArray",
374    "com.android.internal.app.IAppOpsService",
375    "com.google.common.collect.BiMap",
376    "com.google.common.collect.HashBiMap",
377    "com.google.common.collect.HashMultimap",
378    "com.google.common.collect.ImmutableList",
379    "com.google.common.collect.Multimap",
380    "java.util.ArrayList",
381    "java.util.Arrays",
382    "java.util.Collections",
383    "java.util.HashMap",
384    "java.util.HashSet",
385    "java.util.List",
386    "java.util.Map",
387    "java.util.Objects",
388    "java.util.Set",
389    "org.robolectric.RuntimeEnvironment",
390    "org.robolectric.annotation.HiddenApi",
391    "org.robolectric.annotation.Implementation",
392    "org.robolectric.annotation.Implements",
393    "org.robolectric.annotation.RealObject",
394    "org.robolectric.shadow.api.Shadow",
395    "org.robolectric.util.ReflectionHelpers",
396    "org.robolectric.util.ReflectionHelpers.ClassParameter",
397    "org.robolectric.shadows.ShadowAppOpsManager.ModeAndException"
398  ],
399  "name": "org.robolectric.shadows.ShadowAppOpsManager"
400}