diff --git a/astrid/src/main/AndroidManifest.xml b/astrid/src/main/AndroidManifest.xml
index 68f8e65de..d03ff20a4 100644
--- a/astrid/src/main/AndroidManifest.xml
+++ b/astrid/src/main/AndroidManifest.xml
@@ -184,7 +184,7 @@
-
+
diff --git a/astrid/src/main/java/org/tasks/injection/BroadcastModule.java b/astrid/src/main/java/org/tasks/injection/BroadcastModule.java
new file mode 100644
index 000000000..aa96bb02e
--- /dev/null
+++ b/astrid/src/main/java/org/tasks/injection/BroadcastModule.java
@@ -0,0 +1,12 @@
+package org.tasks.injection;
+
+import org.tasks.scheduling.RefreshBroadcastReceiver;
+
+import dagger.Module;
+
+@Module(library = true,
+ injects = {
+ RefreshBroadcastReceiver.class
+ })
+public class BroadcastModule {
+}
diff --git a/astrid/src/main/java/org/tasks/injection/InjectingBroadcastReceiver.java b/astrid/src/main/java/org/tasks/injection/InjectingBroadcastReceiver.java
new file mode 100644
index 000000000..809ffb847
--- /dev/null
+++ b/astrid/src/main/java/org/tasks/injection/InjectingBroadcastReceiver.java
@@ -0,0 +1,12 @@
+package org.tasks.injection;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+public class InjectingBroadcastReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ ((Injector) context.getApplicationContext()).inject(this, new BroadcastModule());
+ }
+}
diff --git a/astrid/src/main/java/org/tasks/scheduling/RefreshBroadcastReceiver.java b/astrid/src/main/java/org/tasks/scheduling/RefreshBroadcastReceiver.java
new file mode 100644
index 000000000..d9dcc69a4
--- /dev/null
+++ b/astrid/src/main/java/org/tasks/scheduling/RefreshBroadcastReceiver.java
@@ -0,0 +1,24 @@
+package org.tasks.scheduling;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.todoroo.astrid.api.AstridApiConstants;
+
+import org.tasks.Broadcaster;
+import org.tasks.injection.InjectingBroadcastReceiver;
+
+import javax.inject.Inject;
+
+public class RefreshBroadcastReceiver extends InjectingBroadcastReceiver {
+
+ @Inject Broadcaster broadcaster;
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ super.onReceive(context, intent);
+
+ broadcaster.sendOrderedBroadcast(context, new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_LIST_UPDATED));
+ broadcaster.sendOrderedBroadcast(context, new Intent(AstridApiConstants.BROADCAST_EVENT_FILTER_LIST_UPDATED));
+ }
+}
diff --git a/astrid/src/main/java/org/tasks/scheduling/RefreshScheduler.java b/astrid/src/main/java/org/tasks/scheduling/RefreshScheduler.java
index a60c2d96a..34ce972e0 100644
--- a/astrid/src/main/java/org/tasks/scheduling/RefreshScheduler.java
+++ b/astrid/src/main/java/org/tasks/scheduling/RefreshScheduler.java
@@ -2,7 +2,6 @@ package org.tasks.scheduling;
import android.app.AlarmManager;
import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -11,12 +10,9 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
-import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
-import org.tasks.Broadcaster;
-
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -25,10 +21,9 @@ import static com.todoroo.andlib.utility.DateUtilities.ONE_MINUTE;
import static org.tasks.date.DateTimeUtils.currentTimeMillis;
@Singleton
-public class RefreshScheduler extends BroadcastReceiver {
+public class RefreshScheduler {
private final TaskDao taskDao;
- private final Broadcaster broadcaster;
private static final Property>[] REFRESH_PROPERTIES = new Property>[]{
Task.DUE_DATE,
@@ -36,15 +31,8 @@ public class RefreshScheduler extends BroadcastReceiver {
};
@Inject
- public RefreshScheduler(TaskDao taskDao, Broadcaster broadcaster) {
+ public RefreshScheduler(TaskDao taskDao) {
this.taskDao = taskDao;
- this.broadcaster = broadcaster;
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- broadcaster.sendOrderedBroadcast(context, new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_LIST_UPDATED));
- broadcaster.sendOrderedBroadcast(context, new Intent(AstridApiConstants.BROADCAST_EVENT_FILTER_LIST_UPDATED));
}
public void scheduleAllAlarms() {
@@ -79,7 +67,7 @@ public class RefreshScheduler extends BroadcastReceiver {
dueDate += 1000; // this is ghetto
Context context = ContextManager.getContext();
- Intent intent = new Intent(context, RefreshScheduler.class);
+ Intent intent = new Intent(context, RefreshBroadcastReceiver.class);
intent.setAction(Long.toString(dueDate));
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, FLAG_UPDATE_CURRENT);