133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows;
26eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
30b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport android.content.IntentFilter;
422c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation;
522c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements;
60b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
76eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport java.util.ArrayList;
84cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richardimport java.util.Iterator;
96eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport java.util.List;
106eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
11daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin/**
12daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * Shadow of {@code IntentFilter} implemented with a {@link java.util.List}
13daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin */
146eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz@SuppressWarnings({"UnusedDeclaration"})
150b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@Implements(IntentFilter.class)
16afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowIntentFilter {
176eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    List<String> actions = new ArrayList<String>();
18a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    List<String> schemes = new ArrayList<String>();
19a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    List<IntentFilter.AuthorityEntry> authoritites = new ArrayList<IntentFilter.AuthorityEntry>();
206eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
214cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard    public void __constructor__(String action) {
224cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard        actions.add(action);
234cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard    }
244cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard
25de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams    @Implementation
266eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public void addAction(String action) {
276eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        actions.add(action);
286eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
296eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
30de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams    @Implementation
316eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public String getAction(int index) {
326eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return actions.get(index);
336eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
344cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard
35de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams    @Implementation
3692a02b3fd8590385eaeb42e91b89fe6d6a7167c5Stefano Dacchille    public int countActions() {
3792a02b3fd8590385eaeb42e91b89fe6d6a7167c5Stefano Dacchille        return actions.size();
3892a02b3fd8590385eaeb42e91b89fe6d6a7167c5Stefano Dacchille    }
3992a02b3fd8590385eaeb42e91b89fe6d6a7167c5Stefano Dacchille
4092a02b3fd8590385eaeb42e91b89fe6d6a7167c5Stefano Dacchille    @Implementation
41530fbcb156dd0eabd202bfac2ee6d67024f6bab4Christian Williams    public Iterator<String> actionsIterator() {
424cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard        return actions.iterator();
434cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard    }
44530fbcb156dd0eabd202bfac2ee6d67024f6bab4Christian Williams
45530fbcb156dd0eabd202bfac2ee6d67024f6bab4Christian Williams    @Implementation
46530fbcb156dd0eabd202bfac2ee6d67024f6bab4Christian Williams    public boolean matchAction(String action) {
47530fbcb156dd0eabd202bfac2ee6d67024f6bab4Christian Williams        return actions.contains(action);
48530fbcb156dd0eabd202bfac2ee6d67024f6bab4Christian Williams    }
49a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz
50a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    @Implementation
51a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    public void addDataAuthority(String host, String port) {
52a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz        authoritites.add(new IntentFilter.AuthorityEntry(host, port));
53a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    }
54a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz
55a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    @Implementation
56a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    public final  IntentFilter.AuthorityEntry getDataAuthority(int index) {
57a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz        return authoritites.get(index);
58a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    }
59a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz
60a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    @Implementation
61a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    public void addDataScheme(String scheme) {
62a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz        schemes.add(scheme);
63a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    }
64a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz
65a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    @Implementation
66a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    public String getDataScheme(int index) {
67a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz        return schemes.get(index);
68a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz    }
696eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz}
70