Remove injection sites

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

@ -16,7 +16,6 @@ import android.content.IntentFilter;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyEvent; import android.view.KeyEvent;
@ -43,6 +42,10 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import org.tasks.R; 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 * 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> * @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$ public static final String TAG_FILTERLIST_FRAGMENT = "filterlist_fragment"; //$NON-NLS-1$
@ -77,6 +80,8 @@ public class FilterListFragment extends ListFragment {
private OnFilterItemClickedListener mListener; private OnFilterItemClickedListener mListener;
@Inject FilterCounter filterCounter;
/* ====================================================================== /* ======================================================================
* ======================================================= initialization * ======================================================= initialization
* ====================================================================== */ * ====================================================================== */
@ -94,17 +99,13 @@ public class FilterListFragment extends ListFragment {
// Check that the container activity has implemented the callback interface // Check that the container activity has implemented the callback interface
try { try {
mListener = (OnFilterItemClickedListener) activity; mListener = (OnFilterItemClickedListener) activity;
adapter = instantiateAdapter(); adapter = new FilterAdapter(filterCounter, getActivity(), null, R.layout.filter_adapter_row, false, false);
} catch (ClassCastException e) { } catch (ClassCastException e) {
throw new ClassCastException(activity.toString() throw new ClassCastException(activity.toString()
+ " must implement OnFilterItemClickedListener"); //$NON-NLS-1$ + " must implement OnFilterItemClickedListener"); //$NON-NLS-1$
} }
} }
private FilterAdapter instantiateAdapter() {
return new FilterAdapter(getActivity(), null, R.layout.filter_adapter_row, false, false);
}
/* (non-Javadoc) /* (non-Javadoc)
* @see com.todoroo.astrid.fragment.ExpandableListFragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) * @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; package com.todoroo.astrid.activity;
import android.app.ListActivity;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Bundle; import android.os.Bundle;
@ -19,8 +18,14 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.ThemeService;
import org.tasks.R; 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; private FilterAdapter adapter = null;
@ -36,7 +41,7 @@ public class FilterShortcutActivity extends ListActivity {
setContentView(R.layout.widget_config_activity); setContentView(R.layout.widget_config_activity);
// set up ui // set up ui
adapter = new FilterAdapter(this, getListView(), adapter = new FilterAdapter(filterCounter, this, getListView(),
R.layout.filter_adapter_row, true, true); R.layout.filter_adapter_row, true, true);
adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget; adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget;
setListAdapter(adapter); setListAdapter(adapter);

@ -47,6 +47,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.ActFmCameraModule; import com.todoroo.astrid.actfm.ActFmCameraModule;
import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback; import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.dao.TaskAttachmentDao; import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.UserActivityDao; import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.data.RemoteModel; 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.FileUtilities;
import com.todoroo.astrid.files.FilesControlSet; import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.gcal.GCalControlSet; import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.helper.TaskEditControlSet; import com.todoroo.astrid.helper.TaskEditControlSet;
import com.todoroo.astrid.notes.EditNoteActivity; import com.todoroo.astrid.notes.EditNoteActivity;
import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.Notifications;
@ -177,6 +179,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
@Inject MetadataService metadataService; @Inject MetadataService metadataService;
@Inject UserActivityDao userActivityDao; @Inject UserActivityDao userActivityDao;
@Inject TaskDeleter taskDeleter; @Inject TaskDeleter taskDeleter;
@Inject AlarmService alarmService;
@Inject GCalHelper gcalHelper;
// --- UI components // --- UI components
@ -354,19 +358,17 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
controlSetMap = new HashMap<>(); controlSetMap = new HashMap<>();
// populate control set // populate control set
EditTitleControlSet editTitle = new EditTitleControlSet(getActivity(), EditTitleControlSet editTitle = new EditTitleControlSet(taskService, getActivity(),
R.layout.control_set_title, R.id.title); R.layout.control_set_title, R.id.title);
title = (EditText) editTitle.getView().findViewById(R.id.title); title = (EditText) editTitle.getView().findViewById(R.id.title);
controls.add(editTitle); controls.add(editTitle);
titleControls.addView(editTitle.getDisplayView(), 0, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1.0f)); titleControls.addView(editTitle.getDisplayView(), 0, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
timerAction = new TimerActionControlSet( timerAction = new TimerActionControlSet(taskService, getActivity(), getView());
getActivity(), getView());
controls.add(timerAction); controls.add(timerAction);
TagsControlSet tagsControlSet = new TagsControlSet(getActivity(), TagsControlSet tagsControlSet = new TagsControlSet(tagService, getActivity(),
R.layout.control_set_tags, R.layout.control_set_tags, R.layout.control_set_default_display, R.string.TEA_tags_label_long);
R.layout.control_set_default_display, R.string.TEA_tags_label_long);
controls.add(tagsControlSet); controls.add(tagsControlSet);
controlSetMap.put(getString(R.string.TEA_ctrl_lists_pref), controlSetMap.put(getString(R.string.TEA_ctrl_lists_pref),
tagsControlSet); tagsControlSet);
@ -375,7 +377,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
R.layout.control_set_repeat, R.layout.control_set_repeat,
R.layout.control_set_repeat_display, R.string.repeat_enabled); 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.layout.control_set_gcal, R.layout.control_set_gcal_display,
R.string.gcal_TEA_addToCalendar_label); R.string.gcal_TEA_addToCalendar_label);
@ -412,7 +414,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
notesControlSet); notesControlSet);
ReminderControlSet reminderControl = new ReminderControlSet( ReminderControlSet reminderControl = new ReminderControlSet(
getActivity(), R.layout.control_set_reminders, alarmService, getActivity(), R.layout.control_set_reminders,
R.layout.control_set_default_display); R.layout.control_set_default_display);
controls.add(reminderControl); controls.add(reminderControl);
controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref), controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref),
@ -436,10 +438,8 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
controls.add(timerControl); controls.add(timerControl);
controlSetMap.put(getString(R.string.TEA_ctrl_timer_pref), timerControl); controlSetMap.put(getString(R.string.TEA_ctrl_timer_pref), timerControl);
filesControlSet = new FilesControlSet(getActivity(), filesControlSet = new FilesControlSet(taskAttachmentDao, getActivity(),
R.layout.control_set_files, R.layout.control_set_files, R.layout.control_set_files_display, R.string.TEA_control_files);
R.layout.control_set_files_display,
R.string.TEA_control_files);
controls.add(filesControlSet); controls.add(filesControlSet);
controlSetMap.put(getString(R.string.TEA_ctrl_files_pref), 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.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.CoreFilterExposer; import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao; import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
@ -146,6 +147,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
@Inject TaskDuplicator taskDuplicator; @Inject TaskDuplicator taskDuplicator;
@Inject @ForActivity Context context; @Inject @ForActivity Context context;
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject TaskAttachmentDao taskAttachmentDao;
protected Resources resources; protected Resources resources;
protected TaskAdapter taskAdapter = null; protected TaskAdapter taskAdapter = null;
@ -751,7 +753,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) { 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, cursor, sqlQueryTemplate,
new OnCompletedTaskListener() { new OnCompletedTaskListener() {
@Override @Override

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

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

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

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

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

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

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

@ -69,7 +69,7 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
} }
private Filter[] buildSavedFilters(Context context, Resources r) { 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(); int themeFlags = ThemeService.getFilterThemeFlags();

@ -41,26 +41,21 @@ import com.todoroo.astrid.voice.RecognizerApi;
import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler; import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.Injector;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import javax.inject.Inject;
public class FilesControlSet extends PopupControlSet { public class FilesControlSet extends PopupControlSet {
@Inject TaskAttachmentDao taskAttachmentDao;
private final ArrayList<TaskAttachment> files = new ArrayList<>(); private final ArrayList<TaskAttachment> files = new ArrayList<>();
private final LinearLayout fileDisplayList; private final LinearLayout fileDisplayList;
private final LayoutInflater inflater; private final LayoutInflater inflater;
private final ImageView image; 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); super(activity, viewLayout, displayViewLayout, title);
((Injector) activity.getApplication()).inject(this); this.taskAttachmentDao = taskAttachmentDao;
fileDisplayList = (LinearLayout) getDisplayView().findViewById(R.id.files_list); fileDisplayList = (LinearLayout) getDisplayView().findViewById(R.id.files_list);
image = (ImageView) getDisplayView().findViewById(R.id.display_row_icon); image = (ImageView) getDisplayView().findViewById(R.id.display_row_icon);
inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import javax.inject.Inject;
/** /**
* Control Set for managing repeats * Control Set for managing repeats
* *
@ -52,7 +49,7 @@ public class GCalControlSet extends PopupControlSet {
// --- instance variables // --- instance variables
@Inject GCalHelper gcal; private final GCalHelper gcal;
private Uri calendarUri = null; private Uri calendarUri = null;
@ -62,11 +59,9 @@ public class GCalControlSet extends PopupControlSet {
private final int title; private final int title;
private final ImageView image; 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); super(activity, viewLayout, displayViewLayout, title);
this.gcal = gcal;
((Injector)activity.getApplication()).inject(this);
this.title = title; this.title = title;
calendars = Calendars.getCalendars(); calendars = Calendars.getCalendars();
getView(); // Hack to force initialized getView(); // Hack to force initialized

@ -87,7 +87,7 @@ public class GtasksFilterExposer extends BroadcastReceiver implements AstridFilt
} }
private FilterListItem[] prepareFilters(Context context) { 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 we aren't logged in (or we are logged in to astrid.com), don't expose features
if(!gtasksPreferenceService.isLoggedIn()) { if(!gtasksPreferenceService.isLoggedIn()) {

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

@ -78,13 +78,14 @@ public class StartupService {
private final GtasksSyncService gtasksSyncService; private final GtasksSyncService gtasksSyncService;
private final MetadataService metadataService; private final MetadataService metadataService;
private final Preferences preferences; private final Preferences preferences;
private final TasksXmlImporter xmlImporter;
@Inject @Inject
public StartupService(UpgradeService upgradeService, TaskService taskService, public StartupService(UpgradeService upgradeService, TaskService taskService,
TagDataDao tagDataDao, Database database, TagDataDao tagDataDao, Database database,
GtasksPreferenceService gtasksPreferenceService, GtasksPreferenceService gtasksPreferenceService,
GtasksSyncService gtasksSyncService, MetadataService metadataService, GtasksSyncService gtasksSyncService, MetadataService metadataService,
Preferences preferences) { Preferences preferences, TasksXmlImporter xmlImporter) {
this.upgradeService = upgradeService; this.upgradeService = upgradeService;
this.taskService = taskService; this.taskService = taskService;
this.tagDataDao = tagDataDao; this.tagDataDao = tagDataDao;
@ -93,6 +94,7 @@ public class StartupService {
this.gtasksSyncService = gtasksSyncService; this.gtasksSyncService = gtasksSyncService;
this.metadataService = metadataService; this.metadataService = metadataService;
this.preferences = preferences; this.preferences = preferences;
this.xmlImporter = xmlImporter;
} }
/** /**
@ -264,7 +266,7 @@ public class StartupService {
File[] children = directory.listFiles(); File[] children = directory.listFiles();
AndroidUtilities.sortFilesByDateDesc(children); AndroidUtilities.sortFilesByDateDesc(children);
if(children.length > 0) { if(children.length > 0) {
TasksXmlImporter.importTasks(context, children[0].getAbsolutePath(), null); xmlImporter.importTasks(children[0].getAbsolutePath(), null);
} }
} }
} catch (Exception e) { } 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;
import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener; import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
@ -45,13 +46,15 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
private final DisplayMetrics metrics = new DisplayMetrics(); private final DisplayMetrics metrics = new DisplayMetrics();
private final AstridOrderedListUpdater<LIST> updater; private final AstridOrderedListUpdater<LIST> updater;
private final TaskListFragment fragment; private final TaskListFragment fragment;
private final TaskAttachmentDao taskAttachmentDao;
private final TaskService taskService; private final TaskService taskService;
private DraggableTaskAdapter taskAdapter; private DraggableTaskAdapter taskAdapter;
private LIST list; 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.taskService = taskService;
this.fragment = fragment; this.fragment = fragment;
this.updater = updater; this.updater = updater;
@ -207,7 +210,7 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
private DraggableTaskAdapter(TaskListFragment activity, int resource, private DraggableTaskAdapter(TaskListFragment activity, int resource,
Cursor c, AtomicReference<String> query) { Cursor c, AtomicReference<String> query) {
super(taskService, activity, resource, c, query, null); super(taskAttachmentDao, taskService, activity, resource, c, query, null);
} }
@Override @Override

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

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

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

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

@ -34,14 +34,11 @@ import com.todoroo.astrid.ui.PopupControlSet;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import javax.inject.Inject;
/** /**
* Control set to manage adding and removing tags * Control set to manage adding and removing tags
* *
@ -65,11 +62,11 @@ public final class TagsControlSet extends PopupControlSet {
//private final LinearLayout tagsContainer; //private final LinearLayout tagsContainer;
private final TextView tagsDisplay; 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); super(activity, viewLayout, displayViewLayout, title);
((Injector) activity.getApplication()).inject(this); this.tagService = tagService;
tagsDisplay = (TextView) getDisplayView().findViewById(R.id.display_row_edit); tagsDisplay = (TextView) getDisplayView().findViewById(R.id.display_row_edit);
image = (ImageView) getDisplayView().findViewById(R.id.display_row_icon); 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 com.todoroo.astrid.service.TaskService;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.Injector;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import javax.inject.Inject;
public class TimerActionControlSet extends TaskEditControlSet { public class TimerActionControlSet extends TaskEditControlSet {
@Inject TaskService taskService;
private final ImageView timerButton; private final ImageView timerButton;
private final Chronometer chronometer; private final Chronometer chronometer;
private boolean timerActive; private boolean timerActive;
private final List<TimerActionListener> listeners = new LinkedList<>(); 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); super(activity, -1);
((Injector) activity.getApplication()).inject(this);
LinearLayout timerContainer = (LinearLayout) parent.findViewById(R.id.timer_container); LinearLayout timerContainer = (LinearLayout) parent.findViewById(R.id.timer_container);
timerButton = (ImageView) parent.findViewById(R.id.timer_button); timerButton = (ImageView) parent.findViewById(R.id.timer_button);
OnClickListener timerListener = new OnClickListener() { OnClickListener timerListener = new OnClickListener() {

@ -49,8 +49,7 @@ public final class TimerFilterExposer extends BroadcastReceiver implements Astri
} }
private FilterListItem[] prepareFilters(Context context) { private FilterListItem[] prepareFilters(Context context) {
// TODO: get rid of this ((Injector) context.getApplicationContext()).inject(this); // TODO: get rid of this
((Injector) context.getApplicationContext()).inject(this);
if(taskService.count(Query.select(Task.ID). if(taskService.count(Query.select(Task.ID).
where(Task.TIMER_START.gt(0))) == 0) { 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 com.todoroo.astrid.ui.ImportanceControlSet.ImportanceChangedListener;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.Injector;
import javax.inject.Inject;
/** /**
* Control set for mapping a Property to an EditText * Control set for mapping a Property to an EditText
@ -42,11 +39,11 @@ public class EditTitleControlSet extends TaskEditControlSet implements Importanc
private boolean isRepeating; private boolean isRepeating;
private int importanceValue; 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); super(activity, layout);
((Injector) activity.getApplication()).inject(this); this.taskService = taskService;
this.editTextId = editText; this.editTextId = editText;
} }

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

@ -18,6 +18,7 @@ import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import com.todoroo.astrid.alarms.AlarmControlSet; import com.todoroo.astrid.alarms.AlarmControlSet;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.ThemeService;
@ -43,9 +44,11 @@ public class ReminderControlSet extends PopupControlSet {
private RandomReminderControlSet randomControlSet; private RandomReminderControlSet randomControlSet;
private AlarmControlSet alarmControl; 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); super(activity, viewLayout, displayViewLayout, R.string.TEA_reminders_group_label);
this.alarmService = alarmService;
extraViews = new ArrayList<>(); extraViews = new ArrayList<>();
label = (TextView) getDisplayView().findViewById(R.id.display_row_edit); label = (TextView) getDisplayView().findViewById(R.id.display_row_edit);
@ -109,7 +112,7 @@ public class ReminderControlSet extends PopupControlSet {
}); });
randomControlSet = new RandomReminderControlSet(activity, getView(), -1); 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); alarmControl.readFromTask(model);
remindersBody = (LinearLayout) getView().findViewById(R.id.reminders_body); 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 com.todoroo.astrid.service.ThemeService;
import org.tasks.R; import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListActivity; import org.tasks.injection.InjectingListActivity;
import org.tasks.widget.WidgetHelper; import org.tasks.widget.WidgetHelper;
@ -43,6 +44,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
FilterAdapter adapter = null; FilterAdapter adapter = null;
@Inject WidgetHelper widgetHelper; @Inject WidgetHelper widgetHelper;
@Inject FilterCounter filterCounter;
private void updateWidget() { private void updateWidget() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
@ -85,7 +87,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
} }
// set up ui // set up ui
adapter = new FilterAdapter(this, getListView(), adapter = new FilterAdapter(filterCounter, this, getListView(),
R.layout.filter_adapter_row, true, true); R.layout.filter_adapter_row, true, true);
adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget; adapter.filterStyle = R.style.TextAppearance_FLA_Filter_Widget;
setListAdapter(adapter); 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.actfm.TagSettingsActivity;
import com.todoroo.astrid.activity.EditPreferences; import com.todoroo.astrid.activity.EditPreferences;
import com.todoroo.astrid.activity.FilterShortcutActivity;
import com.todoroo.astrid.activity.ShareLinkActivity; import com.todoroo.astrid.activity.ShareLinkActivity;
import com.todoroo.astrid.activity.TaskEditActivity; import com.todoroo.astrid.activity.TaskEditActivity;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.backup.BackupPreferences;
import com.todoroo.astrid.calls.MissedCallActivity; import com.todoroo.astrid.calls.MissedCallActivity;
import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.core.CustomFilterExposer;
@ -38,8 +40,7 @@ import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME; import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static org.tasks.injection.TasksModule.ForApplication; import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true, @Module(injects = {
injects = {
TaskListActivity.class, TaskListActivity.class,
TaskEditActivity.class, TaskEditActivity.class,
ShareLinkActivity.class, ShareLinkActivity.class,
@ -57,7 +58,9 @@ import static org.tasks.injection.TasksModule.ForApplication;
WidgetConfigActivity.class, WidgetConfigActivity.class,
EditPreferences.class, EditPreferences.class,
GtasksPreferences.class, GtasksPreferences.class,
OldTaskPreferences.class OldTaskPreferences.class,
BackupPreferences.class,
FilterShortcutActivity.class
}) })
public class ActivityModule { public class ActivityModule {

@ -28,8 +28,7 @@ import dagger.Provides;
import static org.tasks.injection.TasksModule.ForApplication; import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true, @Module(injects = {
injects = {
RefreshBroadcastReceiver.class, RefreshBroadcastReceiver.class,
TasksWidget.class, TasksWidget.class,
Notifications.class, Notifications.class,

@ -13,8 +13,7 @@ import dagger.Provides;
import static org.tasks.injection.TasksModule.ForApplication; import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true, @Module(injects = {
injects = {
Astrid2TaskProvider.class, Astrid2TaskProvider.class,
Astrid3ContentProvider.class, Astrid3ContentProvider.class,
SqlContentProvider.class SqlContentProvider.class

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

@ -3,6 +3,7 @@ package org.tasks.injection;
import android.app.Service; import android.app.Service;
import android.content.Context; import android.content.Context;
import com.todoroo.astrid.backup.BackupService;
import com.todoroo.astrid.gtasks.GtasksBackgroundService; import com.todoroo.astrid.gtasks.GtasksBackgroundService;
import com.todoroo.astrid.reminders.ReminderSchedulingService; import com.todoroo.astrid.reminders.ReminderSchedulingService;
@ -15,11 +16,11 @@ import dagger.Provides;
import static org.tasks.injection.TasksModule.ForApplication; import static org.tasks.injection.TasksModule.ForApplication;
@Module(library = true, @Module(injects = {
injects = {
GtasksBackgroundService.class, GtasksBackgroundService.class,
ReminderSchedulingService.class, ReminderSchedulingService.class,
ScrollableWidgetUpdateService.class ScrollableWidgetUpdateService.class,
BackupService.class
}) })
public class ServiceModule { public class ServiceModule {

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

Loading…
Cancel
Save