Skip to content
This repository has been archived by the owner on Jun 3, 2021. It is now read-only.

Commit

Permalink
* [Android] add For Webview get OnActivity Result (#2899)
Browse files Browse the repository at this point in the history
  • Loading branch information
Darin726 authored and YorkShen committed Sep 16, 2019
1 parent 3939692 commit 8a6c6fa
Showing 1 changed file with 56 additions and 0 deletions.
56 changes: 56 additions & 0 deletions android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,8 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan

private List<OnBackPressedHandler> mWXBackPressedHandlers;

private List<OnActivityResultHandler> mWXOnActivityResultHandlers;

private WXSDKInstance mParentInstance;

private String mRenderType = RenderTypes.RENDER_TYPE_NATIVE;
Expand Down Expand Up @@ -309,6 +311,20 @@ public interface OnBackPressedHandler {
boolean onBackPressed();
}

public static abstract class OnActivityResultHandler {
private String id;

public OnActivityResultHandler(String id) {
this.id = id;
}

public abstract boolean onActivityResult(int requestCode, int resultCode, Intent data, String id);

public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
return onActivityResult(requestCode, resultCode, data, id);
}
}

/**
* set make weexCore run in single process mode
* @param flag true means weexCore run in single process mode or multi process mode
Expand Down Expand Up @@ -1532,6 +1548,16 @@ public void onActivityResult(int requestCode, int resultCode, Intent data){
WXLogUtils.w("Warning :Component tree has not build completely, onActivityResult can not be call!");
}
}


if (mWXOnActivityResultHandlers != null && !mWXOnActivityResultHandlers.isEmpty()) {
for (OnActivityResultHandler onActivityResultHandler : mWXOnActivityResultHandlers) {
if (onActivityResultHandler.onActivityResult(requestCode, resultCode, data)) {
break;
}
}
}

}


Expand Down Expand Up @@ -1868,6 +1894,18 @@ public synchronized void destroy() {
mLayerOverFlowListeners.clear();
}

if(mWXOnActivityResultHandlers != null && !mWXOnActivityResultHandlers.isEmpty()) {
mWXOnActivityResultHandlers.clear();
}

if(mWXBackPressedHandlers != null && !mWXBackPressedHandlers.isEmpty()) {
mWXBackPressedHandlers.clear();
}

if(mWXActionbarHandlers != null && !mWXActionbarHandlers.isEmpty()) {
mWXActionbarHandlers.clear();
}

getFlatUIContext().destroy();
mFlatGUIContext = null;
mInstanceOnFireEventInterceptorList = null;
Expand Down Expand Up @@ -2024,6 +2062,24 @@ public synchronized void unRegisterActionbarHandler(ActionBarHandler actionBarHa
}
}

public synchronized void unRegisterOnActivityResultHandler(OnActivityResultHandler onActivityResultHandler) {
if(mWXOnActivityResultHandlers != null && onActivityResultHandler != null) {
mWXOnActivityResultHandlers.remove(onActivityResultHandler);
}
}

public synchronized void registerOnActivityResultHandler(OnActivityResultHandler onActivityResultHandler) {
if(onActivityResultHandler == null) {
return;
}

if(mWXOnActivityResultHandlers == null) {
mWXOnActivityResultHandlers = new ArrayList<>();
}
mWXOnActivityResultHandlers.add(onActivityResultHandler);
}


public synchronized void registerBackPressedHandler(OnBackPressedHandler backPressedHandler) {
if(backPressedHandler == null) {
return;
Expand Down

0 comments on commit 8a6c6fa

Please sign in to comment.