diff --git a/src/androidTest/java/com/todoroo/astrid/reminders/NotificationsTest.java b/src/androidTest/java/com/todoroo/astrid/reminders/NotificationReceiverTest.java
similarity index 93%
rename from src/androidTest/java/com/todoroo/astrid/reminders/NotificationsTest.java
rename to src/androidTest/java/com/todoroo/astrid/reminders/NotificationReceiverTest.java
index 84f39cd10..1b5060f9d 100644
--- a/src/androidTest/java/com/todoroo/astrid/reminders/NotificationsTest.java
+++ b/src/androidTest/java/com/todoroo/astrid/reminders/NotificationReceiverTest.java
@@ -9,11 +9,11 @@ import org.tasks.preferences.Preferences;
import java.util.concurrent.TimeUnit;
-import static com.todoroo.astrid.reminders.ShowNotificationReceiver.isQuietHours;
+import static com.todoroo.astrid.reminders.TaskNotificationIntentService.isQuietHours;
import static org.tasks.Freeze.freezeAt;
import static org.tasks.Freeze.thaw;
-public class NotificationsTest extends AndroidTestCase {
+public class NotificationReceiverTest extends AndroidTestCase {
@SuppressLint("NewApi")
private static final int MILLIS_PER_HOUR = (int) TimeUnit.HOURS.toMillis(1);
diff --git a/src/androidTest/java/com/todoroo/astrid/reminders/NotificationTests.java b/src/androidTest/java/com/todoroo/astrid/reminders/NotificationTests.java
index 0b4e63782..9d6dfe475 100644
--- a/src/androidTest/java/com/todoroo/astrid/reminders/NotificationTests.java
+++ b/src/androidTest/java/com/todoroo/astrid/reminders/NotificationTests.java
@@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.reminders;
-import android.app.PendingIntent;
import android.content.Intent;
import com.todoroo.andlib.utility.DateUtilities;
@@ -14,6 +13,7 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.test.DatabaseTestCase;
import org.tasks.Broadcaster;
+import org.tasks.Notifier;
import org.tasks.injection.TestModule;
import org.tasks.notifications.NotificationManager;
@@ -23,8 +23,6 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -44,12 +42,20 @@ public class NotificationTests extends DatabaseTestCase {
public Broadcaster getBroadcaster() {
return mock(Broadcaster.class);
}
+
+ @Singleton
+ @Provides
+ public Notifier getNotifier() {
+ return mock(Notifier.class);
+ }
}
@Inject TaskDao taskDao;
- @Inject Notifications notifications;
+ @Inject
+ NotificationReceiver notificationReceiver;
@Inject NotificationManager notificationManager;
@Inject Broadcaster broadcaster;
+ @Inject Notifier notifier;
@Override
protected void tearDown() {
@@ -57,6 +63,7 @@ public class NotificationTests extends DatabaseTestCase {
verifyNoMoreInteractions(notificationManager);
verifyNoMoreInteractions(broadcaster);
+ verifyNoMoreInteractions(notifier);
}
public void testAlarmToNotification() {
@@ -66,18 +73,12 @@ public class NotificationTests extends DatabaseTestCase {
}};
taskDao.persist(task);
- notifications.handle(new Intent() {{
- putExtra(Notifications.ID_KEY, task.getId());
- putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_DUE);
+ notificationReceiver.handle(new Intent() {{
+ putExtra(NotificationReceiver.ID_KEY, task.getId());
+ putExtra(NotificationReceiver.EXTRAS_TYPE, ReminderService.TYPE_DUE);
}});
- verify(broadcaster).requestNotification(
- eq(task.getId()),
- any(PendingIntent.class),
- eq(ReminderService.TYPE_DUE),
- eq("rubberduck"),
- eq("Tasks"),
- eq(1));
+ verify(notifier).triggerTaskNotification(task.getId(), ReminderService.TYPE_DUE);
}
public void testDeletedTaskDoesntTriggerNotification() {
@@ -87,9 +88,9 @@ public class NotificationTests extends DatabaseTestCase {
}};
taskDao.persist(task);
- notifications.handle(new Intent() {{
- putExtra(Notifications.ID_KEY, task.getId());
- putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_DUE);
+ notificationReceiver.handle(new Intent() {{
+ putExtra(NotificationReceiver.ID_KEY, task.getId());
+ putExtra(NotificationReceiver.EXTRAS_TYPE, ReminderService.TYPE_DUE);
}});
verify(notificationManager).cancel((int) task.getId());
@@ -102,9 +103,9 @@ public class NotificationTests extends DatabaseTestCase {
}};
taskDao.persist(task);
- notifications.handle(new Intent() {{
- putExtra(Notifications.ID_KEY, task.getId());
- putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_DUE);
+ notificationReceiver.handle(new Intent() {{
+ putExtra(NotificationReceiver.ID_KEY, task.getId());
+ putExtra(NotificationReceiver.EXTRAS_TYPE, ReminderService.TYPE_DUE);
}});
verify(notificationManager).cancel((int) task.getId());
@@ -115,14 +116,14 @@ public class NotificationTests extends DatabaseTestCase {
// task.setTitle("rubberduck");
// taskDao.persist(task);
// Intent intent = new Intent();
-// intent.putExtra(Notifications.ID_KEY, task.getId());
+// intent.putExtra(NotificationReceiver.ID_KEY, task.getId());
//
// int hour = newDate().getHours();
// Preferences.setStringFromInteger(R.string.p_rmd_quietStart, hour - 1);
// Preferences.setStringFromInteger(R.string.p_rmd_quietEnd, hour + 1);
//
// // due date notification has vibrate
-// Notifications.setNotificationManager(new TestNotificationManager() {
+// NotificationReceiver.setNotificationManager(new TestNotificationManager() {
// public void notify(int id, Notification notification) {
// assertNull(notification.sound);
// assertTrue((notification.defaults & Notification.DEFAULT_SOUND) == 0);
@@ -130,11 +131,11 @@ public class NotificationTests extends DatabaseTestCase {
// assertTrue(notification.vibrate.length > 0);
// }
// });
-// intent.putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_DUE);
-// notifications.onReceive(getContext(), intent);
+// intent.putExtra(NotificationReceiver.EXTRAS_TYPE, ReminderService.TYPE_DUE);
+// notificationReceiver.onReceive(getContext(), intent);
//
// // random notification does not
-// Notifications.setNotificationManager(new TestNotificationManager() {
+// NotificationReceiver.setNotificationManager(new TestNotificationManager() {
// public void notify(int id, Notification notification) {
// assertNull(notification.sound);
// assertTrue((notification.defaults & Notification.DEFAULT_SOUND) == 0);
@@ -142,34 +143,34 @@ public class NotificationTests extends DatabaseTestCase {
// notification.vibrate.length == 0);
// }
// });
-// intent.removeExtra(Notifications.EXTRAS_TYPE);
-// intent.putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_RANDOM);
-// notifications.onReceive(getContext(), intent);
+// intent.removeExtra(NotificationReceiver.EXTRAS_TYPE);
+// intent.putExtra(NotificationReceiver.EXTRAS_TYPE, ReminderService.TYPE_RANDOM);
+// notificationReceiver.onReceive(getContext(), intent);
//
// // wrapping works
// Preferences.setStringFromInteger(R.string.p_rmd_quietStart, hour + 2);
// Preferences.setStringFromInteger(R.string.p_rmd_quietEnd, hour + 1);
//
-// Notifications.setNotificationManager(new TestNotificationManager() {
+// NotificationReceiver.setNotificationManager(new TestNotificationManager() {
// public void notify(int id, Notification notification) {
// assertNull(notification.sound);
// assertTrue((notification.defaults & Notification.DEFAULT_SOUND) == 0);
// }
// });
-// intent.removeExtra(Notifications.EXTRAS_TYPE);
-// intent.putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_DUE);
-// notifications.onReceive(getContext(), intent);
+// intent.removeExtra(NotificationReceiver.EXTRAS_TYPE);
+// intent.putExtra(NotificationReceiver.EXTRAS_TYPE, ReminderService.TYPE_DUE);
+// notificationReceiver.onReceive(getContext(), intent);
//
// // nonstop notification still sounds
// task.setReminderFlags(Task.NOTIFY_MODE_NONSTOP);
// taskDao.persist(task);
-// Notifications.setNotificationManager(new TestNotificationManager() {
+// NotificationReceiver.setNotificationManager(new TestNotificationManager() {
// public void notify(int id, Notification notification) {
// assertTrue(notification.sound != null ||
// (notification.defaults & Notification.DEFAULT_SOUND) > 0);
// }
// });
-// notifications.onReceive(getContext(), intent);
+// notificationReceiver.onReceive(getContext(), intent);
// }
@Override
diff --git a/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java b/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java
index 6f326e48a..60189dec9 100644
--- a/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java
+++ b/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java
@@ -5,10 +5,12 @@ import android.content.Intent;
import com.google.android.gms.location.GeofencingEvent;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Metadata;
+import com.todoroo.astrid.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
+import org.tasks.Notifier;
import org.tasks.injection.InjectingIntentService;
import java.util.List;
@@ -19,8 +21,8 @@ public class GeofenceTransitionsIntentService extends InjectingIntentService {
private static final Logger log = LoggerFactory.getLogger(GeofenceTransitionsIntentService.class);
- @Inject Broadcaster broadcaster;
@Inject MetadataDao metadataDao;
+ @Inject Notifier notifier;
public GeofenceTransitionsIntentService() {
super(GeofenceTransitionsIntentService.class.getSimpleName());
@@ -53,7 +55,7 @@ public class GeofenceTransitionsIntentService extends InjectingIntentService {
try {
Metadata fetch = metadataDao.fetch(Long.parseLong(requestId), Metadata.TASK, GeofenceFields.PLACE, GeofenceFields.LATITUDE, GeofenceFields.LONGITUDE, GeofenceFields.RADIUS);
Geofence geofence = new Geofence(fetch);
- broadcaster.requestNotification(geofence.getMetadataId(), geofence.getTaskId());
+ notifier.triggerTaskNotification(geofence.getTaskId(), ReminderService.TYPE_ALARM);
} catch(Exception e) {
log.error(String.format("Error triggering geofence %s: %s", requestId, e.getMessage()), e);
}
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index d313a77c8..c0bdea271 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -233,16 +233,10 @@
-
+
-
-
-
-
-
-
+
getParcelableExtra(Notifications.EXTRAS_CUSTOM_INTENT),
- intent.getIntExtra(Notifications.EXTRAS_TYPE, 0),
- intent.getStringExtra(Notifications.EXTRAS_TITLE),
- intent.getStringExtra(Notifications.EXTRAS_TEXT),
- intent.getIntExtra(Notifications.EXTRAS_RING_TIMES, 1));
+ intent.getIntExtra(EXTRAS_NOTIF_ID, 0),
+ intent.getLongExtra(EXTRA_TASK_ID, 0L),
+ intent.getParcelableExtra(EXTRAS_CUSTOM_INTENT),
+ intent.getIntExtra(EXTRAS_TYPE, 0),
+ intent.getStringExtra(EXTRAS_TITLE),
+ intent.getStringExtra(EXTRAS_TEXT),
+ intent.getIntExtra(EXTRAS_RING_TIMES, 1));
}
/**
@@ -156,7 +172,7 @@ public class ShowNotificationReceiver extends InjectingBroadcastReceiver {
boolean maxOutVolumeForMultipleRingReminders = preferences.getBoolean(R.string.p_rmd_maxvolume, true);
// remember it to set it to the old value after the alarm
int previousAlarmVolume = audioManager.getAlarmVolume();
- if (ringTimes != 1 && (type != ReminderService.TYPE_RANDOM)) {
+ if (ringTimes != 1) {
notification.audioStreamType = android.media.AudioManager.STREAM_ALARM;
if (maxOutVolumeForMultipleRingReminders) {
audioManager.setMaxAlarmVolume();
@@ -202,67 +218,30 @@ public class ShowNotificationReceiver extends InjectingBroadcastReceiver {
voiceReminder = false;
}
- singleThreadVoicePool.submit(new NotificationRunnable(ringTimes, notificationId, notification, voiceReminder,
- maxOutVolumeForMultipleRingReminders, audioManager, previousAlarmVolume, title,
- notificationManager, voiceOutputAssistant));
- }
-
- private static class NotificationRunnable implements Runnable {
- private final int ringTimes;
- private final int notificationId;
- private final Notification notification;
- private final boolean voiceReminder;
- private final boolean maxOutVolumeForMultipleRingReminders;
- private final AudioManager audioManager;
- private final int previousAlarmVolume;
- private final String text;
- private NotificationManager notificationManager;
- private final VoiceOutputAssistant voiceOutputAssistant;
-
- public NotificationRunnable(int ringTimes, int notificationId, Notification notification,
- boolean voiceReminder, boolean maxOutVolume,
- AudioManager audioManager, int previousAlarmVolume,
- String text, NotificationManager notificationManager,
- VoiceOutputAssistant voiceOutputAssistant) {
- this.ringTimes = ringTimes;
- this.notificationId = notificationId;
- this.notification = notification;
- this.voiceReminder = voiceReminder;
- this.maxOutVolumeForMultipleRingReminders = maxOutVolume;
- this.audioManager = audioManager;
- this.previousAlarmVolume = previousAlarmVolume;
- this.text = text;
- this.notificationManager = notificationManager;
- this.voiceOutputAssistant = voiceOutputAssistant;
+ for (int i = 0; i < Math.max(ringTimes, 1); i++) {
+ notificationManager.notify(notificationId, notification);
+ AndroidUtilities.sleepDeep(500);
}
-
- @Override
- public void run() {
- for (int i = 0; i < Math.max(ringTimes, 1); i++) {
- notificationManager.notify(notificationId, notification);
+ Flags.set(Flags.REFRESH); // Forces a reload when app launches
+ if (voiceReminder || maxOutVolumeForMultipleRingReminders) {
+ AndroidUtilities.sleepDeep(2000);
+ for (int i = 0; i < 50; i++) {
AndroidUtilities.sleepDeep(500);
+ if (!audioManager.isRingtoneMode()) {
+ break;
+ }
}
- Flags.set(Flags.REFRESH); // Forces a reload when app launches
- if (voiceReminder || maxOutVolumeForMultipleRingReminders) {
- AndroidUtilities.sleepDeep(2000);
- for (int i = 0; i < 50; i++) {
- AndroidUtilities.sleepDeep(500);
- if (!audioManager.isRingtoneMode()) {
- break;
- }
+ try {
+ // first reset the Alarm-volume to the value before it was eventually maxed out
+ if (maxOutVolumeForMultipleRingReminders) {
+ audioManager.setAlarmVolume(previousAlarmVolume);
}
- try {
- // first reset the Alarm-volume to the value before it was eventually maxed out
- if (maxOutVolumeForMultipleRingReminders) {
- audioManager.setAlarmVolume(previousAlarmVolume);
- }
- if (voiceReminder) {
- voiceOutputAssistant.speak(text);
- }
- } catch (VerifyError e) {
- // unavailable
- log.error(e.getMessage(), e);
+ if (voiceReminder) {
+ voiceOutputAssistant.speak(text);
}
+ } catch (VerifyError e) {
+ // unavailable
+ log.error(e.getMessage(), e);
}
}
}
diff --git a/src/main/java/org/tasks/Broadcaster.java b/src/main/java/org/tasks/Broadcaster.java
index c1823ab5a..c40140525 100644
--- a/src/main/java/org/tasks/Broadcaster.java
+++ b/src/main/java/org/tasks/Broadcaster.java
@@ -1,18 +1,13 @@
package org.tasks;
-import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import com.todoroo.astrid.api.AstridApiConstants;
-import com.todoroo.astrid.reminders.Notifications;
-import com.todoroo.astrid.reminders.ReminderService;
-import com.todoroo.astrid.utility.Constants;
import org.tasks.injection.ForApplication;
import org.tasks.receivers.CompleteTaskReceiver;
import org.tasks.receivers.FirstLaunchReceiver;
-import org.tasks.reminders.NotificationActivity;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -20,8 +15,6 @@ import javax.inject.Singleton;
@Singleton
public class Broadcaster {
- public static final String BROADCAST_IN_APP_NOTIFY = Constants.PACKAGE + ".IN_APP_NOTIFY"; //$NON-NLS-1$
-
private final Context context;
@Inject
@@ -44,27 +37,6 @@ public class Broadcaster {
}});
}
- public void requestNotification(final long taskId, final PendingIntent intent, final int type,
- final String title, final String text, final int ringTimes) {
- sendOrderedBroadcast(new Intent(BROADCAST_IN_APP_NOTIFY) {{
- putExtra(Notifications.EXTRAS_NOTIF_ID, (int) taskId);
- putExtra(NotificationActivity.EXTRA_TASK_ID, taskId);
- putExtra(Notifications.EXTRAS_CUSTOM_INTENT, intent);
- putExtra(Notifications.EXTRAS_TYPE, type);
- putExtra(Notifications.EXTRAS_TITLE, title);
- putExtra(Notifications.EXTRAS_TEXT, text);
- putExtra(Notifications.EXTRAS_RING_TIMES, ringTimes);
- }}, AstridApiConstants.PERMISSION_READ);
- }
-
- public void requestNotification(final long alarmId, final long taskId) {
- sendOrderedBroadcast(new Intent(context, Notifications.class) {{
- setAction("ALARM" + alarmId); //$NON-NLS-1$
- putExtra(Notifications.ID_KEY, taskId);
- putExtra(Notifications.EXTRAS_TYPE, ReminderService.TYPE_ALARM);
- }});
- }
-
public void taskCompleted(final long id) {
sendOrderedBroadcast(new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_COMPLETED) {{
putExtra(AstridApiConstants.EXTRAS_TASK_ID, id);
diff --git a/src/main/java/com/todoroo/astrid/reminders/Notifications.java b/src/main/java/org/tasks/Notifier.java
similarity index 51%
rename from src/main/java/com/todoroo/astrid/reminders/Notifications.java
rename to src/main/java/org/tasks/Notifier.java
index eecaf80f6..463fd42dc 100644
--- a/src/main/java/com/todoroo/astrid/reminders/Notifications.java
+++ b/src/main/java/org/tasks/Notifier.java
@@ -1,9 +1,4 @@
-/**
- * Copyright (c) 2012 Todoroo Inc
- *
- * See the file "LICENSE" for the full license governing this code.
- */
-package com.todoroo.astrid.reminders;
+package org.tasks;
import android.app.PendingIntent;
import android.content.Context;
@@ -13,66 +8,39 @@ import android.text.TextUtils;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
+import com.todoroo.astrid.reminders.ReminderService;
+import com.todoroo.astrid.reminders.TaskNotificationIntentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.tasks.Broadcaster;
-import org.tasks.R;
import org.tasks.injection.ForApplication;
-import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.notifications.NotificationManager;
import org.tasks.reminders.NotificationActivity;
import javax.inject.Inject;
-public class Notifications extends InjectingBroadcastReceiver {
+public class Notifier {
- private static final Logger log = LoggerFactory.getLogger(Notifications.class);
+ private static final Logger log = LoggerFactory.getLogger(Notifier.class);
- /**
- * task id extra
- */
- public static final String ID_KEY = "id"; //$NON-NLS-1$
+ private Context context;
+ private TaskDao taskDao;
+ private NotificationManager notificationManager;
- /**
- * Action name for broadcast intent notifying that task was created from repeating template
- */
- public static final String EXTRAS_CUSTOM_INTENT = "intent"; //$NON-NLS-1$
- public static final String EXTRAS_NOTIF_ID = "notifId"; //$NON-NLS-1$
-
- /**
- * notification type extra
- */
- public static final String EXTRAS_TYPE = "type"; //$NON-NLS-1$
- public static final String EXTRAS_TITLE = "title"; //$NON-NLS-1$
- public static final String EXTRAS_TEXT = "text"; //$NON-NLS-1$
- public static final String EXTRAS_RING_TIMES = "ringTimes"; //$NON-NLS-1$
-
- @Inject TaskDao taskDao;
- @Inject @ForApplication Context context;
- @Inject NotificationManager notificationManager;
- @Inject Broadcaster broadcaster;
-
- @Override
- public void onReceive(Context context, Intent intent) {
- super.onReceive(context, intent);
-
- handle(intent);
+ @Inject
+ public Notifier(@ForApplication Context context, TaskDao taskDao, NotificationManager notificationManager) {
+ this.context = context;
+ this.taskDao = taskDao;
+ this.notificationManager = notificationManager;
}
- void handle(Intent intent) {
- long id = intent.getLongExtra(ID_KEY, 0);
- int type = intent.getIntExtra(EXTRAS_TYPE, (byte) 0);
+ public void triggerTaskNotification(long id, int type) {
if (!showTaskNotification(id, type)) {
- notificationManager.cancel((int) id);
+ notificationManager.cancel(id);
}
}
- /**
- * Show a new notification about the given task. Returns false if there was
- * some sort of error or the alarm should be disabled.
- */
- private boolean showTaskNotification(long id, int type) {
+ private boolean showTaskNotification(final long id, final int type) {
Task task;
try {
task = taskDao.fetch(id, Task.ID, Task.TITLE, Task.HIDE_UNTIL, Task.COMPLETION_DATE,
@@ -110,30 +78,34 @@ public class Notifications extends InjectingBroadcastReceiver {
}
// read properties
- String taskTitle = task.getTitle();
+ final String taskTitle = task.getTitle();
boolean nonstopMode = task.isNotifyModeNonstop();
boolean ringFiveMode = task.isNotifyModeFive();
- int ringTimes = nonstopMode ? -1 : (ringFiveMode ? 5 : 1);
+ final int ringTimes = nonstopMode ? -1 : (ringFiveMode ? 5 : 1);
// update last reminder time
task.setReminderLast(DateUtilities.now());
taskDao.saveExisting(task);
- String text = context.getString(R.string.app_name);
-
- PendingIntent intent = createNotificationIntent(id, taskTitle);
+ final String text = context.getString(R.string.app_name);
- broadcaster.requestNotification((int) id, intent, type, taskTitle, text, ringTimes);
- return true;
- }
-
- private PendingIntent createNotificationIntent(final long id, final String taskTitle) {
- Intent intent = new Intent(context, NotificationActivity.class) {{
+ final Intent intent = new Intent(context, NotificationActivity.class) {{
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
setAction("NOTIFY" + id); //$NON-NLS-1$
putExtra(NotificationActivity.EXTRA_TASK_ID, id);
putExtra(NotificationActivity.EXTRA_TITLE, taskTitle);
}};
- return PendingIntent.getActivity(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+ context.startService(new Intent(context, TaskNotificationIntentService.class) {{
+ putExtra(TaskNotificationIntentService.EXTRAS_NOTIF_ID, (int) id);
+ putExtra(TaskNotificationIntentService.EXTRA_TASK_ID, id);
+ putExtra(TaskNotificationIntentService.EXTRAS_CUSTOM_INTENT, PendingIntent.getActivity(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT));
+ putExtra(TaskNotificationIntentService.EXTRAS_TYPE, type);
+ putExtra(TaskNotificationIntentService.EXTRAS_TITLE, taskTitle);
+ putExtra(TaskNotificationIntentService.EXTRAS_TEXT, text);
+ putExtra(TaskNotificationIntentService.EXTRAS_RING_TIMES, ringTimes);
+ }});
+
+ return true;
}
}
diff --git a/src/main/java/org/tasks/injection/BroadcastModule.java b/src/main/java/org/tasks/injection/BroadcastModule.java
index 0f868c770..032e645d7 100644
--- a/src/main/java/org/tasks/injection/BroadcastModule.java
+++ b/src/main/java/org/tasks/injection/BroadcastModule.java
@@ -6,8 +6,7 @@ import com.todoroo.astrid.gcal.CalendarAlarmReceiver;
import com.todoroo.astrid.gcal.CalendarStartupReceiver;
import com.todoroo.astrid.gcal.GCalTaskCompleteListener;
import com.todoroo.astrid.gtasks.GtasksCustomFilterCriteriaExposer;
-import com.todoroo.astrid.reminders.Notifications;
-import com.todoroo.astrid.reminders.ShowNotificationReceiver;
+import com.todoroo.astrid.reminders.NotificationReceiver;
import com.todoroo.astrid.repeats.RepeatTaskCompleteListener;
import com.todoroo.astrid.tags.TagCustomFilterCriteriaExposer;
import com.todoroo.astrid.timers.TimerTaskCompleteListener;
@@ -26,7 +25,7 @@ import dagger.Module;
@Module(addsTo = TasksModule.class,
injects = {
TasksWidget.class,
- Notifications.class,
+ NotificationReceiver.class,
GtasksCustomFilterCriteriaExposer.class,
TagCustomFilterCriteriaExposer.class,
GCalTaskCompleteListener.class,
@@ -34,7 +33,6 @@ import dagger.Module;
RepeatTaskCompleteListener.class,
AlarmTaskRepeatListener.class,
PhoneStateChangedReceiver.class,
- ShowNotificationReceiver.class,
CalendarAlarmReceiver.class,
CalendarStartupReceiver.class,
BootCompletedReceiver.class,
diff --git a/src/main/java/org/tasks/injection/IntentServiceModule.java b/src/main/java/org/tasks/injection/IntentServiceModule.java
index 8c4ca06ec..d780f4e11 100644
--- a/src/main/java/org/tasks/injection/IntentServiceModule.java
+++ b/src/main/java/org/tasks/injection/IntentServiceModule.java
@@ -1,5 +1,7 @@
package org.tasks.injection;
+import com.todoroo.astrid.reminders.TaskNotificationIntentService;
+
import org.tasks.location.GeofenceTransitionsIntentService;
import org.tasks.scheduling.*;
@@ -13,7 +15,8 @@ import dagger.Module;
MidnightRefreshService.class,
RefreshSchedulerIntentService.class,
ReminderSchedulerIntentService.class,
- GeofenceTransitionsIntentService.class
+ GeofenceTransitionsIntentService.class,
+ TaskNotificationIntentService.class
})
public class IntentServiceModule {
}