Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int deleteInternal(Uri url, String userWhere, String[] whereArgs) {
- StringBuilder whereClause = getWhereClause(userWhere);
- int match = mUrlMatcher.match(url);
- String idColumnName = null;
- final SQLiteDatabase db = mOpenHelper.getWritableDatabase();
- int count = 0;
- UrlMatch urlMatch = new UrlMatch(url, whereClause, match, db).invoke();
- idColumnName = urlMatch.getIdColumnName();
- idColumnName = setIdColumnNameIfNull(idColumnName);
- appendIfChangedItemIdIsNotNull(idColumnName, urlMatch.getChangedItemId(), whereClause);
- if (DBG) log("delete from " + url + " WHERE " + whereClause);
- count = db.delete(urlMatch.getTableToChange(), whereClause.toString(), whereArgs);
- count += deleteRecordsFromAdditionTableToChange(whereArgs, urlMatch.getAdditionalTableToChange(), whereClause, db);
- if (urlMatch.isContactDeleted() && count > 0) {
- // since the contact cleanup triggers no longer work for cross database tables,
- // we have to do it by hand here.
- performContactRemovalCleanup(urlMatch.getDeletedContactId());
- }
- notifyOfDeletedRows(urlMatch, match, count);
- return count;
- }
- private int deleteRecordsFromAdditionTableToChange(String[] whereArgs, String additionalTableToChange, StringBuilder whereClause, SQLiteDatabase db) {
- int result = 0;
- if (additionalTableToChange != null){
- result = db.delete(additionalTableToChange, whereClause.toString(), whereArgs);
- }
- return result;
- }
Add Comment
Please, Sign In to add comment