Просмотр исходного кода

Enable predictive back gesture for Android 13 (behind developer option)/14+

arkon 1 год назад
Родитель
Сommit
a4d86a2e1e

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

@@ -32,16 +32,17 @@
     <application
         android:name=".App"
         android:allowBackup="false"
+        android:enableOnBackInvokedCallback="true"
         android:hardwareAccelerated="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:largeHeap="true"
         android:localeConfig="@xml/locales_config"
+        android:networkSecurityConfig="@xml/network_security_config"
         android:requestLegacyExternalStorage="true"
         android:roundIcon="@mipmap/ic_launcher_round"
-        android:theme="@style/Theme.Tachiyomi"
         android:supportsRtl="true"
-        android:networkSecurityConfig="@xml/network_security_config">
+        android:theme="@style/Theme.Tachiyomi">
 
         <!-- enable profiling by macrobenchmark -->
         <profileable

+ 8 - 0
app/src/main/java/eu/kanade/tachiyomi/App.kt

@@ -28,6 +28,7 @@ import eu.kanade.domain.ui.UiPreferences
 import eu.kanade.domain.ui.model.setAppCompatDelegateThemeMode
 import eu.kanade.tachiyomi.crash.CrashActivity
 import eu.kanade.tachiyomi.crash.GlobalExceptionHandler
+import eu.kanade.tachiyomi.data.cache.ChapterCache
 import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher
 import eu.kanade.tachiyomi.data.coil.MangaCoverKeyer
 import eu.kanade.tachiyomi.data.coil.MangaKeyer
@@ -53,6 +54,7 @@ import org.acra.ktx.initAcra
 import org.acra.sender.HttpSender
 import org.conscrypt.Conscrypt
 import tachiyomi.core.util.system.logcat
+import tachiyomi.domain.library.service.LibraryPreferences
 import tachiyomi.presentation.widget.TachiyomiWidgetManager
 import uy.kohesive.injekt.Injekt
 import uy.kohesive.injekt.api.get
@@ -62,9 +64,11 @@ import java.security.Security
 class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
 
     private val basePreferences: BasePreferences by injectLazy()
+    private val libraryPreferences: LibraryPreferences by injectLazy()
     private val networkPreferences: NetworkPreferences by injectLazy()
 
     private val disableIncognitoReceiver = DisableIncognitoReceiver()
+    private val chapterCache: ChapterCache by injectLazy()
 
     @SuppressLint("LaunchActivityFromNotification")
     override fun onCreate() {
@@ -168,6 +172,10 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory {
 
     override fun onStop(owner: LifecycleOwner) {
         SecureActivityDelegate.onApplicationStopped()
+
+        if (libraryPreferences.autoClearChapterCache().get()) {
+            chapterCache.clear()
+        }
     }
 
     override fun getPackageName(): String {

+ 2 - 14
app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt

@@ -66,7 +66,6 @@ import eu.kanade.presentation.util.collectAsState
 import eu.kanade.tachiyomi.BuildConfig
 import eu.kanade.tachiyomi.Migrations
 import eu.kanade.tachiyomi.R
-import eu.kanade.tachiyomi.data.cache.ChapterCache
 import eu.kanade.tachiyomi.data.download.DownloadCache
 import eu.kanade.tachiyomi.data.notification.NotificationReceiver
 import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
@@ -111,7 +110,6 @@ class MainActivity : BaseActivity() {
     private val uiPreferences: UiPreferences by injectLazy()
     private val preferences: BasePreferences by injectLazy()
 
-    private val chapterCache: ChapterCache by injectLazy()
     private val downloadCache: DownloadCache by injectLazy()
 
     // To be checked by splash screen. If true then splash screen will be removed.
@@ -423,7 +421,7 @@ class MainActivity : BaseActivity() {
 
                 // Get the search query provided in extras, and if not null, perform a global search with it.
                 val query = intent.getStringExtra(SearchManager.QUERY) ?: intent.getStringExtra(Intent.EXTRA_TEXT)
-                if (query != null && query.isNotEmpty()) {
+                if (!query.isNullOrEmpty()) {
                     navigator.popUntilRoot()
                     navigator.push(GlobalSearchScreen(query))
                 }
@@ -431,7 +429,7 @@ class MainActivity : BaseActivity() {
             }
             INTENT_SEARCH -> {
                 val query = intent.getStringExtra(INTENT_SEARCH_QUERY)
-                if (query != null && query.isNotEmpty()) {
+                if (!query.isNullOrEmpty()) {
                     val filter = intent.getStringExtra(INTENT_SEARCH_FILTER) ?: ""
                     navigator.popUntilRoot()
                     navigator.push(GlobalSearchScreen(query, filter))
@@ -449,16 +447,6 @@ class MainActivity : BaseActivity() {
         return true
     }
 
-    override fun onBackPressed() {
-        if (navigator?.size == 1 &&
-            !onBackPressedDispatcher.hasEnabledCallbacks() &&
-            libraryPreferences.autoClearChapterCache().get()
-        ) {
-            chapterCache.clear()
-        }
-        super.onBackPressed()
-    }
-
     init {
         registerSecureActivity(this)
     }