private void sharePhotoContent(final SharePhotoContent photoContent, final FacebookCallback<Sharer.Result> callback) { final Mutable<Integer> requestCount = new Mutable<Integer>(0); final AccessToken accessToken = AccessToken.getCurrentAccessToken(); final ArrayList<GraphRequest> requests = new ArrayList<GraphRequest>(); final ArrayList<JSONObject> results = new ArrayList<JSONObject>(); final ArrayList<GraphResponse> errorResponses = new ArrayList<GraphResponse>(); final GraphRequest.Callback requestCallback = new GraphRequest.Callback() { @Override public void onCompleted(GraphResponse response) { final JSONObject result = response.getJSONObject(); if (result != null) { results.add(result); } if (response.getError() != null) { errorResponses.add(response); } requestCount.value -= 1; if (requestCount.value == 0) { if (!errorResponses.isEmpty()) { ShareInternalUtility.invokeCallbackWithResults( callback, null, errorResponses.get(0)); } else if (!results.isEmpty()) { final String postId = results.get(0).optString("id"); ShareInternalUtility.invokeCallbackWithResults( callback, postId, response); } } } }; try { for (SharePhoto photo : photoContent.getPhotos()) { final Bitmap bitmap = photo.getBitmap(); final Uri photoUri = photo.getImageUrl(); String caption = photo.getCaption(); if (caption == null) { caption = this.getMessage(); } if (bitmap != null) { requests.add(GraphRequest.newUploadPhotoRequest( accessToken, getGraphPath(PHOTOS_EDGE), bitmap, caption, photo.getParameters(), requestCallback)); } else if (photoUri != null) { requests.add(GraphRequest.newUploadPhotoRequest( accessToken, getGraphPath(PHOTOS_EDGE), photoUri, caption, photo.getParameters(), requestCallback)); } } requestCount.value += requests.size(); for (GraphRequest request : requests) { request.executeAsync(); } } catch (final FileNotFoundException ex) { ShareInternalUtility.invokeCallbackWithException(callback, ex); } }
private void sharePhotoContent(final SharePhotoContent photoContent, final FacebookCallback<Sharer.Result> callback) { final Mutable<Integer> requestCount = new Mutable<Integer>(0); final AccessToken accessToken = AccessToken.getCurrentAccessToken(); final ArrayList<GraphRequest> requests = new ArrayList<GraphRequest>(); final ArrayList<JSONObject> results = new ArrayList<JSONObject>(); final ArrayList<GraphResponse> errorResponses = new ArrayList<GraphResponse>(); final GraphRequest.Callback requestCallback = new GraphRequest.Callback() { @Override public void onCompleted(GraphResponse response) { final JSONObject result = response.getJSONObject(); if (result != null) { results.add(result); } if (response.getError() != null) { errorResponses.add(response); } requestCount.value -= 1; if (requestCount.value == 0) { if (!errorResponses.isEmpty()) { ShareInternalUtility.invokeCallbackWithResults( callback, null, errorResponses.get(0)); } else if (!results.isEmpty()) { final String postId = results.get(0).optString("id"); ShareInternalUtility.invokeCallbackWithResults( callback, postId, response); } } } }; try { for (SharePhoto photo : photoContent.getPhotos()) { final Bitmap bitmap = photo.getBitmap(); final Uri photoUri = photo.getImageUrl(); if (bitmap != null) { requests.add(ShareInternalUtility.newUploadPhotoRequest( accessToken, bitmap, requestCallback)); } else if (photoUri != null) { requests.add(ShareInternalUtility.newUploadPhotoRequest( accessToken, photoUri, requestCallback)); } } requestCount.value += requests.size(); for (GraphRequest request : requests) { request.executeAsync(); } } catch (final FileNotFoundException ex) { ShareInternalUtility.invokeCallbackWithException(callback, ex); } }
private void sharePhotoContent(final SharePhotoContent photoContent, final FacebookCallback<Sharer.Result> callback) { final Mutable<Integer> requestCount = new Mutable<Integer>(0); final AccessToken accessToken = AccessToken.getCurrentAccessToken(); final ArrayList<GraphRequest> requests = new ArrayList<GraphRequest>(); final ArrayList<JSONObject> results = new ArrayList<JSONObject>(); final ArrayList<GraphResponse> errorResponses = new ArrayList<GraphResponse>(); final GraphRequest.Callback requestCallback = new GraphRequest.Callback() { @Override public void onCompleted(GraphResponse response) { final JSONObject result = response.getJSONObject(); if (result != null) { results.add(result); } if (response.getError() != null) { errorResponses.add(response); } requestCount.value -= 1; if (requestCount.value == 0) { if (!errorResponses.isEmpty()) { ShareInternalUtility.invokeCallbackWithResults( callback, null, errorResponses.get(0)); } else if (!results.isEmpty()) { final String postId = results.get(0).optString("id"); ShareInternalUtility.invokeCallbackWithResults( callback, postId, response); } } } }; try { for (SharePhoto photo : photoContent.getPhotos()) { final Bitmap bitmap = photo.getBitmap(); final Uri photoUri = photo.getImageUrl(); String caption = photo.getCaption(); if (caption == null) { caption = this.getMessage(); } if (bitmap != null) { requests.add(ShareInternalUtility.newUploadPhotoRequest( accessToken, bitmap, caption, requestCallback)); } else if (photoUri != null) { requests.add(ShareInternalUtility.newUploadPhotoRequest( accessToken, photoUri, caption, requestCallback)); } } requestCount.value += requests.size(); for (GraphRequest request : requests) { request.executeAsync(); } } catch (final FileNotFoundException ex) { ShareInternalUtility.invokeCallbackWithException(callback, ex); } }