| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package com.knacki.mimou.activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.webkit.WebChromeClient;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- import com.knacki.mimou.BuildConfig;
- import com.knacki.mimou.api.CredentialHolder;
- import com.knacki.mimou.JsInterface;
- import com.knacki.mimou.R;
- import java.util.logging.Logger;
- public class MainActivity extends AppCompatActivity {
- protected WebView web;
- protected JsInterface interfaceMimouDroid;
- private static Logger log = Logger.getLogger(MainActivity.class.getName());
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- interfaceMimouDroid = new JsInterface();
- web = (WebView) findViewById(R.id.webview);
- web.setWebChromeClient(new WebChromeClient());
- web.setWebViewClient(new WebViewClient() {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- Uri uri = Uri.parse(url);
- log.fine("Loading url " +url);
- if (uri.getHost().equals(getString(R.string.mimouHost))) {
- if (uri.getPathSegments().get(0).equals("login")) {
- CredentialHolder.removeToken(MainActivity.this);
- showLogin();
- return true;
- }
- return super.shouldOverrideUrlLoading(view, url);
- }
- startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
- return true;
- }
- });
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- web.setWebContentsDebuggingEnabled(BuildConfig.DEBUG);
- }
- web.getSettings().setJavaScriptEnabled(true);
- web.addJavascriptInterface(interfaceMimouDroid, "__native");
- web.loadUrl(CredentialHolder.isLocal(this) ? (getString(R.string.mimouUrl) + (getString(R.string.localUrl))) : getString(R.string.mimouUrl));
- }
- protected void showLogin() {
- startActivity(new Intent(MainActivity.this, LoginActivity.class));
- }
- @Override
- protected void onResume() {
- super.onResume();
- if (!CredentialHolder.hasCredential(this)) {
- showLogin();
- }
- interfaceMimouDroid.setActivity(this);
- }
- @Override
- public void onBackPressed() {
- moveTaskToBack(true);
- }
- }
|