diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksBackgroundService.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksBackgroundService.java index a41610183..bb636c6af 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksBackgroundService.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksBackgroundService.java @@ -15,10 +15,11 @@ import com.todoroo.astrid.sync.SyncV2Provider; public class GtasksBackgroundService extends SyncV2BackgroundService { @Autowired private GtasksPreferenceService gtasksPreferenceService; + @Autowired private GtasksSyncV2Provider gtasksSyncV2Provider; @Override protected SyncV2Provider getSyncProvider() { - return GtasksSyncV2Provider.getInstance(); + return gtasksSyncV2Provider; } @Override diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java index 53096357a..5919e9613 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferences.java @@ -26,6 +26,7 @@ import org.tasks.R; public class GtasksPreferences extends SyncProviderPreferences { @Autowired private GtasksPreferenceService gtasksPreferenceService; + @Autowired private GtasksSyncV2Provider gtasksSyncV2Provider; public GtasksPreferences() { super(); @@ -70,7 +71,7 @@ public class GtasksPreferences extends SyncProviderPreferences { } public void logOut() { - GtasksSyncV2Provider.getInstance().signOut(); + gtasksSyncV2Provider.signOut(); } @Override diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java index 148509c63..f744e5acf 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java @@ -10,9 +10,7 @@ import android.text.TextUtils; import com.google.api.services.tasks.model.Tasks; import com.todoroo.andlib.data.AbstractModel; import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Query; @@ -36,7 +34,6 @@ import com.todoroo.astrid.gtasks.api.GoogleTasksException; import com.todoroo.astrid.gtasks.api.GtasksApiUtilities; import com.todoroo.astrid.gtasks.api.GtasksInvoker; import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; -import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.SyncResultCallbackWrapper; import com.todoroo.astrid.service.TaskService; @@ -52,34 +49,34 @@ import java.util.HashSet; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import javax.inject.Inject; +import javax.inject.Singleton; + import static org.tasks.date.DateTimeUtils.newDate; +@Singleton public class GtasksSyncV2Provider extends SyncV2Provider { - @Autowired TaskService taskService; - @Autowired MetadataService metadataService; - @Autowired StoreObjectDao storeObjectDao; - @Autowired GtasksPreferenceService gtasksPreferenceService; - @Autowired GtasksSyncService gtasksSyncService; - @Autowired GtasksListService gtasksListService; - @Autowired GtasksMetadataService gtasksMetadataService; - @Autowired GtasksTaskListUpdater gtasksTaskListUpdater; - - static { - AstridDependencyInjector.initialize(); - } - - private static GtasksSyncV2Provider instance = null; - - protected GtasksSyncV2Provider() { - DependencyInjectionService.getInstance().inject(this); - } - - public synchronized static GtasksSyncV2Provider getInstance() { - if(instance == null) { - instance = new GtasksSyncV2Provider(); - } - return instance; + private final TaskService taskService; + private final MetadataService metadataService; + private final StoreObjectDao storeObjectDao; + private final GtasksPreferenceService gtasksPreferenceService; + private final GtasksSyncService gtasksSyncService; + private final GtasksListService gtasksListService; + private final GtasksMetadataService gtasksMetadataService; + private final GtasksTaskListUpdater gtasksTaskListUpdater; + + @Inject + public GtasksSyncV2Provider(TaskService taskService, MetadataService metadataService, StoreObjectDao storeObjectDao, GtasksPreferenceService gtasksPreferenceService, + GtasksSyncService gtasksSyncService, GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService, GtasksTaskListUpdater gtasksTaskListUpdater) { + this.taskService = taskService; + this.metadataService = metadataService; + this.storeObjectDao = storeObjectDao; + this.gtasksPreferenceService = gtasksPreferenceService; + this.gtasksSyncService = gtasksSyncService; + this.gtasksListService = gtasksListService; + this.gtasksMetadataService = gtasksMetadataService; + this.gtasksTaskListUpdater = gtasksTaskListUpdater; } @Override diff --git a/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java b/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java index 374ba0409..8431894e7 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java @@ -21,6 +21,7 @@ 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.gtasks.sync.GtasksSyncV2Provider; import com.todoroo.astrid.tags.TagService; import org.tasks.Broadcaster; @@ -74,6 +75,7 @@ public class AstridDependencyInjector extends AbstractDependencyInjector { @Inject GtasksMetadataService gtasksMetadataService; @Inject GtasksSyncService gtasksSyncService; @Inject GtasksTaskListUpdater gtasksTaskListUpdater; + @Inject GtasksSyncV2Provider gtasksSyncV2Provider; /** * Initialize list of injectables. Special care must used when @@ -117,6 +119,7 @@ public class AstridDependencyInjector extends AbstractDependencyInjector { injectables.put("gtasksMetadataService", gtasksMetadataService); injectables.put("gtasksTaskListUpdater", gtasksTaskListUpdater); injectables.put("gtasksSyncService", gtasksSyncService); + injectables.put("gtasksSyncV2Provider", gtasksSyncV2Provider); // com.todoroo.astrid.tags injectables.put("tagService", tagService); diff --git a/astrid/src/main/java/com/todoroo/astrid/service/SyncV2Service.java b/astrid/src/main/java/com/todoroo/astrid/service/SyncV2Service.java index 4a9b20467..38318c840 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/SyncV2Service.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/SyncV2Service.java @@ -32,12 +32,13 @@ public class SyncV2Service { * there is enough interest, the Astrid team could create an interface * for responding to sync requests through this new API. */ - private static final SyncV2Provider[] providers = new SyncV2Provider[] { - GtasksSyncV2Provider.getInstance() - }; + private final SyncV2Provider[] providers; @Inject - public SyncV2Service() { + public SyncV2Service(GtasksSyncV2Provider gtasksSyncV2Provider) { + providers = new SyncV2Provider[] { + gtasksSyncV2Provider + }; } /**