use of com.facebook.share.model.SharePhotoContent in project facebook-android-sdk by facebook.
the class ShareDialog method canShowWebTypeCheck.
private static boolean canShowWebTypeCheck(Class<? extends ShareContent> contentType) {
// If we don't have an instance of a ShareContent, then all we can do is check whether
// this is a ShareLinkContent, which can be shared if configured properly.
// The instance method version of this check is more accurate and should be used on
// ShareDialog instances.
// SharePhotoContent currently requires the user staging endpoint, so we need a user access
// token, so we need to see if we have one
final AccessToken accessToken = AccessToken.getCurrentAccessToken();
final boolean haveUserAccessToken = accessToken != null && !accessToken.isExpired();
return ShareLinkContent.class.isAssignableFrom(contentType) || ShareOpenGraphContent.class.isAssignableFrom(contentType) || (SharePhotoContent.class.isAssignableFrom(contentType) && haveUserAccessToken);
}
use of com.facebook.share.model.SharePhotoContent in project facebook-android-sdk by facebook.
the class LegacyNativeDialogParameters method create.
public static Bundle create(UUID callId, ShareContent shareContent, boolean shouldFailOnDataError) {
Validate.notNull(shareContent, "shareContent");
Validate.notNull(callId, "callId");
Bundle nativeParams = null;
if (shareContent instanceof ShareLinkContent) {
final ShareLinkContent linkContent = (ShareLinkContent) shareContent;
nativeParams = create(linkContent, shouldFailOnDataError);
} else if (shareContent instanceof SharePhotoContent) {
final SharePhotoContent photoContent = (SharePhotoContent) shareContent;
List<String> photoUrls = ShareInternalUtility.getPhotoUrls(photoContent, callId);
nativeParams = create(photoContent, photoUrls, shouldFailOnDataError);
} else if (shareContent instanceof ShareVideoContent) {
final ShareVideoContent videoContent = (ShareVideoContent) shareContent;
nativeParams = create(videoContent, shouldFailOnDataError);
} else if (shareContent instanceof ShareOpenGraphContent) {
final ShareOpenGraphContent openGraphContent = (ShareOpenGraphContent) shareContent;
try {
JSONObject openGraphActionJSON = ShareInternalUtility.toJSONObjectForCall(callId, openGraphContent);
nativeParams = create(openGraphContent, openGraphActionJSON, shouldFailOnDataError);
} catch (final JSONException e) {
throw new FacebookException("Unable to create a JSON Object from the provided ShareOpenGraphContent: " + e.getMessage());
}
}
return nativeParams;
}
use of com.facebook.share.model.SharePhotoContent in project facebook-android-sdk by facebook.
the class NativeDialogParameters method create.
public static Bundle create(UUID callId, ShareContent shareContent, boolean shouldFailOnDataError) {
Validate.notNull(shareContent, "shareContent");
Validate.notNull(callId, "callId");
Bundle nativeParams = null;
if (shareContent instanceof ShareLinkContent) {
final ShareLinkContent linkContent = (ShareLinkContent) shareContent;
nativeParams = create(linkContent, shouldFailOnDataError);
} else if (shareContent instanceof SharePhotoContent) {
final SharePhotoContent photoContent = (SharePhotoContent) shareContent;
List<String> photoUrls = ShareInternalUtility.getPhotoUrls(photoContent, callId);
nativeParams = create(photoContent, photoUrls, shouldFailOnDataError);
} else if (shareContent instanceof ShareVideoContent) {
final ShareVideoContent videoContent = (ShareVideoContent) shareContent;
String videoUrl = ShareInternalUtility.getVideoUrl(videoContent, callId);
nativeParams = create(videoContent, videoUrl, shouldFailOnDataError);
} else if (shareContent instanceof ShareOpenGraphContent) {
final ShareOpenGraphContent openGraphContent = (ShareOpenGraphContent) shareContent;
try {
JSONObject openGraphActionJSON = ShareInternalUtility.toJSONObjectForCall(callId, openGraphContent);
openGraphActionJSON = ShareInternalUtility.removeNamespacesFromOGJsonObject(openGraphActionJSON, false);
nativeParams = create(openGraphContent, openGraphActionJSON, shouldFailOnDataError);
} catch (final JSONException e) {
throw new FacebookException("Unable to create a JSON Object from the provided ShareOpenGraphContent: " + e.getMessage());
}
} else if (shareContent instanceof ShareMediaContent) {
final ShareMediaContent mediaContent = (ShareMediaContent) shareContent;
List<Bundle> mediaInfos = ShareInternalUtility.getMediaInfos(mediaContent, callId);
nativeParams = create(mediaContent, mediaInfos, shouldFailOnDataError);
} else if (shareContent instanceof ShareCameraEffectContent) {
final ShareCameraEffectContent cameraEffectContent = (ShareCameraEffectContent) shareContent;
// Put Bitmaps behind content uris.
Bundle attachmentUrlsBundle = ShareInternalUtility.getTextureUrlBundle(cameraEffectContent, callId);
nativeParams = create(cameraEffectContent, attachmentUrlsBundle, shouldFailOnDataError);
} else if (shareContent instanceof ShareMessengerGenericTemplateContent) {
final ShareMessengerGenericTemplateContent genericTemplateContent = (ShareMessengerGenericTemplateContent) shareContent;
nativeParams = create(genericTemplateContent, shouldFailOnDataError);
} else if (shareContent instanceof ShareMessengerOpenGraphMusicTemplateContent) {
final ShareMessengerOpenGraphMusicTemplateContent openGraphMusicTemplateContent = (ShareMessengerOpenGraphMusicTemplateContent) shareContent;
nativeParams = create(openGraphMusicTemplateContent, shouldFailOnDataError);
} else if (shareContent instanceof ShareMessengerMediaTemplateContent) {
final ShareMessengerMediaTemplateContent mediaTemplateContent = (ShareMessengerMediaTemplateContent) shareContent;
nativeParams = create(mediaTemplateContent, shouldFailOnDataError);
}
return nativeParams;
}
use of com.facebook.share.model.SharePhotoContent in project facebook-android-sdk by facebook.
the class ShareContentValidationTest method testItValidatesNullImageForSharePhotoContentByApi.
@Test(expected = FacebookException.class)
public void testItValidatesNullImageForSharePhotoContentByApi() {
SharePhotoContent.Builder spcBuilder = new SharePhotoContent.Builder();
SharePhoto sharePhoto = new SharePhoto.Builder().setImageUrl(null).build();
SharePhotoContent sharePhotoContent = spcBuilder.addPhoto(sharePhoto).build();
ShareContentValidation.validateForApiShare(sharePhotoContent);
}
use of com.facebook.share.model.SharePhotoContent in project facebook-android-sdk by facebook.
the class HelloFacebookSampleActivity method postPhoto.
private void postPhoto() {
Bitmap image = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);
SharePhoto sharePhoto = new SharePhoto.Builder().setBitmap(image).build();
ArrayList<SharePhoto> photos = new ArrayList<>();
photos.add(sharePhoto);
SharePhotoContent sharePhotoContent = new SharePhotoContent.Builder().setPhotos(photos).build();
if (canPresentShareDialogWithPhotos) {
shareDialog.show(sharePhotoContent);
} else if (hasPublishPermission()) {
ShareApi.share(sharePhotoContent, shareCallback);
} else {
pendingAction = PendingAction.POST_PHOTO;
// We need to get new permissions, then complete the action when we get called back.
LoginManager.getInstance().logInWithPublishPermissions(this, Arrays.asList(PERMISSION));
}
}
Aggregations