package org.robolectric.android.runtime; import android.app.Activity; import android.app.Application; import android.app.Instrumentation; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.Rect; import android.os.IBinder; import android.view.ViewRootImpl; import android.view.Window; import com.android.internal.app.IVoiceInteractor; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.fakes.RoboInstrumentation; import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers.ClassParameter; class Api26RuntimeAdapter implements RuntimeAdapter { @Override public void callActivityAttach(Object component, Context baseContext, Class<?> activityThreadClass, Application application, Intent intent, ActivityInfo activityInfo, String activityTitle, Class<?> nonConfigurationInstancesClass) { ReflectionHelpers.callInstanceMethod(Activity.class, component, "attach", ClassParameter.from(Context.class, baseContext), ClassParameter.from(activityThreadClass, RuntimeEnvironment.getActivityThread()), ClassParameter.from(Instrumentation.class, new RoboInstrumentation()), ClassParameter.from(IBinder.class, null), ClassParameter.from(int.class, 0), ClassParameter.from(Application.class, application), ClassParameter.from(Intent.class, intent), ClassParameter.from(ActivityInfo.class, activityInfo), ClassParameter.from(CharSequence.class, activityTitle), ClassParameter.from(Activity.class, null), ClassParameter.from(String.class, "id"), ClassParameter.from(nonConfigurationInstancesClass, null), ClassParameter.from(Configuration.class, application.getResources().getConfiguration()), ClassParameter.from(String.class, "referrer"), ClassParameter.from(IVoiceInteractor.class, null), ClassParameter.from(Window.class, null) ); } @Override public void callViewRootImplDispatchResized(Object component, Rect frame, Rect overscanInsets, Rect contentInsets, Rect visibleInsets, Rect stableInsets, Rect outsets, boolean reportDraw, Configuration newConfig) { ReflectionHelpers.callInstanceMethod(ViewRootImpl.class, component, "dispatchResized", ClassParameter.from(Rect.class, frame), ClassParameter.from(Rect.class, overscanInsets), ClassParameter.from(Rect.class, contentInsets), ClassParameter.from(Rect.class, visibleInsets), ClassParameter.from(Rect.class, stableInsets), ClassParameter.from(Rect.class, outsets), ClassParameter.from(boolean.class, reportDraw), ClassParameter.from(Configuration.class, newConfig), ClassParameter.from(Rect.class, frame), ClassParameter.from(boolean.class, false), ClassParameter.from(boolean.class, false), ClassParameter.from(int.class, 0)); } }