|
@@ -7,6 +7,8 @@ import android.content.pm.PackageManager;
|
|
|
import android.net.Uri;
|
|
import android.net.Uri;
|
|
|
import android.os.Build;
|
|
import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
|
|
|
+import android.os.Handler;
|
|
|
|
|
+import android.os.Looper;
|
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.v4.app.ActivityCompat;
|
|
import android.support.v4.app.ActivityCompat;
|
|
|
import android.support.v7.app.AlertDialog;
|
|
import android.support.v7.app.AlertDialog;
|
|
@@ -20,7 +22,9 @@ import com.knacki.mimou.bridge.JavascriptFunction;
|
|
|
import com.knacki.mimou.preference.CredentialHolder;
|
|
import com.knacki.mimou.preference.CredentialHolder;
|
|
|
import com.knacki.mimou.bridge.JsInterface;
|
|
import com.knacki.mimou.bridge.JsInterface;
|
|
|
import com.knacki.mimou.R;
|
|
import com.knacki.mimou.R;
|
|
|
|
|
+import com.knacki.mimou.preference.UserSettings;
|
|
|
|
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.logging.Logger;
|
|
import java.util.logging.Logger;
|
|
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
public class MainActivity extends AppCompatActivity {
|
|
@@ -45,10 +49,13 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
log.severe("Loading url " +url);
|
|
log.severe("Loading url " +url);
|
|
|
if (uri.getHost().equals(getString(R.string.mimouHost))) {
|
|
if (uri.getHost().equals(getString(R.string.mimouHost))) {
|
|
|
- if (uri.getPathSegments().get(0).equals("login") && !url.contains("?phoneAccess=")) {
|
|
|
|
|
- CredentialHolder.removeToken(MainActivity.this);
|
|
|
|
|
- showLogin();
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ List<String> pathSegments = uri.getPathSegments();
|
|
|
|
|
+ if (pathSegments.size() > 0) {
|
|
|
|
|
+ if (pathSegments.get(0).equals("login") && !url.contains("?phoneAccess=")) {
|
|
|
|
|
+ CredentialHolder.reset(MainActivity.this);
|
|
|
|
|
+ showLogin();
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return super.shouldOverrideUrlLoading(view, url);
|
|
return super.shouldOverrideUrlLoading(view, url);
|
|
|
}
|
|
}
|
|
@@ -69,7 +76,6 @@ public class MainActivity extends AppCompatActivity {
|
|
|
if (intentUri != null) {
|
|
if (intentUri != null) {
|
|
|
String securityToken = intentUri.getQueryParameter("token");
|
|
String securityToken = intentUri.getQueryParameter("token");
|
|
|
if (securityToken != null) {
|
|
if (securityToken != null) {
|
|
|
- log.severe("tetete " +securityToken +' '+intentUri.toString());
|
|
|
|
|
CredentialHolder.setSecurityToken(this, securityToken);
|
|
CredentialHolder.setSecurityToken(this, securityToken);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -77,10 +83,11 @@ public class MainActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void reload() {
|
|
public void reload() {
|
|
|
- if (needReload) {
|
|
|
|
|
|
|
+ if (needReload && web != null) {
|
|
|
if (CredentialHolder.hasCredential(this)) {
|
|
if (CredentialHolder.hasCredential(this)) {
|
|
|
- log.severe("Loading url " +getString(R.string.mimouUrl) + (CredentialHolder.isLocal(this) ? getString(R.string.localUrl) : (getString(R.string.loginUrl) + "?phoneAccess=" +CredentialHolder.getToken(this))));
|
|
|
|
|
- web.loadUrl(getString(R.string.mimouUrl) + (CredentialHolder.isLocal(this) ? getString(R.string.localUrl) : (getString(R.string.loginUrl) + "/android?phoneAccess=" +CredentialHolder.getToken(this))));
|
|
|
|
|
|
|
+ final String url = getString(R.string.mimouUrl) + (CredentialHolder.isLocal(this) ? getString(R.string.localUrl) : (getString(R.string.loginUrl) + "/android?phoneAccess=" +CredentialHolder.getToken(this)));
|
|
|
|
|
+ log.fine("Loading URL: " +url);
|
|
|
|
|
+ web.loadUrl(url);
|
|
|
} else {
|
|
} else {
|
|
|
showLogin();
|
|
showLogin();
|
|
|
}
|
|
}
|
|
@@ -102,8 +109,29 @@ public class MainActivity extends AppCompatActivity {
|
|
|
interfaceMimouDroid.setActivity(this);
|
|
interfaceMimouDroid.setActivity(this);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void runJavascript(String js) {
|
|
|
|
|
- web.loadUrl("javascript:" +js);
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ protected void onDestroy() {
|
|
|
|
|
+ super.onDestroy();
|
|
|
|
|
+
|
|
|
|
|
+ if (web != null) {
|
|
|
|
|
+ web.removeAllViews();
|
|
|
|
|
+ web.clearHistory();
|
|
|
|
|
+ web.clearCache(true);
|
|
|
|
|
+ web.destroyDrawingCache();
|
|
|
|
|
+ web.pauseTimers();
|
|
|
|
|
+ web.destroy();
|
|
|
|
|
+ web = null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void runJavascript(final String js) {
|
|
|
|
|
+ (new Handler(Looper.getMainLooper())).post(new Runnable() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void run() {
|
|
|
|
|
+ if (web != null)
|
|
|
|
|
+ web.loadUrl("javascript:" +js);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void runJavascript(JavascriptFunction fnc) {
|
|
public void runJavascript(JavascriptFunction fnc) {
|
|
@@ -135,6 +163,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
|
@Override
|
|
@Override
|
|
|
public void onClick(DialogInterface dialogInterface, int i) {
|
|
public void onClick(DialogInterface dialogInterface, int i) {
|
|
|
|
|
+ CredentialHolder.setSMSPermission(MainActivity.this, false);
|
|
|
currentCallback = callback;
|
|
currentCallback = callback;
|
|
|
promptAndroidPermission();
|
|
promptAndroidPermission();
|
|
|
}
|
|
}
|
|
@@ -142,6 +171,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
.setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
|
|
.setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
|
|
|
@Override
|
|
@Override
|
|
|
public void onClick(DialogInterface dialogInterface, int i) {
|
|
public void onClick(DialogInterface dialogInterface, int i) {
|
|
|
|
|
+ CredentialHolder.setSMSPermission(MainActivity.this, false);
|
|
|
callback.onResult(false);
|
|
callback.onResult(false);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -163,6 +193,9 @@ public class MainActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onBackPressed() {
|
|
public void onBackPressed() {
|
|
|
- moveTaskToBack(true);
|
|
|
|
|
|
|
+ if (UserSettings.backShowMenu(this))
|
|
|
|
|
+ runJavascript(new JavascriptFunction("onNativeBackPressed"));
|
|
|
|
|
+ else
|
|
|
|
|
+ moveTaskToBack(true);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|