public static String getVideoUrl(final ShareVideoContent videoContent, final UUID appCallId) { if (videoContent == null || videoContent.getVideo() == null) { return null; } NativeAppCallAttachmentStore.Attachment attachment = NativeAppCallAttachmentStore.createAttachment( appCallId, videoContent.getVideo().getLocalUrl()); ArrayList<NativeAppCallAttachmentStore.Attachment> attachments = new ArrayList<>(1); attachments.add(attachment); NativeAppCallAttachmentStore.addAttachments(attachments); return attachment.getAttachmentUrl(); }
private static void validateVideoContent( ShareVideoContent videoContent, Validator validator) { validator.validate(videoContent.getVideo()); SharePhoto previewPhoto = videoContent.getPreviewPhoto(); if (previewPhoto != null) { validator.validate(previewPhoto); } }
private UploadContext( ShareVideoContent videoContent, String graphNode, FacebookCallback<Sharer.Result> callback) { // Store off the access token right away so that under no circumstances will we // end up with different tokens between phases. We will rely on the access token tracker // to cancel pending uploads. this.accessToken = AccessToken.getCurrentAccessToken(); this.videoUri = videoContent.getVideo().getLocalUrl(); this.title = videoContent.getContentTitle(); this.description = videoContent.getContentDescription(); this.ref = videoContent.getRef(); this.graphNode = graphNode; this.callback = callback; this.params = videoContent.getVideo().getParameters(); if (!Utility.isNullOrEmpty(videoContent.getPeopleIds())) { this.params.putString("tags", TextUtils.join(", ", videoContent.getPeopleIds())); } if (!Utility.isNullOrEmpty(videoContent.getPlaceId())) { this.params.putString("place", videoContent.getPlaceId()); } if (!Utility.isNullOrEmpty(videoContent.getRef())) { this.params.putString("ref", videoContent.getRef()); } }
@Override public Builder readFrom(final ShareVideoContent model) { if (model == null) { return this; } return super .readFrom(model) .setContentDescription(model.getContentDescription()) .setContentTitle(model.getContentTitle()) .setPreviewPhoto(model.getPreviewPhoto()) .setVideo(model.getVideo()) ; } }
public static synchronized void uploadAsync( ShareVideoContent videoContent, String graphNode, FacebookCallback<Sharer.Result> callback) throws FileNotFoundException { if (!initialized) { registerAccessTokenTracker(); initialized = true; } Validate.notNull(videoContent, "videoContent"); Validate.notNull(graphNode, "graphNode"); ShareVideo video = videoContent.getVideo(); Validate.notNull(video, "videoContent.video"); Uri videoUri = video.getLocalUrl(); Validate.notNull(videoUri, "videoContent.video.localUrl"); UploadContext uploadContext = new UploadContext(videoContent, graphNode, callback); uploadContext.initialize(); pendingUploads.add(uploadContext); enqueueUploadStart( uploadContext, 0); }
@Test public void testVideoBuilder() { final ShareVideoContent content = ShareModelTestUtility.getVideoContentBuilder().build(); ShareModelTestUtility.assertEquals( ShareModelTestUtility.VIDEO_CONTENT_PREVIEW_PHOTO, content.getPreviewPhoto()); ShareModelTestUtility.assertEquals( ShareModelTestUtility.VIDEO_CONTENT_VIDEO, content.getVideo()); ShareModelTestUtility.assertEquals( content, TestUtils.parcelAndUnparcel(content)); } }