
package com.rn.qb.aliLiveDetect;

import com.facebook.react.bridge.Promise;
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.alibaba.security.rp.RPSDK;

public class RNReactNativeAliLiveDetectModule extends ReactContextBaseJavaModule {

  private final ReactApplicationContext reactContext;

  public RNReactNativeAliLiveDetectModule(ReactApplicationContext reactContext) {
    super(reactContext);
    this.reactContext = reactContext;
  }

  @Override
  public String getName() {
    return "RNReactNativeAliLiveDetect";
  }

  @ReactMethod
  public void initAliLiveDetectSDK(){
    RPSDK.initialize(reactContext);
  }
  @ReactMethod
  public void startVerfiy (String token, final Promise promise){
    RPSDK.start(token, reactContext.getCurrentActivity(), new RPSDK.RPCompletedListener() {
      @Override
      public void onAuditResult(RPSDK.AUDIT audit) {
        if(audit == RPSDK.AUDIT.AUDIT_PASS) { //认证通过
          promise.resolve("success");
        }
        else if(audit == RPSDK.AUDIT.AUDIT_FAIL) { //认证不通过
          promise.resolve("fail");
        }
        else if(audit == RPSDK.AUDIT.AUDIT_IN_AUDIT) { //认证中，通常不会出现，只有在认证审核系统内部出现超时，未在限定时间内返回认证结果时出现。此时提示用户系统处理中，稍后查看认证结果即可。
          promise.resolve("processing");
        }
        else if(audit == RPSDK.AUDIT.AUDIT_NOT) { //未认证，用户取消
          promise.resolve("cancel");
        }
        else if(audit == RPSDK.AUDIT.AUDIT_EXCEPTION){ //系统异常
          promise.resolve("error");
        }

      }
    });
  }

}