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