Remove PluginServices

pull/189/head
Alex Baker 10 years ago
parent 75583efe96
commit c2846a03e1

@ -8,10 +8,11 @@ package com.todoroo.astrid.gtasks;
import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.test.DatabaseTestCase;
import java.util.ArrayList;
@ -23,6 +24,8 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private GtasksListService gtasksListService;
@Autowired private GtasksTaskListUpdater gtasksTaskListUpdater;
@Autowired private MetadataService metadataService;
@Autowired TaskService taskService;
private Task task;
private StoreObject storeList;
@ -150,13 +153,13 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
private Task taskWithMetadata(long order, int indentation) {
Task newTask = new Task();
PluginServices.getTaskService().save(newTask);
taskService.save(newTask);
Metadata metadata = GtasksMetadata.createEmptyMetadata(newTask.getId());
metadata.setValue(GtasksMetadata.INDENT, indentation);
metadata.setValue(GtasksMetadata.ORDER, order);
metadata.setValue(GtasksMetadata.LIST_ID, "list");
metadata.setTask(newTask.getId());
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
return newTask;
}
@ -178,7 +181,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
private Task taskWithoutMetadata() {
Task task = new Task();
PluginServices.getTaskService().save(task);
taskService.save(task);
return task;
}

@ -11,9 +11,10 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.test.DatabaseTestCase;
@SuppressWarnings("nls")
@ -21,6 +22,8 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase {
private final GtasksTestPreferenceService preferences = new GtasksTestPreferenceService();
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private MetadataService metadataService;
@Autowired TaskService taskService;
private Task task;
private Metadata metadata;
@ -133,12 +136,12 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase {
private Task taskWithMetadata(String id) {
Task task = new Task();
task.setTitle("cats");
PluginServices.getTaskService().save(task);
taskService.save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
if(id != null)
metadata.setValue(GtasksMetadata.ID, id);
metadata.setTask(task.getId());
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
return task;
}
@ -149,7 +152,7 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase {
private Task taskWithoutMetadata() {
Task task = new Task();
task.setTitle("dogs");
PluginServices.getTaskService().save(task);
taskService.save(task);
return task;
}

@ -8,10 +8,11 @@ package com.todoroo.astrid.gtasks;
import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.test.DatabaseTestCase;
import java.util.ArrayList;
@ -23,6 +24,8 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
@Autowired private GtasksTaskListUpdater gtasksTaskListUpdater;
@Autowired private GtasksListService gtasksListService;
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private MetadataService metadataService;
@Autowired TaskService taskService;
public void testBasicParentComputation() {
Task[] tasks = givenTasksABCDE();
@ -164,14 +167,14 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
private Task createTask(String title, long order, int indent) {
Task task = new Task();
task.setTitle(title);
PluginServices.getTaskService().save(task);
taskService.save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.LIST_ID, "1");
if(order != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.ORDER, order);
if(indent != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.INDENT, indent);
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
return task;
}

@ -8,10 +8,11 @@ package com.todoroo.astrid.gtasks;
import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.test.DatabaseTestCase;
import java.util.ArrayList;
@ -23,6 +24,8 @@ public class GtasksTaskMovingTest extends DatabaseTestCase {
@Autowired private GtasksListService gtasksListService;
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private GtasksTaskListUpdater gtasksTaskListUpdater;
@Autowired private MetadataService metadataService;
@Autowired TaskService taskService;
private Task A, B, C, D, E, F;
private StoreObject list;
@ -273,14 +276,14 @@ public class GtasksTaskMovingTest extends DatabaseTestCase {
private Task createTask(String title, long order, int indent) {
Task task = new Task();
task.setTitle(title);
PluginServices.getTaskService().save(task);
taskService.save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.LIST_ID, "1");
if(order != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.ORDER, order);
if(indent != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.INDENT, indent);
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
return task;
}

@ -29,6 +29,8 @@ public class TitleParserTest extends DatabaseTestCase {
@Autowired TagService tagService;
@Autowired MetadataService metadataService;
@Override
protected void setUp() throws Exception {
super.setUp();
@ -155,7 +157,7 @@ public class TitleParserTest extends DatabaseTestCase {
private void insertTitleAddTask(String title, Task task) {
task.clear();
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
}
@ -166,7 +168,7 @@ public class TitleParserTest extends DatabaseTestCase {
String title = "Jog today";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
Date date = newDate(task.getDueDate());
assertEquals(date.getDay()+1, today.get(Calendar.DAY_OF_WEEK));
//Calendar starts 1-6, date.getDay() starts at 0
@ -174,7 +176,7 @@ public class TitleParserTest extends DatabaseTestCase {
task = new Task();
title = "Jog tomorrow";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
date = newDate(task.getDueDate());
assertEquals((date.getDay()+1) % 7, (today.get(Calendar.DAY_OF_WEEK)+1) % 7);
@ -201,14 +203,14 @@ public class TitleParserTest extends DatabaseTestCase {
task = new Task();
title = "Jog "+ days[i];
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
date = newDate(task.getDueDate());
assertEquals(date.getDay(), i);
task = new Task();
title = "Jog "+ abrevDays[i];
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
date = newDate(task.getDueDate());
assertEquals(date.getDay(), i);
}
@ -232,14 +234,14 @@ public class TitleParserTest extends DatabaseTestCase {
task = new Task();
String title = "Jog " + acceptedString;
task.setTitle(title); //test at end of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_LEAST);
}
for (String acceptedString:acceptedStrings){
task = new Task();
String title = acceptedString + " jog";
task.setTitle(title); //test at beginning of task. should not set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertNotSame(task.getImportance(),Task.IMPORTANCE_LEAST);
}
}
@ -296,25 +298,25 @@ public class TitleParserTest extends DatabaseTestCase {
task = new Task();
String title = "Jog " + acceptedStringAtEnd;
task.setTitle(title); //test at end of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_MUST_DO);
task = new Task();
title = acceptedStringAtEnd + " jog";
task.setTitle(title); //test at beginning of task. should not set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertNotSame(task.getImportance(), Task.IMPORTANCE_MUST_DO);
}
for (String acceptedStringAnywhere:acceptedStringsAnywhere){
task = new Task();
String title = "Jog " + acceptedStringAnywhere;
task.setTitle(title); //test at end of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_MUST_DO);
title = acceptedStringAnywhere + " jog";
task.setTitle(title); //test at beginning of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_MUST_DO);
}
}
@ -338,25 +340,25 @@ public class TitleParserTest extends DatabaseTestCase {
task = new Task();
String title = "Jog " + acceptedStringAtEnd;
task.setTitle(title); //test at end of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_DO_OR_DIE);
task = new Task();
title = acceptedStringAtEnd + " jog";
task.setTitle(title); //test at beginning of task. should not set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertNotSame(task.getImportance(), Task.IMPORTANCE_DO_OR_DIE);
}
for (String acceptedStringAnywhere:acceptedStringsAnywhere){
task = new Task();
String title = "Jog " + acceptedStringAnywhere;
task.setTitle(title); //test at end of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_DO_OR_DIE);
title = acceptedStringAnywhere + " jog";
task.setTitle(title); //test at beginning of task. should set importance.
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals((int)task.getImportance(), Task.IMPORTANCE_DO_OR_DIE);
}
}
@ -372,7 +374,7 @@ public class TitleParserTest extends DatabaseTestCase {
Task task = new Task();
String title = "Jog daily";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
RRule rrule = new RRule();
rrule.setFreq(Frequency.DAILY);
rrule.setInterval(1);
@ -382,7 +384,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every day";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertFalse(task.hasDueTime());
assertFalse(task.hasDueDate());
@ -391,7 +393,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every " + i + " days.";
task.setTitle(title);
rrule.setInterval(i);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertFalse(task.hasDueTime());
assertFalse(task.hasDueDate());
@ -405,7 +407,7 @@ public class TitleParserTest extends DatabaseTestCase {
Task task = new Task();
String title = "Jog weekly";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
RRule rrule = new RRule();
rrule.setFreq(Frequency.WEEKLY);
rrule.setInterval(1);
@ -415,7 +417,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every week";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertFalse(task.hasDueTime());
assertFalse(task.hasDueDate());
@ -424,7 +426,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every " + i + " weeks";
task.setTitle(title);
rrule.setInterval(i);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertFalse(task.hasDueTime());
assertFalse(task.hasDueDate());
@ -437,7 +439,7 @@ public class TitleParserTest extends DatabaseTestCase {
Task task = new Task();
String title = "Jog monthly";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
RRule rrule = new RRule();
rrule.setFreq(Frequency.MONTHLY);
rrule.setInterval(1);
@ -447,7 +449,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every month";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertFalse(task.hasDueTime());
assertFalse(task.hasDueDate());
@ -456,7 +458,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every " + i + " months";
task.setTitle(title);
rrule.setInterval(i);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertFalse(task.hasDueTime());
assertFalse(task.hasDueDate());
@ -468,7 +470,7 @@ public class TitleParserTest extends DatabaseTestCase {
Task task = new Task();
String title = "Jog daily starting from today";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
RRule rrule = new RRule();
rrule.setFreq(Frequency.DAILY);
rrule.setInterval(1);
@ -479,7 +481,7 @@ public class TitleParserTest extends DatabaseTestCase {
task.clearValue(Task.UUID);
title = "Jog every day starting from today";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertTrue(task.hasDueDate());
@ -487,7 +489,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every " + i + " days starting from today";
task.setTitle(title);
rrule.setInterval(i);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertTrue(task.hasDueDate());
task = new Task();
@ -498,7 +500,7 @@ public class TitleParserTest extends DatabaseTestCase {
Task task = new Task();
String title = "Jog weekly starting from today";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
RRule rrule = new RRule();
rrule.setFreq(Frequency.WEEKLY);
rrule.setInterval(1);
@ -509,7 +511,7 @@ public class TitleParserTest extends DatabaseTestCase {
task.clearValue(Task.UUID);
title = "Jog every week starting from today";
task.setTitle(title);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertTrue(task.hasDueDate());
@ -517,7 +519,7 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog every " + i + " weeks starting from today";
task.setTitle(title);
rrule.setInterval(i);
TaskService.createWithValues(tagService, task, null, title);
TaskService.createWithValues(metadataService, tagService, task, null, title);
assertEquals(task.getRecurrence(), rrule.toIcal());
assertTrue(task.hasDueDate());
task = new Task();

@ -1,11 +1,14 @@
package com.todoroo.astrid.subtasks;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService;
public class SubtasksHelperTest extends SubtasksTestCase {
@Autowired TaskService taskService;
@Override
protected void setUp() throws Exception {
super.setUp();
@ -19,7 +22,7 @@ public class SubtasksHelperTest extends SubtasksTestCase {
Task t = new Task();
t.setTitle(title);
t.setUuid(uuid);
PluginServices.getTaskService().save(t);
taskService.save(t);
}
private void createTasks() {

@ -1,11 +1,14 @@
package com.todoroo.astrid.subtasks;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService;
public class SubtasksMovingTest extends SubtasksTestCase {
@Autowired TaskService taskService;
private Task A, B, C, D, E, F;
// @Override
@ -37,7 +40,7 @@ public class SubtasksMovingTest extends SubtasksTestCase {
private Task createTask(String title) {
Task task = new Task();
task.setTitle(title);
PluginServices.getTaskService().save(task);
taskService.save(task);
return task;
}

@ -28,10 +28,10 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.ui.DateChangedAlerts;
import com.todoroo.astrid.ui.QuickAddBar;
@ -88,6 +88,7 @@ public class AstridActivity extends InjectingActionBarActivity
.findFragmentByTag(CommentsFragment.TAG_UPDATES_FRAGMENT);
}
@Inject TaskService taskService;
@Inject StartupService startupService;
@Override
@ -370,13 +371,12 @@ public class AstridActivity extends InjectingActionBarActivity
AstridApiConstants.EXTRAS_OLD_DUE_DATE, 0);
long newDueDate = intent.getLongExtra(
AstridApiConstants.EXTRAS_NEW_DUE_DATE, 0);
Task task = PluginServices.getTaskService().fetchById(taskId,
DateChangedAlerts.REPEAT_RESCHEDULED_PROPERTIES);
Task task = taskService.fetchById(taskId, DateChangedAlerts.REPEAT_RESCHEDULED_PROPERTIES);
try {
boolean lastTime = AstridApiConstants.BROADCAST_EVENT_TASK_REPEAT_FINISHED.equals(intent.getAction());
DateChangedAlerts.showRepeatTaskRescheduledDialog(
AstridActivity.this, task, oldDueDate, newDueDate, lastTime);
taskService, AstridActivity.this, task, oldDueDate, newDueDate, lastTime);
} catch (BadTokenException e) { // Activity not running when tried to show dialog--rebroadcast
new Thread() {

@ -7,6 +7,7 @@ import android.content.Intent;
import android.os.Bundle;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.ui.QuickAddBar;
@ -22,6 +23,7 @@ public final class ShareLinkActivity extends TaskListActivity {
@Inject TaskService taskService;
@Inject TagService tagService;
@Inject MetadataService metadataService;
private String subject;
private boolean handled;
@ -46,7 +48,7 @@ public final class ShareLinkActivity extends TaskListActivity {
if (!handled) {
Intent callerIntent = getIntent();
Task task = QuickAddBar.basicQuickAddTask(tagService, subject);
Task task = QuickAddBar.basicQuickAddTask(taskService, metadataService, tagService, subject);
if (task != null) {
task.setNotes(callerIntent.getStringExtra(Intent.EXTRA_TEXT));
taskService.save(task);

@ -598,7 +598,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
} catch (Exception e) {
// oops, can't serialize
}
model = TaskService.createWithValues(tagService, values, null);
model = TaskService.createWithValues(taskService, metadataService, tagService, values, null);
getActivity().getIntent().putExtra(TOKEN_ID, model.getId());
}
@ -783,7 +783,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
// abandon editing in this case
if (title.getText().length() == 0 || TextUtils.isEmpty(model.getTitle())) {
if (isNewTask) {
TimerPlugin.updateTimer(getActivity(), model, false);
TimerPlugin.updateTimer(taskService, getActivity(), model, false);
taskService.delete(model);
if (getActivity() instanceof TaskListActivity) {
TaskListActivity tla = (TaskListActivity) getActivity();
@ -804,7 +804,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
TimerPlugin.updateTimer(getActivity(), model, false);
TimerPlugin.updateTimer(taskService, getActivity(), model, false);
taskService.delete(model);
shouldSaveState = false;

@ -355,7 +355,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
if (TextUtils.isEmpty(defaultOrder)) {
defaultOrder = "[]"; //$NON-NLS-1$
}
defaultOrder = SubtasksHelper.convertTreeToRemoteIds(defaultOrder);
defaultOrder = SubtasksHelper.convertTreeToRemoteIds(taskService, defaultOrder);
taskListMetadata = new TaskListMetadata();
taskListMetadata.setFilter(filterId);
taskListMetadata.setTaskIDs(defaultOrder);
@ -918,7 +918,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
}
}
}
TimerPlugin.updateTimer(ContextManager.getContext(), task, false);
TimerPlugin.updateTimer(taskService, ContextManager.getContext(), task, false);
}
public void refreshFilterCount() {
@ -998,7 +998,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
itemId = item.getGroupId();
Task task = new Task();
task.setId(itemId);
TimerPlugin.updateTimer(getActivity(), task, false);
TimerPlugin.updateTimer(taskService, getActivity(), task, false);
taskService.purge(itemId);
loadTaskListContent(true);
return true;

@ -24,7 +24,6 @@ import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData;
@ -68,6 +67,8 @@ public class TasksXmlExporter {
// --- implementation
@Autowired TagDataService tagDataService;
@Autowired MetadataService metadataService;
@Autowired TaskService taskService;
// 3 is started on Version 4.6.10
private static final int FORMAT = 3;
@ -75,8 +76,6 @@ public class TasksXmlExporter {
private final Context context;
private int exportCount = 0;
private XmlSerializer xml;
private final TaskService taskService = PluginServices.getTaskService();
private final MetadataService metadataService = PluginServices.getMetadataService();
private final ProgressDialog progressDialog;
private final Handler handler;

@ -30,7 +30,6 @@ import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
@ -71,8 +70,9 @@ public class TasksXmlImporter {
// --- implementation
@Autowired TagDataService tagDataService;
@Autowired TagService tagService;
@Autowired MetadataService metadataService;
@Autowired TaskService taskService;
private final Handler handler;
private int taskCount;
@ -82,8 +82,6 @@ public class TasksXmlImporter {
private final String input;
private final Context context;
private final TaskService taskService = PluginServices.getTaskService();
private final MetadataService metadataService = PluginServices.getMetadataService();
private final ProgressDialog progressDialog;
private final Runnable runAfterImport;

@ -155,7 +155,7 @@ public class OldTaskPreferences extends InjectingTodorooPreferenceActivity {
for(int i = 0; i < length; i++) {
cursor.moveToNext();
task.readFromCursor(cursor);
GCalHelper.deleteTaskEvent(task);
GCalHelper.deleteTaskEvent(taskService, task);
}
} finally {
cursor.close();
@ -194,7 +194,7 @@ public class OldTaskPreferences extends InjectingTodorooPreferenceActivity {
for(int i = 0; i < length; i++) {
cursor.moveToNext();
task.readFromCursor(cursor);
GCalHelper.deleteTaskEvent(task);
GCalHelper.deleteTaskEvent(taskService, task);
}
} finally {
cursor.close();
@ -231,7 +231,7 @@ public class OldTaskPreferences extends InjectingTodorooPreferenceActivity {
for(int i = 0; i < length; i++) {
cursor.moveToNext();
task.readFromCursor(cursor);
if (GCalHelper.deleteTaskEvent(task)) {
if (GCalHelper.deleteTaskEvent(taskService, task)) {
deletedEventCount++;
}
}
@ -273,7 +273,7 @@ public class OldTaskPreferences extends InjectingTodorooPreferenceActivity {
for(int i = 0; i < length; i++) {
cursor.moveToNext();
task.readFromCursor(cursor);
if (GCalHelper.deleteTaskEvent(task)) {
if (GCalHelper.deleteTaskEvent(taskService, task)) {
deletedEventCount++;
}
}

@ -1,59 +0,0 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.core;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
/**
* Utility class for getting dependency-injected services from plugins
*
* @author Tim Su <tim@todoroo.com>
*
*/
public final class PluginServices {
@Autowired TaskService taskService;
@Autowired Database database;
@Autowired MetadataService metadataService;
private static volatile PluginServices instance;
static {
AstridDependencyInjector.initialize();
}
private PluginServices() {
DependencyInjectionService.getInstance().inject(this);
}
private static PluginServices getInstance() {
if(instance == null) {
synchronized (PluginServices.class) {
if (instance == null) {
instance = new PluginServices();
}
}
}
return instance;
}
public static TaskService getTaskService() {
getInstance().database.openForWriting();
return getInstance().taskService;
}
public static MetadataService getMetadataService() {
getInstance().database.openForWriting();
return getInstance().metadataService;
}
}

@ -27,16 +27,20 @@ import android.widget.Toast;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.Calendars.CalendarResult;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
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
*
@ -49,6 +53,8 @@ public class GCalControlSet extends PopupControlSet {
// --- instance variables
@Inject TaskService taskService;
private Uri calendarUri = null;
private final CalendarResult calendars;
@ -59,6 +65,9 @@ public class GCalControlSet extends PopupControlSet {
public GCalControlSet(final Activity activity, int viewLayout, int displayViewLayout, int title) {
super(activity, viewLayout, displayViewLayout, title);
((Injector)activity.getApplication()).inject(this);
this.title = title;
calendars = Calendars.getCalendars();
getView(); // Hack to force initialized
@ -97,7 +106,7 @@ public class GCalControlSet extends PopupControlSet {
@Override
protected void readFromTaskOnInitialize() {
String uri = GCalHelper.getTaskEventUri(model);
String uri = GCalHelper.getTaskEventUri(taskService, model);
if(!TextUtils.isEmpty(uri)) {
try {
calendarUri = Uri.parse(uri);
@ -151,7 +160,7 @@ public class GCalControlSet extends PopupControlSet {
String calendarId = calendars.calendarIds[calendarSelector.getSelectedItemPosition() - 1];
values.put("calendar_id", calendarId);
calendarUri = GCalHelper.createTaskEvent(task, cr, values);
calendarUri = GCalHelper.createTaskEvent(taskService, task, cr, values);
if(calendarUri != null) {
task.setCalendarUri(calendarUri.toString());

@ -18,8 +18,8 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
@ -31,12 +31,12 @@ public class GCalHelper {
public static final String CALENDAR_ID_COLUMN = "calendar_id"; //$NON-NLS-1$
public static String getTaskEventUri(Task task) {
public static String getTaskEventUri(TaskService taskService, Task task) {
String uri;
if (!TextUtils.isEmpty(task.getCalendarURI())) {
uri = task.getCalendarURI();
} else {
task = PluginServices.getTaskService().fetchById(task.getId(), Task.CALENDAR_URI);
task = taskService.fetchById(task.getId(), Task.CALENDAR_URI);
if(task == null) {
return null;
}
@ -46,34 +46,34 @@ public class GCalHelper {
return uri;
}
public static void createTaskEventIfEnabled(Task t) {
public static void createTaskEventIfEnabled(TaskService taskService, Task t) {
if (!t.hasDueDate()) {
return;
}
createTaskEventIfEnabled(t, true);
createTaskEventIfEnabled(taskService, t, true);
}
private static void createTaskEventIfEnabled(Task t, boolean deleteEventIfExists) {
private static void createTaskEventIfEnabled(TaskService taskService, Task t, boolean deleteEventIfExists) {
boolean gcalCreateEventEnabled = Preferences.getStringValue(R.string.gcal_p_default) != null
&& !Preferences.getStringValue(R.string.gcal_p_default).equals("-1"); //$NON-NLS-1$
if (gcalCreateEventEnabled) {
ContentResolver cr = ContextManager.getContext().getContentResolver();
Uri calendarUri = GCalHelper.createTaskEvent(t, cr, new ContentValues(), deleteEventIfExists);
Uri calendarUri = GCalHelper.createTaskEvent(taskService, t, cr, new ContentValues(), deleteEventIfExists);
if (calendarUri != null) {
t.setCalendarUri(calendarUri.toString());
}
}
}
public static Uri createTaskEvent(Task task, ContentResolver cr, ContentValues values) {
return createTaskEvent(task, cr, values, true);
public static Uri createTaskEvent(TaskService taskService, Task task, ContentResolver cr, ContentValues values) {
return createTaskEvent(taskService, task, cr, values, true);
}
public static Uri createTaskEvent(Task task, ContentResolver cr, ContentValues values, boolean deleteEventIfExists) {
String eventuri = getTaskEventUri(task);
public static Uri createTaskEvent(TaskService taskService, Task task, ContentResolver cr, ContentValues values, boolean deleteEventIfExists) {
String eventuri = getTaskEventUri(taskService, task);
if(!TextUtils.isEmpty(eventuri) && deleteEventIfExists) {
deleteTaskEvent(task);
deleteTaskEvent(taskService, task);
}
try{
@ -110,8 +110,8 @@ public class GCalHelper {
return null;
}
public static void rescheduleRepeatingTask(Task task, ContentResolver cr) {
String taskUri = getTaskEventUri(task);
public static void rescheduleRepeatingTask(TaskService taskService, Task task, ContentResolver cr) {
String taskUri = getTaskEventUri(taskService, task);
if (TextUtils.isEmpty(taskUri)) {
return;
}
@ -125,7 +125,7 @@ public class GCalHelper {
ContentValues cv = new ContentValues();
cv.put(CALENDAR_ID_COLUMN, calendarId);
Uri uri = createTaskEvent(task, cr, cv, false);
Uri uri = createTaskEvent(taskService, task, cr, cv, false);
task.setCalendarUri(uri.toString());
}
@ -141,13 +141,13 @@ public class GCalHelper {
}
}
public static boolean deleteTaskEvent(Task task) {
public static boolean deleteTaskEvent(TaskService taskService, Task task) {
boolean eventDeleted = false;
String uri;
if(task.containsNonNullValue(Task.CALENDAR_URI)) {
uri = task.getCalendarURI();
} else {
task = PluginServices.getTaskService().fetchById(task.getId(), Task.CALENDAR_URI);
task = taskService.fetchById(task.getId(), Task.CALENDAR_URI);
if(task == null) {
return false;
}

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.gcal;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
@ -16,22 +15,29 @@ import android.util.Log;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
public class GCalTaskCompleteListener extends BroadcastReceiver {
import javax.inject.Inject;
public class GCalTaskCompleteListener extends InjectingBroadcastReceiver {
@Inject TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
ContextManager.setContext(context);
long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1);
if(taskId == -1) {
return;
}
Task task = PluginServices.getTaskService().fetchById(taskId, Task.ID, Task.TITLE, Task.CALENDAR_URI);
Task task = taskService.fetchById(taskId, Task.ID, Task.TITLE, Task.CALENDAR_URI);
if(task == null) {
return;
}

@ -14,7 +14,6 @@ import com.todoroo.andlib.sql.Field;
import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TaskDao;
@ -22,6 +21,7 @@ import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.sync.GtasksTaskContainer;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.subtasks.OrderedMetadataListUpdater.OrderedListIterator;
import com.todoroo.astrid.sync.SyncProviderUtilities;
import com.todoroo.astrid.utility.SyncMetadataService;
@ -44,11 +44,13 @@ import javax.inject.Singleton;
public final class GtasksMetadataService extends SyncMetadataService<GtasksTaskContainer> {
private final GtasksPreferenceService gtasksPreferenceService;
private MetadataService metadataService;
@Inject
public GtasksMetadataService(GtasksPreferenceService gtasksPreferenceService, TaskDao taskDao, MetadataDao metadataDao) {
public GtasksMetadataService(GtasksPreferenceService gtasksPreferenceService, TaskDao taskDao, MetadataDao metadataDao, MetadataService metadataService) {
super(taskDao, metadataDao);
this.gtasksPreferenceService = gtasksPreferenceService;
this.metadataService = metadataService;
}
public Criterion getLocalMatchCriteria(GtasksTaskContainer remoteTask) {
@ -147,7 +149,7 @@ public final class GtasksMetadataService extends SyncMetadataService<GtasksTaskC
GtasksMetadata.LIST_ID.eq(listId),
startAtCriterion)).
orderBy(order);
TodorooCursor<Metadata> cursor = PluginServices.getMetadataService().query(query);
TodorooCursor<Metadata> cursor = metadataService.query(query);
try {
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
long taskId = cursor.get(Metadata.TASK);

@ -15,12 +15,12 @@ import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.subtasks.OrderedMetadataListUpdater;
import java.util.HashMap;
@ -47,13 +47,16 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<StoreObjec
private final GtasksMetadataService gtasksMetadataService;
private final GtasksSyncService gtasksSyncService;
private final MetadataDao metadataDao;
private final MetadataService metadataService;
@Inject
public GtasksTaskListUpdater(GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService, GtasksSyncService gtasksSyncService, MetadataDao metadataDao) {
public GtasksTaskListUpdater(GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService, GtasksSyncService gtasksSyncService, MetadataDao metadataDao, MetadataService metadataService) {
super(metadataService);
this.gtasksListService = gtasksListService;
this.gtasksMetadataService = gtasksMetadataService;
this.gtasksSyncService = gtasksSyncService;
this.metadataDao = metadataDao;
this.metadataService = metadataService;
}
// --- overrides
@ -140,7 +143,7 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<StoreObjec
}
metadata.setValue(GtasksMetadata.PARENT_TASK, parent);
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
previousIndent.set(indent);
}
});

@ -16,7 +16,6 @@ import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskDao;
@ -349,7 +348,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
// merge astrid dates with google dates
if(task.task.isSaved()) {
Task local = PluginServices.getTaskService().fetchById(task.task.getId(), Task.DUE_DATE, Task.COMPLETION_DATE);
Task local = taskService.fetchById(task.task.getId(), Task.DUE_DATE, Task.COMPLETION_DATE);
if (local == null) {
task.task.clearValue(Task.ID);
task.task.clearValue(Task.UUID);

@ -43,7 +43,6 @@ import com.todoroo.astrid.actfm.sync.messages.NameMaps;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.adapter.UpdateAdapter;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.data.Metadata;
@ -137,7 +136,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
}
private void fetchTask(long id) {
task = PluginServices.getTaskService().fetchById(id, Task.NOTES, Task.ID, Task.UUID, Task.TITLE, Task.USER_ACTIVITIES_PUSHED_AT, Task.ATTACHMENTS_PUSHED_AT);
task = taskService.fetchById(id, Task.NOTES, Task.ID, Task.UUID, Task.TITLE, Task.USER_ACTIVITIES_PUSHED_AT, Task.ATTACHMENTS_PUSHED_AT);
}
public void loadViewForTaskID(long t){

@ -6,7 +6,6 @@
package com.todoroo.astrid.notes;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
@ -16,12 +15,16 @@ import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
/**
* Exposes Task Detail for notes
@ -29,12 +32,17 @@ import org.tasks.R;
* @author Tim Su <tim@todoroo.com>
*
*/
public class NotesDetailExposer extends BroadcastReceiver {
public class NotesDetailExposer extends InjectingBroadcastReceiver {
private static final int NOTE_MAX = 200;
@Inject MetadataService metadataService;
@Inject TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
// get tags associated with this task
long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1);
if(taskId == -1) {
@ -54,12 +62,12 @@ public class NotesDetailExposer extends BroadcastReceiver {
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
}
public String getTaskDetails(long id) {
private String getTaskDetails(long id) {
if(!Preferences.getBoolean(R.string.p_showNotes, false)) {
return null;
}
Task task = PluginServices.getTaskService().fetchById(id, Task.ID, Task.NOTES);
Task task = taskService.fetchById(id, Task.ID, Task.NOTES);
if(task == null) {
return null;
}
@ -75,7 +83,7 @@ public class NotesDetailExposer extends BroadcastReceiver {
notesBuilder.append(notes);
}
TodorooCursor<Metadata> cursor = PluginServices.getMetadataService().query(
TodorooCursor<Metadata> cursor = metadataService.query(
Query.select(Metadata.PROPERTIES).where(
MetadataCriteria.byTaskAndwithKey(task.getId(),
NoteMetadata.METADATA_KEY)).orderBy(Order.asc(Metadata.CREATION_DATE)));

@ -17,7 +17,6 @@ import android.widget.Toast;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
@ -45,7 +44,7 @@ public class ReminderDialog extends Dialog {
Task task = new Task();
task.setId(taskId);
task.setReminderSnooze(time);
PluginServices.getTaskService().save(task);
taskService.save(task);
dismiss();
}
};

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.repeats;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@ -14,25 +13,32 @@ import com.google.ical.values.Frequency;
import com.google.ical.values.RRule;
import com.google.ical.values.WeekdayNum;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
import java.text.DateFormatSymbols;
import java.text.ParseException;
import java.util.List;
import javax.inject.Inject;
/**
* Exposes Task Detail for repeats, i.e. "Repeats every 2 days"
*
* @author Tim Su <tim@todoroo.com>
*
*/
public class RepeatDetailExposer extends BroadcastReceiver {
public class RepeatDetailExposer extends InjectingBroadcastReceiver {
@Inject TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
// get tags associated with this task
long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1);
if(taskId == -1) {
@ -53,7 +59,7 @@ public class RepeatDetailExposer extends BroadcastReceiver {
}
public String getTaskDetails(Context context, long id) {
Task task = PluginServices.getTaskService().fetchById(id, Task.RECURRENCE);
Task task = taskService.fetchById(id, Task.RECURRENCE);
if(task == null) {
return null;
}

@ -5,7 +5,6 @@
*/
package com.todoroo.astrid.repeats;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
@ -22,12 +21,13 @@ import com.google.ical.values.WeekdayNum;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Flags;
import org.tasks.injection.InjectingBroadcastReceiver;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Collections;
@ -36,22 +36,28 @@ import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateUtc;
public class RepeatTaskCompleteListener extends BroadcastReceiver {
public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
private static final String TAG = "RepeatTaskCompleteListener";
@Inject TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
ContextManager.setContext(context);
long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1);
if(taskId == -1) {
return;
}
Task task = PluginServices.getTaskService().fetchById(taskId, Task.PROPERTIES);
Task task = taskService.fetchById(taskId, Task.PROPERTIES);
if(task == null || !task.isCompleted()) {
return;
}
@ -84,7 +90,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
return;
}
rescheduleTask(task, newDueDate);
rescheduleTask(taskService, task, newDueDate);
// send a broadcast
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_REPEATED);
@ -96,7 +102,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
}
}
public static void rescheduleTask(Task task, long newDueDate) {
public static void rescheduleTask(TaskService taskService, Task task, long newDueDate) {
long hideUntil = task.getHideUntil();
if(hideUntil > 0 && task.getDueDate() > 0) {
hideUntil += newDueDate - task.getDueDate();
@ -108,8 +114,8 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
task.putTransitory(TaskService.TRANS_REPEAT_COMPLETE, true);
ContentResolver cr = ContextManager.getContext().getContentResolver();
GCalHelper.rescheduleRepeatingTask(task, cr);
PluginServices.getTaskService().save(task);
GCalHelper.rescheduleRepeatingTask(taskService, task, cr);
taskService.save(task);
}
/** Compute next due date */

@ -32,7 +32,6 @@ import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.backup.BackupConstants;
import com.todoroo.astrid.backup.BackupService;
import com.todoroo.astrid.backup.TasksXmlImporter;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TagDataDao;
@ -76,18 +75,20 @@ public class StartupService {
private final Database database;
private final GtasksPreferenceService gtasksPreferenceService;
private final GtasksSyncService gtasksSyncService;
private MetadataService metadataService;
@Inject
public StartupService(UpgradeService upgradeService, TaskService taskService,
TagDataDao tagDataDao, Database database,
GtasksPreferenceService gtasksPreferenceService,
GtasksSyncService gtasksSyncService) {
GtasksSyncService gtasksSyncService, MetadataService metadataService) {
this.upgradeService = upgradeService;
this.taskService = taskService;
this.tagDataDao = tagDataDao;
this.database = database;
this.gtasksPreferenceService = gtasksPreferenceService;
this.gtasksSyncService = gtasksSyncService;
this.metadataService = metadataService;
}
/**
@ -210,7 +211,7 @@ public class StartupService {
if (values != null) {
if (values.containsKey(TagData.NAME.name)) {
m.setValue(TaskToTagMetadata.TAG_NAME, model.getName());
PluginServices.getMetadataService().update(Criterion.and(MetadataCriteria.withKey(TaskToTagMetadata.KEY),
metadataService.update(Criterion.and(MetadataCriteria.withKey(TaskToTagMetadata.KEY),
TaskToTagMetadata.TAG_UUID.eq(model.getUUID())), m);
}
}

@ -21,7 +21,6 @@ import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.adapter.UpdateAdapter;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.PermaSql;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TaskDao;
@ -82,7 +81,9 @@ public class TaskService {
private final TagService tagService;
@Inject
public TaskService(TaskDao taskDao, MetadataDao metadataDao, UserActivityDao userActivityDao, Broadcaster broadcaster, FilterCounter filterCounter, RefreshScheduler refreshScheduler, TagService tagService) {
public TaskService(TaskDao taskDao, MetadataDao metadataDao, UserActivityDao userActivityDao,
Broadcaster broadcaster, FilterCounter filterCounter,
RefreshScheduler refreshScheduler, TagService tagService) {
this.taskDao = taskDao;
this.metadataDao = metadataDao;
this.userActivityDao = userActivityDao;
@ -192,7 +193,7 @@ public class TaskService {
long id = item.getId();
item.clear();
item.setId(id);
GCalHelper.deleteTaskEvent(item);
GCalHelper.deleteTaskEvent(this, item);
item.setDeletionDate(DateUtilities.now());
save(item);
}
@ -379,7 +380,7 @@ public class TaskService {
clone.setCompletionDate(0L);
clone.setDeletionDate(0L);
clone.setCalendarUri(""); //$NON-NLS-1$
GCalHelper.createTaskEventIfEnabled(clone);
GCalHelper.createTaskEventIfEnabled(this, clone);
save(clone);
return clone.getId();
@ -389,16 +390,16 @@ public class TaskService {
* Create task from the given content values, saving it. This version
* doesn't need to start with a base task model.
*/
public static Task createWithValues(TagService tagService, ContentValues values, String title) {
public static Task createWithValues(TaskService taskService, MetadataService metadataService, TagService tagService, ContentValues values, String title) {
Task task = new Task();
return createWithValues(tagService, task, values, title);
return createWithValues(taskService, metadataService, tagService, task, values, title);
}
/**
* Create task from the given content values, saving it.
* @param task base task to start with
*/
public static Task createWithValues(TagService tagService, Task task, ContentValues values, String title) {
public static Task createWithValues(TaskService taskService, MetadataService metadataService, TagService tagService, Task task, ContentValues values, String title) {
if (title != null) {
task.setTitle(title);
}
@ -438,7 +439,7 @@ public class TaskService {
task.putTransitory(TRANS_ASSIGNED, true);
}
PluginServices.getTaskService().quickAdd(task, tags);
taskService.quickAdd(task, tags);
if (quickAddMarkup) {
task.putTransitory(TRANS_QUICK_ADD_MARKUP, true);
}
@ -456,7 +457,7 @@ public class TaskService {
tagService.createLink(task, metadata.getValue(TaskToTagMetadata.TAG_NAME));
}
} else {
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
}
}

@ -7,9 +7,9 @@ package com.todoroo.astrid.subtasks;
import com.todoroo.andlib.data.Property.IntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
@ -19,6 +19,8 @@ import java.util.concurrent.atomic.AtomicReference;
abstract public class OrderedMetadataListUpdater<LIST> {
private MetadataService metadataService;
public interface OrderedListIterator {
public void processTask(long taskId, Metadata metadata);
}
@ -37,6 +39,10 @@ abstract public class OrderedMetadataListUpdater<LIST> {
abstract protected Metadata createEmptyMetadata(LIST list, long taskId);
public OrderedMetadataListUpdater(MetadataService metadataService) {
this.metadataService = metadataService;
}
protected void beforeIndent(LIST list) {
//
}
@ -285,7 +291,7 @@ abstract public class OrderedMetadataListUpdater<LIST> {
if(metadata.getSetValues().size() == 0) {
return;
}
PluginServices.getMetadataService().save(metadata);
metadataService.save(metadata);
}
// --- task cascading operations

@ -13,7 +13,6 @@ import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.dao.TaskListMetadataDao;
@ -22,6 +21,7 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node;
import com.todoroo.astrid.utility.AstridPreferences;
@ -60,7 +60,7 @@ public class SubtasksHelper {
return false;
}
public static String applySubtasksToWidgetFilter(TagDataService tagDataService, TaskListMetadataDao tlmd, Filter filter, String query, String tagName, int limit) {
public static String applySubtasksToWidgetFilter(TaskService taskService, TagDataService tagDataService, TaskListMetadataDao tlmd, Filter filter, String query, String tagName, int limit) {
if (SubtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) {
// care for manual ordering
TagData tagData = tagDataService.getTagByName(tagName, TagData.UUID, TagData.TAG_ORDERING);
@ -76,7 +76,7 @@ public class SubtasksHelper {
query = query.replaceAll("ORDER BY .*", "");
query = query + String.format(" ORDER BY %s, %s, %s, %s",
Task.DELETION_DATE, Task.COMPLETION_DATE,
getOrderString(tagData, tlm), Task.CREATION_DATE);
getOrderString(taskService, tagData, tlm), Task.CREATION_DATE);
if (limit > 0) {
query = query + " LIMIT " + limit;
}
@ -88,12 +88,12 @@ public class SubtasksHelper {
return query;
}
private static String getOrderString(TagData tagData, TaskListMetadata tlm) {
private static String getOrderString(TaskService taskService, TagData tagData, TaskListMetadata tlm) {
String serialized;
if (tlm != null) {
serialized = tlm.getTaskIDs();
} else if (tagData != null) {
serialized = convertTreeToRemoteIds(tagData.getTagOrdering());
serialized = convertTreeToRemoteIds(taskService, tagData.getTagOrdering());
} else {
serialized = "[]"; //$NON-NLS-1$
}
@ -131,9 +131,9 @@ public class SubtasksHelper {
/**
* Takes a subtasks string containing local ids and remaps it to one containing UUIDs
*/
public static String convertTreeToRemoteIds(String localTree) {
public static String convertTreeToRemoteIds(TaskService taskService, String localTree) {
Long[] localIds = getIdArray(localTree);
HashMap<Long, String> idMap = getIdMap(localIds, Task.ID, Task.UUID);
HashMap<Long, String> idMap = getIdMap(taskService, localIds, Task.ID, Task.UUID);
idMap.put(-1L, "-1"); //$NON-NLS-1$
Node tree = AstridOrderedListUpdater.buildTreeModel(localTree, null);
@ -175,9 +175,9 @@ public class SubtasksHelper {
});
}
private static <A, B> HashMap<A, B> getIdMap(A[] keys, Property<A> keyProperty, Property<B> valueProperty) {
private static <A, B> HashMap<A, B> getIdMap(TaskService taskService, A[] keys, Property<A> keyProperty, Property<B> valueProperty) {
HashMap<A, B> map = new HashMap<>();
TodorooCursor<Task> tasks = PluginServices.getTaskService().query(Query.select(keyProperty, valueProperty).where(keyProperty.in(keys)));
TodorooCursor<Task> tasks = taskService.query(Query.select(keyProperty, valueProperty).where(keyProperty.in(keys)));
try {
for (tasks.moveToFirst(); !tasks.isAfterLast(); tasks.moveToNext()) {
A key = tasks.get(keyProperty);

@ -23,7 +23,6 @@ import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TagDataDao;
@ -61,12 +60,14 @@ public final class TagService {
};
private final MetadataDao metadataDao;
private final MetadataService metadataService;
private final TagDataService tagDataService;
private final TagDataDao tagDataDao;
@Inject
public TagService(MetadataDao metadataDao, TagDataService tagDataService, TagDataDao tagDataDao) {
public TagService(MetadataDao metadataDao, MetadataService metadataService, TagDataService tagDataService, TagDataDao tagDataDao) {
this.metadataDao = metadataDao;
this.metadataService = metadataService;
this.tagDataService = tagDataService;
this.tagDataDao = tagDataDao;
}
@ -342,9 +343,8 @@ public final class TagService {
* given tag, return that. Otherwise, return the argument
*/
public String getTagWithCase(String tag) {
MetadataService service = PluginServices.getMetadataService();
String tagWithCase = tag;
TodorooCursor<Metadata> tagMetadata = service.query(Query.select(TaskToTagMetadata.TAG_NAME).where(TagService.tagEqIgnoreCase(tag, Criterion.all)).limit(1));
TodorooCursor<Metadata> tagMetadata = metadataService.query(Query.select(TaskToTagMetadata.TAG_NAME).where(TagService.tagEqIgnoreCase(tag, Criterion.all)).limit(1));
try {
if (tagMetadata.getCount() > 0) {
tagMetadata.moveToFirst();

@ -18,14 +18,20 @@ import android.widget.LinearLayout;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
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;
@ -33,20 +39,23 @@ public class TimerActionControlSet extends TaskEditControlSet {
public TimerActionControlSet(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() {
@Override
public void onClick(View v) {
if (timerActive) {
TimerPlugin.updateTimer(activity, model, false);
TimerPlugin.updateTimer(taskService, activity, model, false);
for (TimerActionListener listener : listeners) {
listener.timerStopped(model);
}
chronometer.stop();
} else {
TimerPlugin.updateTimer(activity, model, true);
TimerPlugin.updateTimer(taskService, activity, model, true);
for (TimerActionListener listener : listeners) {
listener.timerStarted(model);
}

@ -20,10 +20,13 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.AstridFilterExposer;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
import org.tasks.injection.Injector;
import javax.inject.Inject;
/**
* Exposes "working on" filter to the {@link FilterListFragment}
@ -33,6 +36,8 @@ import org.tasks.R;
*/
public final class TimerFilterExposer extends BroadcastReceiver implements AstridFilterExposer {
@Inject TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
ContextManager.setContext(context);
@ -44,7 +49,10 @@ public final class TimerFilterExposer extends BroadcastReceiver implements Astri
}
private FilterListItem[] prepareFilters(Context context) {
if(PluginServices.getTaskService().count(Query.select(Task.ID).
// TODO: get rid of this
((Injector) context.getApplicationContext()).inject(this);
if(taskService.count(Query.select(Task.ID).
where(Task.TIMER_START.gt(0))) == 0) {
return null;
}
@ -77,5 +85,4 @@ public final class TimerFilterExposer extends BroadcastReceiver implements Astri
return prepareFilters(ContextManager.getContext());
}
}

@ -21,8 +21,8 @@ import com.todoroo.astrid.activity.ShortcutActivity;
import com.todoroo.astrid.api.Addon;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Constants;
import org.tasks.R;
@ -46,11 +46,11 @@ public class TimerPlugin extends BroadcastReceiver {
* toggles timer and updates elapsed time.
* @param start if true, start timer. else, stop it
*/
public static void updateTimer(Context context, Task task, boolean start) {
public static void updateTimer(TaskService taskService, Context context, Task task, boolean start) {
// if this call comes from tasklist, then we need to fill in the gaps to handle this correctly
// this is needed just for stopping a task
if (!task.containsNonNullValue(Task.TIMER_START)) {
task = PluginServices.getTaskService().fetchById(task.getId(), Task.ID, Task.TIMER_START, Task.ELAPSED_SECONDS);
task = taskService.fetchById(task.getId(), Task.ID, Task.TIMER_START, Task.ELAPSED_SECONDS);
}
if (task == null) {
return;
@ -68,16 +68,16 @@ public class TimerPlugin extends BroadcastReceiver {
task.getElapsedSeconds() + newElapsed);
}
}
PluginServices.getTaskService().save(task);
taskService.save(task);
// update notification
TimerPlugin.updateNotifications(context);
TimerPlugin.updateNotifications(taskService, context);
}
private static void updateNotifications(Context context) {
private static void updateNotifications(TaskService taskService, Context context) {
NotificationManager nm = new AndroidNotificationManager(context);
int count = PluginServices.getTaskService().count(Query.select(Task.ID).
int count = taskService.count(Query.select(Task.ID).
where(Task.TIMER_START.gt(0)));
if(count == 0) {
nm.cancel(Constants.NOTIFICATION_TIMER);

@ -5,32 +5,39 @@
*/
package com.todoroo.astrid.timers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
public class TimerTaskCompleteListener extends BroadcastReceiver {
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
public class TimerTaskCompleteListener extends InjectingBroadcastReceiver {
@Inject TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
ContextManager.setContext(context);
long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1);
if(taskId == -1) {
return;
}
Task task = PluginServices.getTaskService().fetchById(taskId, Task.ID, Task.ELAPSED_SECONDS,
Task task = taskService.fetchById(taskId, Task.ID, Task.ELAPSED_SECONDS,
Task.TIMER_START);
if(task == null || task.getTimerStart() == 0) {
return;
}
TimerPlugin.updateTimer(context, task, false);
TimerPlugin.updateTimer(taskService, context, task, false);
}
}

@ -28,9 +28,9 @@ import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.repeats.RepeatTaskCompleteListener;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.ui.DateAndTimeDialog.DateAndTimeDialogListener;
import com.todoroo.astrid.utility.Flags;
@ -129,7 +129,7 @@ public class DateChangedAlerts {
Task.REPEAT_UNTIL
};
public static void showRepeatTaskRescheduledDialog(final AstridActivity activity, final Task task,
public static void showRepeatTaskRescheduledDialog(final TaskService taskService, final AstridActivity activity, final Task task,
final long oldDueDate, final long newDueDate, final boolean lastTime) {
if (!Preferences.getBoolean(PREF_SHOW_HELPERS, true)) {
return;
@ -157,7 +157,7 @@ public class DateChangedAlerts {
public void onDateAndTimeSelected(long date) {
d.dismiss();
task.setRepeatUntil(date);
RepeatTaskCompleteListener.rescheduleTask(task, newDueDate);
RepeatTaskCompleteListener.rescheduleTask(taskService, task, newDueDate);
Flags.set(Flags.REFRESH);
}
@ -208,7 +208,7 @@ public class DateChangedAlerts {
if (hideUntil > 0) {
task.setHideUntil(hideUntil - (newDueDate - oldDueDate));
}
PluginServices.getTaskService().save(task);
taskService.save(task);
Flags.set(Flags.REFRESH);
}
});

@ -31,7 +31,6 @@ import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.activity.TaskListFragment.OnTaskListItemClickedListener;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.TagData;
@ -39,6 +38,7 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.repeats.RepeatControlSet;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.utility.Flags;
@ -74,6 +74,8 @@ public class QuickAddBar extends LinearLayout {
private GCalControlSet gcalControl;
@Inject TagService tagService;
@Inject MetadataService metadataService;
@Inject TaskService taskService;
private VoiceRecognizer voiceRecognizer;
@ -274,11 +276,11 @@ public class QuickAddBar extends LinearLayout {
}
gcalControl.writeToModel(task);
TaskService.createWithValues(tagService, task, fragment.getFilter().valuesForNewTasks, title);
TaskService.createWithValues(taskService, metadataService, tagService, task, fragment.getFilter().valuesForNewTasks, title);
resetControlSets();
addToCalendar(task, title);
addToCalendar(taskService, task, title);
TextView quickAdd = (TextView) findViewById(R.id.quickAddText);
quickAdd.setText(""); //$NON-NLS-1$
@ -302,16 +304,16 @@ public class QuickAddBar extends LinearLayout {
}
}
private static void addToCalendar(Task task, String title) {
private static void addToCalendar(TaskService taskService, Task task, String title) {
boolean gcalCreateEventEnabled = Preferences.getStringValue(R.string.gcal_p_default) != null
&& !Preferences.getStringValue(R.string.gcal_p_default).equals("-1") && task.hasDueDate(); //$NON-NLS-1$
if (!TextUtils.isEmpty(title) && gcalCreateEventEnabled && TextUtils.isEmpty(task.getCalendarURI())) {
Uri calendarUri = GCalHelper.createTaskEvent(task,
Uri calendarUri = GCalHelper.createTaskEvent(taskService, task,
ContextManager.getContext().getContentResolver(), new ContentValues());
task.setCalendarUri(calendarUri.toString());
task.putTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC, true);
PluginServices.getTaskService().save(task);
taskService.save(task);
}
}
@ -319,15 +321,15 @@ public class QuickAddBar extends LinearLayout {
* Static method to quickly add tasks without all the control set nonsense.
* Used from the share link activity.
*/
public static Task basicQuickAddTask(TagService tagService, String title) {
public static Task basicQuickAddTask(TaskService taskService, MetadataService metadataService, TagService tagService, String title) {
if (TextUtils.isEmpty(title)) {
return null;
}
title = title.trim();
Task task = TaskService.createWithValues(tagService, null, title);
addToCalendar(task, title);
Task task = TaskService.createWithValues(taskService, metadataService, tagService, null, title);
addToCalendar(taskService, task, title);
return task;
}

@ -113,7 +113,7 @@ public class WidgetUpdateService extends InjectingService {
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks;
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
query = SubtasksHelper.applySubtasksToWidgetFilter(tagDataService, taskListMetadataDao, filter, query, tagName, numberOfTasks);
query = SubtasksHelper.applySubtasksToWidgetFilter(taskService, tagDataService, taskListMetadataDao, filter, query, tagName, numberOfTasks);
database.openForReading();
cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE);

@ -3,8 +3,11 @@ package org.tasks;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.alarms.AlarmControlSet;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.service.AstridDependencyInjector;
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;
@ -21,7 +24,10 @@ import dagger.Module;
FilesControlSet.class,
TagsControlSet.class,
AlarmControlSet.class,
FilterAdapter.class
FilterAdapter.class,
TimerFilterExposer.class,
GCalControlSet.class,
TimerActionControlSet.class
}
)
public class TasksModule {

@ -1,11 +1,19 @@
package org.tasks.injection;
import com.todoroo.astrid.alarms.AlarmDetailExposer;
import com.todoroo.astrid.alarms.AlarmTaskRepeatListener;
import com.todoroo.astrid.gcal.GCalTaskCompleteListener;
import com.todoroo.astrid.gtasks.GtasksCustomFilterCriteriaExposer;
import com.todoroo.astrid.gtasks.GtasksDetailExposer;
import com.todoroo.astrid.gtasks.GtasksStartupReceiver;
import com.todoroo.astrid.notes.NotesDetailExposer;
import com.todoroo.astrid.reminders.Notifications;
import com.todoroo.astrid.repeats.RepeatDetailExposer;
import com.todoroo.astrid.repeats.RepeatTaskCompleteListener;
import com.todoroo.astrid.service.GlobalEventReceiver;
import com.todoroo.astrid.tags.TagCustomFilterCriteriaExposer;
import com.todoroo.astrid.tags.TagDetailExposer;
import com.todoroo.astrid.timers.TimerTaskCompleteListener;
import com.todoroo.astrid.widget.TasksWidget;
import org.tasks.scheduling.RefreshBroadcastReceiver;
@ -21,7 +29,15 @@ import dagger.Module;
GtasksDetailExposer.class,
GlobalEventReceiver.class,
TagDetailExposer.class,
TagCustomFilterCriteriaExposer.class
TagCustomFilterCriteriaExposer.class,
NotesDetailExposer.class,
GCalTaskCompleteListener.class,
RepeatDetailExposer.class,
TimerTaskCompleteListener.class,
RepeatTaskCompleteListener.class,
AlarmTaskRepeatListener.class,
AlarmDetailExposer.class,
GtasksStartupReceiver.class
})
public class BroadcastModule {
}

@ -204,6 +204,6 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
return SubtasksHelper.applySubtasksToWidgetFilter(tagDataService, taskListMetadataDao, filter, query, tagName, 0);
return SubtasksHelper.applySubtasksToWidgetFilter(taskService, tagDataService, taskListMetadataDao, filter, query, tagName, 0);
}
}

Loading…
Cancel
Save