diff options
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowNfcAdapter.java')
-rw-r--r-- | v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowNfcAdapter.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowNfcAdapter.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowNfcAdapter.java new file mode 100644 index 000000000..6ff7a524c --- /dev/null +++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowNfcAdapter.java @@ -0,0 +1,73 @@ +package com.xtremelabs.robolectric.shadows; + +import android.app.Activity; +import android.app.PendingIntent; +import android.content.Context; +import android.content.IntentFilter; +import android.nfc.NfcAdapter; +import com.xtremelabs.robolectric.internal.Implementation; +import com.xtremelabs.robolectric.internal.Implements; +import com.xtremelabs.robolectric.internal.RealObject; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; + +@Implements(NfcAdapter.class) +public class ShadowNfcAdapter { + @RealObject NfcAdapter nfcAdapter; + private Activity enabledActivity; + private PendingIntent intent; + private IntentFilter[] filters; + private String[][] techLists; + private Activity disabledActivity; + + @Implementation + public static NfcAdapter getDefaultAdapter(Context context) { + try { + Constructor<NfcAdapter> constructor = NfcAdapter.class.getDeclaredConstructor(); + constructor.setAccessible(true); + return constructor.newInstance(); + } catch (InstantiationException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + + @Implementation + public void enableForegroundDispatch(Activity activity, PendingIntent intent, IntentFilter[] filters, String[][] techLists) { + this.enabledActivity = activity; + this.intent = intent; + this.filters = filters; + this.techLists = techLists; + } + + @Implementation + public void disableForegroundDispatch(Activity activity) { + disabledActivity = activity; + } + + public Activity getEnabledActivity() { + return enabledActivity; + } + + public PendingIntent getIntent() { + return intent; + } + + public IntentFilter[] getFilters() { + return filters; + } + + public String[][] getTechLists() { + return techLists; + } + + public Activity getDisabledActivity() { + return disabledActivity; + } +} |