- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
120 lines
4.3 KiB
Java
120 lines
4.3 KiB
Java
package csdk.gluads.jsevaluator;
|
|
|
|
import android.content.Context;
|
|
import android.webkit.WebView;
|
|
import csdk.gluads.jsevaluator.interfaces.CallJavaResultInterface;
|
|
import csdk.gluads.jsevaluator.interfaces.HandlerWrapperInterface;
|
|
import csdk.gluads.jsevaluator.interfaces.JsCallback;
|
|
import csdk.gluads.jsevaluator.interfaces.JsEvaluatorInterface;
|
|
import csdk.gluads.jsevaluator.interfaces.WebViewWrapperInterface;
|
|
import java.util.ArrayList;
|
|
|
|
/* loaded from: classes4.dex */
|
|
public class JsEvaluator implements CallJavaResultInterface, JsEvaluatorInterface {
|
|
private static final String JS_ERROR_PREFIX = "evgeniiJsEvaluatorException";
|
|
public static final String JS_NAMESPACE = "evgeniiJsEvaluator";
|
|
private final Context mContext;
|
|
protected WebViewWrapperInterface mWebViewWrapper;
|
|
private final ArrayList<JsCallback> mResultCallbacks = new ArrayList<>();
|
|
private HandlerWrapperInterface mHandler = new HandlerWrapper();
|
|
|
|
public ArrayList<JsCallback> getResultCallbacks() {
|
|
return this.mResultCallbacks;
|
|
}
|
|
|
|
public void setHandler(HandlerWrapperInterface handlerWrapperInterface) {
|
|
this.mHandler = handlerWrapperInterface;
|
|
}
|
|
|
|
public void setWebViewWrapper(WebViewWrapperInterface webViewWrapperInterface) {
|
|
this.mWebViewWrapper = webViewWrapperInterface;
|
|
}
|
|
|
|
public JsEvaluator(Context context) {
|
|
this.mContext = context;
|
|
}
|
|
|
|
public static String escapeCarriageReturn(String str) {
|
|
return str.replace("\r", "\\r");
|
|
}
|
|
|
|
public static String escapeClosingScript(String str) {
|
|
return str.replace("</", "<\\/");
|
|
}
|
|
|
|
public static String escapeNewLines(String str) {
|
|
return str.replace("\n", "\\n");
|
|
}
|
|
|
|
public static String escapeSingleQuotes(String str) {
|
|
return str.replace("'", "\\'");
|
|
}
|
|
|
|
public static String escapeSlash(String str) {
|
|
return str.replace("\\", "\\\\");
|
|
}
|
|
|
|
public static String getJsForEval(String str, int i) {
|
|
return String.format("%s.returnResultToJava(eval('try{%s}catch(e){\"%s\"+e}'), %s);", JS_NAMESPACE, escapeCarriageReturn(escapeNewLines(escapeClosingScript(escapeSingleQuotes(escapeSlash(str))))), JS_ERROR_PREFIX, Integer.valueOf(i));
|
|
}
|
|
|
|
@Override // csdk.gluads.jsevaluator.interfaces.JsEvaluatorInterface
|
|
public void callFunction(String str, JsCallback jsCallback, String str2, Object... objArr) {
|
|
evaluate(str + "; " + JsFunctionCallFormatter.toString(str2, objArr), jsCallback);
|
|
}
|
|
|
|
@Override // csdk.gluads.jsevaluator.interfaces.JsEvaluatorInterface
|
|
public void evaluate(String str) {
|
|
evaluate(str, null);
|
|
}
|
|
|
|
@Override // csdk.gluads.jsevaluator.interfaces.JsEvaluatorInterface
|
|
public void evaluate(String str, JsCallback jsCallback) {
|
|
int size = this.mResultCallbacks.size();
|
|
if (jsCallback == null) {
|
|
size = -1;
|
|
}
|
|
String jsForEval = getJsForEval(str, size);
|
|
if (jsCallback != null) {
|
|
this.mResultCallbacks.add(jsCallback);
|
|
}
|
|
getWebViewWrapper().loadJavaScript(jsForEval);
|
|
}
|
|
|
|
@Override // csdk.gluads.jsevaluator.interfaces.JsEvaluatorInterface
|
|
public void destroy() {
|
|
getWebViewWrapper().destroy();
|
|
}
|
|
|
|
@Override // csdk.gluads.jsevaluator.interfaces.JsEvaluatorInterface
|
|
public WebView getWebView() {
|
|
return getWebViewWrapper().getWebView();
|
|
}
|
|
|
|
public WebViewWrapperInterface getWebViewWrapper() {
|
|
if (this.mWebViewWrapper == null) {
|
|
this.mWebViewWrapper = new WebViewWrapper(this.mContext, this);
|
|
}
|
|
return this.mWebViewWrapper;
|
|
}
|
|
|
|
@Override // csdk.gluads.jsevaluator.interfaces.CallJavaResultInterface
|
|
public void jsCallFinished(final String str, Integer num) {
|
|
if (num.intValue() == -1) {
|
|
return;
|
|
}
|
|
final JsCallback jsCallback = this.mResultCallbacks.get(num.intValue());
|
|
this.mHandler.post(new Runnable() { // from class: csdk.gluads.jsevaluator.JsEvaluator.1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
String str2 = str;
|
|
if (str2 != null && str2.startsWith(JsEvaluator.JS_ERROR_PREFIX)) {
|
|
jsCallback.onError(str.substring(27));
|
|
} else {
|
|
jsCallback.onResult(str);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|