소스 검색

reroute all deep links through DeepLinkActivity to provide more control (#2546)

over launch behavior/intent flags
MCAxiaz 5 년 전
부모
커밋
6d9bec3e0b
2개의 변경된 파일27개의 추가작업 그리고 3개의 파일을 삭제
  1. 8 3
      app/src/main/AndroidManifest.xml
  2. 19 0
      app/src/main/java/eu/kanade/tachiyomi/ui/main/DeepLinkActivity.kt

+ 8 - 3
app/src/main/AndroidManifest.xml

@@ -28,12 +28,19 @@
         android:theme="@style/Theme.Tachiyomi">
         <activity
             android:name=".ui.main.MainActivity"
-            android:launchMode="singleTask"
+            android:launchMode="singleTop"
             android:theme="@style/Theme.Splash">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
+            <!--suppress AndroidDomInspection -->
+            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
+        </activity>
+        <activity
+            android:name=".ui.main.DeepLinkActivity"
+            android:launchMode="singleTask"
+            android:theme="@android:style/Theme.NoDisplay">
             <intent-filter>
                 <action android:name="android.intent.action.SEARCH" />
                 <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
@@ -44,8 +51,6 @@
                 <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
             <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/>
-            <!--suppress AndroidDomInspection -->
-            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
         </activity>
         <activity
             android:name=".ui.reader.ReaderActivity" />

+ 19 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/main/DeepLinkActivity.kt

@@ -0,0 +1,19 @@
+package eu.kanade.tachiyomi.ui.main
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+
+class DeepLinkActivity: Activity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        intent.apply {
+            flags = flags or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
+            setClass(applicationContext, MainActivity::class.java)
+        }
+        startActivity(intent)
+        finish()
+    }
+}