xref: /aosp_15_r20/external/robolectric/shadows/framework/src/main/java/org/robolectric/shadows/_Activity_.java (revision e6ba16074e6af37d123cb567d575f496bf0a58ee)
1 package org.robolectric.shadows;
2 
3 import android.app.Activity;
4 import android.app.ActivityThread;
5 import android.app.Application;
6 import android.app.Dialog;
7 import android.app.Instrumentation;
8 import android.content.Context;
9 import android.content.Intent;
10 import android.content.pm.ActivityInfo;
11 import android.content.res.Configuration;
12 import android.os.Build;
13 import android.os.Build.VERSION_CODES;
14 import android.os.Bundle;
15 import android.os.IBinder;
16 import android.view.View;
17 import android.view.Window;
18 import org.robolectric.RuntimeEnvironment;
19 import org.robolectric.shadow.api.Shadow;
20 import org.robolectric.util.reflector.Accessor;
21 import org.robolectric.util.reflector.ForType;
22 import org.robolectric.util.reflector.WithType;
23 
24 /** Accessor interface for {@link Activity}'s internals. */
25 @ForType(Activity.class)
26 public interface _Activity_ {
27 
28   @Accessor("mToken")
getToken()29   IBinder getToken();
30 
31   // <= LOLLIPOP:
attach( Context context, ActivityThread activityThread, Instrumentation instrumentation, IBinder token, int ident, Application application, Intent intent, ActivityInfo activityInfo, CharSequence title, Activity parent, String id, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances, Configuration configuration, @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor)32   void attach(
33       Context context,
34       ActivityThread activityThread,
35       Instrumentation instrumentation,
36       IBinder token,
37       int ident,
38       Application application,
39       Intent intent,
40       ActivityInfo activityInfo,
41       CharSequence title,
42       Activity parent,
43       String id,
44       @WithType("android.app.Activity$NonConfigurationInstances")
45           Object lastNonConfigurationInstances,
46       Configuration configuration,
47       @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor);
48 
49   // <= M
attach( Context context, ActivityThread activityThread, Instrumentation instrumentation, IBinder token, int ident, Application application, Intent intent, ActivityInfo activityInfo, CharSequence title, Activity parent, String id, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances, Configuration configuration, String referer, @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor)50   void attach(
51       Context context,
52       ActivityThread activityThread,
53       Instrumentation instrumentation,
54       IBinder token,
55       int ident,
56       Application application,
57       Intent intent,
58       ActivityInfo activityInfo,
59       CharSequence title,
60       Activity parent,
61       String id,
62       @WithType("android.app.Activity$NonConfigurationInstances")
63           Object lastNonConfigurationInstances,
64       Configuration configuration,
65       String referer,
66       @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor);
67 
68   // <= N_MR1
attach( Context context, ActivityThread activityThread, Instrumentation instrumentation, IBinder token, int ident, Application application, Intent intent, ActivityInfo activityInfo, CharSequence title, Activity parent, String id, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances, Configuration configuration, String referer, @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor, Window window)69   void attach(
70       Context context,
71       ActivityThread activityThread,
72       Instrumentation instrumentation,
73       IBinder token,
74       int ident,
75       Application application,
76       Intent intent,
77       ActivityInfo activityInfo,
78       CharSequence title,
79       Activity parent,
80       String id,
81       @WithType("android.app.Activity$NonConfigurationInstances")
82           Object lastNonConfigurationInstances,
83       Configuration configuration,
84       String referer,
85       @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor,
86       Window window);
87 
88   // <= P
attach( Context context, ActivityThread activityThread, Instrumentation instrumentation, IBinder token, int ident, Application application, Intent intent, ActivityInfo activityInfo, CharSequence title, Activity parent, String id, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances, Configuration configuration, String referer, @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor, Window window, @WithType("android.view.ViewRootImpl$ActivityConfigCallback") Object activityConfigCallback)89   void attach(
90       Context context,
91       ActivityThread activityThread,
92       Instrumentation instrumentation,
93       IBinder token,
94       int ident,
95       Application application,
96       Intent intent,
97       ActivityInfo activityInfo,
98       CharSequence title,
99       Activity parent,
100       String id,
101       @WithType("android.app.Activity$NonConfigurationInstances")
102           Object lastNonConfigurationInstances,
103       Configuration configuration,
104       String referer,
105       @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor,
106       Window window,
107       @WithType("android.view.ViewRootImpl$ActivityConfigCallback") Object activityConfigCallback);
108 
109   // <= R
attach( Context context, ActivityThread activityThread, Instrumentation instrumentation, IBinder token, int ident, Application application, Intent intent, ActivityInfo activityInfo, CharSequence title, Activity parent, String id, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances, Configuration configuration, String referer, @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor, Window window, @WithType("android.view.ViewRootImpl$ActivityConfigCallback") Object activityConfigCallback, IBinder assistToken)110   void attach(
111       Context context,
112       ActivityThread activityThread,
113       Instrumentation instrumentation,
114       IBinder token,
115       int ident,
116       Application application,
117       Intent intent,
118       ActivityInfo activityInfo,
119       CharSequence title,
120       Activity parent,
121       String id,
122       @WithType("android.app.Activity$NonConfigurationInstances")
123           Object lastNonConfigurationInstances,
124       Configuration configuration,
125       String referer,
126       @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor,
127       Window window,
128       @WithType("android.view.ViewRootImpl$ActivityConfigCallback") Object activityConfigCallback,
129       IBinder assistToken);
130 
131   // >= S
attach( Context context, ActivityThread activityThread, Instrumentation instrumentation, IBinder token, int ident, Application application, Intent intent, ActivityInfo activityInfo, CharSequence title, Activity parent, String id, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances, Configuration configuration, String referer, @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor, Window window, @WithType("android.view.ViewRootImpl$ActivityConfigCallback") Object activityConfigCallback, IBinder assistToken, IBinder shareableActivityToken)132   void attach(
133       Context context,
134       ActivityThread activityThread,
135       Instrumentation instrumentation,
136       IBinder token,
137       int ident,
138       Application application,
139       Intent intent,
140       ActivityInfo activityInfo,
141       CharSequence title,
142       Activity parent,
143       String id,
144       @WithType("android.app.Activity$NonConfigurationInstances")
145           Object lastNonConfigurationInstances,
146       Configuration configuration,
147       String referer,
148       @WithType("com.android.internal.app.IVoiceInteractor") Object iVoiceInteractor,
149       Window window,
150       @WithType("android.view.ViewRootImpl$ActivityConfigCallback") Object activityConfigCallback,
151       IBinder assistToken,
152       IBinder shareableActivityToken);
153 
callAttach( Activity realActivity, Context baseContext, ActivityThread activityThread, Instrumentation instrumentation, Application application, Intent intent, ActivityInfo activityInfo, IBinder token, CharSequence activityTitle, @WithType("android.app.Activity$NonConfigurationInstances") Object lastNonConfigurationInstances)154   default void callAttach(
155       Activity realActivity,
156       Context baseContext,
157       ActivityThread activityThread,
158       Instrumentation instrumentation,
159       Application application,
160       Intent intent,
161       ActivityInfo activityInfo,
162       IBinder token,
163       CharSequence activityTitle,
164       @WithType("android.app.Activity$NonConfigurationInstances")
165           Object lastNonConfigurationInstances) {
166     Configuration config = new Configuration(application.getResources().getConfiguration());
167     int apiLevel = RuntimeEnvironment.getApiLevel();
168     if (apiLevel == Build.VERSION_CODES.LOLLIPOP) {
169       attach(
170           baseContext,
171           activityThread,
172           instrumentation,
173           token,
174           0,
175           application,
176           intent,
177           activityInfo,
178           activityTitle,
179           null,
180           null,
181           lastNonConfigurationInstances,
182           config,
183           null);
184     } else if (apiLevel <= Build.VERSION_CODES.M) {
185       attach(
186           baseContext,
187           activityThread,
188           instrumentation,
189           token,
190           0,
191           application,
192           intent,
193           activityInfo,
194           activityTitle,
195           null,
196           null,
197           lastNonConfigurationInstances,
198           config,
199           "referrer",
200           null);
201     } else if (apiLevel <= Build.VERSION_CODES.N_MR1) {
202       attach(
203           baseContext,
204           activityThread,
205           instrumentation,
206           token,
207           0,
208           application,
209           intent,
210           activityInfo,
211           activityTitle,
212           null,
213           null,
214           lastNonConfigurationInstances,
215           config,
216           "referrer",
217           null,
218           null);
219     } else if (apiLevel <= Build.VERSION_CODES.P) {
220       attach(
221           baseContext,
222           activityThread,
223           instrumentation,
224           token,
225           0,
226           application,
227           intent,
228           activityInfo,
229           activityTitle,
230           null,
231           null,
232           lastNonConfigurationInstances,
233           config,
234           "referrer",
235           null,
236           null,
237           null);
238     } else if (apiLevel <= VERSION_CODES.R) {
239       attach(
240           baseContext,
241           activityThread,
242           instrumentation,
243           token,
244           0,
245           application,
246           intent,
247           activityInfo,
248           activityTitle,
249           null,
250           null,
251           lastNonConfigurationInstances,
252           config,
253           "referrer",
254           null,
255           null,
256           null,
257           null);
258     } else if (apiLevel > Build.VERSION_CODES.R) {
259       attach(
260           baseContext,
261           activityThread,
262           instrumentation,
263           token,
264           0,
265           application,
266           intent,
267           activityInfo,
268           activityTitle,
269           null,
270           null,
271           lastNonConfigurationInstances,
272           config,
273           "referrer",
274           null,
275           null,
276           null,
277           null,
278           null);
279     }
280     Shadow.<ShadowActivityThread>extract(activityThread)
281         .registerActivityLaunch(intent, activityInfo, realActivity, token);
282   }
283 
performCreate(Bundle icicle)284   void performCreate(Bundle icicle);
285 
performDestroy()286   void performDestroy();
287 
performPause()288   void performPause();
289 
performRestart()290   void performRestart();
291 
performRestart(boolean start, String reason)292   void performRestart(boolean start, String reason);
293 
performRestart(boolean start)294   void performRestart(boolean start);
295 
performRestoreInstanceState(Bundle savedInstanceState)296   void performRestoreInstanceState(Bundle savedInstanceState);
297 
performResume()298   void performResume();
299 
performResume(boolean followedByPause, String reason)300   void performResume(boolean followedByPause, String reason);
301 
performTopResumedActivityChanged(boolean isTopResumedActivity, String reason)302   void performTopResumedActivityChanged(boolean isTopResumedActivity, String reason);
303 
performSaveInstanceState(Bundle outState)304   void performSaveInstanceState(Bundle outState);
305 
performStart()306   void performStart();
307 
performStart(String reason)308   void performStart(String reason);
309 
performStop()310   void performStop();
311 
performStop(boolean preserveWindow)312   void performStop(boolean preserveWindow);
313 
performStop(boolean preserveWindow, String reason)314   void performStop(boolean preserveWindow, String reason);
315 
onPostCreate(Bundle savedInstanceState)316   void onPostCreate(Bundle savedInstanceState);
317 
onPostResume()318   void onPostResume();
319 
makeVisible()320   void makeVisible();
321 
onNewIntent(Intent intent)322   void onNewIntent(Intent intent);
323 
onActivityResult(int requestCode, int resultCode, Intent data)324   void onActivityResult(int requestCode, int resultCode, Intent data);
325 
dispatchActivityResult(String who, int requestCode, int resultCode, Intent data)326   void dispatchActivityResult(String who, int requestCode, int resultCode, Intent data);
327 
dispatchActivityResult( String who, int requestCode, int resultCode, Intent data, String type)328   void dispatchActivityResult(
329       String who, int requestCode, int resultCode, Intent data, String type);
330 
onCreateDialog(int id)331   Dialog onCreateDialog(int id);
332 
onPrepareDialog(int id, Dialog dialog, Bundle args)333   void onPrepareDialog(int id, Dialog dialog, Bundle args);
334 
onPrepareDialog(int id, Dialog dialog)335   void onPrepareDialog(int id, Dialog dialog);
336 
retainNonConfigurationInstances()337   Object retainNonConfigurationInstances();
338 
339   @Accessor("mApplication")
setApplication(Application application)340   void setApplication(Application application);
341 
342   @Accessor("mDecor")
setDecor(View decorView)343   void setDecor(View decorView);
344 
345   @Accessor("mFinished")
setFinished(boolean finished)346   void setFinished(boolean finished);
347 
348   @Accessor("mLastNonConfigurationInstances")
setLastNonConfigurationInstances(Object nonConfigInstance)349   void setLastNonConfigurationInstances(Object nonConfigInstance);
350 
setVoiceInteractor( @ithType"com.android.internal.app.IVoiceInteractor") Object voiceInteractor)351   void setVoiceInteractor(
352       @WithType("com.android.internal.app.IVoiceInteractor") Object voiceInteractor);
353 
354   @Accessor("mWindowAdded")
getWindowAdded()355   boolean getWindowAdded();
356 
357   @Accessor("mWindow")
setWindow(Window window)358   void setWindow(Window window);
359 
360   @Accessor("mChangingConfigurations")
setChangingConfigurations(boolean value)361   void setChangingConfigurations(boolean value);
362 
363   @Accessor("mConfigChangeFlags")
setConfigChangeFlags(int value)364   void setConfigChangeFlags(int value);
365 
366   @Accessor("mInstrumentation")
getInstrumentation()367   Instrumentation getInstrumentation();
368 }
369