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 int apiLevel = RuntimeEnvironment.getApiLevel(); 167 if (apiLevel <= Build.VERSION_CODES.LOLLIPOP) { 168 attach( 169 baseContext, 170 activityThread, 171 instrumentation, 172 token, 173 0, 174 application, 175 intent, 176 activityInfo, 177 activityTitle, 178 null, 179 null, 180 lastNonConfigurationInstances, 181 application.getResources().getConfiguration(), 182 null); 183 } else if (apiLevel <= Build.VERSION_CODES.M) { 184 attach( 185 baseContext, 186 activityThread, 187 instrumentation, 188 token, 189 0, 190 application, 191 intent, 192 activityInfo, 193 activityTitle, 194 null, 195 null, 196 lastNonConfigurationInstances, 197 application.getResources().getConfiguration(), 198 "referrer", 199 null); 200 } else if (apiLevel <= Build.VERSION_CODES.N_MR1) { 201 attach( 202 baseContext, 203 activityThread, 204 instrumentation, 205 token, 206 0, 207 application, 208 intent, 209 activityInfo, 210 activityTitle, 211 null, 212 null, 213 lastNonConfigurationInstances, 214 application.getResources().getConfiguration(), 215 "referrer", 216 null, 217 null); 218 } else if (apiLevel <= Build.VERSION_CODES.P) { 219 attach( 220 baseContext, 221 activityThread, 222 instrumentation, 223 token, 224 0, 225 application, 226 intent, 227 activityInfo, 228 activityTitle, 229 null, 230 null, 231 lastNonConfigurationInstances, 232 application.getResources().getConfiguration(), 233 "referrer", 234 null, 235 null, 236 null); 237 } else if (apiLevel <= VERSION_CODES.R) { 238 attach( 239 baseContext, 240 activityThread, 241 instrumentation, 242 token, 243 0, 244 application, 245 intent, 246 activityInfo, 247 activityTitle, 248 null, 249 null, 250 lastNonConfigurationInstances, 251 application.getResources().getConfiguration(), 252 "referrer", 253 null, 254 null, 255 null, 256 null); 257 } else if (apiLevel > Build.VERSION_CODES.R) { 258 attach( 259 baseContext, 260 activityThread, 261 instrumentation, 262 token, 263 0, 264 application, 265 intent, 266 activityInfo, 267 activityTitle, 268 null, 269 null, 270 lastNonConfigurationInstances, 271 application.getResources().getConfiguration(), 272 "referrer", 273 null, 274 null, 275 null, 276 null, 277 null); 278 } 279 Shadow.<ShadowActivityThread>extract(activityThread) 280 .registerActivityLaunch(intent, activityInfo, realActivity, token); 281 } 282 performCreate(Bundle icicle)283 void performCreate(Bundle icicle); 284 performDestroy()285 void performDestroy(); 286 performPause()287 void performPause(); 288 performRestart()289 void performRestart(); 290 performRestart(boolean start, String reason)291 void performRestart(boolean start, String reason); 292 performRestart(boolean start)293 void performRestart(boolean start); 294 performRestoreInstanceState(Bundle savedInstanceState)295 void performRestoreInstanceState(Bundle savedInstanceState); 296 performResume()297 void performResume(); 298 performResume(boolean followedByPause, String reason)299 void performResume(boolean followedByPause, String reason); 300 performTopResumedActivityChanged(boolean isTopResumedActivity, String reason)301 void performTopResumedActivityChanged(boolean isTopResumedActivity, String reason); 302 performSaveInstanceState(Bundle outState)303 void performSaveInstanceState(Bundle outState); 304 performStart()305 void performStart(); 306 performStart(String reason)307 void performStart(String reason); 308 performStop()309 void performStop(); 310 performStop(boolean preserveWindow)311 void performStop(boolean preserveWindow); 312 performStop(boolean preserveWindow, String reason)313 void performStop(boolean preserveWindow, String reason); 314 onPostCreate(Bundle savedInstanceState)315 void onPostCreate(Bundle savedInstanceState); 316 onPostResume()317 void onPostResume(); 318 makeVisible()319 void makeVisible(); 320 onNewIntent(Intent intent)321 void onNewIntent(Intent intent); 322 onActivityResult(int requestCode, int resultCode, Intent data)323 void onActivityResult(int requestCode, int resultCode, Intent data); 324 dispatchActivityResult(String who, int requestCode, int resultCode, Intent data)325 void dispatchActivityResult(String who, int requestCode, int resultCode, Intent data); 326 dispatchActivityResult( String who, int requestCode, int resultCode, Intent data, String type)327 void dispatchActivityResult( 328 String who, int requestCode, int resultCode, Intent data, String type); 329 onCreateDialog(int id)330 Dialog onCreateDialog(int id); 331 onPrepareDialog(int id, Dialog dialog, Bundle args)332 void onPrepareDialog(int id, Dialog dialog, Bundle args); 333 onPrepareDialog(int id, Dialog dialog)334 void onPrepareDialog(int id, Dialog dialog); 335 retainNonConfigurationInstances()336 Object retainNonConfigurationInstances(); 337 338 @Accessor("mApplication") setApplication(Application application)339 void setApplication(Application application); 340 341 @Accessor("mDecor") setDecor(View decorView)342 void setDecor(View decorView); 343 344 @Accessor("mFinished") setFinished(boolean finished)345 void setFinished(boolean finished); 346 347 @Accessor("mLastNonConfigurationInstances") setLastNonConfigurationInstances(Object nonConfigInstance)348 void setLastNonConfigurationInstances(Object nonConfigInstance); 349 setVoiceInteractor( @ithType"com.android.internal.app.IVoiceInteractor") Object voiceInteractor)350 void setVoiceInteractor( 351 @WithType("com.android.internal.app.IVoiceInteractor") Object voiceInteractor); 352 353 @Accessor("mWindowAdded") getWindowAdded()354 boolean getWindowAdded(); 355 356 @Accessor("mWindow") setWindow(Window window)357 void setWindow(Window window); 358 359 @Accessor("mChangingConfigurations") setChangingConfigurations(boolean value)360 void setChangingConfigurations(boolean value); 361 362 @Accessor("mConfigChangeFlags") setConfigChangeFlags(int value)363 void setConfigChangeFlags(int value); 364 365 @Accessor("mInstrumentation") getInstrumentation()366 Instrumentation getInstrumentation(); 367 } 368