isundil 8 éve
szülő
commit
b92749854d

+ 7 - 1
app/src/main/AndroidManifest.xml

@@ -15,9 +15,15 @@
         <activity android:name=".activity.MainActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
+
+            <intent-filter>
+                <data android:scheme="mimou" />
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+            </intent-filter>
         </activity>
         <activity android:name=".activity.LoginActivity" android:noHistory="true"></activity>
     </application>

+ 1 - 1
app/src/main/java/com/knacki/mimou/activity/LoginActivity.java

@@ -19,7 +19,7 @@ public class LoginActivity extends AppCompatActivity {
         findViewById(R.id.login).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.mimouUrl) +getString(R.string.loginUrl))));
+                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.mimouUrl) +getString(R.string.loginUrl) +"?native")));
             }
         });
 

+ 19 - 5
app/src/main/java/com/knacki/mimou/activity/MainActivity.java

@@ -31,7 +31,6 @@ public class MainActivity extends AppCompatActivity {
     private static Logger log = Logger.getLogger(MainActivity.class.getName());
     private JsInterface.TypedCallback<Boolean> currentCallback = null;
 
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -44,9 +43,9 @@ public class MainActivity extends AppCompatActivity {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 Uri uri = Uri.parse(url);
 
-                log.fine("Loading url " +url);
+                log.severe("Loading url " +url);
                 if (uri.getHost().equals(getString(R.string.mimouHost))) {
-                    if (uri.getPathSegments().get(0).equals("login")) {
+                    if (uri.getPathSegments().get(0).equals("login") && !url.contains("?phoneAccess=")) {
                         CredentialHolder.removeToken(MainActivity.this);
                         showLogin();
                         return true;
@@ -65,12 +64,27 @@ public class MainActivity extends AppCompatActivity {
         web.getSettings().setJavaScriptEnabled(true);
         web.addJavascriptInterface(interfaceMimouDroid, "__native");
         needReload = true;
+
+        Uri intentUri = getIntent().getData();
+        if (intentUri != null) {
+            String securityToken = intentUri.getQueryParameter("token");
+            if (securityToken != null) {
+                log.severe("tetete " +securityToken +' '+intentUri.toString());
+                CredentialHolder.setSecurityToken(this, securityToken);
+            }
+        }
         reload();
     }
 
     public void reload() {
-        if (needReload)
-            web.loadUrl(CredentialHolder.isLocal(this) ? (getString(R.string.mimouUrl) + (getString(R.string.localUrl))) : getString(R.string.mimouUrl));
+        if (needReload) {
+            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) + "?phoneAccess=" +CredentialHolder.getToken(this))));
+            } else {
+                showLogin();
+            }
+        }
         needReload = false;
     }
 

+ 2 - 0
app/src/main/java/com/knacki/mimou/preference/CredentialHolder.java

@@ -3,6 +3,8 @@ package com.knacki.mimou.preference;
 import android.content.Context;
 import android.content.SharedPreferences;
 
+import java.util.logging.Logger;
+
 /**
  * Created by thibal on 1/4/18.
  */

+ 0 - 1
app/src/main/java/com/knacki/mimou/preference/PreferenceHolder.java

@@ -6,7 +6,6 @@ import android.content.SharedPreferences;
 /**
  * Created by isundil on 1/4/18.
  */
-
 class PreferenceHolder {
     private static final String PREF_FILENAME = "prefs";
 

+ 2 - 2
app/src/main/res/values/strings.xml

@@ -3,6 +3,6 @@
     <string name="mimouUrl">https://mimouchat.knacki.info/</string>
     <string name="mimouHost">mimouchat.knacki.info</string>
     <string name="mimouScheme">https</string>
-    <string name="loginUrl">mlogin</string>
-    <string name="localUrl">local</string>
+    <string name="loginUrl">login</string>
+    <string name="localUrl">\?local</string>
 </resources>