Fix refresh broadcast injection

pull/143/head
Alex Baker 10 years ago
parent 80b484e2ad
commit 741f72d999

@ -184,7 +184,7 @@
<receiver android:name="com.todoroo.astrid.reminders.Notifications" />
<receiver android:name="org.tasks.scheduling.RefreshScheduler" />
<receiver android:name="org.tasks.scheduling.RefreshBroadcastReceiver" />
<receiver android:name="com.todoroo.astrid.reminders.Notifications$ShowNotificationReceiver">
<intent-filter>

@ -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 {
}

@ -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());
}
}

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

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

Loading…
Cancel
Save