Home | History | Annotate | Download | only in shadows
      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
     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
     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
     50     public void disableForegroundDispatch(Activity activity) {
     51         disabledActivity = activity;
     52     }
     53 
     54     public Activity getEnabledActivity() {
     55         return enabledActivity;
     56     }
     57 
     58     public PendingIntent getIntent() {
     59         return intent;
     60     }
     61 
     62     public IntentFilter[] getFilters() {
     63         return filters;
     64     }
     65 
     66     public String[][] getTechLists() {
     67         return techLists;
     68     }
     69 
     70     public Activity getDisabledActivity() {
     71         return disabledActivity;
     72     }
     73 }
     74