@Override @NonNull public ContentProviderResult[] applyBatch(@NonNull String authority, @NonNull ArrayList<ContentProviderOperation> operations) throws RemoteException, OperationApplicationException { return mBase.applyBatch(authority, operations); }
private void store(List<ApodItem> items) throws RemoteException, OperationApplicationException { ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>(); operations.add( ContentProviderOperation.newDelete(APODContract.CONTENT_URI) .build()); for (ApodItem item : items) { Log.d(TAG, "Add item: " + item.rssItem.title); operations.add( ContentProviderOperation.newInsert(APODContract.CONTENT_URI) .withValues(convertItemToValues(item)) .build()); } mContentResolver.applyBatch(APODContract.AUTHORITY, operations); }
private static void cleanupPlaylist(final Context context, final long playlistId, final Cursor cursor) { final int idCol = cursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.Members.AUDIO_ID); final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId); ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newDelete(uri).build()); final int YIELD_FREQUENCY = 100; if (cursor.moveToFirst() && cursor.getCount() > 0) { do { final ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(uri) .withValue(Playlists.Members.PLAY_ORDER, cursor.getPosition()) .withValue(Playlists.Members.AUDIO_ID, cursor.getLong(idCol)); if ((cursor.getPosition() + 1) % YIELD_FREQUENCY == 0) { builder.withYieldAllowed(true); } ops.add(builder.build()); } while (cursor.moveToNext()); } try { context.getContentResolver().applyBatch(MediaStore.AUTHORITY, ops); } catch (RemoteException e) { } catch (OperationApplicationException e) { } }
@Test public void applyBatchForUnregisteredProvider() throws RemoteException, OperationApplicationException { List<ContentProviderOperation> resultOperations = shadowContentResolver.getContentProviderOperations(AUTHORITY); assertThat(resultOperations).isNotNull(); assertThat(resultOperations.size()).isEqualTo(0); ContentProviderResult[] contentProviderResults = new ContentProviderResult[] { new ContentProviderResult(1), new ContentProviderResult(1), }; shadowContentResolver.setContentProviderResult(contentProviderResults); Uri uri = Uri.parse("content://org.robolectric"); ArrayList<ContentProviderOperation> operations = new ArrayList<>(); operations.add(ContentProviderOperation.newInsert(uri) .withValue("column1", "foo") .withValue("column2", 5) .build()); operations.add(ContentProviderOperation.newUpdate(uri) .withSelection("id_column", new String[] { "99" }) .withValue("column1", "bar") .build()); operations.add(ContentProviderOperation.newDelete(uri) .withSelection("id_column", new String[] { "11" }) .build()); ContentProviderResult[] result = contentResolver.applyBatch(AUTHORITY, operations); resultOperations = shadowContentResolver.getContentProviderOperations(AUTHORITY); assertThat(resultOperations).isEqualTo(operations); assertThat(result).isEqualTo(contentProviderResults); }
ContentProviderOperation.newDelete(uri).build(), ContentProviderOperation.newAssertQuery(uri).withValue("a", "b").build()); contentResolver.applyBatch("registeredProvider", new ArrayList<>(contentProviderOperations));
@Override @NonNull public ContentProviderResult[] applyBatch(@NonNull String authority, @NonNull ArrayList<ContentProviderOperation> operations) throws RemoteException, OperationApplicationException { return mBase.applyBatch(authority, operations); }
/** {@inheritDoc} */ @Override protected Void doInBackground( Activity target, ArrayList<ContentProviderOperation>... params) { final Context context = target; final ContentValues values = new ContentValues(); final ContentResolver resolver = context.getContentResolver(); try { final ArrayList<ContentProviderOperation> diff = params[0]; resolver.applyBatch(ContactsContract.AUTHORITY, diff); } catch (RemoteException e) { Log.e(TAG, "Problem saving display groups", e); } catch (OperationApplicationException e) { Log.e(TAG, "Problem saving display groups", e); } return null; }
/** * Applied all the pending DB operations * @return true if any DB operation was commited. */ private boolean applyOperations() throws Exception { // Update items if (!mUpdateOperations.isEmpty()) { mContext.getContentResolver().applyBatch(LauncherProvider.AUTHORITY, mUpdateOperations); } if (!mEntryToRemove.isEmpty()) { mContext.getContentResolver().delete(LauncherSettings.Favorites.CONTENT_URI, Utilities.createDbSelectionQuery( LauncherSettings.Favorites._ID, mEntryToRemove), null); } return !mUpdateOperations.isEmpty() || !mEntryToRemove.isEmpty(); }
private void saveQuoteHistoricalData2Database(List<ResponseGetHistoricalData.Quote> quotes) throws RemoteException, OperationApplicationException { ContentResolver resolver = mContext.getContentResolver(); ArrayList<ContentProviderOperation> batchOperations = new ArrayList<>(); for (ResponseGetHistoricalData.Quote quote : quotes) { // First, we have to delete outdated date from DB. resolver.delete(QuoteProvider.QuotesHistoricData.CONTENT_URI, QuoteHistoricalDataColumns.SYMBOL + " = \"" + quote.getSymbol() + "\"", null); batchOperations.add(QuoteProvider.buildBatchOperation(quote)); } resolver.applyBatch(QuoteProvider.AUTHORITY, batchOperations); } }
/** * Applied all the pending DB operations * @return true if any DB operation was commited. */ private boolean applyOperations() throws Exception { // Update items if (!mUpdateOperations.isEmpty()) { mContext.getContentResolver().applyBatch(LauncherProvider.AUTHORITY, mUpdateOperations); } if (!mEntryToRemove.isEmpty()) { if (DEBUG) { Log.d(TAG, "Removing items: " + TextUtils.join(", ", mEntryToRemove)); } mContext.getContentResolver().delete(LauncherSettings.Favorites.CONTENT_URI, Utilities.createDbSelectionQuery( LauncherSettings.Favorites._ID, mEntryToRemove), null); } return !mUpdateOperations.isEmpty() || !mEntryToRemove.isEmpty(); }
/** * Applied all the pending DB operations * @return true if any DB operation was commited. */ private boolean applyOperations() throws Exception { // Update items if (!mUpdateOperations.isEmpty()) { mContext.getContentResolver().applyBatch(LauncherProvider.AUTHORITY, mUpdateOperations); } if (!mEntryToRemove.isEmpty()) { if (DEBUG) { Log.d(TAG, "Removing items: " + TextUtils.join(", ", mEntryToRemove)); } mContext.getContentResolver().delete(LauncherSettings.Favorites.CONTENT_URI, Utilities.createDbSelectionQuery( LauncherSettings.Favorites._ID, mEntryToRemove), null); } return !mUpdateOperations.isEmpty() || !mEntryToRemove.isEmpty(); }
public static Uri add(ContactSpec spec) { // original code http://stackoverflow.com/questions/4744187/how-to-add-new-contacts-in-android // good blog http://androiddevelopement.blogspot.de/2011/07/insert-update-delete-view-contacts-in.html ArrayList<ContentProviderOperation> ops = new ArrayList<>(); addContactBase(ops); addContactDisplayName(spec, ops); addContactAddress(spec, ops); try { ContentProviderResult[] results = InstrumentationRegistry.getTargetContext().getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); return results[0].uri; } catch (RemoteException | OperationApplicationException e) { throw new IllegalStateException("Could not add contact", e); } }
@Override public void run() { ArrayList<ContentProviderOperation> ops = new ArrayList<>(); int count = mItems.size(); for (int i = 0; i < count; i++) { ItemInfo item = mItems.get(i); final long itemId = item.id; final Uri uri = Favorites.getContentUri(itemId); ContentValues values = mValues.get(i); ops.add(ContentProviderOperation.newUpdate(uri).withValues(values).build()); updateItemArrays(item, itemId); } try { mContext.getContentResolver().applyBatch(LauncherProvider.AUTHORITY, ops); } catch (Exception e) { e.printStackTrace(); } } }
public void run() { ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); int count = items.size(); for (int i = 0; i < count; i++) { ItemInfo item = items.get(i); final long itemId = item.id; final Uri uri = LauncherSettings.Favorites.getContentUri(itemId); ContentValues values = valuesList.get(i); ops.add(ContentProviderOperation.newUpdate(uri).withValues(values).build()); updateItemArrays(item, itemId, stackTrace); } try { cr.applyBatch(LauncherProvider.AUTHORITY, ops); } catch (Exception e) { e.printStackTrace(); } } };
public void run() { ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); int count = items.size(); for (int i = 0; i < count; i++) { ItemInfo item = items.get(i); final long itemId = item.id; final Uri uri = LauncherSettings.Favorites.getContentUri(itemId); ContentValues values = valuesList.get(i); ops.add(ContentProviderOperation.newUpdate(uri).withValues(values).build()); updateItemArrays(item, itemId, stackTrace); } try { cr.applyBatch(LauncherProvider.AUTHORITY, ops); } catch (Exception e) { e.printStackTrace(); } } };
public void run() { ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); int count = items.size(); for (int i = 0; i < count; i++) { ItemInfo item = items.get(i); final long itemId = item.id; final Uri uri = LauncherSettings.Favorites.getContentUri(itemId); ContentValues values = valuesList.get(i); ops.add(ContentProviderOperation.newUpdate(uri).withValues(values).build()); updateItemArrays(item, itemId, stackTrace); } try { cr.applyBatch(LauncherProvider.AUTHORITY, ops); } catch (Exception e) { e.printStackTrace(); } } };
public boolean replaceAll(Context context, List<SmsFilterData> filters) { ArrayList<ContentProviderOperation> ops = new ArrayList<>(filters.size() + 1); ops.add(ContentProviderOperation.newDelete(FilterRules.CONTENT_URI).build()); for (SmsFilterData filter : filters) { ContentValues values = serialize(filter); ops.add(ContentProviderOperation.newInsert(FilterRules.CONTENT_URI).withValues(values).build()); } try { context.getContentResolver().applyBatch(DatabaseContract.AUTHORITY, ops); return true; } catch (RemoteException e) { throw new RuntimeException(e); } catch (OperationApplicationException e) { return false; } } }
public static int updateContact(ContentResolver contactUpdate, String name, String mobileNumber) throws RemoteException, OperationApplicationException { ArrayList<ContentProviderOperation> ops = new ArrayList<>(); String rawContactId = getRawContactID(contactUpdate, name); Log.d("Raw Contact ID: ", rawContactId); //String where = ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME + " = ? "; String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND mimetype_id=5 AND " + ContactsContract.Data.MIMETYPE + " = ?" ; String[] params = new String[] {rawContactId, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE}; //ops.add(ContentProviderOperation.newUpdate(ContactsContract.RawContacts.CONTENT_URI).withSelection(where, params).withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null).withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null).build()); // ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) // .withSelection(where, params) // .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,name) // .build()); ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) .withSelection(where, params) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,mobileNumber) .build()); ContentProviderResult [] contentProviderResult = contactUpdate.applyBatch(ContactsContract.AUTHORITY, ops); return contentProviderResult[0].count; }
public static void update(ContentResolver contentResolver,String mOldNumber,String mNewNumber){ //updating contact ArrayList<ContentProviderOperation> list = new ArrayList<>(); String mContactID = String.valueOf(getContactID(contentResolver,mOldNumber)); String mPhone = ContactsContract.Data.CONTACT_ID+"=? AND " + ContactsContract.Contacts.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'" + " AND " +ContactsContract.CommonDataKinds.Phone.TYPE+ "=?"; String[] mPhoneArgs = new String[]{mContactID,String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)}; list.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) .withSelection(mPhone,mPhoneArgs) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,mNewNumber).build()); try { contentResolver.applyBatch(ContactsContract.AUTHORITY,list); } catch (RemoteException e) { e.printStackTrace(); } catch (OperationApplicationException e) { e.printStackTrace(); } }
public static boolean insertContact(ContentResolver contactAdder, String firstName, String mobileNumber) { ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI).withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null).withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null).build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,firstName).build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,mobileNumber).withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE).build()); try { contactAdder.applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { Log.d("Errors", e.getMessage()); return false; } return true; }