1{
2  "methods": {
3    "__constructor__(android.content.Context,android.content.pm.ICrossProfileApps)": {
4      "isImplementation": true,
5      "modifiers": [
6        "protected"
7      ],
8      "params": [
9        "context",
10        "service"
11      ],
12      "returnType": "void",
13      "exceptions": [],
14      "name": "__constructor__(android.content.Context,android.content.pm.ICrossProfileApps)"
15    },
16    "addCrossProfilePackage(java.lang.String)": {
17      "isImplementation": false,
18      "modifiers": [
19        "public"
20      ],
21      "params": [
22        "packageName"
23      ],
24      "returnType": "void",
25      "exceptions": [],
26      "name": "addCrossProfilePackage(java.lang.String)"
27    },
28    "addTargetUserProfile(android.os.UserHandle)": {
29      "isImplementation": false,
30      "modifiers": [
31        "public"
32      ],
33      "params": [
34        "userHandle"
35      ],
36      "returnType": "void",
37      "exceptions": [],
38      "name": "addTargetUserProfile(android.os.UserHandle)",
39      "documentation": "Adds {@code userHandle} to the list of accessible handles. "
40    },
41    "canConfigureInteractAcrossProfiles(java.lang.String)": {
42      "isImplementation": true,
43      "modifiers": [
44        "protected"
45      ],
46      "params": [
47        "packageName"
48      ],
49      "returnType": "boolean",
50      "exceptions": [],
51      "name": "canConfigureInteractAcrossProfiles(java.lang.String)"
52    },
53    "canUserAttemptToConfigureInteractAcrossProfiles(java.lang.String)": {
54      "isImplementation": true,
55      "modifiers": [
56        "protected"
57      ],
58      "params": [
59        "packageName"
60      ],
61      "returnType": "boolean",
62      "exceptions": [],
63      "name": "canUserAttemptToConfigureInteractAcrossProfiles(java.lang.String)"
64    },
65    "clearInteractAcrossProfilesAppOps()": {
66      "isImplementation": true,
67      "modifiers": [
68        "protected"
69      ],
70      "params": [],
71      "returnType": "void",
72      "exceptions": [],
73      "minSdk": 30,
74      "name": "clearInteractAcrossProfilesAppOps()"
75    },
76    "clearNextStartedActivities()": {
77      "isImplementation": false,
78      "modifiers": [
79        "public"
80      ],
81      "params": [],
82      "returnType": "void",
83      "exceptions": [],
84      "name": "clearNextStartedActivities()",
85      "documentation": "Clears all records of {@link StartedActivity}s from calls to {@link\nCrossProfileApps#startActivity(ComponentName, UserHandle)} or {@link\nCrossProfileApps#startMainActivity(ComponentName, UserHandle)}.\n"
86    },
87    "clearTargetUserProfiles()": {
88      "isImplementation": false,
89      "modifiers": [
90        "public"
91      ],
92      "params": [],
93      "returnType": "void",
94      "exceptions": [],
95      "name": "clearTargetUserProfiles()",
96      "documentation": "Clears the list of accessible handles. "
97    },
98    "findAllPackageNames()": {
99      "isImplementation": false,
100      "modifiers": [
101        "private"
102      ],
103      "params": [],
104      "returnType": "java.util.List\u003cjava.lang.String\u003e",
105      "exceptions": [],
106      "name": "findAllPackageNames()"
107    },
108    "getInteractAcrossProfilesAppOp(java.lang.String)": {
109      "isImplementation": false,
110      "modifiers": [
111        "public"
112      ],
113      "params": [
114        "packageName"
115      ],
116      "returnType": "java.lang.Integer",
117      "exceptions": [],
118      "name": "getInteractAcrossProfilesAppOp(java.lang.String)",
119      "documentation": "Returns the app-op mode associated with the given package name. If not set, returns {@code\nnull}.\n"
120    },
121    "getNextStartedActivity()": {
122      "isImplementation": false,
123      "modifiers": [
124        "public"
125      ],
126      "params": [],
127      "returnType": "org.robolectric.shadows.ShadowCrossProfileApps.StartedActivity",
128      "exceptions": [],
129      "name": "getNextStartedActivity()",
130      "documentation": "Consumes the most recent {@link ComponentName}, {@link UserHandle} pair started by {@link\nCrossProfileApps#startMainActivity(ComponentName, UserHandle)} or {@link\nCrossProfileApps#startActivity(ComponentName, UserHandle)}, and returns it wrapped in {@link\nStartedActivity}.\n"
131    },
132    "getProfileSwitchingIconDrawable(android.os.UserHandle)": {
133      "isImplementation": true,
134      "modifiers": [
135        "protected"
136      ],
137      "params": [
138        "userHandle"
139      ],
140      "returnType": "android.graphics.drawable.Drawable",
141      "exceptions": [],
142      "name": "getProfileSwitchingIconDrawable(android.os.UserHandle)",
143      "documentation": "Returns a {@link Drawable} that can be shown for profile switching, which is guaranteed to\nalways be the same for a particular user and to be distinct between users.\n"
144    },
145    "getProfileSwitchingLabel(android.os.UserHandle)": {
146      "isImplementation": true,
147      "modifiers": [
148        "protected"
149      ],
150      "params": [
151        "userHandle"
152      ],
153      "returnType": "java.lang.CharSequence",
154      "exceptions": [],
155      "name": "getProfileSwitchingLabel(android.os.UserHandle)",
156      "documentation": "Returns a {@link CharSequence} that can be shown as a label for profile switching, which is\nguaranteed to always be the same for a particular user and to be distinct between users.\n"
157    },
158    "getTargetUserProfiles()": {
159      "isImplementation": true,
160      "modifiers": [
161        "protected"
162      ],
163      "params": [],
164      "returnType": "java.util.List\u003candroid.os.UserHandle\u003e",
165      "exceptions": [],
166      "name": "getTargetUserProfiles()",
167      "documentation": "Returns a list of {@link UserHandle}s currently accessible. This list is populated from calls\nto {@link #addTargetUserProfile(UserHandle)}.\n"
168    },
169    "peekNextStartedActivity()": {
170      "isImplementation": false,
171      "modifiers": [
172        "public"
173      ],
174      "params": [],
175      "returnType": "org.robolectric.shadows.ShadowCrossProfileApps.StartedActivity",
176      "exceptions": [],
177      "name": "peekNextStartedActivity()",
178      "documentation": "Returns the most recent {@link ComponentName}, {@link UserHandle} pair started by {@link\nCrossProfileApps#startMainActivity(ComponentName, UserHandle)} or {@link\nCrossProfileApps#startActivity(ComponentName, UserHandle)}, wrapped in {@link StartedActivity}.\n"
179    },
180    "peekNextStartedMainActivity()": {
181      "isImplementation": false,
182      "modifiers": [
183        "public"
184      ],
185      "params": [],
186      "returnType": "org.robolectric.shadows.ShadowCrossProfileApps.StartedMainActivity",
187      "exceptions": [],
188      "name": "peekNextStartedMainActivity()",
189      "documentation": "Returns the most recent {@link ComponentName}, {@link UserHandle} pair started by {@link\nCrossProfileApps#startMainActivity(ComponentName, UserHandle)}, wrapped in {@link\nStartedMainActivity}.\n\n@deprecated Use {@link #peekNextStartedActivity()} instead.\n"
190    },
191    "removeTargetUserProfile(android.os.UserHandle)": {
192      "isImplementation": false,
193      "modifiers": [
194        "public"
195      ],
196      "params": [
197        "userHandle"
198      ],
199      "returnType": "void",
200      "exceptions": [],
201      "name": "removeTargetUserProfile(android.os.UserHandle)",
202      "documentation": "Removes {@code userHandle} from the list of accessible handles, if present. "
203    },
204    "reset()": {
205      "isImplementation": false,
206      "modifiers": [
207        "public",
208        "static"
209      ],
210      "params": [],
211      "returnType": "void",
212      "exceptions": [],
213      "name": "reset()"
214    },
215    "resetInteractAcrossProfilesAppOps(java.util.Collection\u003cjava.lang.String\u003e,java.util.Set\u003cjava.lang.String\u003e)": {
216      "isImplementation": true,
217      "modifiers": [
218        "protected"
219      ],
220      "params": [
221        "previousCrossProfilePackages",
222        "newCrossProfilePackages"
223      ],
224      "returnType": "void",
225      "exceptions": [],
226      "minSdk": 30,
227      "name": "resetInteractAcrossProfilesAppOps(java.util.Collection\u003cjava.lang.String\u003e,java.util.Set\u003cjava.lang.String\u003e)"
228    },
229    "setInteractAcrossProfilesAppOp(java.lang.String,int)": {
230      "isImplementation": true,
231      "modifiers": [
232        "protected"
233      ],
234      "params": [
235        "packageName",
236        "newMode"
237      ],
238      "returnType": "void",
239      "exceptions": [],
240      "minSdk": 30,
241      "name": "setInteractAcrossProfilesAppOp(java.lang.String,int)"
242    },
243    "startActivity(android.content.ComponentName,android.os.UserHandle)": {
244      "isImplementation": true,
245      "modifiers": [
246        "protected"
247      ],
248      "params": [
249        "componentName",
250        "targetUser"
251      ],
252      "returnType": "void",
253      "exceptions": [],
254      "minSdk": 29,
255      "name": "startActivity(android.content.ComponentName,android.os.UserHandle)",
256      "documentation": "Simulates starting the activity specified in the specified profile, performing the same\nsecurity checks done by the real {@link CrossProfileApps}.\n\n\u003cp\u003eThe most recent main activity started can be queried by {@link #peekNextStartedActivity()}\n()}.\n"
257    },
258    "startMainActivity(android.content.ComponentName,android.os.UserHandle)": {
259      "isImplementation": true,
260      "modifiers": [
261        "protected"
262      ],
263      "params": [
264        "componentName",
265        "targetUser"
266      ],
267      "returnType": "void",
268      "exceptions": [],
269      "name": "startMainActivity(android.content.ComponentName,android.os.UserHandle)",
270      "documentation": "Simulates starting the main activity specified in the specified profile, performing the same\nsecurity checks done by the real {@link CrossProfileApps}.\n\n\u003cp\u003eThe most recent main activity started can be queried by {@link #peekNextStartedActivity()}\n()}.\n"
271    },
272    "verifyActivityInManifest(android.content.ComponentName,boolean)": {
273      "isImplementation": false,
274      "modifiers": [
275        "private"
276      ],
277      "params": [
278        "component",
279        "requireMainActivity"
280      ],
281      "returnType": "void",
282      "exceptions": [],
283      "name": "verifyActivityInManifest(android.content.ComponentName,boolean)",
284      "documentation": "Ensures that {@code component} is present in the manifest as an exported and enabled activity.\nThis check and the error thrown are the same as the check done by the real {@link\nCrossProfileApps}.\n\n\u003cp\u003eIf {@code requireMainActivity} is true, then this also asserts that the activity is a\nlauncher activity.\n"
285    },
286    "verifyCanAccessUser(android.os.UserHandle)": {
287      "isImplementation": false,
288      "modifiers": [
289        "private"
290      ],
291      "params": [
292        "userHandle"
293      ],
294      "returnType": "void",
295      "exceptions": [],
296      "name": "verifyCanAccessUser(android.os.UserHandle)"
297    },
298    "verifyHasInteractAcrossProfilesPermission()": {
299      "isImplementation": false,
300      "modifiers": [
301        "private"
302      ],
303      "params": [],
304      "returnType": "void",
305      "exceptions": [],
306      "name": "verifyHasInteractAcrossProfilesPermission()"
307    }
308  },
309  "imports": [
310    "android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE",
311    "android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE",
312    "android.os.Build.VERSION_CODES.P",
313    "android.os.Build.VERSION_CODES.Q",
314    "android.os.Build.VERSION_CODES.R",
315    "com.google.common.base.Preconditions.checkNotNull",
316    "android.Manifest",
317    "android.Manifest.permission",
318    "android.annotation.NonNull",
319    "android.annotation.RequiresPermission",
320    "android.annotation.SystemApi",
321    "android.app.AppOpsManager",
322    "android.app.AppOpsManager.Mode",
323    "android.content.ComponentName",
324    "android.content.Context",
325    "android.content.Intent",
326    "android.content.pm.ActivityInfo",
327    "android.content.pm.CrossProfileApps",
328    "android.content.pm.ICrossProfileApps",
329    "android.content.pm.PackageInfo",
330    "android.content.pm.PackageManager",
331    "android.graphics.drawable.ColorDrawable",
332    "android.graphics.drawable.Drawable",
333    "android.os.Process",
334    "android.os.UserHandle",
335    "android.text.TextUtils",
336    "com.google.common.collect.ImmutableList",
337    "com.google.common.collect.Iterables",
338    "org.robolectric.annotation.Implementation",
339    "org.robolectric.annotation.Implements",
340    "org.robolectric.annotation.Resetter",
341    "java.util.ArrayList",
342    "java.util.Arrays",
343    "java.util.Collection",
344    "java.util.Collections",
345    "java.util.HashMap",
346    "java.util.HashSet",
347    "java.util.LinkedHashSet",
348    "java.util.List",
349    "java.util.Map",
350    "java.util.Objects",
351    "java.util.Set",
352    "java.util.stream.Collectors",
353    "javax.annotation.Nullable",
354    "org.robolectric.shadows.ShadowCrossProfileApps.StartedMainActivity",
355    "org.robolectric.shadows.ShadowCrossProfileApps.StartedActivity"
356  ],
357  "name": "org.robolectric.shadows.ShadowCrossProfileApps",
358  "documentation": "Robolectric implementation of {@link CrossProfileApps}. "
359}