diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index f4c4f77f..2b3eab89 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 25e43cc7..9301a6bf 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -10,6 +10,7 @@
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index b912bb7d..62c8bc54 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -5,6 +5,7 @@
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 983bea1e..fc79db05 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -132,5 +132,6 @@ dependencies {
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
implementation project(':SpinnerDatePickerLib-release')
+ implementation project(':httpclient-release')
}
apply plugin: 'com.google.gms.google-services'
diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/KeyValueData.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/KeyValueData.java
index 7082aad2..40ece355 100644
--- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/KeyValueData.java
+++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/KeyValueData.java
@@ -16,7 +16,9 @@ public class KeyValueData implements Parcelable {
private String value;
public String getKey() {
- return key;
+ if(key==null)
+ key="";
+ return key.trim();
}
public void setKey(String key) {
@@ -24,7 +26,9 @@ public class KeyValueData implements Parcelable {
}
public String getValue() {
- return value;
+ if(value==null)
+ value="";
+ return value.trim();
}
public void setValue(String value) {
diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java
index 6a3b8491..aefdfc36 100644
--- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java
+++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java
@@ -13,10 +13,17 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel;
+import com.gmeremit.online.gmeremittance_native.utils.https.HTTPConstants;
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import com.gmeremit.online.gmeremittance_native.utils.https.MessageResponseDataModel;
import com.gmeremit.online.gmeremittance_native.webbrowserV2.WebBrowserV2Activity;
+import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataModel;
import com.google.gson.reflect.TypeToken;
+import com.preyearegmi.utils.httpclient.HTTPClient;
+import com.preyearegmi.utils.httpclient.HTTPResponse;
+import com.preyearegmi.utils.httpclient.METHODTYPE;
+import com.preyearegmi.utils.httpclient.abs.NetworkTask;
+import com.preyearegmi.utils.httpclient.abs.RequestCompleteCallback;
import java.lang.reflect.Type;
@@ -40,11 +47,17 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
this.webRequestModel = webRequestModel;
this.compositeDisposable = new CompositeDisposable();
this.webInterface=new WebAppInterface(AutoDebitWebBrowserV2.this);
- authenticateService();
+// authenticateService();
+ authenticateServiceV2();
}
}
+ /**
+ * Okhttp don't support non-ASCII Headers
+ * See error : https://github.com/square/okhttp/issues/2016
+ */
+ @Deprecated
private void authenticateService() {
this.compositeDisposable.add(
HttpClientV2.getInstance().postDataForAddingAutoDebitAccount(webRequestModel.getUrl(), webRequestModel.getHeaderAsMapData())
@@ -56,6 +69,49 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
.subscribeWith(new AutoDebitAddRequestObserver()));
}
+ private void authenticateServiceV2()
+ {
+ showProgressBar(true, "Authenticating...");
+ NetworkTask authenticationTask= HTTPClient.request(webRequestModel.getUrl(), METHODTYPE.GET, webRequestModel.getHeaderAsMapData(), null, new RequestCompleteCallback() {
+ @Override
+ public void onSuccess(HTTPResponse httpResponse) {
+ showProgressBar(false, "");
+ try {
+ Type type = TypeToken.getParameterized(AutoDebitAddSeriveAuthenticationServiceModel.class).getType();
+ AutoDebitAddSeriveAuthenticationServiceModel data = null;
+ data = HttpClientV2.getDeserializer().fromJson(httpResponse.getResponseBody(), type);
+ updateTitleInBrowser(webRequestModel.getWebTitle() != null && webRequestModel.getWebTitle().length() > 0 ? webRequestModel.getWebTitle() : "");
+ String url = data.getAuthenticatedUrl();
+ if (url == null || url.length() < 1)
+ showPopUpMessage("Invalid url", CustomAlertDialog.AlertType.FAILED, alertType -> finish());
+ else {
+ webView.addJavascriptInterface(webInterface, WEB_INTERFACE_NAME);
+ webView.loadUrl(data.getAuthenticatedUrl());
+ }
+ }
+ catch (Exception e)
+ {
+ showPopUpMessage(e.getMessage(), CustomAlertDialog.AlertType.FAILED, alertType -> finish());
+ }
+ }
+
+ @Override
+ public void onFailed(int i) {
+ showProgressBar(false, "");
+ String message= HTTPConstants.getErrorMessageFromCode(i);
+ showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> finish());
+ }
+
+ @Override
+ public void onConnectionNotEstablished(String s) {
+ showProgressBar(false, "");
+ showPopUpMessage(s, CustomAlertDialog.AlertType.FAILED, alertType -> finish());
+ }
+ });
+
+ HTTPClient.enqueue(authenticationTask);
+ }
+
@Override
public void onBackPressed() {
finish();
diff --git a/httpclient-release/build.gradle b/httpclient-release/build.gradle
new file mode 100644
index 00000000..8d37dc36
--- /dev/null
+++ b/httpclient-release/build.gradle
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('httpclient-release.aar'))
\ No newline at end of file
diff --git a/httpclient-release/httpclient-release.aar b/httpclient-release/httpclient-release.aar
new file mode 100644
index 00000000..07b63832
Binary files /dev/null and b/httpclient-release/httpclient-release.aar differ
diff --git a/settings.gradle b/settings.gradle
index b5040fe5..e9d49503 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app', ':SpinnerDatePickerLib-release'
+include ':app', ':SpinnerDatePickerLib-release', ':httpclient-release'