Search in sources :

Example 6 with ShareVideoContent

use of com.facebook.share.model.ShareVideoContent in project facebook-android-sdk by facebook.

the class RequestTests method testUploadVideoFileToUserId.

@LargeTest
public void testUploadVideoFileToUserId() throws IOException, URISyntaxException {
    File tempFile = null;
    try {
        GraphRequest meRequest = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), null);
        GraphResponse meResponse = meRequest.executeAndWait();
        JSONObject meJson = meResponse.getJSONObject();
        assertNotNull(meJson);
        String userId = meJson.optString("id");
        assertNotNull(userId);
        tempFile = createTempFileFromAsset("DarkScreen.mov");
        ShareVideo video = new ShareVideo.Builder().setLocalUrl(Uri.fromFile(tempFile)).build();
        ShareVideoContent content = new ShareVideoContent.Builder().setVideo(video).build();
        final ShareApi shareApi = new ShareApi(content);
        shareApi.setGraphNode(userId);
        final AtomicReference<String> videoId = new AtomicReference<>(null);
        getActivity().runOnUiThread(new Runnable() {

            @Override
            public void run() {
                shareApi.share(new FacebookCallback<Sharer.Result>() {

                    @Override
                    public void onSuccess(Sharer.Result result) {
                        videoId.set(result.getPostId());
                        notifyShareFinished();
                    }

                    @Override
                    public void onCancel() {
                        notifyShareFinished();
                    }

                    @Override
                    public void onError(FacebookException error) {
                        notifyShareFinished();
                    }

                    private void notifyShareFinished() {
                        synchronized (shareApi) {
                            shareApi.notifyAll();
                        }
                    }
                });
            }
        });
        synchronized (shareApi) {
            shareApi.wait(REQUEST_TIMEOUT_MILLIS);
        }
        assertNotNull(videoId.get());
    } catch (Exception ex) {
        fail();
    } finally {
        if (tempFile != null) {
            tempFile.delete();
        }
    }
}
Also used : ShareVideo(com.facebook.share.model.ShareVideo) AtomicReference(java.util.concurrent.atomic.AtomicReference) URISyntaxException(java.net.URISyntaxException) JSONException(org.json.JSONException) IOException(java.io.IOException) JSONObject(org.json.JSONObject) ShareVideoContent(com.facebook.share.model.ShareVideoContent) Sharer(com.facebook.share.Sharer) File(java.io.File) ShareApi(com.facebook.share.ShareApi) LargeTest(android.test.suitebuilder.annotation.LargeTest)

Aggregations

ShareVideoContent (com.facebook.share.model.ShareVideoContent)6 JSONException (org.json.JSONException)4 JSONObject (org.json.JSONObject)3 Bundle (android.os.Bundle)2 LargeTest (android.test.suitebuilder.annotation.LargeTest)2 FacebookException (com.facebook.FacebookException)2 ShareApi (com.facebook.share.ShareApi)2 Sharer (com.facebook.share.Sharer)2 ShareLinkContent (com.facebook.share.model.ShareLinkContent)2 ShareOpenGraphContent (com.facebook.share.model.ShareOpenGraphContent)2 SharePhotoContent (com.facebook.share.model.SharePhotoContent)2 ShareVideo (com.facebook.share.model.ShareVideo)2 File (java.io.File)2 IOException (java.io.IOException)2 URISyntaxException (java.net.URISyntaxException)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 Test (org.junit.Test)2 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)2