1ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parkspackage android.nfc;
2ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
3ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parksimport android.os.Parcel;
4ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parksimport android.os.Parcelable;
5ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
6ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parksimport java.util.ArrayList;
7ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parksimport java.util.List;
8ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
9ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks/**
10ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks * @hide
11ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks */
12ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parkspublic class ApduList implements Parcelable {
13ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
14ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    private ArrayList<byte[]> commands = new ArrayList<byte[]>();
15ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
16ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    public ApduList() {
17ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    }
18ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
19ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    public void add(byte[] command) {
20ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        commands.add(command);
21ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    }
22ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
23ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    public List<byte[]> get() {
24ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        return commands;
25ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    }
26ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
27ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    public static final Parcelable.Creator<ApduList> CREATOR =
28ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        new Parcelable.Creator<ApduList>() {
29ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        @Override
30ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        public ApduList createFromParcel(Parcel in) {
31ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            return new ApduList(in);
32ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        }
33ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
34ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        @Override
35ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        public ApduList[] newArray(int size) {
36ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            return new ApduList[size];
37ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        }
38ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    };
39ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
40ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    private ApduList(Parcel in) {
41ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        int count = in.readInt();
42ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
43ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        for (int i = 0 ; i < count ; i++) {
44ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
45ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            int length = in.readInt();
46ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            byte[] cmd = new byte[length];
47ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            in.readByteArray(cmd);
48ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            commands.add(cmd);
49ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        }
50ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    }
51ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
52ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    @Override
53ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    public int describeContents() {
54ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        return 0;
55ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    }
56ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
57ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    @Override
58ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    public void writeToParcel(Parcel dest, int flags) {
59ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        dest.writeInt(commands.size());
60ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
61ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        for (byte[] cmd : commands) {
62ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            dest.writeInt(cmd.length);
63ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks            dest.writeByteArray(cmd);
64ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks        }
65ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks    }
66ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks}
67ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
68ab8f48c2ee524f67e5c3cab5846119e6c8a645b5Jason parks
69