From 17a9ec4cb20c1189a8973038c5d648a4037a6f16 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Thu, 19 Aug 2010 16:35:17 -0700 Subject: [PATCH] In-progress content provider --- .../astrid/api/AstridApiConstants.java | 14 +- .../com/todoroo/andlib/data/GenericDao.java | 5 + .../astrid/activity/ShortcutActivity.java | 1 + astrid/src/com/todoroo/astrid/model/Task.java | 7 +- .../provider/Astrid3ContentProvider.java | 226 +++++++++--------- 5 files changed, 122 insertions(+), 131 deletions(-) diff --git a/astrid/api-src/com/todoroo/astrid/api/AstridApiConstants.java b/astrid/api-src/com/todoroo/astrid/api/AstridApiConstants.java index 4b2241a70..5fec0f7db 100644 --- a/astrid/api-src/com/todoroo/astrid/api/AstridApiConstants.java +++ b/astrid/api-src/com/todoroo/astrid/api/AstridApiConstants.java @@ -16,7 +16,7 @@ public class AstridApiConstants { // --- General Constants /** - * Astrid application package name + * Astrid broadcast base package name */ public static final String PACKAGE = "com.todoroo.astrid"; @@ -199,16 +199,4 @@ public class AstridApiConstants { */ public static final String BROADCAST_EVENT_TASK_REPEATED = PACKAGE + ".TASK_REPEATED"; - // --- SQL Constants - - /** - * Table name for tasks - */ - public static final String TASK_TABLE = "tasks"; - - /** - * Table name for metadata - */ - public static final String METADATA_TABLE = "metadata"; - } diff --git a/astrid/common-src/com/todoroo/andlib/data/GenericDao.java b/astrid/common-src/com/todoroo/andlib/data/GenericDao.java index 7c80b6a4f..b8b2b8ad3 100644 --- a/astrid/common-src/com/todoroo/andlib/data/GenericDao.java +++ b/astrid/common-src/com/todoroo/andlib/data/GenericDao.java @@ -41,6 +41,11 @@ public class GenericDao { setDatabase(database); } + /** Gets table associated with this DAO */ + public Table getTable() { + return table; + } + /** * Sets up a database * @param database diff --git a/astrid/src/com/todoroo/astrid/activity/ShortcutActivity.java b/astrid/src/com/todoroo/astrid/activity/ShortcutActivity.java index aad0405de..976e21393 100644 --- a/astrid/src/com/todoroo/astrid/activity/ShortcutActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/ShortcutActivity.java @@ -130,6 +130,7 @@ public class ShortcutActivity extends Activity { public static Intent createIntent(Filter filter) { Intent shortcutIntent = new Intent(ContextManager.getContext(), ShortcutActivity.class); + shortcutIntent.setAction(Intent.ACTION_VIEW); shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_TITLE, filter.title); shortcutIntent.putExtra(ShortcutActivity.TOKEN_FILTER_SQL, filter.sqlQuery); diff --git a/astrid/src/com/todoroo/astrid/model/Task.java b/astrid/src/com/todoroo/astrid/model/Task.java index b0130614d..b96e3c59d 100644 --- a/astrid/src/com/todoroo/astrid/model/Task.java +++ b/astrid/src/com/todoroo/astrid/model/Task.java @@ -20,6 +20,7 @@ import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.data.Table; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.utility.DateUtilities; +import com.todoroo.astrid.api.AstridApiConstants; /** * Data Model which represents a task users need to accomplish. @@ -30,10 +31,14 @@ import com.todoroo.andlib.utility.DateUtilities; @SuppressWarnings("nls") public final class Task extends AbstractModel { - // --- table + // --- table and uri + /** table for this model */ public static final Table TABLE = new Table("tasks", Task.class); + /** content uri for this model */ + public static final String CONTENT_URI = "content://" + AstridApiConstants.PACKAGE + "/tasks/"; + // --- properties /** ID */ diff --git a/astrid/src/com/todoroo/astrid/provider/Astrid3ContentProvider.java b/astrid/src/com/todoroo/astrid/provider/Astrid3ContentProvider.java index 85edfda25..519aa47f8 100644 --- a/astrid/src/com/todoroo/astrid/provider/Astrid3ContentProvider.java +++ b/astrid/src/com/todoroo/astrid/provider/Astrid3ContentProvider.java @@ -3,10 +3,6 @@ */ package com.todoroo.astrid.provider; -import java.lang.ref.WeakReference; -import java.util.HashSet; -import java.util.Map.Entry; - import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; @@ -15,20 +11,36 @@ import android.database.Cursor; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; -import com.todoroo.andlib.data.AbstractDatabase; -import com.todoroo.andlib.data.Property; +import com.todoroo.andlib.data.AbstractModel; +import com.todoroo.andlib.data.GenericDao; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.dao.Database; +import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.model.Metadata; +import com.todoroo.astrid.model.StoreObject; import com.todoroo.astrid.model.Task; import com.todoroo.astrid.service.AstridDependencyInjector; /** - * Astrid Content Provider. Combines all Astrid tables into a single content - * provider that can be queried, inserted into, and deleted from. + * Astrid 3 Content Provider. There are two ways to use this content provider: + * + * + * The following base URI's are supported: + * + * + * Each URI supports the following components: + *