Remove injection sites

pull/189/head
Alex Baker 10 years ago
parent 2003d80cd8
commit 5c7c4fa6f9

@ -16,7 +16,6 @@ import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent;
@ -43,6 +42,10 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListFragment;
import javax.inject.Inject;
/**
* Activity that displays a user's task lists and allows users
@ -51,7 +54,7 @@ import org.tasks.R;
* @author Tim Su <tim@todoroo.com>
*
*/
public class FilterListFragment extends ListFragment {
public class FilterListFragment extends InjectingListFragment {
public static final String TAG_FILTERLIST_FRAGMENT = "filterlist_fragment"; //$NON-NLS-1$
@ -77,6 +80,8 @@ public class FilterListFragment extends ListFragment {
private OnFilterItemClickedListener mListener;
@Inject FilterCounter filterCounter;
/* ======================================================================
* ======================================================= initialization
* ====================================================================== */
@ -94,17 +99,13 @@ public class FilterListFragment extends ListFragment {
// Check that the container activity has implemented the callback interface
try {
mListener = (OnFilterItemClickedListener) activity;
adapter = instantiateAdapter();
adapter = new FilterAdapter(filterCounter, getActivity(), null, R.layout.filter_adapter_row, false, false);
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnFilterItemClickedListener"); //$NON-NLS-1$
}
}
private FilterAdapter instantiateAdapter() {
return new FilterAdapter(getActivity(), null, R.layout.filter_adapter_row, false, false);
}
/* (non-Javadoc)
* @see com.todoroo.astrid.fragment.ExpandableListFragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.activity;
import android.app.ListActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
@ -19,8 +18,14 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListActivity;
public class FilterShortcutActivity extends ListActivity {
import javax.inject.Inject;
public class FilterShortcutActivity extends InjectingListActivity {
@Inject FilterCounter filterCounter;
private FilterAdapter adapter = null;
@ -36,7 +41,7 @@ public class FilterShortcutActivity extends ListActivity {
setContentView(R.layout.widget_config_activity);
// set up ui
adapter = new FilterAdapter(this, getListView(),
adapter = new FilterAdapter(filterCounter, this, getListView(),
R.layout.filter_adapter_row, true, true);
adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget;
setListAdapter(adapter);

@ -47,6 +47,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.ActFmCameraModule;
import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.data.RemoteModel;
@ -57,6 +58,7 @@ import com.todoroo.astrid.files.FileExplore;
import com.todoroo.astrid.files.FileUtilities;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.helper.TaskEditControlSet;
import com.todoroo.astrid.notes.EditNoteActivity;
import com.todoroo.astrid.reminders.Notifications;
@ -177,6 +179,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
@Inject MetadataService metadataService;
@Inject UserActivityDao userActivityDao;
@Inject TaskDeleter taskDeleter;
@Inject AlarmService alarmService;
@Inject GCalHelper gcalHelper;
// --- UI components
@ -354,19 +358,17 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
controlSetMap = new HashMap<>();
// populate control set
EditTitleControlSet editTitle = new EditTitleControlSet(getActivity(),
EditTitleControlSet editTitle = new EditTitleControlSet(taskService, getActivity(),
R.layout.control_set_title, R.id.title);
title = (EditText) editTitle.getView().findViewById(R.id.title);
controls.add(editTitle);
titleControls.addView(editTitle.getDisplayView(), 0, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
timerAction = new TimerActionControlSet(
getActivity(), getView());
timerAction = new TimerActionControlSet(taskService, getActivity(), getView());
controls.add(timerAction);
TagsControlSet tagsControlSet = new TagsControlSet(getActivity(),
R.layout.control_set_tags,
R.layout.control_set_default_display, R.string.TEA_tags_label_long);
TagsControlSet tagsControlSet = new TagsControlSet(tagService, getActivity(),
R.layout.control_set_tags, R.layout.control_set_default_display, R.string.TEA_tags_label_long);
controls.add(tagsControlSet);
controlSetMap.put(getString(R.string.TEA_ctrl_lists_pref),
tagsControlSet);
@ -375,7 +377,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
R.layout.control_set_repeat,
R.layout.control_set_repeat_display, R.string.repeat_enabled);
GCalControlSet gcalControl = new GCalControlSet(getActivity(),
GCalControlSet gcalControl = new GCalControlSet(gcalHelper, getActivity(),
R.layout.control_set_gcal, R.layout.control_set_gcal_display,
R.string.gcal_TEA_addToCalendar_label);
@ -412,7 +414,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
notesControlSet);
ReminderControlSet reminderControl = new ReminderControlSet(
getActivity(), R.layout.control_set_reminders,
alarmService, getActivity(), R.layout.control_set_reminders,
R.layout.control_set_default_display);
controls.add(reminderControl);
controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref),
@ -436,10 +438,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
controls.add(timerControl);
controlSetMap.put(getString(R.string.TEA_ctrl_timer_pref), timerControl);
filesControlSet = new FilesControlSet(getActivity(),
R.layout.control_set_files,
R.layout.control_set_files_display,
R.string.TEA_control_files);
filesControlSet = new FilesControlSet(taskAttachmentDao, getActivity(),
R.layout.control_set_files, R.layout.control_set_files_display, R.string.TEA_control_files);
controls.add(filesControlSet);
controlSetMap.put(getString(R.string.TEA_ctrl_files_pref), filesControlSet);

@ -57,6 +57,7 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel;
@ -146,6 +147,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
@Inject TaskDuplicator taskDuplicator;
@Inject @ForActivity Context context;
@Inject Preferences preferences;
@Inject TaskAttachmentDao taskAttachmentDao;
protected Resources resources;
protected TaskAdapter taskAdapter = null;
@ -751,7 +753,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
return new TaskAdapter(taskService, this, getTaskRowResource(preferences.getIntegerFromString(R.string.p_taskRowStyle_v2, 0)),
return new TaskAdapter(taskAttachmentDao, taskService, this, getTaskRowResource(preferences.getIntegerFromString(R.string.p_taskRowStyle_v2, 0)),
cursor, sqlQueryTemplate,
new OnCompletedTaskListener() {
@Override

@ -45,14 +45,11 @@ import com.todoroo.astrid.api.FilterWithUpdate;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.Injector;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.inject.Inject;
public class FilterAdapter extends ArrayAdapter<Filter> {
// --- style constants
@ -62,7 +59,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
// --- instance variables
@Inject FilterCounter filterCounter;
private final FilterCounter filterCounter;
/** parent activity */
protected final Activity activity;
@ -90,12 +87,10 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
/** whether rows are selectable */
private final boolean selectable;
public FilterAdapter(Activity activity, ListView listView,
public FilterAdapter(FilterCounter filterCounter, Activity activity, ListView listView,
int rowLayout, boolean skipIntentFilters, boolean selectable) {
super(activity, 0);
((Injector) activity.getApplication()).inject(this);
this.filterCounter = filterCounter;
this.activity = activity;
this.listView = listView;
this.layout = rowLayout;

@ -54,6 +54,7 @@ import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.TaskAction;
import com.todoroo.astrid.core.LinkActionExposer;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment;
@ -173,6 +174,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
// --- instance variables
private final TaskAttachmentDao taskAttachmentDao;
private final TaskService taskService;
protected final Context context;
@ -207,9 +209,10 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
* @param onCompletedTaskListener
* task listener. can be null
*/
public TaskAdapter(TaskService taskService, TaskListFragment fragment, int resource,
public TaskAdapter(TaskAttachmentDao taskAttachmentDao, TaskService taskService, TaskListFragment fragment, int resource,
Cursor c, AtomicReference<String> query, OnCompletedTaskListener onCompletedTaskListener) {
super(ContextManager.getContext(), c, false);
this.taskAttachmentDao = taskAttachmentDao;
this.taskService = taskService;
this.context = ContextManager.getContext();
this.query = query;
@ -609,7 +612,8 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
private void showFilesDialog(Task task) {
FilesControlSet filesControlSet = new FilesControlSet(fragment.getActivity(), R.layout.control_set_files,
FilesControlSet filesControlSet = new FilesControlSet(taskAttachmentDao,
fragment.getActivity(), R.layout.control_set_files,
R.layout.control_set_files_display, R.string.TEA_control_files);
filesControlSet.readFromTask(task);
filesControlSet.getDisplayView().performClick();

@ -23,13 +23,10 @@ import com.todoroo.astrid.ui.DateAndTimeDialog.DateAndTimeDialogListener;
import com.todoroo.astrid.ui.DateAndTimePicker;
import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.Date;
import java.util.LinkedHashSet;
import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate;
/**
@ -40,15 +37,14 @@ import static org.tasks.date.DateTimeUtils.newDate;
*/
public final class AlarmControlSet extends TaskEditControlSet {
@Inject AlarmService alarmService;
private final AlarmService alarmService;
private LinearLayout alertsContainer;
private DateAndTimeDialog pickerDialog;
public AlarmControlSet(Activity activity, int layout) {
public AlarmControlSet(AlarmService alarmService, Activity activity, int layout) {
super(activity, layout);
((Injector) activity.getApplication()).inject(this);
this.alarmService = alarmService;
}
@Override

@ -41,6 +41,8 @@ public class BackupPreferences extends InjectingTodorooPreferenceActivity {
private int statusColor = Color.BLACK;
@Inject Preferences preferences;
@Inject TasksXmlImporter xmlImporter;
@Inject TasksXmlExporter xmlExporter;
@Override
public int getPreferenceResource() {
@ -77,7 +79,7 @@ public class BackupPreferences extends InjectingTodorooPreferenceActivity {
findPreference(getString(R.string.backup_BAc_export)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
TasksXmlExporter.exportTasks(BackupPreferences.this, TasksXmlExporter.ExportType.EXPORT_TYPE_MANUAL, null);
xmlExporter.exportTasks(TasksXmlExporter.ExportType.EXPORT_TYPE_MANUAL, null);
return true;
}
});
@ -147,13 +149,12 @@ public class BackupPreferences extends InjectingTodorooPreferenceActivity {
FilePickerBuilder.OnFilePickedListener listener = new FilePickerBuilder.OnFilePickedListener() {
@Override
public void onFilePicked(String filePath) {
TasksXmlImporter.importTasks(BackupPreferences.this, filePath,
new Runnable() {
@Override
public void run() {
Flags.set(Flags.REFRESH);
}
});
xmlImporter.importTasks(filePath, new Runnable() {
@Override
public void run() {
Flags.set(Flags.REFRESH);
}
});
}
};
new FilePickerBuilder(this,

@ -7,7 +7,6 @@ package com.todoroo.astrid.backup;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
@ -18,16 +17,19 @@ import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import org.tasks.R;
import org.tasks.injection.InjectingService;
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.Comparator;
import javax.inject.Inject;
/**
* Inspired heavily by SynchronizationService
*/
public class BackupService extends Service {
public class BackupService extends InjectingService {
private static final String TAG = "BackupService";
@ -46,6 +48,8 @@ public class BackupService extends Service {
public static final String BACKUP_FILE_NAME_REGEX = "auto\\.[-\\d]+\\.xml"; //$NON-NLS-1$
private static final int DAYS_TO_KEEP_BACKUP = 7;
@Inject TasksXmlExporter xmlExporter;
@Override
public IBinder onBind(Intent intent) {
return null;
@ -83,7 +87,7 @@ public class BackupService extends Service {
Log.e("error-deleting", "Error deleting old backups", e); //$NON-NLS-1$ //$NON-NLS-2$
}
TasksXmlExporter.exportTasks(context, TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE,
xmlExporter.exportTasks(TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE,
backupDirectorySetting.getBackupDirectory());
} catch (Exception e) {

@ -31,7 +31,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.R;
import org.tasks.injection.Injector;
import org.tasks.preferences.Preferences;
import org.xmlpull.v1.XmlSerializer;
@ -41,24 +40,14 @@ import java.io.IOException;
import javax.inject.Inject;
import static org.tasks.injection.TasksModule.ForApplication;
public class TasksXmlExporter {
private static final String TAG = "TasksXmlExporter";
// --- public interface
/**
* Import tasks from the given file
*
* @param context context
* @param exportType from service, manual, or on upgrade
* @param backupDirectoryOverride new backupdirectory, or null to use default
*/
public static void exportTasks(Context context, ExportType exportType,
File backupDirectoryOverride) {
new TasksXmlExporter(context, exportType, backupDirectoryOverride);
}
public static enum ExportType {
EXPORT_TYPE_SERVICE,
EXPORT_TYPE_MANUAL,
@ -67,22 +56,21 @@ public class TasksXmlExporter {
// --- implementation
@Inject TagDataService tagDataService;
@Inject MetadataService metadataService;
@Inject TaskService taskService;
@Inject Preferences preferences;
private final TagDataService tagDataService;
private final MetadataService metadataService;
private final TaskService taskService;
private final Preferences preferences;
private final Context context;
// 3 is started on Version 4.6.10
private static final int FORMAT = 3;
private final Context context;
private int exportCount = 0;
private XmlSerializer xml;
private final ProgressDialog progressDialog;
private final Handler handler;
private final File backupDirectory;
private final String latestSetVersionName;
private ProgressDialog progressDialog;
private Handler handler;
private File backupDirectory;
private String latestSetVersionName;
private void setProgress(final int taskNumber, final int total) {
handler.post(new Runnable() {
@ -94,10 +82,16 @@ public class TasksXmlExporter {
});
}
private TasksXmlExporter(final Context context, final ExportType exportType, File backupDirectoryOverride) {
((Injector) context.getApplicationContext()).inject(this);
@Inject
public TasksXmlExporter(@ForApplication Context context, TagDataService tagDataService, MetadataService metadataService, TaskService taskService, Preferences preferences) {
this.context = context;
this.tagDataService = tagDataService;
this.metadataService = metadataService;
this.taskService = taskService;
this.preferences = preferences;
}
public void exportTasks(final ExportType exportType, File backupDirectoryOverride) {
this.exportCount = 0;
this.backupDirectory = backupDirectoryOverride == null ?
BackupConstants.defaultExportDirectory() : backupDirectoryOverride;

@ -41,7 +41,6 @@ import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import org.tasks.R;
import org.tasks.injection.Injector;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
@ -53,37 +52,28 @@ import java.util.LinkedHashSet;
import java.util.StringTokenizer;
import javax.inject.Inject;
import javax.inject.Singleton;
import static org.tasks.injection.TasksModule.ForApplication;
public class TasksXmlImporter {
private static final String TAG = "TasksXmlImporter";
// --- public interface
/**
* Import tasks from the given file
*/
public static void importTasks(Context context, String input, Runnable runAfterImport) {
new TasksXmlImporter(context, input, runAfterImport);
}
// --- implementation
@Inject TagDataService tagDataService;
@Inject TagService tagService;
@Inject MetadataService metadataService;
@Inject TaskService taskService;
private final TagDataService tagDataService;
private final TagService tagService;
private final MetadataService metadataService;
private final TaskService taskService;
private final Context context;
private final Handler handler;
private Handler handler;
private int taskCount;
private int importCount = 0;
private int skipCount = 0;
private int errorCount = 0;
private final String input;
private final Context context;
private final ProgressDialog progressDialog;
private final Runnable runAfterImport;
private ProgressDialog progressDialog;
private Runnable runAfterImport;
private String input;
private void setProgressMessage(final String message) {
handler.post(new Runnable() {
@ -94,15 +84,21 @@ public class TasksXmlImporter {
});
}
@Inject
public TasksXmlImporter(@ForApplication Context context, TagDataService tagDataService, TagService tagService, MetadataService metadataService, TaskService taskService) {
this.context = context;
this.tagDataService = tagDataService;
this.tagService = tagService;
this.metadataService = metadataService;
this.taskService = taskService;
}
/**
* Import tasks.
* @param runAfterImport optional runnable after import
*/
private TasksXmlImporter(final Context context, String input, Runnable runAfterImport) {
((Injector) context.getApplicationContext()).inject(this);
public void importTasks(String input, Runnable runAfterImport) {
this.input = input;
this.context = context;
this.runAfterImport = runAfterImport;
handler = new Handler();

@ -69,7 +69,7 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
}
private Filter[] buildSavedFilters(Context context, Resources r) {
((Injector) context.getApplicationContext()).inject(this);
((Injector) context.getApplicationContext()).inject(this); // TODO: get rid of this
int themeFlags = ThemeService.getFilterThemeFlags();

@ -41,26 +41,21 @@ import com.todoroo.astrid.voice.RecognizerApi;
import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler;
import org.tasks.R;
import org.tasks.injection.Injector;
import java.io.File;
import java.util.ArrayList;
import javax.inject.Inject;
public class FilesControlSet extends PopupControlSet {
@Inject TaskAttachmentDao taskAttachmentDao;
private final ArrayList<TaskAttachment> files = new ArrayList<>();
private final LinearLayout fileDisplayList;
private final LayoutInflater inflater;
private final ImageView image;
private final TaskAttachmentDao taskAttachmentDao;
public FilesControlSet(Activity activity, int viewLayout, int displayViewLayout, int title) {
public FilesControlSet(TaskAttachmentDao taskAttachmentDao, Activity activity, int viewLayout, int displayViewLayout, int title) {
super(activity, viewLayout, displayViewLayout, title);
((Injector) activity.getApplication()).inject(this);
this.taskAttachmentDao = taskAttachmentDao;
fileDisplayList = (LinearLayout) getDisplayView().findViewById(R.id.files_list);
image = (ImageView) getDisplayView().findViewById(R.id.display_row_icon);
inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

@ -33,13 +33,10 @@ import com.todoroo.astrid.ui.PopupControlSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.ArrayList;
import java.util.Collections;
import javax.inject.Inject;
/**
* Control Set for managing repeats
*
@ -52,7 +49,7 @@ public class GCalControlSet extends PopupControlSet {
// --- instance variables
@Inject GCalHelper gcal;
private final GCalHelper gcal;
private Uri calendarUri = null;
@ -62,11 +59,9 @@ public class GCalControlSet extends PopupControlSet {
private final int title;
private final ImageView image;
public GCalControlSet(final Activity activity, int viewLayout, int displayViewLayout, int title) {
public GCalControlSet(GCalHelper gcal, final Activity activity, int viewLayout, int displayViewLayout, int title) {
super(activity, viewLayout, displayViewLayout, title);
((Injector)activity.getApplication()).inject(this);
this.gcal = gcal;
this.title = title;
calendars = Calendars.getCalendars();
getView(); // Hack to force initialized

@ -87,7 +87,7 @@ public class GtasksFilterExposer extends BroadcastReceiver implements AstridFilt
}
private FilterListItem[] prepareFilters(Context context) {
((Injector) context.getApplicationContext()).inject(this);
((Injector) context.getApplicationContext()).inject(this); // TODO: get rid of this
// if we aren't logged in (or we are logged in to astrid.com), don't expose features
if(!gtasksPreferenceService.isLoggedIn()) {

@ -19,6 +19,7 @@ import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.ProgressBarSyncResultCallback;
@ -46,6 +47,7 @@ public class GtasksListFragment extends SubtasksListFragment {
@Inject GtasksMetadataService gtasksMetadataService;
@Inject SyncV2Service syncService;
@Inject @ForActivity Context context;
@Inject TaskAttachmentDao taskAttachmentDao;
private StoreObject list;
@ -60,7 +62,7 @@ public class GtasksListFragment extends SubtasksListFragment {
@Override
protected OrderedListFragmentHelperInterface<?> createFragmentHelper() {
return new OrderedMetadataListFragmentHelper<>(taskService, metadataService, this, gtasksTaskListUpdater);
return new OrderedMetadataListFragmentHelper<>(taskAttachmentDao, taskService, metadataService, this, gtasksTaskListUpdater);
}
@Override

@ -78,13 +78,14 @@ public class StartupService {
private final GtasksSyncService gtasksSyncService;
private final MetadataService metadataService;
private final Preferences preferences;
private final TasksXmlImporter xmlImporter;
@Inject
public StartupService(UpgradeService upgradeService, TaskService taskService,
TagDataDao tagDataDao, Database database,
GtasksPreferenceService gtasksPreferenceService,
GtasksSyncService gtasksSyncService, MetadataService metadataService,
Preferences preferences) {
Preferences preferences, TasksXmlImporter xmlImporter) {
this.upgradeService = upgradeService;
this.taskService = taskService;
this.tagDataDao = tagDataDao;
@ -93,6 +94,7 @@ public class StartupService {
this.gtasksSyncService = gtasksSyncService;
this.metadataService = metadataService;
this.preferences = preferences;
this.xmlImporter = xmlImporter;
}
/**
@ -264,7 +266,7 @@ public class StartupService {
File[] children = directory.listFiles();
AndroidUtilities.sortFilesByDateDesc(children);
if(children.length > 0) {
TasksXmlImporter.importTasks(context, children[0].getAbsolutePath(), null);
xmlImporter.importTasks(children[0].getAbsolutePath(), null);
}
}
} catch (Exception e) {

@ -24,6 +24,7 @@ import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
@ -45,13 +46,15 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
private final DisplayMetrics metrics = new DisplayMetrics();
private final AstridOrderedListUpdater<LIST> updater;
private final TaskListFragment fragment;
private final TaskAttachmentDao taskAttachmentDao;
private final TaskService taskService;
private DraggableTaskAdapter taskAdapter;
private LIST list;
public AstridOrderedListFragmentHelper(TaskService taskService, TaskListFragment fragment, AstridOrderedListUpdater<LIST> updater) {
public AstridOrderedListFragmentHelper(TaskAttachmentDao taskAttachmentDao, TaskService taskService, TaskListFragment fragment, AstridOrderedListUpdater<LIST> updater) {
this.taskAttachmentDao = taskAttachmentDao;
this.taskService = taskService;
this.fragment = fragment;
this.updater = updater;
@ -207,7 +210,7 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
private DraggableTaskAdapter(TaskListFragment activity, int resource,
Cursor c, AtomicReference<String> query) {
super(taskService, activity, resource, c, query, null);
super(taskAttachmentDao, taskService, activity, resource, c, query, null);
}
@Override

@ -26,6 +26,7 @@ import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
@ -51,6 +52,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
private final OrderedMetadataListUpdater<LIST> updater;
private final TaskListFragment fragment;
private final TaskAttachmentDao taskAttachmentDao;
private final TaskService taskService;
private final MetadataService metadataService;
@ -58,7 +60,8 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
private LIST list;
public OrderedMetadataListFragmentHelper(TaskService taskService, MetadataService metadataService, TaskListFragment fragment, OrderedMetadataListUpdater<LIST> updater) {
public OrderedMetadataListFragmentHelper(TaskAttachmentDao taskAttachmentDao, TaskService taskService, MetadataService metadataService, TaskListFragment fragment, OrderedMetadataListUpdater<LIST> updater) {
this.taskAttachmentDao = taskAttachmentDao;
this.taskService = taskService;
this.metadataService = metadataService;
this.fragment = fragment;
@ -219,7 +222,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
private DraggableTaskAdapter(TaskListFragment activity, int resource,
Cursor c, AtomicReference<String> query) {
super(taskService, activity, resource, c, query, null);
super(taskAttachmentDao, taskService, activity, resource, c, query, null);
}
@Override

@ -12,6 +12,7 @@ import android.view.ViewGroup;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService;
@ -34,6 +35,7 @@ public class SubtasksListFragment extends TaskListFragment {
@Inject TaskService taskService;
@Inject SubtasksFilterUpdater subtasksFilterUpdater;
@Inject TaskAttachmentDao taskAttachmentDao;
@Override
public void onAttach(Activity activity) {
@ -43,7 +45,7 @@ public class SubtasksListFragment extends TaskListFragment {
}
protected OrderedListFragmentHelperInterface<?> createFragmentHelper() {
return new AstridOrderedListFragmentHelper<>(taskService, this, subtasksFilterUpdater);
return new AstridOrderedListFragmentHelper<>(taskAttachmentDao, taskService, this, subtasksFilterUpdater);
}
@Override

@ -12,6 +12,7 @@ import android.view.ViewGroup;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService;
@ -24,6 +25,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
@Inject TaskService taskService;
@Inject SubtasksFilterUpdater subtasksFilterUpdater;
@Inject TaskAttachmentDao taskAttachmentDao;
private AstridOrderedListFragmentHelper<TaskListMetadata> helper;
@ -33,7 +35,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
public void onAttach(Activity activity) {
super.onAttach(activity);
helper = new AstridOrderedListFragmentHelper<>(taskService, this, subtasksFilterUpdater);
helper = new AstridOrderedListFragmentHelper<>(taskAttachmentDao, taskService, this, subtasksFilterUpdater);
}
@Override

@ -124,7 +124,7 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE
}
private FilterListItem[] prepareFilters(Context context) {
((Injector) context.getApplicationContext()).inject(this);
((Injector) context.getApplicationContext()).inject(this); // TODO: get rid of this
ContextManager.setContext(context);

@ -34,14 +34,11 @@ import com.todoroo.astrid.ui.PopupControlSet;
import com.todoroo.astrid.utility.Flags;
import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashSet;
import javax.inject.Inject;
/**
* Control set to manage adding and removing tags
*
@ -65,11 +62,11 @@ public final class TagsControlSet extends PopupControlSet {
//private final LinearLayout tagsContainer;
private final TextView tagsDisplay;
@Inject TagService tagService;
private final TagService tagService;
public TagsControlSet(Activity activity, int viewLayout, int displayViewLayout, int title) {
public TagsControlSet(TagService tagService, Activity activity, int viewLayout, int displayViewLayout, int title) {
super(activity, viewLayout, displayViewLayout, title);
((Injector) activity.getApplication()).inject(this);
this.tagService = tagService;
tagsDisplay = (TextView) getDisplayView().findViewById(R.id.display_row_edit);
image = (ImageView) getDisplayView().findViewById(R.id.display_row_icon);
}

@ -21,27 +21,20 @@ import com.todoroo.astrid.helper.TaskEditControlSet;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.LinkedList;
import java.util.List;
import javax.inject.Inject;
public class TimerActionControlSet extends TaskEditControlSet {
@Inject TaskService taskService;
private final ImageView timerButton;
private final Chronometer chronometer;
private boolean timerActive;
private final List<TimerActionListener> listeners = new LinkedList<>();
public TimerActionControlSet(final Activity activity, View parent) {
public TimerActionControlSet(final TaskService taskService, final Activity activity, View parent) {
super(activity, -1);
((Injector) activity.getApplication()).inject(this);
LinearLayout timerContainer = (LinearLayout) parent.findViewById(R.id.timer_container);
timerButton = (ImageView) parent.findViewById(R.id.timer_button);
OnClickListener timerListener = new OnClickListener() {

@ -49,8 +49,7 @@ public final class TimerFilterExposer extends BroadcastReceiver implements Astri
}
private FilterListItem[] prepareFilters(Context context) {
// TODO: get rid of this
((Injector) context.getApplicationContext()).inject(this);
((Injector) context.getApplicationContext()).inject(this); // TODO: get rid of this
if(taskService.count(Query.select(Task.ID).
where(Task.TIMER_START.gt(0))) == 0) {

@ -25,9 +25,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.ui.ImportanceControlSet.ImportanceChangedListener;
import org.tasks.R;
import org.tasks.injection.Injector;
import javax.inject.Inject;
/**
* Control set for mapping a Property to an EditText
@ -42,11 +39,11 @@ public class EditTitleControlSet extends TaskEditControlSet implements Importanc
private boolean isRepeating;
private int importanceValue;
@Inject TaskService taskService;
private final TaskService taskService;
public EditTitleControlSet(Activity activity, int layout, int editText) {
public EditTitleControlSet(TaskService taskService, Activity activity, int layout, int editText) {
super(activity, layout);
((Injector) activity.getApplication()).inject(this);
this.taskService = taskService;
this.editTextId = editText;
}

@ -98,7 +98,7 @@ public class QuickAddBar extends LinearLayout {
public void initialize(AstridActivity myActivity, TaskListFragment myFragment,
final OnTaskListItemClickedListener mListener) {
((Injector) myActivity.getApplication()).inject(this);
((Injector) myActivity.getApplication()).inject(this); // TODO: get rid of this
activity = myActivity;
fragment = myFragment;
@ -210,7 +210,7 @@ public class QuickAddBar extends LinearLayout {
R.layout.control_set_repeat,
R.layout.control_set_repeat_display, R.string.repeat_enabled);
gcalControl = new GCalControlSet(activity,
gcalControl = new GCalControlSet(gcalHelper, activity,
R.layout.control_set_gcal, R.layout.control_set_gcal_display,
R.string.gcal_TEA_addToCalendar_label);

@ -18,6 +18,7 @@ import android.widget.Spinner;
import android.widget.TextView;
import com.todoroo.astrid.alarms.AlarmControlSet;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.ThemeService;
@ -43,9 +44,11 @@ public class ReminderControlSet extends PopupControlSet {
private RandomReminderControlSet randomControlSet;
private AlarmControlSet alarmControl;
private final AlarmService alarmService;
public ReminderControlSet(Activity activity, int viewLayout, int displayViewLayout) {
public ReminderControlSet(AlarmService alarmService, Activity activity, int viewLayout, int displayViewLayout) {
super(activity, viewLayout, displayViewLayout, R.string.TEA_reminders_group_label);
this.alarmService = alarmService;
extraViews = new ArrayList<>();
label = (TextView) getDisplayView().findViewById(R.id.display_row_edit);
@ -109,7 +112,7 @@ public class ReminderControlSet extends PopupControlSet {
});
randomControlSet = new RandomReminderControlSet(activity, getView(), -1);
alarmControl = new AlarmControlSet(activity, R.layout.control_set_alarms);
alarmControl = new AlarmControlSet(alarmService, activity, R.layout.control_set_alarms);
alarmControl.readFromTask(model);
remindersBody = (LinearLayout) getView().findViewById(R.id.reminders_body);

@ -24,6 +24,7 @@ import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListActivity;
import org.tasks.widget.WidgetHelper;
@ -43,6 +44,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
FilterAdapter adapter = null;
@Inject WidgetHelper widgetHelper;
@Inject FilterCounter filterCounter;
private void updateWidget() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
@ -85,7 +87,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
}
// set up ui
adapter = new FilterAdapter(this, getListView(),
adapter = new FilterAdapter(filterCounter, this, getListView(),
R.layout.filter_adapter_row, true, true);
adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget;
setListAdapter(adapter);
@ -167,5 +169,4 @@ public class WidgetConfigActivity extends InjectingListActivity {
}
}
}
}

@ -5,9 +5,11 @@ import android.content.Context;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.activity.EditPreferences;
import com.todoroo.astrid.activity.FilterShortcutActivity;
import com.todoroo.astrid.activity.ShareLinkActivity;
import com.todoroo.astrid.activity.TaskEditActivity;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.backup.BackupPreferences;
import com.todoroo.astrid.calls.MissedCallActivity;
import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.CustomFilterExposer;
@ -38,27 +40,28 @@ import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true,
injects = {
TaskListActivity.class,
TaskEditActivity.class,
ShareLinkActivity.class,
TagSettingsActivity.class,
CustomFilterActivity.class,
MissedCallActivity.class,
CalendarAlarmListCreator.class,
CustomFilterExposer.DeleteActivity.class,
CalendarReminderActivity.class,
GtasksListAdder.class,
TagFilterExposer.DeleteTagActivity.class,
TagFilterExposer.RenameTagActivity.class,
VoiceCommandActivity.class,
GtasksLoginActivity.class,
WidgetConfigActivity.class,
EditPreferences.class,
GtasksPreferences.class,
OldTaskPreferences.class
})
@Module(injects = {
TaskListActivity.class,
TaskEditActivity.class,
ShareLinkActivity.class,
TagSettingsActivity.class,
CustomFilterActivity.class,
MissedCallActivity.class,
CalendarAlarmListCreator.class,
CustomFilterExposer.DeleteActivity.class,
CalendarReminderActivity.class,
GtasksListAdder.class,
TagFilterExposer.DeleteTagActivity.class,
TagFilterExposer.RenameTagActivity.class,
VoiceCommandActivity.class,
GtasksLoginActivity.class,
WidgetConfigActivity.class,
EditPreferences.class,
GtasksPreferences.class,
OldTaskPreferences.class,
BackupPreferences.class,
FilterShortcutActivity.class
})
public class ActivityModule {
private final Context context;

@ -28,26 +28,25 @@ import dagger.Provides;
import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true,
injects = {
RefreshBroadcastReceiver.class,
TasksWidget.class,
Notifications.class,
GtasksCustomFilterCriteriaExposer.class,
GtasksDetailExposer.class,
GlobalEventReceiver.class,
TagDetailExposer.class,
TagCustomFilterCriteriaExposer.class,
NotesDetailExposer.class,
GCalTaskCompleteListener.class,
RepeatDetailExposer.class,
TimerTaskCompleteListener.class,
RepeatTaskCompleteListener.class,
AlarmTaskRepeatListener.class,
AlarmDetailExposer.class,
GtasksStartupReceiver.class,
PhoneStateChangedReceiver.class
})
@Module(injects = {
RefreshBroadcastReceiver.class,
TasksWidget.class,
Notifications.class,
GtasksCustomFilterCriteriaExposer.class,
GtasksDetailExposer.class,
GlobalEventReceiver.class,
TagDetailExposer.class,
TagCustomFilterCriteriaExposer.class,
NotesDetailExposer.class,
GCalTaskCompleteListener.class,
RepeatDetailExposer.class,
TimerTaskCompleteListener.class,
RepeatTaskCompleteListener.class,
AlarmTaskRepeatListener.class,
AlarmDetailExposer.class,
GtasksStartupReceiver.class,
PhoneStateChangedReceiver.class
})
public class BroadcastModule {
private final Context context;

@ -13,12 +13,11 @@ import dagger.Provides;
import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true,
injects = {
Astrid2TaskProvider.class,
Astrid3ContentProvider.class,
SqlContentProvider.class
})
@Module(injects = {
Astrid2TaskProvider.class,
Astrid3ContentProvider.class,
SqlContentProvider.class
})
public class ContentProviderModule {
private final Context context;

@ -5,6 +5,7 @@ import android.content.Context;
import com.todoroo.astrid.actfm.TagCommentsFragment;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.activity.FilterListFragment;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.gtasks.GtasksListFragment;
@ -20,17 +21,17 @@ import dagger.Provides;
import static org.tasks.injection.ActivityModule.ForActivity;
import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true,
injects = {
TaskListFragment.class,
GtasksListFragment.class,
NotificationFragment.class,
SubtasksListFragment.class,
SubtasksTagListFragment.class,
TagViewFragment.class,
TaskEditFragment.class,
TagCommentsFragment.class
})
@Module(injects = {
TaskListFragment.class,
GtasksListFragment.class,
NotificationFragment.class,
SubtasksListFragment.class,
SubtasksTagListFragment.class,
TagViewFragment.class,
TaskEditFragment.class,
TagCommentsFragment.class,
FilterListFragment.class
})
public class FragmentModule {
private final Activity activity;

@ -3,6 +3,7 @@ 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;
@ -15,12 +16,12 @@ import dagger.Provides;
import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true,
injects = {
GtasksBackgroundService.class,
ReminderSchedulingService.class,
ScrollableWidgetUpdateService.class
})
@Module(injects = {
GtasksBackgroundService.class,
ReminderSchedulingService.class,
ScrollableWidgetUpdateService.class,
BackupService.class
})
public class ServiceModule {
private final Context context;

@ -3,23 +3,12 @@ package org.tasks.injection;
import android.app.Application;
import android.content.Context;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.alarms.AlarmControlSet;
import com.todoroo.astrid.backup.TasksXmlExporter;
import com.todoroo.astrid.backup.TasksXmlImporter;
import com.todoroo.astrid.core.CustomFilterExposer;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.gtasks.GtasksFilterExposer;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagsControlSet;
import com.todoroo.astrid.timers.TimerActionControlSet;
import com.todoroo.astrid.timers.TimerFilterExposer;
import com.todoroo.astrid.ui.EditTitleControlSet;
import com.todoroo.astrid.ui.QuickAddBar;
import org.tasks.widget.ScrollableViewsFactory;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@ -35,24 +24,13 @@ import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Module(
injects = {
ScrollableViewsFactory.class,
QuickAddBar.class,
EditTitleControlSet.class,
FilesControlSet.class,
TagsControlSet.class,
AlarmControlSet.class,
FilterAdapter.class,
TimerFilterExposer.class,
GCalControlSet.class,
TimerActionControlSet.class,
CustomFilterExposer.class,
GtasksFilterExposer.class,
TagFilterExposer.class,
TasksXmlExporter.class,
TasksXmlImporter.class
}
@Module(injects = {
QuickAddBar.class,
TimerFilterExposer.class,
CustomFilterExposer.class,
GtasksFilterExposer.class,
TagFilterExposer.class
}
)
public class TasksModule {

Loading…
Cancel
Save