Add InjectingListFragment

pull/143/head
Alex Baker 12 years ago
parent 9cc044abc7
commit 58a09af268

@ -10,7 +10,6 @@ import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
@ -32,8 +31,6 @@ import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener; 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.CameraResultCallback;
import com.todoroo.astrid.actfm.ActFmCameraModule.ClearImageCallback; import com.todoroo.astrid.actfm.ActFmCameraModule.ClearImageCallback;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
@ -44,8 +41,11 @@ import com.todoroo.astrid.data.UserActivity;
import org.json.JSONObject; import org.json.JSONObject;
import org.tasks.R; 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 UpdateAdapter updateAdapter;
protected EditText addCommentField; protected EditText addCommentField;
@ -60,11 +60,7 @@ public abstract class CommentsFragment extends ListFragment {
protected static final int MENU_REFRESH_ID = Menu.FIRST; protected static final int MENU_REFRESH_ID = Menu.FIRST;
@Autowired UserActivityDao userActivityDao; @Inject UserActivityDao userActivityDao;
public CommentsFragment() {
DependencyInjectionService.getInstance().inject(this);
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,

@ -10,7 +10,6 @@ import android.database.Cursor;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ListView; import android.widget.ListView;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
@ -20,11 +19,13 @@ import com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.R; import org.tasks.R;
import javax.inject.Inject;
public class TagCommentsFragment extends CommentsFragment { public class TagCommentsFragment extends CommentsFragment {
private TagData tagData; private TagData tagData;
@Autowired private TagDataService tagDataService; @Inject TagDataService tagDataService;
public TagCommentsFragment() { public TagCommentsFragment() {
super(); super();

@ -19,7 +19,6 @@ import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.NotificationManager; import com.todoroo.andlib.service.NotificationManager;
import com.todoroo.andlib.service.NotificationManager.AndroidNotificationManager; import com.todoroo.andlib.service.NotificationManager.AndroidNotificationManager;
@ -45,6 +44,8 @@ import org.tasks.R;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import javax.inject.Inject;
public class TagViewFragment extends TaskListFragment { public class TagViewFragment extends TaskListFragment {
public static final String BROADCAST_TAG_ACTIVITY = AstridApiConstants.API_PACKAGE + ".TAG_ACTIVITY"; //$NON-NLS-1$ 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; protected TagData tagData;
@Autowired TagDataService tagDataService; @Inject TagDataService tagDataService;
@Inject TagDataDao tagDataDao;
@Autowired TagDataDao tagDataDao;
protected View taskListView; protected View taskListView;

@ -22,7 +22,6 @@ import android.database.sqlite.SQLiteException;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.ListFragment;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.ContextMenu; import android.view.ContextMenu;
@ -45,9 +44,7 @@ import android.widget.ListView;
import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;
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.Field; import com.todoroo.andlib.sql.Field;
import com.todoroo.andlib.sql.Join; 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.helper.TaskListContextMenuExtensionLoader.ContextMenuItem;
import com.todoroo.astrid.reminders.MakeNotification; import com.todoroo.astrid.reminders.MakeNotification;
import com.todoroo.astrid.reminders.WhenReminder; import com.todoroo.astrid.reminders.WhenReminder;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.UpgradeService; import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.subtasks.SubtasksHelper; import com.todoroo.astrid.subtasks.SubtasksHelper;
@ -92,12 +88,15 @@ import com.todoroo.astrid.widget.TasksWidget;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingListFragment;
import java.util.List; import java.util.List;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
/** /**
* Primary activity for the Bente application. Shows a list of upcoming tasks * Primary activity for the Bente application. Shows a list of upcoming tasks
* and a user's coaches. * and a user's coaches.
@ -105,7 +104,7 @@ import java.util.concurrent.atomic.AtomicReference;
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
public class TaskListFragment extends ListFragment implements OnSortSelectedListener { public class TaskListFragment extends InjectingListFragment implements OnSortSelectedListener {
private static final Logger log = LoggerFactory.getLogger(TaskListFragment.class); private static final Logger log = LoggerFactory.getLogger(TaskListFragment.class);
@ -142,11 +141,9 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList
// --- instance variables // --- instance variables
@Autowired protected TaskService taskService; @Inject protected TaskService taskService;
@Inject UpgradeService upgradeService;
@Autowired UpgradeService upgradeService; @Inject TaskListMetadataDao taskListMetadataDao;
@Autowired TaskListMetadataDao taskListMetadataDao;
private final TaskContextActionExposer[] contextItemExposers = new TaskContextActionExposer[] { private final TaskContextActionExposer[] contextItemExposers = new TaskContextActionExposer[] {
new MakeNotification(), 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 * Instantiates and returns an instance of TaskListFragment (or some subclass). Custom types of
* TaskListFragment can be created, with the following precedence: * 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 */ /** Called when loading up the activity */
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
DependencyInjectionService.getInstance().inject(this);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
extras = getArguments() != null ? getArguments().getBundle(TOKEN_EXTRAS) : null; extras = getArguments() != null ? getArguments().getBundle(TOKEN_EXTRAS) : null;
if (extras == null) { if (extras == null) {

@ -14,7 +14,6 @@ import android.widget.TextView;
import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
@ -30,17 +29,16 @@ import com.todoroo.astrid.subtasks.SubtasksListFragment;
import org.tasks.R; import org.tasks.R;
import javax.inject.Inject;
public class GtasksListFragment extends SubtasksListFragment { public class GtasksListFragment extends SubtasksListFragment {
public static final String TOKEN_STORE_ID = "storeId"; //$NON-NLS-1$ public static final String TOKEN_STORE_ID = "storeId"; //$NON-NLS-1$
@Autowired private StoreObjectDao storeObjectDao; @Inject StoreObjectDao storeObjectDao;
@Inject GtasksTaskListUpdater gtasksTaskListUpdater;
@Autowired private GtasksTaskListUpdater gtasksTaskListUpdater; @Inject GtasksMetadataService gtasksMetadataService;
@Inject SyncV2Service syncService;
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private SyncV2Service syncService;
private StoreObject list; private StoreObject list;

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

@ -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;
}
}
}
Loading…
Cancel
Save