|
|
@@ -27,6 +27,8 @@ import android.os.Message;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.view.Window;
|
|
|
+import android.webkit.CookieManager;
|
|
|
+import android.webkit.CookieSyncManager;
|
|
|
import android.webkit.WebChromeClient;
|
|
|
import android.webkit.WebSettings;
|
|
|
import android.webkit.WebView;
|
|
|
@@ -122,64 +124,9 @@ public class ThingsDeviceNetatmoLogin extends CustomActivity implements
|
|
|
private void displayView() {
|
|
|
mNetatmoProgressBar = (ProgressBar) findViewById(R.id.netatmoProgressBar);
|
|
|
|
|
|
- mNetatmoWebView = (WebView) findViewById(R.id.netatmoWebView);
|
|
|
- mNetatmoWebView.getSettings().setJavaScriptEnabled(true);
|
|
|
- mNetatmoWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
|
|
|
- mNetatmoWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
|
|
|
- mNetatmoWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
|
|
- mNetatmoWebView.getSettings().setLoadWithOverviewMode(true);
|
|
|
- mNetatmoWebView.getSettings().setUseWideViewPort(true);
|
|
|
- mNetatmoWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
|
|
|
- mNetatmoWebView.setWebChromeClient(new WebChromeClient() {
|
|
|
- @Override
|
|
|
- public void onProgressChanged(WebView view, int newProgress) {
|
|
|
- if (newProgress == PROGRESS_LOADING_COMPLETE) {
|
|
|
- mNetatmoProgressBar.setVisibility(View.GONE);
|
|
|
- return;
|
|
|
- }
|
|
|
- mNetatmoProgressBar.setVisibility(View.VISIBLE);
|
|
|
- mNetatmoProgressBar.setProgress(newProgress);
|
|
|
- }
|
|
|
- });
|
|
|
- mNetatmoWebView.setWebViewClient(new WebViewClient() {
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
|
|
- LogUtil.i(TAG, "shouldOverrideUrlLoading::url - " + url);
|
|
|
- if (url.startsWith(APP_SCHEME)) {
|
|
|
- LogUtil.i(TAG, "url - " + url);
|
|
|
- UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(url);
|
|
|
- if (null != sanitizer.getValue("code")) {
|
|
|
- mAuthToken = sanitizer.getValue("code");
|
|
|
- LogUtil.i(TAG, "mAuthToken - " + mAuthToken);
|
|
|
- comHandler.sendEmptyMessageDelayed(MSG_COM_P_NETATMO_LOGIN,
|
|
|
- Constants.HANDLER_DELAY_MILLIS);
|
|
|
- } else {
|
|
|
- if (null != sanitizer.getValue("error")) {
|
|
|
- String errorCode = sanitizer.getValue("error");
|
|
|
- if ("access_denied".equals(errorCode)) {
|
|
|
- mCustomDialog.msgAlert(mActivity, Constants.MSG918);
|
|
|
- } else {
|
|
|
- mCustomDialog.msgAlert(mActivity, Constants.MSG000,
|
|
|
- sanitizer.getValue("error"));
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
- onBackPressed();
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onPageFinished(WebView view, String url) {
|
|
|
- super.onPageFinished(view, url);
|
|
|
- view.invalidate();
|
|
|
- }
|
|
|
- });
|
|
|
+ netatmoWebViewSetting();
|
|
|
LogUtil.i(TAG, "loadUrl - " + getString(R.string.netatmo_auth));
|
|
|
- mNetatmoWebView.loadUrl(getString(R.string.netatmo_auth));
|
|
|
+ mNetatmoWebView.loadUrl(getString(R.string.netatmo_auth, getString(R.string.client_id)));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -268,4 +215,76 @@ public class ThingsDeviceNetatmoLogin extends CustomActivity implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void clearCache() {
|
|
|
+ mNetatmoWebView.clearHistory();
|
|
|
+ mNetatmoWebView.clearCache(true);
|
|
|
+ mNetatmoWebView.clearView();
|
|
|
+ CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(this);
|
|
|
+ CookieManager cookieManager = CookieManager.getInstance();
|
|
|
+ cookieManager.setAcceptCookie(true);
|
|
|
+ cookieManager.removeSessionCookie();
|
|
|
+ cookieSyncManager.sync();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void netatmoWebViewSetting() {
|
|
|
+ mNetatmoWebView = (WebView) findViewById(R.id.netatmoWebView);
|
|
|
+ clearCache();
|
|
|
+ mNetatmoWebView.getSettings().setJavaScriptEnabled(true);
|
|
|
+ mNetatmoWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
|
|
|
+ mNetatmoWebView.getSettings().setAppCacheEnabled(false);
|
|
|
+ mNetatmoWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
|
|
|
+ mNetatmoWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
|
|
+ mNetatmoWebView.getSettings().setLoadWithOverviewMode(true);
|
|
|
+ mNetatmoWebView.getSettings().setUseWideViewPort(true);
|
|
|
+ mNetatmoWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
|
|
|
+ mNetatmoWebView.setWebChromeClient(new WebChromeClient() {
|
|
|
+ @Override
|
|
|
+ public void onProgressChanged(WebView view, int newProgress) {
|
|
|
+ if (newProgress == PROGRESS_LOADING_COMPLETE) {
|
|
|
+ mNetatmoProgressBar.setVisibility(View.GONE);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ mNetatmoProgressBar.setVisibility(View.VISIBLE);
|
|
|
+ mNetatmoProgressBar.setProgress(newProgress);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mNetatmoWebView.setWebViewClient(new WebViewClient() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
|
|
+ LogUtil.i(TAG, "shouldOverrideUrlLoading::url - " + url);
|
|
|
+ if (url.startsWith(APP_SCHEME)) {
|
|
|
+ LogUtil.i(TAG, "url - " + url);
|
|
|
+ UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(url);
|
|
|
+ if (null != sanitizer.getValue("code")) {
|
|
|
+ mAuthToken = sanitizer.getValue("code");
|
|
|
+ LogUtil.i(TAG, "mAuthToken - " + mAuthToken);
|
|
|
+ comHandler.sendEmptyMessageDelayed(MSG_COM_P_NETATMO_LOGIN,
|
|
|
+ Constants.HANDLER_DELAY_MILLIS);
|
|
|
+ } else {
|
|
|
+ if (null != sanitizer.getValue("error")) {
|
|
|
+ String errorCode = sanitizer.getValue("error");
|
|
|
+ if ("access_denied".equals(errorCode)) {
|
|
|
+ mCustomDialog.msgAlert(mActivity, Constants.MSG918);
|
|
|
+ } else {
|
|
|
+ mCustomDialog.msgAlert(mActivity, Constants.MSG000,
|
|
|
+ sanitizer.getValue("error"));
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ onBackPressed();
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onPageFinished(WebView view, String url) {
|
|
|
+ super.onPageFinished(view, url);
|
|
|
+ view.invalidate();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|