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