1a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 2a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 3a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport android.app.Activity; 4a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport android.app.PendingIntent; 5a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport android.content.Context; 6a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport android.content.IntentFilter; 7a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport android.nfc.NfcAdapter; 8a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport com.xtremelabs.robolectric.internal.Implementation; 9a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport com.xtremelabs.robolectric.internal.Implements; 10a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport com.xtremelabs.robolectric.internal.RealObject; 11a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 12a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport java.lang.reflect.Constructor; 13a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport java.lang.reflect.InvocationTargetException; 14a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 15a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz@Implements(NfcAdapter.class) 16a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzpublic class ShadowNfcAdapter { 17a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @RealObject NfcAdapter nfcAdapter; 18a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz private Activity enabledActivity; 19a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz private PendingIntent intent; 20a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz private IntentFilter[] filters; 21a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz private String[][] techLists; 22a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz private Activity disabledActivity; 23a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 24a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 25a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public static NfcAdapter getDefaultAdapter(Context context) { 26a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz try { 27a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz Constructor<NfcAdapter> constructor = NfcAdapter.class.getDeclaredConstructor(); 28a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz constructor.setAccessible(true); 29a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return constructor.newInstance(); 30a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } catch (InstantiationException e) { 31a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz throw new RuntimeException(e); 32a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } catch (IllegalAccessException e) { 33a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz throw new RuntimeException(e); 34a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } catch (InvocationTargetException e) { 35a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz throw new RuntimeException(e); 36a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } catch (NoSuchMethodException e) { 37a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz throw new RuntimeException(e); 38a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 39a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 40a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 41a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 42a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public void enableForegroundDispatch(Activity activity, PendingIntent intent, IntentFilter[] filters, String[][] techLists) { 43a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz this.enabledActivity = activity; 44a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz this.intent = intent; 45a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz this.filters = filters; 46a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz this.techLists = techLists; 47a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 48a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 49a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 50a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public void disableForegroundDispatch(Activity activity) { 51a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz disabledActivity = activity; 52a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 53a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 54a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public Activity getEnabledActivity() { 55a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return enabledActivity; 56a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 57a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 58a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public PendingIntent getIntent() { 59a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return intent; 60a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 61a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 62a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public IntentFilter[] getFilters() { 63a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return filters; 64a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 65a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 66a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public String[][] getTechLists() { 67a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return techLists; 68a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 69a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 70a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public Activity getDisabledActivity() { 71a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return disabledActivity; 72a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 73a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz} 74