Robolectric.java revision 9122a05312e767618ba0545a951df9cab86c8716
1345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspackage com.xtremelabs.robolectric;
20b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
31fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.app.*;
41fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.appwidget.AppWidgetManager;
51fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Context;
61fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.ContextWrapper;
71fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Intent;
81fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.res.Resources;
91fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Canvas;
101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Paint;
111fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Path;
121fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.BitmapDrawable;
131fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.Drawable;
141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.location.LocationManager;
151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Handler;
161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Looper;
17e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport android.view.LayoutInflater;
181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.View;
191fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.ViewGroup;
201fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.widget.*;
211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.GeoPoint;
221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.ItemizedOverlay;
231fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapController;
241fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapView;
2533873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzimport com.xtremelabs.robolectric.shadows.*;
26e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport com.xtremelabs.robolectric.util.Implements;
27a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.view.TestSharedPreferences;
280b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
290b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.Constructor;
300b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.InvocationTargetException;
310b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.Arrays;
320b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.List;
330b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
34345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric {
358baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard    public static Application application;
368baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard
370b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    public static <T> T newInstanceOf(Class<T> clazz) {
380b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        try {
390b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            Constructor<T> defaultConstructor = clazz.getDeclaredConstructor();
400b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            defaultConstructor.setAccessible(true);
410b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            return defaultConstructor.newInstance();
420b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (InstantiationException e) {
430b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
440b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (IllegalAccessException e) {
450b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
460b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (NoSuchMethodException e) {
470b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
480b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (InvocationTargetException e) {
490b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
500b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        }
510b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    }
520b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
53e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindShadowClass(Class<?> realClass, Class<?> shadowClass) {
54cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams        ShadowWrangler.getInstance().bindShadowClass(realClass, shadowClass);
55e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
56e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
57e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindShadowClass(Class<?> shadowClass) {
58e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        Implements realClass = shadowClass.getAnnotation(Implements.class);
59e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        bindShadowClass(realClass.value(), shadowClass);
60e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
61e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
62e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindDefaultShadowClasses() {
63638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams        bindShadowClasses(getDefaultShadowClasses());
64638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams    }
65638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams
66638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams    public static void bindShadowClasses(List<Class<?>> shadowClasses) {
67638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams        for (Class<?> shadowClass : shadowClasses) {
68638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams            bindShadowClass(shadowClass);
69e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        }
70e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
71e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
72e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static List<Class<?>> getDefaultShadowClasses() {
730b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        return Arrays.asList(
74afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAbsSpinner.class,
75afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowActivity.class,
76afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAdapterView.class,
77afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAddress.class,
78afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAlertDialog.class,
79afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAlertDialog.ShadowBuilder.class,
80afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowApplication.class,
81afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAppWidgetManager.class,
82afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowBaseAdapter.class,
83afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowBitmapDrawable.class,
8475d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard                ShadowBundle.class,
85afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowCanvas.class,
86afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowCompoundButton.class,
87afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowComponentName.class,
88afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowContext.class,
89afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowContextWrapper.class,
901dcccba609fb2036994803ca6d71f9c76e1fe8e9Chee Wong                ShadowContextThemeWrapper.class,
91afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowDrawable.class,
92afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowDialog.class,
93afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowEditText.class,
94afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowGeoPoint.class,
95afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowHandler.class,
96afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowImageView.class,
97afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowIntent.class,
98afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowIntentFilter.class,
99afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowItemizedOverlay.class,
100afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLayoutInflater.class,
101afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLayoutParams.class,
102afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowListActivity.class,
103afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowListView.class,
104afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLocation.class,
105afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLocationManager.class,
106afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLooper.class,
107afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapController.class,
108afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapActivity.class,
109afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapView.class,
110afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMotionEvent.class,
111afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowOverlayItem.class,
112afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPaint.class,
113afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPath.class,
114afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPendingIntent.class,
115afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPoint.class,
116afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowRect.class,
117afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowRemoteViews.class,
118afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowResources.class,
119afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowService.class,
120afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.class,
121afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.ShadowSecure.class,
122afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.ShadowSystem.class,
123afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSpannableStringBuilder.class,
124afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTextUtils.class,
125afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTextView.class,
126afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowToast.class,
127afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTypedValue.class,
128afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowView.class,
129afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowViewGroup.class,
130afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowWifiManager.class,
131afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowZoomButtonsController.class
13271eec9cd1f7346c359a96fd714c5c6c41ead790fRyan Richard                );
1330b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    }
13490008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher
135345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams    public static void resetStaticState() {
136345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams        Robolectric.application = new Application();
13790008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher        TestSharedPreferences.reset();
138afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams        ShadowToast.reset();
139afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams        ShadowAlertDialog.reset();
140afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams        ShadowDialog.reset();
141afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams        ShadowLooper.resetAll();
14290008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher    }
1431fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
1449122a05312e767618ba0545a951df9cab86c8716Christian Williams    public static <T> T directlyOn(T shadowedObject) {
1459122a05312e767618ba0545a951df9cab86c8716Christian Williams        return RobolectricInternals.directlyOn(shadowedObject);
1469122a05312e767618ba0545a951df9cab86c8716Christian Williams    }
1479122a05312e767618ba0545a951df9cab86c8716Christian Williams
148433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowDrawable shadowOf(Drawable instance) {
149433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowDrawable) shadowOf_(instance);
1501fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1511fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
152433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowToast shadowOf(Toast instance) {
153433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowToast) shadowOf_(instance);
1541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
156433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowBitmapDrawable shadowOf(BitmapDrawable instance) {
157433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowBitmapDrawable) shadowOf_(instance);
1581fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1591fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
160433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowZoomButtonsController shadowOf(ZoomButtonsController instance) {
161433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowZoomButtonsController) shadowOf_(instance);
1621fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1631fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
164433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowGeoPoint shadowOf(GeoPoint instance) {
165433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowGeoPoint) shadowOf_(instance);
1661fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1671fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
168433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowMapView shadowOf(MapView instance) {
169433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowMapView) shadowOf_(instance);
1701fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1711fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
172433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowMapController shadowOf(MapController instance) {
173433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowMapController) shadowOf_(instance);
1741fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1751fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
176433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowItemizedOverlay shadowOf(ItemizedOverlay instance) {
177433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowItemizedOverlay) shadowOf_(instance);
1781fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1791fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
180433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowListView shadowOf(ListView instance) {
181433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowListView) shadowOf_(instance);
1821fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1831fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
184433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowActivity shadowOf(Activity instance) {
185433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowActivity) shadowOf_(instance);
1861fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1871fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
188433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowContextWrapper shadowOf(ContextWrapper instance) {
189433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowContextWrapper) shadowOf_(instance);
1901fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1911fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
192433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowContextWrapper shadowOf(Context instance) {
193433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowContextWrapper) shadowOf_(instance);
1941fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1951fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
196433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowPaint shadowOf(Paint instance) {
197433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowPaint) shadowOf_(instance);
1981fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
1991fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
200433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowPath shadowOf(Path instance) {
201433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowPath) shadowOf_(instance);
2021fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2031fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
204433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowListActivity shadowOf(ListActivity instance) {
205433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowListActivity) shadowOf_(instance);
2061fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2071fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
208433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowHandler shadowOf(Handler instance) {
209433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowHandler) shadowOf_(instance);
2101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2111fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
212433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowIntent shadowOf(Intent instance) {
213433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowIntent) shadowOf_(instance);
2141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
216433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowView shadowOf(View instance) {
217433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowView) shadowOf_(instance);
2181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2191fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
220433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowViewGroup shadowOf(ViewGroup instance) {
221433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowViewGroup) shadowOf_(instance);
2221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2231fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
224433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAdapterView shadowOf(AdapterView instance) {
225433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAdapterView) shadowOf_(instance);
2261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2271fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
228433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowTextView shadowOf(TextView instance) {
229433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowTextView) shadowOf_(instance);
2301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
232433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowImageView shadowOf(ImageView instance) {
233433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowImageView) shadowOf_(instance);
2341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
236433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowRemoteViews shadowOf(RemoteViews instance) {
237433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowRemoteViews) shadowOf_(instance);
2381fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2391fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
240433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowDialog shadowOf(Dialog instance) {
241433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowDialog) shadowOf_(instance);
2421fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2431fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
244433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAlertDialog shadowOf(AlertDialog instance) {
245433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAlertDialog) shadowOf_(instance);
2461fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2471fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
248433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowLooper shadowOf(Looper instance) {
249433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowLooper) shadowOf_(instance);
2501fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2511fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
252433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowCanvas shadowOf(Canvas instance) {
253433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowCanvas) shadowOf_(instance);
2541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
256433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowLocationManager shadowOf(LocationManager instance) {
257433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowLocationManager) shadowOf_(instance);
2581fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2591fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
260433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAppWidgetManager shadowOf(AppWidgetManager instance) {
261433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAppWidgetManager) shadowOf_(instance);
2621fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2631fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
264433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowResources shadowOf(Resources instance) {
265433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowResources) shadowOf_(instance);
2661fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2671fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
268e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static ShadowLayoutInflater shadowOf(LayoutInflater instance) {
269e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        return ((ShadowLayoutInflater) shadowOf_(instance));
270e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
271e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
2721fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    @SuppressWarnings({"unchecked"})
273433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static <P, R> P shadowOf_(R instance) {
274cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams        return (P) ShadowWrangler.getInstance().shadowOf(instance);
2751fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2760b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher}
277