private NotificationItem(int id, String title, String desc) { super(id, title, desc); Intent[] intents = new Intent[2]; intents[0] = Intent.makeMainActivity(new ComponentName(DemoApplication.CONTEXT, MainActivity.class)); intents[1] = new Intent(DemoApplication.CONTEXT, NotificationSampleActivity.class); this.pendingIntent = PendingIntent.getActivities(DemoApplication.CONTEXT, 0, intents, PendingIntent.FLAG_UPDATE_CURRENT); builder = new NotificationCompat. Builder(FileDownloadHelper.getAppContext()); builder.setDefaults(Notification.DEFAULT_LIGHTS) .setOngoing(true) .setPriority(NotificationCompat.PRIORITY_MIN) .setContentTitle(getTitle()) .setContentText(desc) .setContentIntent(pendingIntent) .setSmallIcon(R.mipmap.ic_launcher); }
private NotificationItem(int id, String title, String desc) { super(id, title, desc); Intent[] intents = new Intent[2]; intents[0] = Intent.makeMainActivity(new ComponentName(DemoApplication.CONTEXT, MainActivity.class)); intents[1] = new Intent(DemoApplication.CONTEXT, NotificationSampleActivity.class); this.pendingIntent = PendingIntent.getActivities(DemoApplication.CONTEXT, 0, intents, PendingIntent.FLAG_UPDATE_CURRENT); builder = new NotificationCompat. Builder(FileDownloadHelper.getAppContext()); builder.setDefaults(Notification.DEFAULT_LIGHTS) .setOngoing(true) .setPriority(NotificationCompat.PRIORITY_MIN) .setContentTitle(getTitle()) .setContentText(desc) .setContentIntent(pendingIntent) .setSmallIcon(R.mipmap.ic_launcher); }
@Test public void getActivities_withFlagNoCreate_shouldReturnNullIfRequestCodeIsUnmatched() { Intent[] intents = {new Intent()}; PendingIntent.getActivities(context, 99, intents, 0); assertThat(PendingIntent.getActivities(context, 98, intents, FLAG_NO_CREATE)).isNull(); }
@Test public void getActivities_withFlagNoCreate_shouldReturnNullIfNoPendingIntentExists() { Intent[] intents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, FLAG_NO_CREATE); assertThat(pendingIntent).isNull(); }
@Test public void testEquals_getActivities() { Intent[] intents = {new Intent("activity"), new Intent("activity2")}; PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, 100); Intent[] forward = {new Intent("activity"), new Intent("activity2")}; assertThat(PendingIntent.getActivities(context, 99, forward, FLAG_NO_CREATE)) .isSameAs(pendingIntent); Intent[] irrelevant = {new Intent("irrelevant"), new Intent("activity2")}; assertThat(PendingIntent.getActivities(context, 99, irrelevant, FLAG_NO_CREATE)) .isSameAs(pendingIntent); Intent single = new Intent("activity2"); assertThat(PendingIntent.getActivity(context, 99, single, FLAG_NO_CREATE)) .isSameAs(pendingIntent); Intent[] backward = {new Intent("activity2"), new Intent("activity")}; assertThat(PendingIntent.getActivities(context, 99, backward, FLAG_NO_CREATE)).isNull(); }
@Test public void cancel_shouldRemovePendingIntentForActivities() { Intent[] intents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, 100); assertThat(pendingIntent).isNotNull(); pendingIntent.cancel(); assertThat(PendingIntent.getActivities(context, 99, intents, FLAG_NO_CREATE)).isNull(); }
@Test public void getActivities_withFlagNoCreate_shouldReturnExistingIntent() { Intent[] intents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent.getActivities(ApplicationProvider.getApplicationContext(), 99, intents, 100); Intent[] identicalIntents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent saved = PendingIntent.getActivities(context, 99, identicalIntents, FLAG_NO_CREATE); assertThat(saved).isNotNull(); assertThat(intents).isSameAs(shadowOf(saved).getSavedIntents()); }
@Test public void getActivities_withNoFlags_shouldReturnExistingIntent() { Intent[] intents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent.getActivities(ApplicationProvider.getApplicationContext(), 99, intents, 100); Intent[] identicalIntents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent saved = PendingIntent.getActivities(context, 99, identicalIntents, 0); assertThat(saved).isNotNull(); assertThat(intents).isSameAs(shadowOf(saved).getSavedIntents()); }
@Test public void getActivities_withBundle_nullIntent() { try { PendingIntent.getActivities(context, 99, null, 100, Bundle.EMPTY); fail("Expected NullPointerException when creating PendingIntent with null Intent[]"); } catch (NullPointerException ignore) { // expected } }
@Test public void getActivities_nullIntent() { try { PendingIntent.getActivities(context, 99, null, 100); fail("Expected NullPointerException when creating PendingIntent with null Intent[]"); } catch (NullPointerException ignore) { // expected } }
@Test public void send_shouldFillInLastIntentData() throws Exception { Intent[] intents = {new Intent("first"), new Intent("second")}; Context context = Robolectric.setupActivity(Activity.class); PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, 100); Activity otherContext = Robolectric.setupActivity(Activity.class); Intent fillIntent = new Intent(); fillIntent.putExtra("TEST", 23); pendingIntent.send(otherContext, 0, fillIntent); ShadowActivity shadowActivity = shadowOf(otherContext); Intent second = shadowActivity.getNextStartedActivity(); assertThat(second).isNotNull(); assertThat(second.filterEquals(intents[1])).isTrue(); // Ignore extras. assertThat(second.getIntExtra("TEST", -1)).isEqualTo(23); Intent first = shadowActivity.getNextStartedActivity(); assertThat(first).isNotNull(); assertThat(first).isSameAs(intents[0]); assertThat(first.hasExtra("TEST")).isFalse(); }
@Test public void send_shouldNotUsePreviouslyFilledInLastIntentData() throws Exception { Intent[] intents = {new Intent("first"), new Intent("second")}; Context context = Robolectric.setupActivity(Activity.class); PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, 100); Activity otherContext = Robolectric.setupActivity(Activity.class); Intent firstFillIntent = new Intent(); firstFillIntent.putExtra("KEY1", 23); firstFillIntent.putExtra("KEY2", 24); pendingIntent.send(otherContext, 0, firstFillIntent); ShadowActivity shadowActivity = shadowOf(otherContext); shadowActivity.clearNextStartedActivities(); Intent secondFillIntent = new Intent(); secondFillIntent.putExtra("KEY1", 50); pendingIntent.send(otherContext, 0, secondFillIntent); Intent second = shadowActivity.getNextStartedActivity(); assertThat(second).isNotNull(); assertThat(second.filterEquals(intents[1])).isTrue(); // Ignore extras. assertThat(second.getIntExtra("KEY1", -1)).isEqualTo(50); assertThat(second.hasExtra("KEY2")).isFalse(); }
@Test public void getActivities_withBundle_shouldCreateIntentForBroadcast() throws Exception { Intent[] intents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, 100, Bundle.EMPTY); ShadowPendingIntent shadow = shadowOf(pendingIntent); assertThat(shadow.getSavedIntents()).isEqualTo(intents); pendingIntent.send(); ShadowApplication application = shadowOf((Application) ApplicationProvider.getApplicationContext()); assertThat(application.getNextStartedActivity()).isEqualTo(intents[1]); assertThat(application.getNextStartedActivity()).isEqualTo(intents[0]); }
@Test public void getActivities_shouldCreateIntentForBroadcast() throws Exception { Intent[] intents = {new Intent(Intent.ACTION_VIEW), new Intent(Intent.ACTION_PICK)}; PendingIntent pendingIntent = PendingIntent.getActivities(context, 99, intents, 100); ShadowPendingIntent shadow = shadowOf(pendingIntent); assertThat(shadow.getSavedIntents()).isEqualTo(intents); pendingIntent.send(); ShadowApplication application = shadowOf((Application) ApplicationProvider.getApplicationContext()); assertThat(application.getNextStartedActivity()).isEqualTo(intents[1]); assertThat(application.getNextStartedActivity()).isEqualTo(intents[0]); }
private Notification createNotification() { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.ic_mic_white_36dp) .setContentTitle(getString(R.string.notification_recording)) .setContentText(mTimerFormat.format(mElapsedSeconds * 1000)) .setOngoing(true); mBuilder.setContentIntent(PendingIntent.getActivities(getApplicationContext(), 0, new Intent[]{new Intent(getApplicationContext(), MainActivity.class)}, 0)); return mBuilder.build(); } }
public static PendingIntent getActivitiesPendingIntent(Context context, int requestCode, Intent[] intents, int flags) { return PendingIntent.getActivities(context, requestCode, intents, flags); } }
public static PendingIntent getActivitiesPendingIntent(Context context, int requestCode, Intent[] intents, int flags) { return PendingIntent.getActivities(context, requestCode, intents, flags); } }
private NotificationCompat.Builder getNotificationBuilder() { final Intent parentIntent = new Intent(this, FeaturesActivity.class); parentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); final Intent targetIntent = new Intent(this, ProximityActivity.class); // Both activities above have launchMode="singleTask" in the AndroidManifest.xml file, so if the task is already running, it will be resumed final PendingIntent pendingIntent = PendingIntent.getActivities(this, OPEN_ACTIVITY_REQ, new Intent[] { parentIntent, targetIntent }, PendingIntent.FLAG_UPDATE_CURRENT); final NotificationCompat.Builder builder = new NotificationCompat.Builder(this, ToolboxApplication.PROXIMITY_WARNINGS_CHANNEL); builder.setContentIntent(pendingIntent).setAutoCancel(false); builder.setSmallIcon(R.drawable.ic_stat_notify_proximity); return builder; }
public void onClick(View v) { Context context = IntentActivityFlags.this; PendingIntent pi = PendingIntent.getActivities(context, 0, buildIntentsToViewsLists(), PendingIntent.FLAG_UPDATE_CURRENT); try { pi.send(); } catch (CanceledException e) { Log.w("IntentActivityFlags", "Failed sending PendingIntent", e); } } };
public void onClick(View v) { Context context = IntentActivityFlags.this; //BEGIN_INCLUDE(pending_intent) PendingIntent pi = PendingIntent.getActivities(context, 0, buildIntentsToViewsLists(), PendingIntent.FLAG_UPDATE_CURRENT); //END_INCLUDE(pending_intent) try { pi.send(); } catch (CanceledException e) { Log.w("IntentActivityFlags", "Failed sending PendingIntent", e); } } };