Inject more objects into root object graph

pull/189/head
Alex Baker 10 years ago
parent 44616d9954
commit caceb7636d

@ -2,15 +2,58 @@ package org.tasks;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TagMetadataDao;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.gtasks.GtasksListService;
import com.todoroo.astrid.gtasks.GtasksMetadataService;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.gtasks.GtasksTaskListUpdater;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.SyncV2Service;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.tags.TagService;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingApplication;
import org.tasks.scheduling.RefreshScheduler;
import javax.inject.Inject;
@SuppressWarnings("UnusedDeclaration")
public class Tasks extends InjectingApplication {
@SuppressWarnings("UnusedDeclaration")
@Inject Database database;
@Inject TaskDao taskDao;
@Inject MetadataDao metadataDao;
@Inject TagMetadataDao tagMetadataDao;
@Inject TagDataDao tagDataDao;
@Inject StoreObjectDao storeObjectDao;
@Inject UserActivityDao userActivityDao;
@Inject TaskAttachmentDao taskAttachmentDao;
@Inject TaskListMetadataDao taskListMetadataDao;
@Inject TaskService taskService;
@Inject MetadataService metadataService;
@Inject TagDataService tagDataService;
@Inject UpgradeService upgradeService;
@Inject SyncV2Service syncV2Service;
@Inject GtasksPreferenceService gtasksPreferenceService;
@Inject GtasksListService gtasksListService;
@Inject GtasksMetadataService gtasksMetadataService;
@Inject GtasksTaskListUpdater gtasksTaskListUpdater;
@Inject GtasksSyncService gtasksSyncService;
@Inject TagService tagService;
@Inject Broadcaster broadcaster;
@Inject FilterCounter filterCounter;
@Inject RefreshScheduler refreshScheduler;
@Override
public void onCreate() {

@ -1,7 +1,6 @@
package org.tasks.injection;
import android.app.Activity;
import android.content.Context;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivityTablet;
@ -38,7 +37,8 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(injects = {
@Module(addsTo = TasksModule.class,
injects = {
TaskListActivity.class,
TaskEditActivity.class,
ShareLinkActivity.class,
@ -85,13 +85,6 @@ public class ActivityModule {
return injector;
}
@Singleton
@Provides
@ForApplication
public Context getApplicationContext() {
return activity.getApplicationContext();
}
@Singleton
@Provides
public Activity getActivity() {

@ -1,7 +1,5 @@
package org.tasks.injection;
import android.content.Context;
import com.todoroo.astrid.alarms.AlarmDetailExposer;
import com.todoroo.astrid.alarms.AlarmTaskRepeatListener;
import com.todoroo.astrid.backup.BackupStartupReceiver;
@ -30,12 +28,10 @@ import com.todoroo.astrid.widget.TasksWidget;
import org.tasks.scheduling.RefreshBroadcastReceiver;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(injects = {
@Module(addsTo = TasksModule.class,
injects = {
RefreshBroadcastReceiver.class,
TasksWidget.class,
Notifications.class,
@ -64,17 +60,4 @@ import dagger.Provides;
CalendarStartupReceiver.class
})
public class BroadcastModule {
private final Context context;
public BroadcastModule(Context context) {
this.context = context;
}
@Singleton
@Provides
@ForApplication
public Context getContext() {
return context.getApplicationContext();
}
}

@ -1,32 +1,16 @@
package org.tasks.injection;
import android.content.Context;
import com.todoroo.astrid.provider.Astrid2TaskProvider;
import com.todoroo.astrid.provider.Astrid3ContentProvider;
import com.todoroo.astrid.provider.SqlContentProvider;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(injects = {
@Module(addsTo = TasksModule.class,
injects = {
Astrid2TaskProvider.class,
Astrid3ContentProvider.class,
SqlContentProvider.class
})
public class ContentProviderModule {
private final Context context;
public ContentProviderModule(Context context) {
this.context = context;
}
@Singleton
@Provides
@ForApplication
public Context getContext() {
return context;
}
}

@ -0,0 +1,16 @@
package org.tasks.injection;
import android.content.Context;
import dagger.ObjectGraph;
public final class Dagger {
private static ObjectGraph objectGraph;
static ObjectGraph getObjectGraph(Context context) {
if (objectGraph == null) {
objectGraph = ObjectGraph.create(new TasksModule(context));
}
return objectGraph;
}
}

@ -23,7 +23,8 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(injects = {
@Module(addsTo = TasksModule.class,
injects = {
TaskListFragment.class,
GtasksListFragment.class,
NotificationFragment.class,
@ -55,13 +56,6 @@ public class FragmentModule {
return injector;
}
@Singleton
@Provides
@ForApplication
public Context getApplicationContext() {
return activity.getApplicationContext();
}
@Singleton
@Provides
@ForActivity

@ -9,7 +9,7 @@ public class InjectingAppWidgetProvider extends AppWidgetProvider {
public void onReceive(Context context, Intent intent) {
((Injector) context.getApplicationContext())
.getObjectGraph()
.plus(new BroadcastModule(context))
.plus(new BroadcastModule())
.inject(this);
super.onReceive(context, intent);

@ -6,12 +6,14 @@ import dagger.ObjectGraph;
public class InjectingApplication extends Application implements Injector {
private final ObjectGraph objectGraph = ObjectGraph.create(new TasksModule());
private ObjectGraph objectGraph;
@Override
public void onCreate() {
super.onCreate();
objectGraph = Dagger.getObjectGraph(this);
inject(this);
}

@ -9,7 +9,7 @@ public class InjectingBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
((Injector) context.getApplicationContext())
.getObjectGraph()
.plus(new BroadcastModule(context))
.plus(new BroadcastModule())
.inject(this);
}
}

@ -7,11 +7,9 @@ public abstract class InjectingContentProvider extends ContentProvider {
@Override
public boolean onCreate() {
Context context = getContext();
((Injector) context.getApplicationContext())
.getObjectGraph()
.plus(new ContentProviderModule(context))
Dagger.getObjectGraph(context)
.plus(new ContentProviderModule())
.inject(this);
return true;
}
}

@ -12,7 +12,7 @@ public abstract class InjectingRemoteViewsService extends RemoteViewsService {
((Injector) getApplication())
.getObjectGraph()
.plus(new ServiceModule(this))
.plus(new ServiceModule())
.inject(this);
}
}

@ -9,7 +9,7 @@ public abstract class InjectingService extends Service {
((Injector) getApplication())
.getObjectGraph()
.plus(new ServiceModule(this))
.plus(new ServiceModule())
.inject(this);
}
}

@ -1,8 +1,5 @@
package org.tasks.injection;
import android.app.Service;
import android.content.Context;
import com.todoroo.astrid.backup.BackupService;
import com.todoroo.astrid.gtasks.GtasksBackgroundService;
import com.todoroo.astrid.reminders.ReminderSchedulingService;
@ -10,12 +7,10 @@ import com.todoroo.astrid.widget.WidgetUpdateService;
import org.tasks.widget.ScrollableWidgetUpdateService;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(injects = {
@Module(addsTo = TasksModule.class,
injects = {
GtasksBackgroundService.class,
ReminderSchedulingService.class,
ScrollableWidgetUpdateService.class,
@ -23,17 +18,4 @@ import dagger.Provides;
BackupService.class
})
public class ServiceModule {
private final Context context;
public ServiceModule(Service service) {
context = service.getApplicationContext();
}
@Singleton
@Provides
@ForApplication
public Context getContext() {
return context;
}
}

@ -1,9 +1,26 @@
package org.tasks.injection;
import android.content.Context;
import org.tasks.Tasks;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(injects = { Tasks.class })
public class TasksModule {
private Context context;
public TasksModule(Context context) {
this.context = context;
}
@Singleton
@Provides
@ForApplication
public Context getApplicationContext() {
return context.getApplicationContext();
}
}

Loading…
Cancel
Save