Remove fields from plugin services

* TaskListMetadataDao
* TagDataDao
* StoreObjectDao
* ExceptionService
* TagDataService
pull/143/head
Alex Baker 10 years ago
parent 5374f67e89
commit 29cf45fc8f

@ -23,6 +23,8 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.CommentsFragment;
@ -33,7 +35,7 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
@ -54,6 +56,9 @@ import org.tasks.R;
public class TaskListActivity extends AstridActivity implements OnPageChangeListener {
@Autowired
TagDataDao tagDataDao;
MenuDrawer menuDrawer;
/** token for indicating source of TLA launch */
@ -408,7 +413,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
if (tlf != null) {
TagData td = tlf.getActiveTagData();
if (td != null && td.getUuid().equals(uuid)) {
td = PluginServices.getTagDataDao().fetch(uuid, TagData.PROPERTIES);
td = tagDataDao.fetch(uuid, TagData.PROPERTIES);
if (td != null) {
Filter filter = TagFilterExposer.filterFromTagData(this, td);
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, filter);

@ -16,7 +16,6 @@ import android.util.Log;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
import org.tasks.R;
@ -30,6 +29,8 @@ import java.util.Comparator;
*/
public class BackupService extends Service {
private static final String TAG = "BackupService";
// --- constants for backup
/**
@ -56,7 +57,7 @@ public class BackupService extends Service {
ContextManager.setContext(this);
startBackup(this);
} catch (Exception e) {
PluginServices.getExceptionService().reportError("backup-bg-sync", e); //$NON-NLS-1$
Log.e(TAG, e.getMessage(), e);
}
}

@ -17,7 +17,8 @@ import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
@ -42,6 +43,8 @@ import java.io.IOException;
public class TasksXmlExporter {
private static final String TAG = "TasksXmlExporter";
// --- public interface
/**
@ -64,6 +67,9 @@ public class TasksXmlExporter {
// --- implementation
@Autowired
TagDataService tagDataService;
// 3 is started on Version 4.6.10
private static final int FORMAT = 3;
@ -71,9 +77,7 @@ public class TasksXmlExporter {
private int exportCount = 0;
private XmlSerializer xml;
private final TaskService taskService = PluginServices.getTaskService();
private final TagDataService tagdataService = PluginServices.getTagDataService();
private final MetadataService metadataService = PluginServices.getMetadataService();
private final ExceptionService exceptionService = PluginServices.getExceptionService();
private final ProgressDialog progressDialog;
private final Handler handler;
@ -90,8 +94,9 @@ public class TasksXmlExporter {
});
}
private TasksXmlExporter(final Context context, final ExportType exportType,
File backupDirectoryOverride) {
private TasksXmlExporter(final Context context, final ExportType exportType, File backupDirectoryOverride) {
DependencyInjectionService.getInstance().inject(this);
this.context = context;
this.exportCount = 0;
this.backupDirectory = backupDirectoryOverride == null ?
@ -132,20 +137,7 @@ public class TasksXmlExporter {
onFinishExport(output);
}
} catch (IOException e) {
switch(exportType) {
case EXPORT_TYPE_MANUAL:
exceptionService.displayAndReportError(context,
context.getString(R.string.backup_TXI_error), e);
break;
case EXPORT_TYPE_SERVICE:
exceptionService.reportError("background-backup", e); //$NON-NLS-1$
Preferences.setString(BackupPreferences.PREF_BACKUP_LAST_ERROR, e.toString());
break;
case EXPORT_TYPE_ON_UPGRADE:
exceptionService.reportError("background-backup", e); //$NON-NLS-1$
Preferences.setString(BackupPreferences.PREF_BACKUP_LAST_ERROR, e.toString());
break;
}
Log.e(TAG, exportType + ": " + e.getMessage(), e);
} finally {
handler.post(new Runnable() {
@Override
@ -188,7 +180,7 @@ public class TasksXmlExporter {
private void serializeTagDatas() throws IOException {
TodorooCursor<TagData> cursor;
cursor = tagdataService.query(Query.select(
cursor = tagDataService.query(Query.select(
TagData.PROPERTIES).orderBy(Order.asc(TagData.ID)));
try {

@ -22,8 +22,9 @@ import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
@ -56,6 +57,8 @@ import java.util.StringTokenizer;
public class TasksXmlImporter {
private static final String TAG = "TasksXmlImporter";
// --- public interface
/**
@ -67,6 +70,9 @@ public class TasksXmlImporter {
// --- implementation
@Autowired
TagDataService tagDataService;
private final Handler handler;
private int taskCount;
private int importCount = 0;
@ -77,8 +83,6 @@ public class TasksXmlImporter {
private final Context context;
private final TaskService taskService = PluginServices.getTaskService();
private final MetadataService metadataService = PluginServices.getMetadataService();
private final TagDataService tagdataService = PluginServices.getTagDataService();
private final ExceptionService exceptionService = PluginServices.getExceptionService();
private final ProgressDialog progressDialog;
private final Runnable runAfterImport;
@ -96,6 +100,8 @@ public class TasksXmlImporter {
* @param runAfterImport optional runnable after import
*/
private TasksXmlImporter(final Context context, String input, Runnable runAfterImport) {
DependencyInjectionService.getInstance().inject(this);
this.input = input;
this.context = context;
this.runAfterImport = runAfterImport;
@ -122,8 +128,7 @@ public class TasksXmlImporter {
try {
performImport();
} catch (IOException | XmlPullParserException e) {
exceptionService.displayAndReportError(context,
context.getString(R.string.backup_TXI_error), e);
Log.e(TAG, e.getMessage(), e);
}
}
}).start();
@ -303,7 +308,7 @@ public class TasksXmlImporter {
String uuid = metadata.getValue(Metadata.VALUE2);
long deletionDate = metadata.getDeletionDate();
// UUID is uniquely for every TagData, so we don't need to test the name
TodorooCursor<TagData> cursor = tagdataService.query(Query.select(TagData.ID).
TodorooCursor<TagData> cursor = tagDataService.query(Query.select(TagData.ID).
where(TagData.UUID.eq(uuid)));
try {
//If you sync with Google tasks it adds some Google task metadata.
@ -313,7 +318,7 @@ public class TasksXmlImporter {
tagdata.setId(TagData.NO_ID);
tagdata.setUuid(uuid);
tagdata.setName(name);
tagdataService.save(tagdata);
tagDataService.save(tagdata);
}
} finally {
cursor.close();
@ -411,7 +416,7 @@ public class TasksXmlImporter {
private void parseTagdata() {
tagdata.clear();
deserializeModel(tagdata, TagData.PROPERTIES);
tagdataService.save(tagdata);
tagDataService.save(tagdata);
}
}

@ -46,6 +46,7 @@ import com.todoroo.astrid.api.MultipleSelectCriterion;
import com.todoroo.astrid.api.PermaSql;
import com.todoroo.astrid.api.TextInputCriterion;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.ThemeService;
@ -147,6 +148,9 @@ public class CustomFilterActivity extends ActionBarActivity {
@Autowired
Database database;
@Autowired
StoreObjectDao storeObjectDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
setupForDialogOrFullscreen();
@ -427,7 +431,7 @@ public class CustomFilterActivity extends ActionBarActivity {
if(filterName.getText().length() > 0) {
// persist saved filter
title = filterName.getText().toString().trim();
SavedFilter.persist(adapter, title, sql.toString(), values);
SavedFilter.persist(storeObjectDao, adapter, title, sql.toString(), values);
} else {
// temporary
title = suggestedTitle.toString();

@ -15,7 +15,9 @@ import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.sql.QueryTemplate;
@ -47,6 +49,13 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
private static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$
private static final String TOKEN_FILTER_NAME = "name"; //$NON-NLS-1$
@Autowired
StoreObjectDao storeObjectDao;
public CustomFilterExposer() {
DependencyInjectionService.getInstance().inject(this);
}
@Override
public void onReceive(Context context, Intent intent) {
FilterListItem[] list = prepareFilters(context);
@ -66,8 +75,7 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
private Filter[] buildSavedFilters(Context context, Resources r) {
int themeFlags = ThemeService.getFilterThemeFlags();
StoreObjectDao dao = PluginServices.getStoreObjectDao();
TodorooCursor<StoreObject> cursor = dao.query(Query.select(StoreObject.PROPERTIES).where(
TodorooCursor<StoreObject> cursor = storeObjectDao.query(Query.select(StoreObject.PROPERTIES).where(
StoreObject.TYPE.eq(SavedFilter.TYPE)).orderBy(Order.asc(SavedFilter.NAME)));
try {
ArrayList<Filter> list = new ArrayList<>();
@ -119,8 +127,13 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
*/
public static class DeleteActivity extends Activity {
@Autowired
StoreObjectDao storeObjectDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
DependencyInjectionService.getInstance().inject(this);
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Dialog);
@ -137,7 +150,7 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
@Override
public void onClick(DialogInterface dialog, int which) {
PluginServices.getStoreObjectDao().delete(id);
storeObjectDao.delete(id);
setResult(RESULT_OK);
finish();
}

@ -7,14 +7,9 @@ package com.todoroo.astrid.core;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
/**
@ -31,24 +26,9 @@ public final class PluginServices {
@Autowired
Database database;
@Autowired
ExceptionService exceptionService;
@Autowired
MetadataService metadataService;
@Autowired
TagDataService tagDataService;
@Autowired
TagDataDao tagDataDao;
@Autowired
StoreObjectDao storeObjectDao;
@Autowired
TaskListMetadataDao taskListMetadataDao;
private static volatile PluginServices instance;
static {
@ -75,28 +55,8 @@ public final class PluginServices {
return getInstance().taskService;
}
public static TagDataService getTagDataService() {
return getInstance().tagDataService;
}
public static TagDataDao getTagDataDao() {
return getInstance().tagDataDao;
}
public static ExceptionService getExceptionService() {
return getInstance().exceptionService;
}
public static MetadataService getMetadataService() {
getInstance().database.openForWriting();
return getInstance().metadataService;
}
public static StoreObjectDao getStoreObjectDao() {
return getInstance().storeObjectDao;
}
public static TaskListMetadataDao getTaskListMetadataDao() {
return getInstance().taskListMetadataDao;
}
}

@ -49,7 +49,7 @@ public class SavedFilter {
/**
* Save a filter
*/
public static void persist(CustomFilterAdapter adapter, String title,
public static void persist(StoreObjectDao dao, CustomFilterAdapter adapter, String title,
String sql, ContentValues values) {
if(title == null || title.length() == 0) {
@ -57,7 +57,6 @@ public class SavedFilter {
}
// if filter of this name exists, edit it
StoreObjectDao dao = PluginServices.getStoreObjectDao();
StoreObject storeObject = new StoreObject();
TodorooCursor<StoreObject> cursor = dao.query(Query.select(StoreObject.ID).where(NAME.eq(title)));
try {

@ -14,7 +14,6 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.TagMetadata;
@ -39,7 +38,10 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
@Autowired
private Database database;
public TagMetadataDao() {
@Autowired
TagDataDao tagDataDao;
public TagMetadataDao() {
super(TagMetadata.class);
DependencyInjectionService.getInstance().inject(this);
setDatabase(database);
@ -134,7 +136,7 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
//
}
tagData.setMembers(""); //$NON-NLS-1$
PluginServices.getTagDataDao().saveExisting(tagData);
tagDataDao.saveExisting(tagData);
}
TodorooCursor<TagMetadata> currentMembers = query(Query.select(TagMemberMetadata.USER_UUID).where(TagMetadataCriteria.byTagAndWithKey(tagUuid, TagMemberMetadata.KEY)));

@ -9,6 +9,7 @@ import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.ical.iter.RecurrenceIterator;
import com.google.ical.iter.RecurrenceIteratorFactory;
@ -41,6 +42,8 @@ import static org.tasks.date.DateTimeUtils.newDateUtc;
public class RepeatTaskCompleteListener extends BroadcastReceiver {
private static final String TAG = "RepeatTaskCompleteListener";
@Override
public void onReceive(Context context, Intent intent) {
ContextManager.setContext(context);
@ -66,7 +69,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
return;
}
} catch (ParseException e) {
PluginServices.getExceptionService().reportError("repeat-parse", e); //$NON-NLS-1$
Log.e(TAG, e.getMessage(), e);
return;
}

@ -7,6 +7,7 @@ package com.todoroo.astrid.service;
import android.content.ContentValues;
import android.content.Intent;
import android.util.Log;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
@ -56,6 +57,8 @@ import java.util.Map.Entry;
*/
public class TaskService {
private static final String TAG = "TaskService";
public static final String TRANS_QUICK_ADD_MARKUP = "markup"; //$NON-NLS-1$
public static final String TRANS_REPEAT_CHANGED = "repeat_changed"; //$NON-NLS-1$
@ -406,7 +409,7 @@ public class TaskService {
try {
quickAddMarkup = parseQuickAddMarkup(task, tags);
} catch (Throwable e) {
PluginServices.getExceptionService().reportError("parse-quick-add", e); //$NON-NLS-1$
Log.e(TAG, e.getMessage(), e);
}
ContentValues forMetadata = null;

@ -21,6 +21,7 @@ import com.todoroo.astrid.data.RemoteModel;
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.subtasks.AstridOrderedListUpdater.Node;
import com.todoroo.astrid.utility.AstridPreferences;
@ -59,11 +60,10 @@ public class SubtasksHelper {
return false;
}
public static String applySubtasksToWidgetFilter(Filter filter, String query, String tagName, int limit) {
public static String applySubtasksToWidgetFilter(TagDataService tagDataService, TaskListMetadataDao tlmd, Filter filter, String query, String tagName, int limit) {
if (SubtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) {
// care for manual ordering
TagData tagData = PluginServices.getTagDataService().getTagByName(tagName, TagData.UUID, TagData.TAG_ORDERING);
TaskListMetadataDao tlmd = PluginServices.getTaskListMetadataDao();
TagData tagData = tagDataService.getTagByName(tagName, TagData.UUID, TagData.TAG_ORDERING);
TaskListMetadata tlm = null;
if (tagData != null) {
tlm = tlmd.fetchByTagId(tagData.getUuid(), TaskListMetadata.TASK_IDS);

@ -99,21 +99,6 @@ public final class TagService {
public String uuid;
public String image;
public static Tag tagFromUUID(String uuid) {
TodorooCursor<TagData> tagData = PluginServices.getTagDataService().query(Query.select(TagData.PROPERTIES).where(TagData.UUID.eq(uuid)));
try {
if (tagData.getCount() > 0) {
tagData.moveToFirst();
return new Tag(new TagData(tagData));
} else {
return null;
}
} finally {
tagData.close();
}
}
public Tag(TagData tagData) {
tag = tagData.getName();
count = tagData.getTaskCount();
@ -174,7 +159,7 @@ public final class TagService {
ArrayList<Tag> array = new ArrayList<>();
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToNext();
Tag tag = Tag.tagFromUUID(cursor.get(TaskToTagMetadata.TAG_UUID));
Tag tag = tagFromUUID(cursor.get(TaskToTagMetadata.TAG_UUID));
if (tag != null) {
array.add(tag);
}
@ -185,6 +170,21 @@ public final class TagService {
}
}
private Tag tagFromUUID(String uuid) {
TodorooCursor<TagData> tagData = tagDataService.query(Query.select(TagData.PROPERTIES).where(TagData.UUID.eq(uuid)));
try {
if (tagData.getCount() > 0) {
tagData.moveToFirst();
return new Tag(new TagData(tagData));
} else {
return null;
}
} finally {
tagData.close();
}
}
public void createLink(Task task, String tagName) {
TodorooCursor<TagData> existingTag = tagDataService.query(Query.select(TagData.NAME, TagData.UUID)
.where(TagData.NAME.eqCaseInsensitive(tagName)));
@ -280,7 +280,7 @@ public final class TagService {
Intent tagDeleted = new Intent(AstridApiConstants.BROADCAST_EVENT_TAG_DELETED);
if(tagData != null) {
tagData.setDeletionDate(DateUtilities.now());
PluginServices.getTagDataService().save(tagData);
tagDataService.save(tagData);
tagDeleted.putExtra(TagViewFragment.EXTRA_TAG_UUID, tagData.getUuid());
}
Toast.makeText(context, context.getString(R.string.TEA_tags_deleted, tag, deleted), Toast.LENGTH_SHORT).show();

@ -23,8 +23,10 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
@ -50,6 +52,12 @@ public class WidgetUpdateService extends Service {
@Autowired
TaskService taskService;
@Autowired
TaskListMetadataDao taskListMetadataDao;
@Autowired
TagDataService tagDataService;
private final WidgetHelper widgetHelper = new WidgetHelper();
@Override
@ -120,7 +128,7 @@ public class WidgetUpdateService extends Service {
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks;
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
query = SubtasksHelper.applySubtasksToWidgetFilter(filter, query, tagName, numberOfTasks);
query = SubtasksHelper.applySubtasksToWidgetFilter(tagDataService, taskListMetadataDao, filter, query, tagName, numberOfTasks);
database.openForReading();
cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE);

@ -25,7 +25,9 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.utility.AstridPreferences;
@ -44,6 +46,12 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
@Autowired
TaskService taskService;
@Autowired
TaskListMetadataDao taskListMetadataDao;
@Autowired
TagDataService tagDataService;
private final Context context;
private final Filter filter;
private final int widgetId;
@ -196,6 +204,6 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
return SubtasksHelper.applySubtasksToWidgetFilter(filter, query, tagName, 0);
return SubtasksHelper.applySubtasksToWidgetFilter(tagDataService, taskListMetadataDao, filter, query, tagName, 0);
}
}

Loading…
Cancel
Save