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.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout; 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.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.CommentsFragment; 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.api.FilterListItem;
import com.todoroo.astrid.core.CoreFilterExposer; import com.todoroo.astrid.core.CoreFilterExposer;
import com.todoroo.astrid.core.CustomFilterActivity; 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.RemoteModel;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
@ -54,6 +56,9 @@ import org.tasks.R;
public class TaskListActivity extends AstridActivity implements OnPageChangeListener { public class TaskListActivity extends AstridActivity implements OnPageChangeListener {
@Autowired
TagDataDao tagDataDao;
MenuDrawer menuDrawer; MenuDrawer menuDrawer;
/** token for indicating source of TLA launch */ /** token for indicating source of TLA launch */
@ -408,7 +413,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
if (tlf != null) { if (tlf != null) {
TagData td = tlf.getActiveTagData(); TagData td = tlf.getActiveTagData();
if (td != null && td.getUuid().equals(uuid)) { if (td != null && td.getUuid().equals(uuid)) {
td = PluginServices.getTagDataDao().fetch(uuid, TagData.PROPERTIES); td = tagDataDao.fetch(uuid, TagData.PROPERTIES);
if (td != null) { if (td != null) {
Filter filter = TagFilterExposer.filterFromTagData(this, td); Filter filter = TagFilterExposer.filterFromTagData(this, td);
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, filter); 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.service.ContextManager;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.core.PluginServices;
import org.tasks.R; import org.tasks.R;
@ -30,6 +29,8 @@ import java.util.Comparator;
*/ */
public class BackupService extends Service { public class BackupService extends Service {
private static final String TAG = "BackupService";
// --- constants for backup // --- constants for backup
/** /**
@ -56,7 +57,7 @@ public class BackupService extends Service {
ContextManager.setContext(this); ContextManager.setContext(this);
startBackup(this); startBackup(this);
} catch (Exception e) { } 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;
import com.todoroo.andlib.data.Property.PropertyVisitor; import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.data.TodorooCursor; 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.Order;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
@ -42,6 +43,8 @@ import java.io.IOException;
public class TasksXmlExporter { public class TasksXmlExporter {
private static final String TAG = "TasksXmlExporter";
// --- public interface // --- public interface
/** /**
@ -64,6 +67,9 @@ public class TasksXmlExporter {
// --- implementation // --- implementation
@Autowired
TagDataService tagDataService;
// 3 is started on Version 4.6.10 // 3 is started on Version 4.6.10
private static final int FORMAT = 3; private static final int FORMAT = 3;
@ -71,9 +77,7 @@ public class TasksXmlExporter {
private int exportCount = 0; private int exportCount = 0;
private XmlSerializer xml; private XmlSerializer xml;
private final TaskService taskService = PluginServices.getTaskService(); private final TaskService taskService = PluginServices.getTaskService();
private final TagDataService tagdataService = PluginServices.getTagDataService();
private final MetadataService metadataService = PluginServices.getMetadataService(); private final MetadataService metadataService = PluginServices.getMetadataService();
private final ExceptionService exceptionService = PluginServices.getExceptionService();
private final ProgressDialog progressDialog; private final ProgressDialog progressDialog;
private final Handler handler; private final Handler handler;
@ -90,8 +94,9 @@ public class TasksXmlExporter {
}); });
} }
private TasksXmlExporter(final Context context, final ExportType exportType, private TasksXmlExporter(final Context context, final ExportType exportType, File backupDirectoryOverride) {
File backupDirectoryOverride) { DependencyInjectionService.getInstance().inject(this);
this.context = context; this.context = context;
this.exportCount = 0; this.exportCount = 0;
this.backupDirectory = backupDirectoryOverride == null ? this.backupDirectory = backupDirectoryOverride == null ?
@ -132,20 +137,7 @@ public class TasksXmlExporter {
onFinishExport(output); onFinishExport(output);
} }
} catch (IOException e) { } catch (IOException e) {
switch(exportType) { Log.e(TAG, exportType + ": " + e.getMessage(), e);
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;
}
} finally { } finally {
handler.post(new Runnable() { handler.post(new Runnable() {
@Override @Override
@ -188,7 +180,7 @@ public class TasksXmlExporter {
private void serializeTagDatas() throws IOException { private void serializeTagDatas() throws IOException {
TodorooCursor<TagData> cursor; TodorooCursor<TagData> cursor;
cursor = tagdataService.query(Query.select( cursor = tagDataService.query(Query.select(
TagData.PROPERTIES).orderBy(Order.asc(TagData.ID))); TagData.PROPERTIES).orderBy(Order.asc(TagData.ID)));
try { try {

@ -22,8 +22,9 @@ import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.PropertyVisitor; import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager; 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.Criterion;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
@ -56,6 +57,8 @@ import java.util.StringTokenizer;
public class TasksXmlImporter { public class TasksXmlImporter {
private static final String TAG = "TasksXmlImporter";
// --- public interface // --- public interface
/** /**
@ -67,6 +70,9 @@ public class TasksXmlImporter {
// --- implementation // --- implementation
@Autowired
TagDataService tagDataService;
private final Handler handler; private final Handler handler;
private int taskCount; private int taskCount;
private int importCount = 0; private int importCount = 0;
@ -77,8 +83,6 @@ public class TasksXmlImporter {
private final Context context; private final Context context;
private final TaskService taskService = PluginServices.getTaskService(); private final TaskService taskService = PluginServices.getTaskService();
private final MetadataService metadataService = PluginServices.getMetadataService(); private final MetadataService metadataService = PluginServices.getMetadataService();
private final TagDataService tagdataService = PluginServices.getTagDataService();
private final ExceptionService exceptionService = PluginServices.getExceptionService();
private final ProgressDialog progressDialog; private final ProgressDialog progressDialog;
private final Runnable runAfterImport; private final Runnable runAfterImport;
@ -96,6 +100,8 @@ public class TasksXmlImporter {
* @param runAfterImport optional runnable after import * @param runAfterImport optional runnable after import
*/ */
private TasksXmlImporter(final Context context, String input, Runnable runAfterImport) { private TasksXmlImporter(final Context context, String input, Runnable runAfterImport) {
DependencyInjectionService.getInstance().inject(this);
this.input = input; this.input = input;
this.context = context; this.context = context;
this.runAfterImport = runAfterImport; this.runAfterImport = runAfterImport;
@ -122,8 +128,7 @@ public class TasksXmlImporter {
try { try {
performImport(); performImport();
} catch (IOException | XmlPullParserException e) { } catch (IOException | XmlPullParserException e) {
exceptionService.displayAndReportError(context, Log.e(TAG, e.getMessage(), e);
context.getString(R.string.backup_TXI_error), e);
} }
} }
}).start(); }).start();
@ -303,7 +308,7 @@ public class TasksXmlImporter {
String uuid = metadata.getValue(Metadata.VALUE2); String uuid = metadata.getValue(Metadata.VALUE2);
long deletionDate = metadata.getDeletionDate(); long deletionDate = metadata.getDeletionDate();
// UUID is uniquely for every TagData, so we don't need to test the name // 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))); where(TagData.UUID.eq(uuid)));
try { try {
//If you sync with Google tasks it adds some Google task metadata. //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.setId(TagData.NO_ID);
tagdata.setUuid(uuid); tagdata.setUuid(uuid);
tagdata.setName(name); tagdata.setName(name);
tagdataService.save(tagdata); tagDataService.save(tagdata);
} }
} finally { } finally {
cursor.close(); cursor.close();
@ -411,7 +416,7 @@ public class TasksXmlImporter {
private void parseTagdata() { private void parseTagdata() {
tagdata.clear(); tagdata.clear();
deserializeModel(tagdata, TagData.PROPERTIES); 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.PermaSql;
import com.todoroo.astrid.api.TextInputCriterion; import com.todoroo.astrid.api.TextInputCriterion;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.ThemeService;
@ -147,6 +148,9 @@ public class CustomFilterActivity extends ActionBarActivity {
@Autowired @Autowired
Database database; Database database;
@Autowired
StoreObjectDao storeObjectDao;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
setupForDialogOrFullscreen(); setupForDialogOrFullscreen();
@ -427,7 +431,7 @@ public class CustomFilterActivity extends ActionBarActivity {
if(filterName.getText().length() > 0) { if(filterName.getText().length() > 0) {
// persist saved filter // persist saved filter
title = filterName.getText().toString().trim(); title = filterName.getText().toString().trim();
SavedFilter.persist(adapter, title, sql.toString(), values); SavedFilter.persist(storeObjectDao, adapter, title, sql.toString(), values);
} else { } else {
// temporary // temporary
title = suggestedTitle.toString(); title = suggestedTitle.toString();

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

@ -7,14 +7,9 @@ package com.todoroo.astrid.core;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.astrid.dao.Database; 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.AstridDependencyInjector;
import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
/** /**
@ -31,24 +26,9 @@ public final class PluginServices {
@Autowired @Autowired
Database database; Database database;
@Autowired
ExceptionService exceptionService;
@Autowired @Autowired
MetadataService metadataService; MetadataService metadataService;
@Autowired
TagDataService tagDataService;
@Autowired
TagDataDao tagDataDao;
@Autowired
StoreObjectDao storeObjectDao;
@Autowired
TaskListMetadataDao taskListMetadataDao;
private static volatile PluginServices instance; private static volatile PluginServices instance;
static { static {
@ -75,28 +55,8 @@ public final class PluginServices {
return getInstance().taskService; 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() { public static MetadataService getMetadataService() {
getInstance().database.openForWriting(); getInstance().database.openForWriting();
return getInstance().metadataService; 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 * 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) { String sql, ContentValues values) {
if(title == null || title.length() == 0) { if(title == null || title.length() == 0) {
@ -57,7 +57,6 @@ public class SavedFilter {
} }
// if filter of this name exists, edit it // if filter of this name exists, edit it
StoreObjectDao dao = PluginServices.getStoreObjectDao();
StoreObject storeObject = new StoreObject(); StoreObject storeObject = new StoreObject();
TodorooCursor<StoreObject> cursor = dao.query(Query.select(StoreObject.ID).where(NAME.eq(title))); TodorooCursor<StoreObject> cursor = dao.query(Query.select(StoreObject.ID).where(NAME.eq(title)));
try { try {

@ -14,7 +14,6 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.core.PluginServices;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.TagMetadata; import com.todoroo.astrid.data.TagMetadata;
@ -39,7 +38,10 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
@Autowired @Autowired
private Database database; private Database database;
public TagMetadataDao() { @Autowired
TagDataDao tagDataDao;
public TagMetadataDao() {
super(TagMetadata.class); super(TagMetadata.class);
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
setDatabase(database); setDatabase(database);
@ -134,7 +136,7 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
// //
} }
tagData.setMembers(""); //$NON-NLS-1$ 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))); 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.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log;
import com.google.ical.iter.RecurrenceIterator; import com.google.ical.iter.RecurrenceIterator;
import com.google.ical.iter.RecurrenceIteratorFactory; import com.google.ical.iter.RecurrenceIteratorFactory;
@ -41,6 +42,8 @@ import static org.tasks.date.DateTimeUtils.newDateUtc;
public class RepeatTaskCompleteListener extends BroadcastReceiver { public class RepeatTaskCompleteListener extends BroadcastReceiver {
private static final String TAG = "RepeatTaskCompleteListener";
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
ContextManager.setContext(context); ContextManager.setContext(context);
@ -66,7 +69,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
return; return;
} }
} catch (ParseException e) { } catch (ParseException e) {
PluginServices.getExceptionService().reportError("repeat-parse", e); //$NON-NLS-1$ Log.e(TAG, e.getMessage(), e);
return; return;
} }

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

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

@ -99,21 +99,6 @@ public final class TagService {
public String uuid; public String uuid;
public String image; 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) { public Tag(TagData tagData) {
tag = tagData.getName(); tag = tagData.getName();
count = tagData.getTaskCount(); count = tagData.getTaskCount();
@ -174,7 +159,7 @@ public final class TagService {
ArrayList<Tag> array = new ArrayList<>(); ArrayList<Tag> array = new ArrayList<>();
for (int i = 0; i < cursor.getCount(); i++) { for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToNext(); cursor.moveToNext();
Tag tag = Tag.tagFromUUID(cursor.get(TaskToTagMetadata.TAG_UUID)); Tag tag = tagFromUUID(cursor.get(TaskToTagMetadata.TAG_UUID));
if (tag != null) { if (tag != null) {
array.add(tag); 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) { public void createLink(Task task, String tagName) {
TodorooCursor<TagData> existingTag = tagDataService.query(Query.select(TagData.NAME, TagData.UUID) TodorooCursor<TagData> existingTag = tagDataService.query(Query.select(TagData.NAME, TagData.UUID)
.where(TagData.NAME.eqCaseInsensitive(tagName))); .where(TagData.NAME.eqCaseInsensitive(tagName)));
@ -280,7 +280,7 @@ public final class TagService {
Intent tagDeleted = new Intent(AstridApiConstants.BROADCAST_EVENT_TAG_DELETED); Intent tagDeleted = new Intent(AstridApiConstants.BROADCAST_EVENT_TAG_DELETED);
if(tagData != null) { if(tagData != null) {
tagData.setDeletionDate(DateUtilities.now()); tagData.setDeletionDate(DateUtilities.now());
PluginServices.getTagDataService().save(tagData); tagDataService.save(tagData);
tagDeleted.putExtra(TagViewFragment.EXTRA_TAG_UUID, tagData.getUuid()); tagDeleted.putExtra(TagViewFragment.EXTRA_TAG_UUID, tagData.getUuid());
} }
Toast.makeText(context, context.getString(R.string.TEA_tags_deleted, tag, deleted), Toast.LENGTH_SHORT).show(); 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.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.subtasks.SubtasksHelper; import com.todoroo.astrid.subtasks.SubtasksHelper;
@ -50,6 +52,12 @@ public class WidgetUpdateService extends Service {
@Autowired @Autowired
TaskService taskService; TaskService taskService;
@Autowired
TaskListMetadataDao taskListMetadataDao;
@Autowired
TagDataService tagDataService;
private final WidgetHelper widgetHelper = new WidgetHelper(); private final WidgetHelper widgetHelper = new WidgetHelper();
@Override @Override
@ -120,7 +128,7 @@ public class WidgetUpdateService extends Service {
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks; filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks;
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId); 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(); database.openForReading();
cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE); 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.api.FilterWithCustomIntent;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper; import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.AstridPreferences;
@ -44,6 +46,12 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
@Autowired @Autowired
TaskService taskService; TaskService taskService;
@Autowired
TaskListMetadataDao taskListMetadataDao;
@Autowired
TagDataService tagDataService;
private final Context context; private final Context context;
private final Filter filter; private final Filter filter;
private final int widgetId; private final int widgetId;
@ -196,6 +204,6 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId); 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