Browse Source

Javascript interface added

master
preyearegmi 6 years ago
parent
commit
e47ae88bd4
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 39
      app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java
  3. 15
      app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/autodebitaccountlisting/AutoDebitAccountListingV2Activity.java

BIN
.idea/caches/build_file_checksums.ser

39
app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java

@ -1,8 +1,10 @@
package com.gmeremit.online.gmeremittance_native.autodebitV2.view; package com.gmeremit.online.gmeremittance_native.autodebitV2.view;
import android.content.Context;
import android.os.Handler; import android.os.Handler;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.webkit.JavascriptInterface;
import android.webkit.WebView; import android.webkit.WebView;
import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.AutoDebitAddSeriveAuthenticationServiceModel; import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.AutoDebitAddSeriveAuthenticationServiceModel;
@ -28,6 +30,8 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
private WebView webView; private WebView webView;
private WebRequestModel webRequestModel; private WebRequestModel webRequestModel;
private CompositeDisposable compositeDisposable; private CompositeDisposable compositeDisposable;
private WebAppInterface webInterface;
private final static String WEB_INTERFACE_NAME="Android";
@Override @Override
protected void doTask(WebRequestModel webRequestModel, WebView webView) { protected void doTask(WebRequestModel webRequestModel, WebView webView) {
@ -35,6 +39,7 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
this.webView = webView; this.webView = webView;
this.webRequestModel = webRequestModel; this.webRequestModel = webRequestModel;
this.compositeDisposable = new CompositeDisposable(); this.compositeDisposable = new CompositeDisposable();
this.webInterface=new WebAppInterface(AutoDebitWebBrowserV2.this);
authenticateService(); authenticateService();
} }
@ -51,10 +56,17 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
.subscribeWith(new AutoDebitAddRequestObserver())); .subscribeWith(new AutoDebitAddRequestObserver()));
} }
@Override
public void onBackPressed() {
finish();
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
webView.removeJavascriptInterface(WEB_INTERFACE_NAME);
if (compositeDisposable != null && !compositeDisposable.isDisposed()) if (compositeDisposable != null && !compositeDisposable.isDisposed())
compositeDisposable.dispose(); compositeDisposable.dispose();
} }
@ -67,8 +79,10 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
String url=data.getAuthenticatedUrl(); String url=data.getAuthenticatedUrl();
if(url==null||url.length()<1) if(url==null||url.length()<1)
showPopUpMessage("Invalid url", CustomAlertDialog.AlertType.FAILED,alertType -> finish()); showPopUpMessage("Invalid url", CustomAlertDialog.AlertType.FAILED,alertType -> finish());
else
webView.loadUrl(data.getAuthenticatedUrl());
else {
webView.addJavascriptInterface(webInterface,WEB_INTERFACE_NAME);
webView.loadUrl(data.getAuthenticatedUrl());
}
} }
@Override @Override
@ -82,4 +96,25 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
} }
} }
class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
@JavascriptInterface
public void onAutoDebitAccountSuccess(String message) {
showPopUpMessage(message, CustomAlertDialog.AlertType.SUCCESS,alertType -> finish());
}
@JavascriptInterface
public void onAutoDebitAccountFailed(String message) {
showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,alertType -> finish());
}
}
} }

15
app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/autodebitaccountlisting/AutoDebitAccountListingV2Activity.java

@ -4,6 +4,7 @@ import android.app.AlertDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.View; import android.view.View;
@ -52,6 +53,8 @@ public class AutoDebitAccountListingV2Activity extends BaseActivity implements A
private GenericTextListingDialog<KeyValueData> genericTextListingDialog; private GenericTextListingDialog<KeyValueData> genericTextListingDialog;
public static final int AUTO_DEBIT_ADD_REQUEST=5384;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -163,7 +166,7 @@ public class AutoDebitAccountListingV2Activity extends BaseActivity implements A
return; return;
Intent intent= new Intent(AutoDebitAccountListingV2Activity.this,AutoDebitWebBrowserV2.class); Intent intent= new Intent(AutoDebitAccountListingV2Activity.this,AutoDebitWebBrowserV2.class);
intent.putExtra(WEB_BROWSWER_URL_BUNDLE_KEY,this.presenter.getWebRequestDataForAddingAccount(countryPaymentService.getKey())); intent.putExtra(WEB_BROWSWER_URL_BUNDLE_KEY,this.presenter.getWebRequestDataForAddingAccount(countryPaymentService.getKey()));
startActivity(intent);
startActivityForResult(intent,AUTO_DEBIT_ADD_REQUEST);
}); });
genericTextListingDialog.setHintAndTitle("Search Language","Select Language"); genericTextListingDialog.setHintAndTitle("Search Language","Select Language");
genericTextListingDialog.disableSearch(true); genericTextListingDialog.disableSearch(true);
@ -171,6 +174,16 @@ public class AutoDebitAccountListingV2Activity extends BaseActivity implements A
genericTextListingDialog.show(getSupportFragmentManager(), "COUNTRY CHOOSER"); genericTextListingDialog.show(getSupportFragmentManager(), "COUNTRY CHOOSER");
} }
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if(requestCode==AUTO_DEBIT_ADD_REQUEST)
{
if(this.presenter==null)
return;
this.presenter.getAllAutoDebitAccountList();
}
}
@Override @Override
public void showAllAccountsToUser(List<AutoDebitAccount> accountsList) { public void showAllAccountsToUser(List<AutoDebitAccount> accountsList) {
if(accountHintTextView.getVisibility()!=View.VISIBLE) if(accountHintTextView.getVisibility()!=View.VISIBLE)

Loading…
Cancel
Save