Skip to content

Commit

Permalink
Add support for giphy and pexel images (#10628)
Browse files Browse the repository at this point in the history
  • Loading branch information
marecar3 authored Oct 29, 2019
1 parent fdc78b6 commit 48c886e
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3204,6 +3204,11 @@ public void onAddDeviceMediaClicked(boolean allowMultipleSelection) {
WPMediaUtils.launchMediaLibrary(this, mAllowMultipleSelection);
}

@Override
public void onAddStockMediaClicked(boolean allowMultipleSelection) {
onPhotoPickerIconClicked(PhotoPickerIcon.STOCK_MEDIA, allowMultipleSelection);
}

@Override
public void onCaptureVideoClicked() {
onPhotoPickerIconClicked(PhotoPickerIcon.ANDROID_CAPTURE_VIDEO, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ public interface EditorFragmentListener {
String onAuthHeaderRequested(String url);
void onTrackableEvent(TrackableEvent event);
void onHtmlModeToggledInToolbar();
void onAddStockMediaClicked(boolean allowMultipleSelection);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,6 @@ public CharSequence getTitle(OnGetContentTimeout onGetContentTimeout) {
return mWPAndroidGlueCode.getTitle(onGetContentTimeout);
}

public void appendMediaFile(int mediaId, final String mediaUrl, final boolean isVideo) {
mWPAndroidGlueCode.appendMediaFile(mediaId, mediaUrl, isVideo);
}

public void appendMediaFiles(ArrayList<Media> mediaList) {
mWPAndroidGlueCode.appendMediaFiles(mediaList);
}

public void showDevOptionsDialog() {
mWPAndroidGlueCode.showDevOptionsDialog();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import org.wordpress.android.util.helpers.MediaGallery;
import org.wordpress.aztec.IHistoryListener;
import org.wordpress.mobile.WPAndroidGlue.Media;
import org.wordpress.mobile.WPAndroidGlue.MediaOption;
import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnAuthHeaderRequestedListener;
import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnEditorAutosaveListener;
import org.wordpress.mobile.WPAndroidGlue.WPAndroidGlueCode.OnEditorMountListener;
Expand Down Expand Up @@ -67,6 +68,8 @@ public class GutenbergEditorFragment extends EditorFragmentAbstract implements
private static final int CAPTURE_PHOTO_PERMISSION_REQUEST_CODE = 101;
private static final int CAPTURE_VIDEO_PERMISSION_REQUEST_CODE = 102;

private static final String MEDIA_SOURCE_STOCK_MEDIA = "MEDIA_SOURCE_STOCK_MEDIA";

private boolean mHtmlModeEnabled;

private Handler mInvalidateOptionsHandler;
Expand Down Expand Up @@ -263,17 +266,33 @@ public void onCapturePhotoButtonClicked() {
checkAndRequestCameraAndStoragePermissions(CAPTURE_PHOTO_PERMISSION_REQUEST_CODE);
}

@Override public void onRetryUploadForMediaClicked(int mediaId) {
@Override
public void onRetryUploadForMediaClicked(int mediaId) {
showRetryMediaUploadDialog(mediaId);
}

@Override public void onCancelUploadForMediaClicked(int mediaId) {
@Override
public void onCancelUploadForMediaClicked(int mediaId) {
showCancelMediaUploadDialog(mediaId);
}

@Override public void onCancelUploadForMediaDueToDeletedBlock(int mediaId) {
@Override
public void onCancelUploadForMediaDueToDeletedBlock(int mediaId) {
cancelMediaUploadForDeletedBlock(mediaId);
}

@Override
public ArrayList<MediaOption> onGetOtherMediaImageOptions() {
ArrayList<MediaOption> otherMediaImageOptions = initOtherMediaImageOptions();
return otherMediaImageOptions;
}

@Override
public void onOtherMediaButtonClicked(String mediaSource, boolean allowMultipleSelection) {
if (mediaSource.equals(MEDIA_SOURCE_STOCK_MEDIA)) {
mEditorFragmentListener.onAddStockMediaClicked(allowMultipleSelection);
}
}
},
new OnReattachQueryListener() {
@Override
Expand Down Expand Up @@ -339,6 +358,17 @@ public void run() {
return view;
}

private ArrayList<MediaOption> initOtherMediaImageOptions() {
ArrayList<MediaOption> otherMediaOptions = new ArrayList<>();

String packageName = getActivity().getApplication().getPackageName();
int stockMediaResourceId = getResources().getIdentifier("photo_picker_stock_media", "string", packageName);

otherMediaOptions.add(new MediaOption(MEDIA_SOURCE_STOCK_MEDIA, getString(stockMediaResourceId)));

return otherMediaOptions;
}

@Override public void onResume() {
super.onResume();

Expand Down Expand Up @@ -685,18 +715,15 @@ public void appendMediaFile(final MediaFile mediaFile, final String mediaUrl, Im
return;
}

if (URLUtil.isNetworkUrl(mediaUrl)) {
getGutenbergContainerFragment().appendMediaFile(
Integer.valueOf(mediaFile.getMediaId()),
mediaUrl,
mediaFile.isVideo());
} else {
getGutenbergContainerFragment().appendUploadMediaFile(
mediaFile.getId(),
"file://" + mediaUrl,
mediaFile.isVideo());
boolean isNetworkUrl = URLUtil.isNetworkUrl(mediaUrl);
if (!isNetworkUrl) {
mUploadingMediaProgressMax.put(String.valueOf(mediaFile.getId()), 0f);
}

getGutenbergContainerFragment().appendUploadMediaFile(
isNetworkUrl ? Integer.valueOf(mediaFile.getMediaId()) : mediaFile.getId(),
isNetworkUrl ? mediaUrl : "file://" + mediaUrl,
mediaFile.isVideo());
}

@Override
Expand All @@ -718,32 +745,26 @@ public void appendMediaFiles(Map<String, MediaFile> mediaList) {
mediaUrl = (String) mediaUrls[0];
}

if (URLUtil.isNetworkUrl(mediaUrl)) {
for (Map.Entry<String, MediaFile> mediaEntry : mediaList.entrySet()) {
rnMediaList.add(
new Media(
Integer.valueOf(mediaEntry.getValue().getMediaId()),
mediaEntry.getKey(),
mediaEntry.getValue().getMimeType()
)
);
}
getGutenbergContainerFragment().appendMediaFiles(rnMediaList);
} else {
for (Map.Entry<String, MediaFile> mediaEntry : mediaList.entrySet()) {
rnMediaList.add(
new Media(
mediaEntry.getValue().getId(),
"file://" + mediaEntry.getKey(),
mediaEntry.getValue().getMimeType()
)
);
}
getGutenbergContainerFragment().appendUploadMediaFiles(rnMediaList);
boolean isNetworkUrl = URLUtil.isNetworkUrl(mediaUrl);
if (!isNetworkUrl) {
for (Media media : rnMediaList) {
mUploadingMediaProgressMax.put(String.valueOf(media.getId()), 0f);
}
}

for (Map.Entry<String, MediaFile> mediaEntry : mediaList.entrySet()) {
rnMediaList.add(
new Media(
isNetworkUrl
? Integer.valueOf(mediaEntry.getValue().getMediaId())
: mediaEntry.getValue().getId(),
isNetworkUrl ? mediaEntry.getKey() : "file://" + mediaEntry.getKey(),
mediaEntry.getValue().getMimeType()
)
);
}

getGutenbergContainerFragment().appendUploadMediaFiles(rnMediaList);
}

@Override
Expand Down

0 comments on commit 48c886e

Please sign in to comment.