More injecting broadcast receivers

pull/189/head
Alex Baker 12 years ago
parent 96f6b92755
commit 75583efe96

@ -5,7 +5,6 @@
*/ */
package com.todoroo.astrid.gtasks; package com.todoroo.astrid.gtasks;
import android.content.BroadcastReceiver;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -13,9 +12,7 @@ import android.content.res.Resources;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import com.todoroo.andlib.data.AbstractModel; import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
@ -27,24 +24,24 @@ import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.AstridDependencyInjector;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
public class GtasksCustomFilterCriteriaExposer extends BroadcastReceiver { import javax.inject.Inject;
@Autowired private GtasksPreferenceService gtasksPreferenceService;
@Autowired private GtasksListService gtasksListService; public class GtasksCustomFilterCriteriaExposer extends InjectingBroadcastReceiver {
private static final String IDENTIFIER = "gtaskslist"; //$NON-NLS-1$ private static final String IDENTIFIER = "gtaskslist"; //$NON-NLS-1$
static { @Inject GtasksPreferenceService gtasksPreferenceService;
AstridDependencyInjector.initialize(); @Inject GtasksListService gtasksListService;
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
ContextManager.setContext(context); ContextManager.setContext(context);
DependencyInjectionService.getInstance().inject(this);
// if we aren't logged in, don't expose sync action // if we aren't logged in, don't expose sync action
if(!gtasksPreferenceService.isLoggedIn()) { if(!gtasksPreferenceService.isLoggedIn()) {
@ -53,7 +50,6 @@ public class GtasksCustomFilterCriteriaExposer extends BroadcastReceiver {
Resources r = context.getResources(); Resources r = context.getResources();
StoreObject[] lists = gtasksListService.getLists(); StoreObject[] lists = gtasksListService.getLists();
CustomFilterCriterion[] result = new CustomFilterCriterion[1]; CustomFilterCriterion[] result = new CustomFilterCriterion[1];

@ -5,17 +5,17 @@
*/ */
package com.todoroo.astrid.gtasks; package com.todoroo.astrid.gtasks;
import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.service.AstridDependencyInjector;
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
/** /**
* Exposes Task Details for Google TAsks: * Exposes Task Details for Google TAsks:
@ -24,22 +24,16 @@ import com.todoroo.astrid.service.AstridDependencyInjector;
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
public class GtasksDetailExposer extends BroadcastReceiver { public class GtasksDetailExposer extends InjectingBroadcastReceiver {
@Autowired private GtasksMetadataService gtasksMetadataService; @Inject GtasksMetadataService gtasksMetadataService;
@Autowired private GtasksListService gtasksListService; @Inject GtasksListService gtasksListService;
@Autowired private GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
static {
AstridDependencyInjector.initialize();
}
public GtasksDetailExposer() {
DependencyInjectionService.getInstance().inject(this);
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
ContextManager.setContext(context); ContextManager.setContext(context);
// if we aren't logged in, don't expose features // if we aren't logged in, don't expose features
@ -64,7 +58,7 @@ public class GtasksDetailExposer extends BroadcastReceiver {
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
} }
public String getTaskDetails(long id) { private String getTaskDetails(long id) {
Metadata metadata = gtasksMetadataService.getTaskMetadata(id); Metadata metadata = gtasksMetadataService.getTaskMetadata(id);
if(metadata == null) { if(metadata == null) {
return null; return null;

@ -5,16 +5,17 @@
*/ */
package com.todoroo.astrid.service; package com.todoroo.astrid.service;
import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
/** /**
* BroadcastReceiver for receiving Astrid events not associated with a * BroadcastReceiver for receiving Astrid events not associated with a
* specific activity * specific activity
@ -22,26 +23,21 @@ import com.todoroo.astrid.utility.Flags;
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
public final class GlobalEventReceiver extends BroadcastReceiver { public final class GlobalEventReceiver extends InjectingBroadcastReceiver {
static {
AstridDependencyInjector.initialize();
}
@Autowired private TaskService taskService; @Inject TaskService taskService;
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(intent == null) { if(intent == null) {
return; return;
} }
DependencyInjectionService.getInstance().inject(this);
if(AstridApiConstants.BROADCAST_EVENT_FLUSH_DETAILS.equals(intent.getAction())) { if(AstridApiConstants.BROADCAST_EVENT_FLUSH_DETAILS.equals(intent.getAction())) {
taskService.clearDetails(Criterion.all); taskService.clearDetails(Criterion.all);
Flags.set(Flags.REFRESH); Flags.set(Flags.REFRESH);
} }
} }
} }

@ -5,15 +5,12 @@
*/ */
package com.todoroo.astrid.tags; package com.todoroo.astrid.tags;
import android.content.BroadcastReceiver;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
@ -28,19 +25,21 @@ import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
public class TagCustomFilterCriteriaExposer extends InjectingBroadcastReceiver {
public class TagCustomFilterCriteriaExposer extends BroadcastReceiver {
private static final String IDENTIFIER_TAG_IS = "tag_is"; //$NON-NLS-1$ private static final String IDENTIFIER_TAG_IS = "tag_is"; //$NON-NLS-1$
private static final String IDENTIFIER_TAG_CONTAINS = "tag_contains"; //$NON-NLS-1$ private static final String IDENTIFIER_TAG_CONTAINS = "tag_contains"; //$NON-NLS-1$
@Autowired TagService tagService; @Inject TagService tagService;
public TagCustomFilterCriteriaExposer() {
DependencyInjectionService.getInstance().inject(this);
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
Resources r = context.getResources(); Resources r = context.getResources();
CustomFilterCriterion[] ret = new CustomFilterCriterion[2]; CustomFilterCriterion[] ret = new CustomFilterCriterion[2];

@ -5,30 +5,28 @@
*/ */
package com.todoroo.astrid.tags; package com.todoroo.astrid.tags;
import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
/** /**
* Exposes Task Detail for tags, i.e. "Tags: frogs, animals" * Exposes Task Detail for tags, i.e. "Tags: frogs, animals"
* *
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
public class TagDetailExposer extends BroadcastReceiver { public class TagDetailExposer extends InjectingBroadcastReceiver {
@Autowired TagService tagService; @Inject TagService tagService;
public TagDetailExposer() {
DependencyInjectionService.getInstance().inject(this);
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
// get tags associated with this task // get tags associated with this task
long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1); long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1);
if(taskId == -1) { if(taskId == -1) {
@ -48,7 +46,7 @@ public class TagDetailExposer extends BroadcastReceiver {
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
} }
public String getTaskDetails(long id) { private String getTaskDetails(long id) {
String tagList = tagService.getTagsAsString(id); String tagList = tagService.getTagsAsString(id);
if(tagList.length() == 0) { if(tagList.length() == 0) {
return null; return null;
@ -56,5 +54,4 @@ public class TagDetailExposer extends BroadcastReceiver {
return /*"<img src='silk_tag_pink'/> " +*/ tagList; return /*"<img src='silk_tag_pink'/> " +*/ tagList;
} }
} }

@ -1,6 +1,11 @@
package org.tasks.injection; package org.tasks.injection;
import com.todoroo.astrid.gtasks.GtasksCustomFilterCriteriaExposer;
import com.todoroo.astrid.gtasks.GtasksDetailExposer;
import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.Notifications;
import com.todoroo.astrid.service.GlobalEventReceiver;
import com.todoroo.astrid.tags.TagCustomFilterCriteriaExposer;
import com.todoroo.astrid.tags.TagDetailExposer;
import com.todoroo.astrid.widget.TasksWidget; import com.todoroo.astrid.widget.TasksWidget;
import org.tasks.scheduling.RefreshBroadcastReceiver; import org.tasks.scheduling.RefreshBroadcastReceiver;
@ -11,7 +16,12 @@ import dagger.Module;
injects = { injects = {
RefreshBroadcastReceiver.class, RefreshBroadcastReceiver.class,
TasksWidget.class, TasksWidget.class,
Notifications.class Notifications.class,
GtasksCustomFilterCriteriaExposer.class,
GtasksDetailExposer.class,
GlobalEventReceiver.class,
TagDetailExposer.class,
TagCustomFilterCriteriaExposer.class
}) })
public class BroadcastModule { public class BroadcastModule {
} }

Loading…
Cancel
Save