diff --git a/astrid/src/main/java/com/todoroo/astrid/actfm/CommentsFragment.java b/astrid/src/main/java/com/todoroo/astrid/actfm/CommentsFragment.java index 5da97e650..6fa4c575b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/actfm/CommentsFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/actfm/CommentsFragment.java @@ -10,7 +10,6 @@ import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.os.Bundle; -import android.support.v4.app.ListFragment; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -32,8 +31,6 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback; import com.todoroo.astrid.actfm.ActFmCameraModule.ClearImageCallback; import com.todoroo.astrid.activity.TaskListActivity; @@ -44,8 +41,11 @@ import com.todoroo.astrid.data.UserActivity; import org.json.JSONObject; import org.tasks.R; +import org.tasks.injection.InjectingListFragment; -public abstract class CommentsFragment extends ListFragment { +import javax.inject.Inject; + +public abstract class CommentsFragment extends InjectingListFragment { protected UpdateAdapter updateAdapter; protected EditText addCommentField; @@ -60,11 +60,7 @@ public abstract class CommentsFragment extends ListFragment { protected static final int MENU_REFRESH_ID = Menu.FIRST; - @Autowired UserActivityDao userActivityDao; - - public CommentsFragment() { - DependencyInjectionService.getInstance().inject(this); - } + @Inject UserActivityDao userActivityDao; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, diff --git a/astrid/src/main/java/com/todoroo/astrid/actfm/TagCommentsFragment.java b/astrid/src/main/java/com/todoroo/astrid/actfm/TagCommentsFragment.java index 811db406f..28f63aada 100644 --- a/astrid/src/main/java/com/todoroo/astrid/actfm/TagCommentsFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/actfm/TagCommentsFragment.java @@ -10,7 +10,6 @@ import android.database.Cursor; import android.view.ViewGroup; import android.widget.ListView; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; @@ -20,11 +19,13 @@ import com.todoroo.astrid.utility.AstridPreferences; import org.tasks.R; +import javax.inject.Inject; + public class TagCommentsFragment extends CommentsFragment { private TagData tagData; - @Autowired private TagDataService tagDataService; + @Inject TagDataService tagDataService; public TagCommentsFragment() { super(); diff --git a/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java b/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java index 26b02bf30..59190592b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/actfm/TagViewFragment.java @@ -19,7 +19,6 @@ import android.view.ViewGroup; import android.widget.TextView; import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.NotificationManager; import com.todoroo.andlib.service.NotificationManager.AndroidNotificationManager; @@ -45,6 +44,8 @@ import org.tasks.R; import java.util.concurrent.atomic.AtomicBoolean; +import javax.inject.Inject; + public class TagViewFragment extends TaskListFragment { public static final String BROADCAST_TAG_ACTIVITY = AstridApiConstants.API_PACKAGE + ".TAG_ACTIVITY"; //$NON-NLS-1$ @@ -64,9 +65,8 @@ public class TagViewFragment extends TaskListFragment { protected TagData tagData; - @Autowired TagDataService tagDataService; - - @Autowired TagDataDao tagDataDao; + @Inject TagDataService tagDataService; + @Inject TagDataDao tagDataDao; protected View taskListView; diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 9428773e8..e95c37c96 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -22,7 +22,6 @@ import android.database.sqlite.SQLiteException; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.support.v4.app.ListFragment; import android.text.TextUtils; import android.util.Log; import android.view.ContextMenu; @@ -45,9 +44,7 @@ import android.widget.ListView; import com.todoroo.andlib.data.Property; 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.Field; import com.todoroo.andlib.sql.Join; @@ -75,7 +72,6 @@ import com.todoroo.astrid.helper.TaskListContextMenuExtensionLoader; import com.todoroo.astrid.helper.TaskListContextMenuExtensionLoader.ContextMenuItem; import com.todoroo.astrid.reminders.MakeNotification; import com.todoroo.astrid.reminders.WhenReminder; -import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.UpgradeService; import com.todoroo.astrid.subtasks.SubtasksHelper; @@ -92,12 +88,15 @@ import com.todoroo.astrid.widget.TasksWidget; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; +import org.tasks.injection.InjectingListFragment; import java.util.List; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicReference; +import javax.inject.Inject; + /** * Primary activity for the Bente application. Shows a list of upcoming tasks * and a user's coaches. @@ -105,7 +104,7 @@ import java.util.concurrent.atomic.AtomicReference; * @author Tim Su * */ -public class TaskListFragment extends ListFragment implements OnSortSelectedListener { +public class TaskListFragment extends InjectingListFragment implements OnSortSelectedListener { private static final Logger log = LoggerFactory.getLogger(TaskListFragment.class); @@ -142,11 +141,9 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList // --- instance variables - @Autowired protected TaskService taskService; - - @Autowired UpgradeService upgradeService; - - @Autowired TaskListMetadataDao taskListMetadataDao; + @Inject protected TaskService taskService; + @Inject UpgradeService upgradeService; + @Inject TaskListMetadataDao taskListMetadataDao; private final TaskContextActionExposer[] contextItemExposers = new TaskContextActionExposer[] { new MakeNotification(), @@ -182,10 +179,6 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList * ====================================================================== */ - static { - AstridDependencyInjector.initialize(); - } - /** * Instantiates and returns an instance of TaskListFragment (or some subclass). Custom types of * TaskListFragment can be created, with the following precedence: @@ -259,7 +252,6 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList /** Called when loading up the activity */ @Override public void onCreate(Bundle savedInstanceState) { - DependencyInjectionService.getInstance().inject(this); super.onCreate(savedInstanceState); extras = getArguments() != null ? getArguments().getBundle(TOKEN_EXTRAS) : null; if (extras == null) { diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListFragment.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListFragment.java index 642723a92..d2dab6cb2 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListFragment.java @@ -14,7 +14,6 @@ import android.widget.TextView; import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; @@ -30,17 +29,16 @@ import com.todoroo.astrid.subtasks.SubtasksListFragment; import org.tasks.R; +import javax.inject.Inject; + public class GtasksListFragment extends SubtasksListFragment { public static final String TOKEN_STORE_ID = "storeId"; //$NON-NLS-1$ - @Autowired private StoreObjectDao storeObjectDao; - - @Autowired private GtasksTaskListUpdater gtasksTaskListUpdater; - - @Autowired private GtasksMetadataService gtasksMetadataService; - - @Autowired private SyncV2Service syncService; + @Inject StoreObjectDao storeObjectDao; + @Inject GtasksTaskListUpdater gtasksTaskListUpdater; + @Inject GtasksMetadataService gtasksMetadataService; + @Inject SyncV2Service syncService; private StoreObject list; diff --git a/astrid/src/main/java/org/tasks/injection/FragmentModule.java b/astrid/src/main/java/org/tasks/injection/FragmentModule.java new file mode 100644 index 000000000..9731e7f6c --- /dev/null +++ b/astrid/src/main/java/org/tasks/injection/FragmentModule.java @@ -0,0 +1,22 @@ +package org.tasks.injection; + +import com.todoroo.astrid.actfm.TagViewFragment; +import com.todoroo.astrid.activity.TaskListFragment; +import com.todoroo.astrid.gtasks.GtasksListFragment; +import com.todoroo.astrid.reminders.NotificationFragment; +import com.todoroo.astrid.subtasks.SubtasksListFragment; +import com.todoroo.astrid.subtasks.SubtasksTagListFragment; + +import dagger.Module; + +@Module(library = true, + injects = { + TaskListFragment.class, + GtasksListFragment.class, + NotificationFragment.class, + SubtasksListFragment.class, + SubtasksTagListFragment.class, + TagViewFragment.class, + }) +public class FragmentModule { +} diff --git a/astrid/src/main/java/org/tasks/injection/InjectingListFragment.java b/astrid/src/main/java/org/tasks/injection/InjectingListFragment.java new file mode 100644 index 000000000..35c13951d --- /dev/null +++ b/astrid/src/main/java/org/tasks/injection/InjectingListFragment.java @@ -0,0 +1,19 @@ +package org.tasks.injection; + +import android.app.Activity; +import android.support.v4.app.ListFragment; + +public class InjectingListFragment extends ListFragment { + + private boolean injected; + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + + if (!injected) { + ((Injector) activity.getApplication()).inject(this, new FragmentModule()); + injected = true; + } + } +}