1 package org.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 org.robolectric.annotation.Implementation; 9 import org.robolectric.annotation.Implements; 10 import org.robolectric.annotation.RealObject; 11 import org.robolectric.util.ReflectionHelpers; 12 13 @Implements(NfcAdapter.class) 14 public class ShadowNfcAdapter { 15 @RealObject NfcAdapter nfcAdapter; 16 private boolean enabled; 17 private Activity enabledActivity; 18 private PendingIntent intent; 19 private IntentFilter[] filters; 20 private String[][] techLists; 21 private Activity disabledActivity; 22 private NfcAdapter.CreateNdefMessageCallback callback; 23 24 @Implementation 25 public static NfcAdapter getNfcAdapter(Context context) { 26 return ReflectionHelpers.callConstructor(NfcAdapter.class); 27 } 28 29 @Implementation 30 public void enableForegroundDispatch(Activity activity, PendingIntent intent, IntentFilter[] filters, String[][] techLists) { 31 this.enabledActivity = activity; 32 this.intent = intent; 33 this.filters = filters; 34 this.techLists = techLists; 35 } 36 37 @Implementation 38 public void disableForegroundDispatch(Activity activity) { 39 disabledActivity = activity; 40 } 41 42 @Implementation 43 public void setNdefPushMessageCallback(NfcAdapter.CreateNdefMessageCallback callback, Activity activity, Activity... activities) { 44 this.callback = callback; 45 } 46 47 @Implementation 48 public boolean isEnabled() { 49 return enabled; 50 } 51 52 public void setEnabled(boolean enabled) { 53 this.enabled = enabled; 54 } 55 56 public Activity getEnabledActivity() { 57 return enabledActivity; 58 } 59 60 public PendingIntent getIntent() { 61 return intent; 62 } 63 64 public IntentFilter[] getFilters() { 65 return filters; 66 } 67 68 public String[][] getTechLists() { 69 return techLists; 70 } 71 72 public Activity getDisabledActivity() { 73 return disabledActivity; 74 } 75 76 public NfcAdapter.CreateNdefMessageCallback getNdefPushMessageCallback() { 77 return callback; 78 } 79 } 80