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);