mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Fix some crashes
This commit is contained in:
		| @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.network.interceptor | ||||
|  | ||||
| import android.annotation.SuppressLint | ||||
| import android.content.Context | ||||
| import android.os.Build | ||||
| import android.webkit.WebSettings | ||||
| import android.webkit.WebView | ||||
| import android.widget.Toast | ||||
| @@ -11,7 +10,6 @@ import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.network.NetworkHelper | ||||
| import eu.kanade.tachiyomi.source.online.HttpSource | ||||
| import eu.kanade.tachiyomi.util.lang.launchUI | ||||
| import eu.kanade.tachiyomi.util.system.DeviceUtil | ||||
| import eu.kanade.tachiyomi.util.system.WebViewClientCompat | ||||
| import eu.kanade.tachiyomi.util.system.WebViewUtil | ||||
| import eu.kanade.tachiyomi.util.system.isOutdated | ||||
| @@ -39,13 +37,13 @@ class CloudflareInterceptor(private val context: Context) : Interceptor { | ||||
|      * Application class. | ||||
|      */ | ||||
|     private val initWebView by lazy { | ||||
|         // Avoid crashes on Samsung devices on Android 12 | ||||
|         // See https://bugs.chromium.org/p/chromium/issues/detail?id=1279562 | ||||
|         if (Build.VERSION.SDK_INT == Build.VERSION_CODES.S && DeviceUtil.isSamsung) { | ||||
|             return@lazy | ||||
|         try { | ||||
|             WebSettings.getDefaultUserAgent(context) | ||||
|         } catch (_: Exception) { | ||||
|             // Crashes on some devices. We just ignore it since the only impact is slower | ||||
|             // WebView init in those rare cases. | ||||
|             // See https://bugs.chromium.org/p/chromium/issues/detail?id=1279562 | ||||
|         } | ||||
|  | ||||
|         WebSettings.getDefaultUserAgent(context) | ||||
|     } | ||||
|  | ||||
|     @Synchronized | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import eu.davidea.flexibleadapter.items.IFlexible | ||||
| import eu.kanade.tachiyomi.R | ||||
|  | ||||
| data class DownloadHeaderItem( | ||||
|     val id: Long, | ||||
|     val name: String, | ||||
|     val size: Int | ||||
| ) : AbstractExpandableHeaderItem<DownloadHeaderHolder, DownloadItem>() { | ||||
| @@ -41,7 +42,7 @@ data class DownloadHeaderItem( | ||||
|     } | ||||
|  | ||||
|     override fun hashCode(): Int { | ||||
|         return name.hashCode() | ||||
|         return id.hashCode() | ||||
|     } | ||||
|  | ||||
|     init { | ||||
|   | ||||
| @@ -33,7 +33,7 @@ class DownloadPresenter : BasePresenter<DownloadController>() { | ||||
|                 downloads | ||||
|                     .groupBy { it.source } | ||||
|                     .map { entry -> | ||||
|                         DownloadHeaderItem(entry.key.name, entry.value.size).apply { | ||||
|                         DownloadHeaderItem(entry.key.id, entry.key.name, entry.value.size).apply { | ||||
|                             addSubItems(0, entry.value.map { DownloadItem(it, this) }) | ||||
|                         } | ||||
|                     } | ||||
|   | ||||
| @@ -260,7 +260,7 @@ class MainActivity : BaseViewBindingActivity<MainActivityBinding>() { | ||||
|  | ||||
|                 // Close BrowseSourceController and its MangaController child when incognito mode is disabled | ||||
|                 if (!it) { | ||||
|                     val fg = router.backstack.last().controller | ||||
|                     val fg = router.backstack.lastOrNull()?.controller | ||||
|                     if (fg is BrowseSourceController || fg is MangaController && fg.fromSource) { | ||||
|                         router.popToRoot() | ||||
|                     } | ||||
|   | ||||
| @@ -338,6 +338,9 @@ class MangaController : | ||||
|     } | ||||
|  | ||||
|     private fun updateToolbarTitleAlpha(@FloatRange(from = 0.0, to = 1.0) alpha: Float? = null) { | ||||
|         // Controller may actually already be destroyed by the time this gets run | ||||
|         binding ?: return | ||||
|  | ||||
|         val scrolledList = binding.fullRecycler ?: binding.infoRecycler!! | ||||
|         (activity as? MainActivity)?.binding?.appbar?.titleTextAlpha = when { | ||||
|             // Specific alpha provided | ||||
|   | ||||
| @@ -1,7 +1,6 @@ | ||||
| package eu.kanade.tachiyomi.util.system | ||||
|  | ||||
| import android.annotation.SuppressLint | ||||
| import android.os.Build | ||||
| import logcat.LogPriority | ||||
|  | ||||
| object DeviceUtil { | ||||
| @@ -26,10 +25,6 @@ object DeviceUtil { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     val isSamsung by lazy { | ||||
|         Build.MANUFACTURER.equals("samsung", ignoreCase = true) | ||||
|     } | ||||
|  | ||||
|     @SuppressLint("PrivateApi") | ||||
|     private fun getSystemProperty(key: String?): String? { | ||||
|         return try { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user