diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index b9bb9479..17180487 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 356ed9c2..c548c245 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -581,10 +581,11 @@ android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" android:windowSoftInputMode="stateAlwaysHidden" /> - + android:windowSoftInputMode="stateAlwaysHidden"> \ No newline at end of file diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/AutoDebitAddSeriveAuthenticationServiceModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/AutoDebitAddSeriveAuthenticationServiceModel.java new file mode 100644 index 00000000..739721be --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/AutoDebitAddSeriveAuthenticationServiceModel.java @@ -0,0 +1,22 @@ +package com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class AutoDebitAddSeriveAuthenticationServiceModel { + + @SerializedName("location") + @Expose + private String authenticatedUrl; + + public AutoDebitAddSeriveAuthenticationServiceModel() { + } + + public String getAuthenticatedUrl() { + return authenticatedUrl; + } + + public void setAuthenticatedUrl(String authenticatedUrl) { + this.authenticatedUrl = authenticatedUrl; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/presenter/autodebitaccountlisting/AutoDebitAccountListingV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/presenter/autodebitaccountlisting/AutoDebitAccountListingV2Presenter.java index d3ce5056..1e742d80 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/presenter/autodebitaccountlisting/AutoDebitAccountListingV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/presenter/autodebitaccountlisting/AutoDebitAccountListingV2Presenter.java @@ -59,12 +59,6 @@ public class AutoDebitAccountListingV2Presenter extends BasePresenter implements .subscribeWith(new AutoDebitAccountListingObserver()) ); -// //TODO mocked -// AutoDebitModel t=this.gateway.getMockedData(); -// requiredHeader=t.getHeader(); -// postUrl=t.getURL(); -// availableLanguages=t.getLanguage(); -// view.showAllAccountsToUser(t.getAccountList()); } @@ -163,8 +157,6 @@ public class AutoDebitAccountListingV2Presenter extends BasePresenter implements @Override public void onFailed(String message) { view.showPopUpMessage(message,CustomAlertDialog.AlertType.FAILED,null); -// view.showToastMessage("Sucessfully deleted"); -// view.onAutoDebitAccountDeletedSuccessfully(accountToBeDeleted); } 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 new file mode 100644 index 00000000..e7097e69 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java @@ -0,0 +1,79 @@ +package com.gmeremit.online.gmeremittance_native.autodebitV2.view; + +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.webkit.WebView; + +import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.AutoDebitAddSeriveAuthenticationServiceModel; +import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.WebRequestModel; +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.HttpClientV2; +import com.gmeremit.online.gmeremittance_native.utils.https.MessageResponseDataModel; +import com.gmeremit.online.gmeremittance_native.webbrowserV2.WebBrowserV2Activity; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; + +import io.reactivex.Scheduler; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.schedulers.Schedulers; + +public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity { + + private WebView webView; + private WebRequestModel webRequestModel; + private CompositeDisposable compositeDisposable; + + @Override + protected void doTask(WebRequestModel webRequestModel, WebView webView) { + this.webView = webView; + this.webRequestModel = webRequestModel; + this.compositeDisposable = new CompositeDisposable(); + authenticateService(); + + } + + private void authenticateService() { + this.compositeDisposable.add( + HttpClientV2.getInstance().postDataForAddingAutoDebitAccount(webRequestModel.getUrl(), webRequestModel.getHeaderAsMapData()) + .doOnSubscribe(subs -> showProgressBar(true, "Authenticating...")) + .observeOn(Schedulers.io()) + .doFinally(() ->showProgressBar(false, (String) null)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(new AutoDebitAddRequestObserver())); + } + + + @Override + protected void onDestroy() { + super.onDestroy(); + if (compositeDisposable != null && !compositeDisposable.isDisposed()) + compositeDisposable.dispose(); + } + + class AutoDebitAddRequestObserver extends GenericApiObserverResponse { + + @Override + protected void onSuccess(AutoDebitAddSeriveAuthenticationServiceModel data) { + updateTitleInBrowser(webRequestModel.getWebTitle() != null && webRequestModel.getWebTitle().length() > 0 ? webRequestModel.getWebTitle() : ""); + webView.loadUrl(data.getAuthenticatedUrl()); + } + + @Override + public void onFailed(String message) { + showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> finish()); + } + + @Override + protected void onConnectionNotEstablished(String message) { + showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, alertType -> finish()); + } + } + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/autodebitaccountlisting/AutoDebitAccountListingV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/autodebitaccountlisting/AutoDebitAccountListingV2Activity.java index e2a5bc08..01ef842d 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/autodebitaccountlisting/AutoDebitAccountListingV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/autodebitaccountlisting/AutoDebitAccountListingV2Activity.java @@ -14,6 +14,7 @@ import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccou import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.KeyValueData; import com.gmeremit.online.gmeremittance_native.autodebitV2.presenter.autodebitaccountlisting.AutoDebitAccountListingV2Presenter; import com.gmeremit.online.gmeremittance_native.autodebitV2.presenter.autodebitaccountlisting.AutoDebitAccountListingV2PresenterInterface; +import com.gmeremit.online.gmeremittance_native.autodebitV2.view.AutoDebitWebBrowserV2; import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView; import com.gmeremit.online.gmeremittance_native.webbrowserV2.WebBrowserV2Activity; @@ -147,7 +148,7 @@ public class AutoDebitAccountListingV2Activity extends BaseActivity implements A countryListingDialog.dismiss(); if(presenter==null) return; - Intent intent= new Intent(AutoDebitAccountListingV2Activity.this,WebBrowserV2Activity.class); + Intent intent= new Intent(AutoDebitAccountListingV2Activity.this,AutoDebitWebBrowserV2.class); intent.putExtra(WEB_BROWSWER_URL_BUNDLE_KEY,this.presenter.getWebRequestDataForAddingAccount(countryPaymentService.getKey())); startActivity(intent); }); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java index fde07ee7..64ff6893 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java @@ -1,5 +1,7 @@ package com.gmeremit.online.gmeremittance_native.utils.https; +import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.AutoDebitAddSeriveAuthenticationServiceModel; +import com.gmeremit.online.gmeremittance_native.autodebitV2.view.AutoDebitWebBrowserV2; import com.gmeremit.online.gmeremittance_native.changepasswordV2.model.ChangePasswordActivityV2APIResponse; import com.gmeremit.online.gmeremittance_native.customer_support.model.AmendmentRequest; import com.gmeremit.online.gmeremittance_native.customer_support.model.Suggestion; @@ -120,6 +122,7 @@ import retrofit2.http.Body; import retrofit2.http.DELETE; import retrofit2.http.GET; import retrofit2.http.Header; +import retrofit2.http.HeaderMap; import retrofit2.http.Headers; import retrofit2.http.Multipart; import retrofit2.http.PATCH; @@ -130,6 +133,7 @@ import retrofit2.http.PartMap; import retrofit2.http.Path; import retrofit2.http.Query; import retrofit2.http.QueryMap; +import retrofit2.http.Url; public interface ApiEndpoints { @@ -659,6 +663,11 @@ public interface ApiEndpoints { @Headers("Content-Type: application/json") Observable submitPennyTest(@Header("Authorization") String token, @Body() JsonObject jsonObject); + @GET + @Headers("Content-Type: application/json") + Observable postDataForAddingAutoDebitAccount(@Url String url, @HeaderMap Map headers); + + @GET(API_URL.FETCH_AUTO_DEBIT_DATA) @Headers("Content-Type: application/json") Observable getAutoDebitRelatedData(@Header("Authorization") String token,@Path("userId") String userId); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/webbrowserV2/WebBrowserV2Activity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/webbrowserV2/WebBrowserV2Activity.java index e137bf8f..a4ba29ef 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/webbrowserV2/WebBrowserV2Activity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/webbrowserV2/WebBrowserV2Activity.java @@ -9,6 +9,7 @@ import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.webkit.JsResult; import android.webkit.WebChromeClient; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; @@ -26,7 +27,7 @@ import com.gmeremit.online.gmeremittance_native.utils.https.HTTPConstants; import butterknife.BindView; import butterknife.ButterKnife; -public class WebBrowserV2Activity extends BaseActivity implements View.OnClickListener { +public abstract class WebBrowserV2Activity extends BaseActivity implements View.OnClickListener { @BindView(R.id.iv_back) View iv_back; @@ -46,6 +47,7 @@ public class WebBrowserV2Activity extends BaseActivity implements View.OnClickLi public static String WEB_BROWSWER_URL_BUNDLE_KEY="webBrowserBundleKey"; private WebRequestModel webRequestModel; + protected abstract void doTask(WebRequestModel webRequestModel,WebView webView); @Override protected void onCreate(Bundle savedInstanceState) { @@ -62,9 +64,7 @@ public class WebBrowserV2Activity extends BaseActivity implements View.OnClickLi try { webRequestModel = getIntent().getParcelableExtra(WEB_BROWSWER_URL_BUNDLE_KEY); if (webRequestModel !=null) { - toolbarTitle.setText(webRequestModel.getWebTitle()!=null&&webRequestModel.getWebTitle().length()>0?webRequestModel.getWebTitle():""); - Log.d("WEBREQUESTMODEL", webRequestModel.getUrl()); - webView.loadUrl(webRequestModel.getUrl(),webRequestModel.getHeaderAsMapData()); + doTask(webRequestModel,webView); } @@ -74,6 +74,12 @@ public class WebBrowserV2Activity extends BaseActivity implements View.OnClickLi } } + protected void updateTitleInBrowser(String title) + { +// toolbarTitle.setText(webRequestModel.getWebTitle()!=null&&webRequestModel.getWebTitle().length()>0?webRequestModel.getWebTitle():""); + toolbarTitle.setText(title); + } + private void init() { //Setup presenter here setupWebView(); @@ -91,7 +97,7 @@ public class WebBrowserV2Activity extends BaseActivity implements View.OnClickLi iv_back.setOnClickListener(null); } - private void showProgressBar(boolean action, Runnable callback) { + protected void showProgressBar(boolean action, Runnable callback) { if (action) { if (progressBar.getVisibility() != View.VISIBLE) { progressBar.setAlpha(0f); @@ -160,8 +166,9 @@ public class WebBrowserV2Activity extends BaseActivity implements View.OnClickLi webView.setWebChromeClient(gmeChromeClient); webView.getSettings().setSaveFormData(false); - webView.getSettings().setSavePassword(false); webView.clearCache(true); + webView.clearHistory(); + webView.getSettings().setJavaScriptEnabled(true); } @@ -251,6 +258,14 @@ public class WebBrowserV2Activity extends BaseActivity implements View.OnClickLi if (webView.getVisibility() == View.VISIBLE) toolbarTitle.setText(title); } + + @Override + public boolean onJsAlert(WebView view, String url, String message, JsResult result) { + showPopUpMessage(message,CustomAlertDialog.AlertType.ALERT,alertType -> result.confirm()); + return true; + } + + } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java index 5b5618be..49f722df 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java @@ -88,7 +88,7 @@ public class WithdrawV2Presenter extends BasePresenter implements WithdrawV2Pres compositeDisposables.add( this.gateway.getWithdrawRelatedData(this.gateway.getUserID(), this.gateway.getAuth()) - .doOnSubscribe(action -> view.showProgressBar(true, "Fetching user related data...")) + .doOnSubscribe(action -> view.showProgressBar(true, "Fetching user related data...")) .doFinally(() -> view.showProgressBar(false, "")) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())