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.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,

@ -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();

@ -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;

@ -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 <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);
@ -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) {

@ -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;

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