ppamorim

Untitled

Sep 18th, 2014
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.30 KB | None | 0 0
  1. public static void parseCameras(String content,
  2.                                     ContentResolver resolver,
  3.                                     JsonMapper mapper) throws
  4.             IOException,
  5.             RemoteException,
  6.             OperationApplicationException {
  7.  
  8.         ArrayList<ContentProviderOperation> batch = new ArrayList<ContentProviderOperation>();
  9.         ArrayList<Camera> cameras = mapper.readValue(
  10.                 mapper.readTree(ConvertUtils.decode(content)).get("result").toString(),
  11.                 new TypeReference<ArrayList<Camera>>() {});
  12.  
  13.         Uri cameraURI = ContentProvider.createUri(Camera.class, null);
  14.         Cursor localCameras = resolver.query(cameraURI, null, null, null, null);
  15.  
  16.         if (localCameras != null) {
  17.             while (localCameras.moveToNext()) {
  18.  
  19.                 Camera camera = new Camera();
  20.                 camera.loadFromCursor(localCameras);
  21.  
  22.                 int index = SyncUtils.indexOfById(cameras, camera);
  23.                 if(index >= 0) {
  24.  
  25.                     Camera current = cameras.get(index);
  26.                     if(!camera.equals(current)) {
  27.  
  28.                         ContentProviderOperation operation = getAddOrUpdateBatch(
  29.                                 cameraURI,
  30.                                 current,
  31.                                 camera.getId());
  32.  
  33.                         if(operation != null) {
  34.                             batch.add(operation);
  35.                         }
  36.                     }
  37.  
  38.                     cameras.remove(index);
  39.  
  40.                 } else {
  41.  
  42.                     batch.add(ContentProviderOperation.newDelete(cameraURI)
  43.                             .withSelection(BaseColumns._ID + " = ?", new String[]{String.valueOf(camera.getId())})
  44.                             .build());
  45.                 }
  46.             }
  47.             localCameras.close();
  48.         }
  49.  
  50.         for (Camera cameraObject : cameras) {
  51.  
  52.             ContentProviderOperation operation = getAddOrUpdateBatch(
  53.                     cameraURI,
  54.                     cameraObject,
  55.                     -1);
  56.  
  57.             if (operation != null) {
  58.                 batch.add(operation);
  59.             }
  60.         }
  61.  
  62.         resolver.applyBatch(VejoAoVivoSyncAdapter.AUTHORITY, batch);
  63.         resolver.notifyChange(cameraURI, null, false);
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment