/** @deprecated use PackageManager.queryBroadcastReceivers instead */ @Deprecated boolean hasReceiverForIntent(Intent intent) { for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { return true; } } return false; }
/** @deprecated use PackageManager.queryBroadcastReceivers instead */ @Deprecated List<BroadcastReceiver> getReceiversForIntent(Intent intent) { ArrayList<BroadcastReceiver> broadcastReceivers = new ArrayList<>(); for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { broadcastReceivers.add(wrapper.getBroadcastReceiver()); } } return broadcastReceivers; }
/** Returns the BroadcaseReceivers wrappers, matching intent's action and permissions. */ private List<Wrapper> getAppropriateWrappers(Intent intent, String receiverPermission) { broadcastIntents.add(intent); List<Wrapper> result = new ArrayList<>(); List<Wrapper> copy = new ArrayList<>(); copy.addAll(registeredReceivers); for (Wrapper wrapper : copy) { if (hasMatchingPermission(wrapper.broadcastPermission, receiverPermission) && wrapper.intentFilter.matchAction(intent.getAction())) { final int match = wrapper.intentFilter.matchData(intent.getType(), intent.getScheme(), intent.getData()); if (match != IntentFilter.NO_MATCH_DATA && match != IntentFilter.NO_MATCH_TYPE) { result.add(wrapper); } } } return result; }
private Intent processStickyIntents( IntentFilter filter, BroadcastReceiver receiver, Context context) { Intent result = null; for (Intent stickyIntent : stickyIntents.values()) { if (filter.matchAction(stickyIntent.getAction())) { if (result == null) { result = stickyIntent; } if (receiver != null) { receiver.setPendingResult(ShadowBroadcastPendingResult.createSticky(stickyIntent)); receiver.onReceive(context, stickyIntent); receiver.setPendingResult(null); } else if (result != null) { break; } } } return result; }
@Implementation protected boolean sendBroadcast(Intent intent) { boolean sent = false; sentBroadcastIntents.add(intent); List<Wrapper> copy = new ArrayList<>(); copy.addAll(registeredReceivers); for (Wrapper wrapper : copy) { if (wrapper.intentFilter.matchAction(intent.getAction())) { final int match = wrapper.intentFilter.matchData(intent.getType(), intent.getScheme(), intent.getData()); if (match != IntentFilter.NO_MATCH_DATA && match != IntentFilter.NO_MATCH_TYPE) { sent = true; final BroadcastReceiver receiver = wrapper.broadcastReceiver; final Intent broadcastIntent = intent; Robolectric.getForegroundThreadScheduler().post(new Runnable() { @Override public void run() { receiver.onReceive(RuntimeEnvironment.application, broadcastIntent); } }); } } } return sent; }
@Test public void shouldRegisterReceiversFromTheManifest() throws Exception { // gross: shadowOf((Application) ApplicationProvider.getApplicationContext()) .getRegisteredReceivers() .clear(); AndroidManifest appManifest = newConfigWith( "<application>" + " <receiver android:name=\"org.robolectric.fakes.ConfigTestReceiver\">" + " <intent-filter>\n" + " <action android:name=\"org.robolectric.ACTION_SUPERSET_PACKAGE\"/>\n" + " </intent-filter>" + " </receiver>" + "</application>"); Application application = ParallelUniverse.createApplication(appManifest, null); shadowOf(application).callAttach(RuntimeEnvironment.systemContext); registerBroadcastReceivers(application, appManifest); List<ShadowApplication.Wrapper> receivers = shadowOf(application).getRegisteredReceivers(); assertThat(receivers).hasSize(1); assertThat(receivers.get(0).intentFilter.matchAction("org.robolectric.ACTION_SUPERSET_PACKAGE")).isTrue(); }
public boolean hasReceiverForIntent(Intent intent) { for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { return true; } } return false; }
public boolean hasReceiverForIntent(Intent intent) { for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { return true; } } return false; }
public boolean hasReceiverForIntent(Intent intent) { for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { return true; } } return false; }
public boolean hasReceiverForIntent(Intent intent) { for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { return true; } } return false; }
/** @deprecated use PackageManager.queryBroadcastReceivers instead */ @Deprecated boolean hasReceiverForIntent(Intent intent) { for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { return true; } } return false; }
public List<BroadcastReceiver> getReceiversForIntent(Intent intent) { ArrayList<BroadcastReceiver> broadcastReceivers = new ArrayList<>(); for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { broadcastReceivers.add(wrapper.getBroadcastReceiver()); } } return broadcastReceivers; }
public List<BroadcastReceiver> getReceiversForIntent(Intent intent) { ArrayList<BroadcastReceiver> broadcastReceivers = new ArrayList<>(); for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { broadcastReceivers.add(wrapper.getBroadcastReceiver()); } } return broadcastReceivers; }
public List<BroadcastReceiver> getReceiversForIntent(Intent intent) { ArrayList<BroadcastReceiver> broadcastReceivers = new ArrayList<BroadcastReceiver>(); for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { broadcastReceivers.add(wrapper.getBroadcastReceiver()); } } return broadcastReceivers; }
public List<BroadcastReceiver> getReceiversForIntent(Intent intent) { ArrayList<BroadcastReceiver> broadcastReceivers = new ArrayList<>(); for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { broadcastReceivers.add(wrapper.getBroadcastReceiver()); } } return broadcastReceivers; }
/** @deprecated use PackageManager.queryBroadcastReceivers instead */ @Deprecated List<BroadcastReceiver> getReceiversForIntent(Intent intent) { ArrayList<BroadcastReceiver> broadcastReceivers = new ArrayList<>(); for (Wrapper wrapper : registeredReceivers) { if (wrapper.intentFilter.matchAction(intent.getAction())) { broadcastReceivers.add(wrapper.getBroadcastReceiver()); } } return broadcastReceivers; }
private Intent processStickyIntents(IntentFilter filter, BroadcastReceiver receiver, Context context) { Intent result = null; for (Intent stickyIntent : stickyIntents.values()) { if (filter.matchAction(stickyIntent.getAction())) { if (result == null) { result = stickyIntent; } if (receiver != null) { receiver.onReceive(context, stickyIntent); } else if (result != null) { break; } } } return result; }
private Intent processStickyIntents(IntentFilter filter, BroadcastReceiver receiver, Context context) { Intent result = null; for (Intent stickyIntent : stickyIntents.values()) { if (filter.matchAction(stickyIntent.getAction())) { if (result == null) { result = stickyIntent; } if (receiver != null) { receiver.onReceive(context, stickyIntent); } else if (result != null) { break; } } } return result; }
private List<Wrapper> getAppropriateWrappers(Intent intent, String receiverPermission) { broadcastIntents.add(intent); List<Wrapper> result = new ArrayList<>(); List<Wrapper> copy = new ArrayList<>(); copy.addAll(registeredReceivers); for (Wrapper wrapper : copy) { if (hasMatchingPermission(wrapper.broadcastPermission, receiverPermission) && wrapper.intentFilter.matchAction(intent.getAction())) { final int match = wrapper.intentFilter.matchData(intent.getType(), intent.getScheme(), intent.getData()); if (match != IntentFilter.NO_MATCH_DATA && match != IntentFilter.NO_MATCH_TYPE) { result.add(wrapper); } } } return result; }
private List<Wrapper> getAppropriateWrappers(Intent intent, String receiverPermission) { broadcastIntents.add(intent); List<Wrapper> result = new ArrayList<>(); List<Wrapper> copy = new ArrayList<>(); copy.addAll(registeredReceivers); for (Wrapper wrapper : copy) { if (hasMatchingPermission(wrapper.broadcastPermission, receiverPermission) && wrapper.intentFilter.matchAction(intent.getAction())) { final int match = wrapper.intentFilter.matchData(intent.getType(), intent.getScheme(), intent.getData()); if (match != IntentFilter.NO_MATCH_DATA && match != IntentFilter.NO_MATCH_TYPE) { result.add(wrapper); } } } return result; }