Skip to content

Commit

Permalink
Android: Passing updated file path back to onDone callback. React Nat…
Browse files Browse the repository at this point in the history
…ive: Passing arguments back to onDone and onCancel callbacks
  • Loading branch information
Jon Estep committed Oct 13, 2018
1 parent 9d88f85 commit 8ad53bd
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 16 deletions.
4 changes: 2 additions & 2 deletions RNPhotoEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ class PhotoEditor extends PureComponent {

RNPhotoEditor.Edit(
props,
() => {
props.onDone && props.onDone();
(...args) => {
props.onDone && props.onDone(...args);
},
() => {
props.onCancel && props.onCancel();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -408,13 +408,14 @@ public void onFinish() {
var7.printStackTrace();
}

Intent returnIntent = new Intent();
setResult(Activity.RESULT_OK, returnIntent);

finish();
}
}.start();
}


@Override
public void onClick(View v) {
if (v.getId() == R.id.close_tv) {
Expand Down
60 changes: 47 additions & 13 deletions android/src/main/java/ui/photoeditor/RNPhotoEditorModule.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,63 @@

package ui.photoeditor;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import com.ahmedadeltito.photoeditor.PhotoEditorActivity;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.BaseActivityEventListener;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;

import com.ahmedadeltito.photoeditorsdk.PhotoEditorSDK;
import com.ahmedadeltito.photoeditor.PhotoEditorActivity;
import android.util.Log;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;

import java.util.ArrayList;

public class RNPhotoEditorModule extends ReactContextBaseJavaModule {

private static final int PHOTO_EDITOR_REQUEST = 1539266202;
private static final String E_PHOTO_EDITOR_CANCELLED = "E_PHOTO_EDITOR_CANCELLED";


private Callback mDoneCallback;
private Callback mCancelCallback;

private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener() {

@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent intent) {
if (requestCode == PHOTO_EDITOR_REQUEST) {

if (mDoneCallback != null) {

if (resultCode == Activity.RESULT_CANCELED) {
mCancelCallback.invoke(resultCode);
} else {
mDoneCallback.invoke(intent.getExtras().getString("imagePath"));
}

}

mCancelCallback = null;
mDoneCallback = null;
}
}
};

public RNPhotoEditorModule(ReactApplicationContext reactContext) {
super(reactContext);

reactContext.addActivityEventListener(mActivityEventListener);

}



@Override
public String getName() {
return "RNPhotoEditor";
Expand Down Expand Up @@ -70,6 +100,10 @@ public void Edit(final ReadableMap props, final Callback onDone, final Callback
intent.putExtra("hiddenControls", hiddenControlsIntent);
intent.putExtra("stickers", stickersIntent);

getCurrentActivity().startActivityForResult(intent, 1);

mCancelCallback = onCancel;
mDoneCallback = onDone;

getCurrentActivity().startActivityForResult(intent, PHOTO_EDITOR_REQUEST);
}
}
}

0 comments on commit 8ad53bd

Please sign in to comment.