package com.citrus.cash;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.text.TextUtils;
import android.webkit.CookieManager;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import com.citrus.mobile.Callback;
import com.citrus.mobile.Config;
import org.json.JSONException;
import org.json.JSONObject;
/**
* @deprecated in v3
* <p/>
* This class is no longer supported.
*/
@Deprecated
public class PrepaidPg {
Activity activity;
Callback cb;
String sessionCookie;
CookieManager cookieManager;
public PrepaidPg(Activity activity) {
this.activity = activity;
}
public void pay(Callback cb, String response, String error) {
this.cb = cb;
if (!TextUtils.isEmpty(response)) {
try {
JSONObject redirect = new JSONObject(response);
if (!TextUtils.isEmpty(redirect.getString("redirectUrl"))) {
processwebflow(redirect.getString("redirectUrl"));
} else {
Toast.makeText(activity, response, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Toast.makeText(activity, error, Toast.LENGTH_LONG).show();
}
}
@SuppressLint("SetJavaScriptEnabled")
private void processwebflow(String url) {
WebView webview = new WebView(activity);
final WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("/prepaid/pg/verify/")) {
cb.onTaskexecuted("", "User is not signed in");
return false;
}
return super.shouldOverrideUrlLoading(view, url);
}
});
cookieManager = CookieManager.getInstance();
sessionCookie = new PersistentConfig(activity.getApplicationContext()).getCookieString();
if (TextUtils.isEmpty(sessionCookie.toString()) || sessionCookie == null) {
cb.onTaskexecuted("", "User not signed in!");
return;
}
if (TextUtils.equals(Config.getEnv().toString(), "sandbox")) {
cookieManager.setCookie("https://sandboxadmin.citruspay.com", sessionCookie);
} else {
cookieManager.setCookie("https://admin.citruspay.com", sessionCookie);
}
webview.addJavascriptInterface(new JsInterface(), "CitrusResponse");
webview.loadUrl(url);
}
private class JsInterface {
@JavascriptInterface
public void pgResponse(String response) {
cb.onTaskexecuted(response, "");
}
}
}