public static String getItemDirID(final Uri uri) { return getItemDirID("", uri); }
@Override protected int updateInTransaction(Uri uri, ContentValues values, String selection, String[] selectionArgs) { ContentValues insertValues = (values != null) ? new ContentValues(values) : new ContentValues(); int rowsAffected = getWritableDatabase().update(UriUtils.getItemDirID(uri), insertValues, selection, selectionArgs); if (rowsAffected > 0) { notifyUriChange(uri); } return rowsAffected; }
@Override protected int deleteInTransaction(Uri uri, String selection, String[] selectionArgs) { SQLiteDatabase database = getWritableDatabase(); int count = database.delete(UriUtils.getItemDirID(uri), selection, selectionArgs); notifyUriChange(uri); return count; }
public long insert(Uri uri, ContentValues values) { ContentValues insertValues = (values != null) ? new ContentValues(values) : new ContentValues(); final String table = UriUtils.getItemDirID(uri); final Constraint constraint = metaInfo.getFirstConstraint(table, insertValues); appendParentReference(uri, insertValues); long rowId = -1; if (constraint != null) { rowId = tryUpdateWithConstraint(table, constraint, insertValues); } else { if (Log.Provider.warningLoggingEnabled()) { Log.Provider.w("No constrain against URI: " + uri); } } if (rowId <= 0) { rowId = dbHelper.getWritableDatabase().insert(table, null, insertValues); } // According to http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#insert(java.lang.String,%20java.lang.String,%20android.content.ContentValues) // only -1 indicates an error, and returning 0 is valid and has been seen. if (rowId != -1) { return rowId; } throw new SQLException("Failed to insert row into " + uri); }
@Test public void testChangingRootOfQuery() { Uri uri = Uri.parse("content://test.com/root/item/1"); assertTrue(UriUtils.isItem("root", uri)); assertEquals("item", UriUtils.getItemDirID("root", uri)); uri = Uri.parse("content://test.com/root/root2/item/1"); assertTrue(UriUtils.isItem("root/root2", uri)); assertEquals("item", UriUtils.getItemDirID("root/root2", uri)); }
@Test public void testGenericItemWithinCollectionQuery() { final Uri uri = Uri.parse("content://test.com/item/1"); assertTrue(UriUtils.isNumberedEntryWithinCollection(uri)); assertEquals("item", UriUtils.getItemDirID(uri)); }
final StringBuilder tableName = new StringBuilder(UriUtils.getItemDirID(uri)); builder.setTables(tableName.toString()); Map<String, String> autoproj = null;