package org.dodgybits.shuffle.android.persistence.provider; import android.net.Uri; import android.provider.BaseColumns; public class ProjectProvider extends AbstractCollectionProvider { public static final String PROJECT_TABLE_NAME = "project"; public static final String cUpdateIntent = "org.dodgybits.shuffle.android.PROJECT_UPDATE"; /** * Projects table */ public static final class Projects implements BaseColumns { public static final String ARCHIVED = "archived"; /** * The content:// style URL for this table */ public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/"+URL_COLLECTION_NAME); public static final Uri cProjectTasksContentURI = Uri.parse("content://" + AUTHORITY + "/projectTasks"); public static final String DEFAULT_CONTEXT_ID = "defaultContextId"; /** * The default sort order for this table */ public static final String DEFAULT_SORT_ORDER = "name DESC"; public static final String MODIFIED_DATE = "modified"; public static final String NAME = "name"; public static final String PARALLEL = "parallel"; public static final String TASK_COUNT = "count"; public static final String TRACKS_ID = "tracks_id"; /** * Projection for all the columns of a project. */ public static final String[] cFullProjection = new String[] { _ID, NAME, DEFAULT_CONTEXT_ID, TRACKS_ID, MODIFIED_DATE, PARALLEL, ARCHIVED }; /** * Projection for fetching the task count for each project. */ public static final String[] cFullTaskProjection = new String[] { _ID, TASK_COUNT, }; } private static final String AUTHORITY = Shuffle.PACKAGE+".projectprovider"; static final int PROJECT_TASKS = 203; private static final String URL_COLLECTION_NAME = "projects"; public ProjectProvider() { super( AUTHORITY, URL_COLLECTION_NAME, PROJECT_TABLE_NAME, cUpdateIntent, Projects.NAME, Projects._ID, Projects.CONTENT_URI, Projects._ID,Projects.NAME, Projects.DEFAULT_CONTEXT_ID, Projects.TRACKS_ID, Projects.MODIFIED_DATE, Projects.PARALLEL, Projects.ARCHIVED); makeSearchable(Projects._ID, Projects.NAME, Projects.NAME, Projects.NAME); uriMatcher.addURI(AUTHORITY, "projectTasks", PROJECT_TASKS); String idField = "p._id"; String tables = "project p, task t"; String restrictions = "t.projectId = p._id"; restrictionBuilders.put(PROJECT_TASKS, new CustomElementFilterRestrictionBuilder(tables, restrictions, idField)); setDefaultSortOrder(Projects.DEFAULT_SORT_ORDER); } }