package org.dodgybits.shuffle.android.persistence.provider; import android.net.Uri; import android.provider.BaseColumns; public class ContextProvider extends AbstractCollectionProvider { public static final String cContextTableName = "context"; public static final String cUpdateIntent = "org.dodgybits.shuffle.android.CONTEXT_UPDATE"; private static final String AUTHORITY = Shuffle.PACKAGE+".contextprovider"; static final int CONTEXT_TASKS = 103; public ContextProvider() { super( AUTHORITY, "contexts", cContextTableName, cUpdateIntent, Contexts.NAME, Contexts._ID, Contexts.CONTENT_URI, Contexts._ID,Contexts.NAME, Contexts.COLOUR, Contexts.ICON,Contexts.TRACKS_ID, Contexts.MODIFIED_DATE); uriMatcher.addURI(AUTHORITY, "contextTasks", CONTEXT_TASKS); restrictionBuilders.put(CONTEXT_TASKS, new CustomElementFilterRestrictionBuilder("context c, task t", "t.contextId = c._id", "c._id")); setDefaultSortOrder(Contexts.DEFAULT_SORT_ORDER); } /** * Contexts table */ public static final class Contexts implements BaseColumns { /** * The content:// style URL for this table */ public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/contexts"); public static final Uri cContextTasksContentURI = Uri .parse("content://" + AUTHORITY + "/contextTasks"); /** * The default sort order for this table */ public static final String DEFAULT_SORT_ORDER = "name DESC"; public static final String NAME = "name"; public static final String COLOUR = "colour"; public static final String ICON = "iconName"; public static final String TRACKS_ID = "tracks_id"; public static final String MODIFIED_DATE = "modified"; /** * Projection for all the columns of a context. */ public static final String[] cFullProjection = new String[] { _ID, NAME, COLOUR, ICON, TRACKS_ID, MODIFIED_DATE }; public static final String TASK_COUNT = "count"; /** * Projection for fetching the task count for each context. */ public static final String[] cFullTaskProjection = new String[] { _ID, TASK_COUNT, }; } }