Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void parseCameras(String content,
- ContentResolver resolver,
- JsonMapper mapper) throws
- IOException,
- RemoteException,
- OperationApplicationException {
- ArrayList<ContentProviderOperation> batch = new ArrayList<ContentProviderOperation>();
- ArrayList<Camera> cameras = mapper.readValue(
- mapper.readTree(ConvertUtils.decode(content)).get("result").toString(),
- new TypeReference<ArrayList<Camera>>() {});
- Uri cameraURI = ContentProvider.createUri(Camera.class, null);
- Cursor localCameras = resolver.query(cameraURI, null, null, null, null);
- if (localCameras != null) {
- while (localCameras.moveToNext()) {
- Camera camera = new Camera();
- camera.loadFromCursor(localCameras);
- int index = SyncUtils.indexOfById(cameras, camera);
- if(index >= 0) {
- Camera current = cameras.get(index);
- if(!camera.equals(current)) {
- ContentProviderOperation operation = getAddOrUpdateBatch(
- cameraURI,
- current,
- camera.getId());
- if(operation != null) {
- batch.add(operation);
- }
- }
- cameras.remove(index);
- } else {
- batch.add(ContentProviderOperation.newDelete(cameraURI)
- .withSelection(BaseColumns._ID + " = ?", new String[]{String.valueOf(camera.getId())})
- .build());
- }
- }
- localCameras.close();
- }
- for (Camera cameraObject : cameras) {
- ContentProviderOperation operation = getAddOrUpdateBatch(
- cameraURI,
- cameraObject,
- -1);
- if (operation != null) {
- batch.add(operation);
- }
- }
- resolver.applyBatch(VejoAoVivoSyncAdapter.AUTHORITY, batch);
- resolver.notifyChange(cameraURI, null, false);
- }
Advertisement
Add Comment
Please, Sign In to add comment