From d74d8e3aef6cf770bd568563c896c14851cda0a7 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Fri, 23 Mar 2018 06:08:29 +0100 Subject: [PATCH] Added initial support for automated login Signed-off-by: Mario Danic --- .../controllers/WebViewLoginController.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java b/app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java index 8611494fe..0609a1092 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java @@ -107,11 +107,24 @@ public class WebViewLoginController extends BaseController { private String baseUrl; private boolean isPasswordUpdate; + private String username; + private String password; + private int loginStep = 0; + + private boolean automatedLoginAttempted = false; + public WebViewLoginController(String baseUrl, boolean isPasswordUpdate) { this.baseUrl = baseUrl; this.isPasswordUpdate = isPasswordUpdate; } + public WebViewLoginController(String baseUrl, boolean isPasswordUpdate, String username, String password) { + this.baseUrl = baseUrl; + this.isPasswordUpdate = isPasswordUpdate; + this.username = username; + this.password = password; + } + public WebViewLoginController(Bundle args) { super(args); } @@ -175,6 +188,8 @@ public class WebViewLoginController extends BaseController { @Override public void onPageFinished(WebView view, String url) { + loginStep++; + if (!basePageLoaded) { if (progressBar != null) { progressBar.setVisibility(View.GONE); @@ -186,6 +201,18 @@ public class WebViewLoginController extends BaseController { basePageLoaded = true; } + if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) { + if (loginStep == 1) { + webView.loadUrl("javascript: {document.getElementsByClassName('login')[0].click(); };"); + } else if (!automatedLoginAttempted){ + automatedLoginAttempted = true; + webView.loadUrl("javascript: {" + + "document.getElementById('user').value = '" + username + "';" + + "document.getElementById('password').value = '" + password + "';" + + "document.getElementById('submit').click(); };"); + } + } + super.onPageFinished(view, url); }