diff --git a/README.md b/README.md index bb6bec9d1..27deeb551 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # ![app icon](./.github/readme-images/app-icon.png) Komikku -Mihon/Tachiyomi is a free and open source manga reader for Android 6.0 and above. This version of Mihon/Tachiyomi, Komikku was based off TachiyomiSY. This version is meant to push forward in the ways of usability and features. TachiyomiSY tries to push forward where it can, but staying in a place where it can easily grab updates and features from the main app, it tries to make new features, or take features from other forks like SY, J2K and Neko. +Mihon/Tachiyomi is a free and open source manga reader for Android 8.0 and above. This version of Mihon/Tachiyomi, Komikku was based off TachiyomiSY. This version is meant to push forward in the ways of usability and features. TachiyomiSY tries to push forward where it can, but staying in a place where it can easily grab updates and features from the main app, it tries to make new features, or take features from other forks like SY, J2K and Neko. ![screenshots of app](./.github/readme-images/screens.png) diff --git a/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/debug/res/mipmap/ic_launcher.xml similarity index 100% rename from app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/debug/res/mipmap/ic_launcher.xml diff --git a/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/debug/res/mipmap/ic_launcher_round.xml similarity index 100% rename from app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to app/src/debug/res/mipmap/ic_launcher_round.xml diff --git a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt index debb769e6..a2c89e201 100644 --- a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt @@ -1,6 +1,5 @@ package eu.kanade.domain.ui -import android.os.Build import com.materialkolor.PaletteStyle import eu.kanade.domain.ui.model.AppTheme import eu.kanade.domain.ui.model.TabletUiMode @@ -17,10 +16,7 @@ class UiPreferences( private val preferenceStore: PreferenceStore, ) { - fun themeMode() = preferenceStore.getEnum( - "pref_theme_mode_key", - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ThemeMode.SYSTEM } else { ThemeMode.LIGHT }, - ) + fun themeMode() = preferenceStore.getEnum("pref_theme_mode_key", ThemeMode.SYSTEM) fun appTheme() = preferenceStore.getEnum( "pref_app_theme", diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt index 5237c2cbb..a70511326 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt @@ -2,7 +2,6 @@ package eu.kanade.presentation.manga.components import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable -import android.os.Build import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row @@ -175,14 +174,9 @@ fun MangaCoverDialog( // Copy bitmap in case it came from memory cache // Because SSIV needs to thoroughly read the image val copy = (drawable as? BitmapDrawable)?.let { - val config = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - Bitmap.Config.HARDWARE - } else { - Bitmap.Config.ARGB_8888 - } BitmapDrawable( view.context.resources, - it.bitmap.copy(config, false), + it.bitmap.copy(Bitmap.Config.HARDWARE, false), ) } ?: drawable view.setImage(copy, ReaderPageImageView.Config(zoomDuration = 500)) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt b/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt index d1901745b..6ba423e32 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt @@ -1,6 +1,5 @@ package eu.kanade.presentation.more.settings.widget -import android.os.Build import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.MultiChoiceSegmentedButtonRow @@ -13,18 +12,11 @@ import eu.kanade.domain.ui.model.ThemeMode import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource -private val options = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - mapOf( - ThemeMode.SYSTEM to MR.strings.theme_system, - ThemeMode.LIGHT to MR.strings.theme_light, - ThemeMode.DARK to MR.strings.theme_dark, - ) -} else { - mapOf( - ThemeMode.LIGHT to MR.strings.theme_light, - ThemeMode.DARK to MR.strings.theme_dark, - ) -} +private val options = mapOf( + ThemeMode.SYSTEM to MR.strings.theme_system, + ThemeMode.LIGHT to MR.strings.theme_light, + ThemeMode.DARK to MR.strings.theme_dark, +) @Composable internal fun AppThemeModePreferenceWidget( diff --git a/app/src/main/java/eu/kanade/presentation/util/Permissions.kt b/app/src/main/java/eu/kanade/presentation/util/Permissions.kt index 798f2ff24..80c2f90b9 100644 --- a/app/src/main/java/eu/kanade/presentation/util/Permissions.kt +++ b/app/src/main/java/eu/kanade/presentation/util/Permissions.kt @@ -1,7 +1,5 @@ package eu.kanade.presentation.util -import android.os.Build -import android.provider.Settings import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue @@ -23,12 +21,7 @@ fun rememberRequestPackageInstallsPermissionState(initialValue: Boolean = false) DisposableEffect(lifecycleOwner.lifecycle) { val observer = object : DefaultLifecycleObserver { override fun onResume(owner: LifecycleOwner) { - installGranted = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context.packageManager.canRequestPackageInstalls() - } else { - @Suppress("DEPRECATION") - Settings.Secure.getInt(context.contentResolver, Settings.Secure.INSTALL_NON_MARKET_APPS) != 0 - } + installGranted = context.packageManager.canRequestPackageInstalls() } } lifecycleOwner.lifecycle.addObserver(observer) diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index b2a30d852..b0a4a89b0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -248,22 +248,19 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor } override fun getPackageName(): String { - // This causes freezes in Android 6/7 for some reason - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - try { - // Override the value passed as X-Requested-With in WebView requests - val stackTrace = Looper.getMainLooper().thread.stackTrace - val chromiumElement = stackTrace.find { - it.className.equals( - "org.chromium.base.BuildInfo", - ignoreCase = true, - ) - } - if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) { - return WebViewUtil.SPOOF_PACKAGE_NAME - } - } catch (_: Exception) { + try { + // Override the value passed as X-Requested-With in WebView requests + val stackTrace = Looper.getMainLooper().thread.stackTrace + val chromiumElement = stackTrace.find { + it.className.equals( + "org.chromium.base.BuildInfo", + ignoreCase = true, + ) } + if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) { + return WebViewUtil.SPOOF_PACKAGE_NAME + } + } catch (_: Exception) { } return super.getPackageName() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt index 8074fb692..8d59dd9bd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt @@ -1,7 +1,6 @@ package eu.kanade.tachiyomi.data.coil import android.graphics.Bitmap -import android.os.Build import coil3.ImageLoader import coil3.asCoilImage import coil3.decode.DecodeResult @@ -68,7 +67,6 @@ class TachiyomiImageDecoder(private val resources: ImageSource, private val opti check(bitmap != null) { "Failed to decode image" } if ( - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && options.bitmapConfig == Bitmap.Config.HARDWARE && maxOf(bitmap.width, bitmap.height) <= GLUtil.maxTextureSize ) { @@ -105,8 +103,7 @@ class TachiyomiImageDecoder(private val resources: ImageSource, private val opti } // SY <-- return when (type) { - ImageUtil.ImageType.AVIF, ImageUtil.ImageType.JXL -> true - ImageUtil.ImageType.HEIF -> Build.VERSION.SDK_INT < Build.VERSION_CODES.O + ImageUtil.ImageType.AVIF, ImageUtil.ImageType.JXL, ImageUtil.ImageType.HEIF -> true else -> false } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt index cd4908141..66bc5a603 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -5,7 +5,6 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.net.Uri -import android.os.Build import androidx.core.net.toUri import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.download.DownloadManager @@ -368,20 +367,18 @@ class NotificationReceiver : BroadcastReceiver() { When programmatically dismissing this notification, the group notification is not automatically dismissed. */ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - val groupKey = context.notificationManager.activeNotifications.find { - it.id == notificationId - }?.groupKey + val groupKey = context.notificationManager.activeNotifications.find { + it.id == notificationId + }?.groupKey - if (groupId != null && groupId != 0 && !groupKey.isNullOrEmpty()) { - val notifications = context.notificationManager.activeNotifications.filter { - it.groupKey == groupKey - } + if (groupId != null && groupId != 0 && !groupKey.isNullOrEmpty()) { + val notifications = context.notificationManager.activeNotifications.filter { + it.groupKey == groupKey + } - if (notifications.size == 2) { - context.cancelNotification(groupId) - return - } + if (notifications.size == 2) { + context.cancelNotification(groupId) + return } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt index eda627589..24a8cb377 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.extension.installer import android.app.Service import android.content.pm.PackageManager -import android.os.Build import android.os.Process import eu.kanade.tachiyomi.extension.model.InstallStep import eu.kanade.tachiyomi.util.system.getUriSize @@ -51,12 +50,8 @@ class ShizukuInstaller(private val service: Service) : Installer(service) { try { val size = service.getUriSize(entry.uri) ?: throw IllegalStateException() service.contentResolver.openInputStream(entry.uri)!!.use { - val createCommand = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - val userId = Process.myUserHandle().hashCode() - "pm install-create --user $userId -r -i ${service.packageName} -S $size" - } else { - "pm install-create -r -i ${service.packageName} -S $size" - } + val userId = Process.myUserHandle().hashCode() + val createCommand = "pm install-create --user $userId -r -i ${service.packageName} -S $size" val createResult = exec(createCommand) sessionId = SESSION_ID_REGEX.find(createResult.out)?.value ?: throw RuntimeException("Failed to create install session") diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt index 3c0fab2ab..c0575c0d5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt @@ -2,9 +2,7 @@ package eu.kanade.tachiyomi.util.storage import android.content.Context import android.net.Uri -import android.os.Build import androidx.core.content.FileProvider -import androidx.core.net.toUri import eu.kanade.tachiyomi.BuildConfig import java.io.File @@ -17,11 +15,7 @@ val Context.cacheImageDir: File * @param context context of application */ fun File.getUriCompat(context: Context): Uri { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", this) - } else { - this.toUri() - } + return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", this) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index 4ec99c07a..190764631 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -170,12 +170,8 @@ fun Context.isInstalledFromFDroid(): Boolean { } fun Context.launchRequestPackageInstallsPermission() { - val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply { - data = Uri.parse("package:$packageName") - } - } else { - Intent(Settings.ACTION_SECURITY_SETTINGS) + Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply { + data = Uri.parse("package:$packageName") + startActivity(this) } - startActivity(intent) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt index 8d72a9c86..18e16baac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt @@ -18,8 +18,7 @@ fun Context.isOnline(): Boolean { val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false val maxTransport = when { Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 -> NetworkCapabilities.TRANSPORT_LOWPAN - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> NetworkCapabilities.TRANSPORT_WIFI_AWARE - else -> NetworkCapabilities.TRANSPORT_VPN + else -> NetworkCapabilities.TRANSPORT_WIFI_AWARE } return (NetworkCapabilities.TRANSPORT_CELLULAR..maxTransport).any(networkCapabilities::hasTransport) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt index a4a686541..0c309ae55 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt @@ -1,14 +1,9 @@ package eu.kanade.tachiyomi.util.system -import android.content.BroadcastReceiver import android.content.Context -import android.content.Intent -import android.content.IntentFilter -import android.net.ConnectivityManager import android.net.ConnectivityManager.NetworkCallback import android.net.Network import android.net.NetworkCapabilities -import android.os.Build import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.callbackFlow @@ -17,11 +12,7 @@ data class NetworkState( val isValidated: Boolean, val isWifi: Boolean, ) { - val isOnline = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - isConnected && isValidated - } else { - isConnected - } + val isOnline = isConnected && isValidated } @Suppress("DEPRECATION") @@ -34,34 +25,18 @@ fun Context.activeNetworkState(): NetworkState { ) } -@Suppress("DEPRECATION") fun Context.networkStateFlow() = callbackFlow { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - val networkCallback = object : NetworkCallback() { - override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) { - trySend(activeNetworkState()) - } - override fun onLost(network: Network) { - trySend(activeNetworkState()) - } + val networkCallback = object : NetworkCallback() { + override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) { + trySend(activeNetworkState()) } - - connectivityManager.registerDefaultNetworkCallback(networkCallback) - awaitClose { - connectivityManager.unregisterNetworkCallback(networkCallback) - } - } else { - val receiver = object : BroadcastReceiver() { - override fun onReceive(context: Context, intent: Intent) { - if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) { - trySend(activeNetworkState()) - } - } - } - - registerReceiver(receiver, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)) - awaitClose { - unregisterReceiver(receiver) + override fun onLost(network: Network) { + trySend(activeNetworkState()) } } + + connectivityManager.registerDefaultNetworkCallback(networkCallback) + awaitClose { + connectivityManager.unregisterNetworkCallback(networkCallback) + } } diff --git a/app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml b/app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml deleted file mode 100644 index fd2784fbb..000000000 --- a/app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v26/sc_explore_48dp.xml b/app/src/main/res/drawable-v26/sc_explore_48dp.xml deleted file mode 100644 index 9737e6031..000000000 --- a/app/src/main/res/drawable-v26/sc_explore_48dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v26/sc_history_48dp.xml b/app/src/main/res/drawable-v26/sc_history_48dp.xml deleted file mode 100644 index f8b0ff94a..000000000 --- a/app/src/main/res/drawable-v26/sc_history_48dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v26/sc_new_releases_48dp.xml b/app/src/main/res/drawable-v26/sc_new_releases_48dp.xml deleted file mode 100644 index 256f5ff8f..000000000 --- a/app/src/main/res/drawable-v26/sc_new_releases_48dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml b/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml index d45e333f7..fd2784fbb 100644 --- a/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml +++ b/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml @@ -1,24 +1,24 @@ - - - - - - - - - + tools:keep="@drawable/sc_collections_bookmark_48dp"> + + + + + + + + + + diff --git a/app/src/main/res/drawable/sc_explore_48dp.xml b/app/src/main/res/drawable/sc_explore_48dp.xml index bc97eb259..9737e6031 100644 --- a/app/src/main/res/drawable/sc_explore_48dp.xml +++ b/app/src/main/res/drawable/sc_explore_48dp.xml @@ -1,21 +1,21 @@ - - - - - - - - + tools:keep="@drawable/sc_explore_48dp"> + + + + + + + + + diff --git a/app/src/main/res/drawable/sc_history_48dp.xml b/app/src/main/res/drawable/sc_history_48dp.xml index 3ee54e497..f8b0ff94a 100644 --- a/app/src/main/res/drawable/sc_history_48dp.xml +++ b/app/src/main/res/drawable/sc_history_48dp.xml @@ -1,21 +1,21 @@ - - - - - - - - + tools:keep="@drawable/sc_history_48dp"> + + + + + + + + + diff --git a/app/src/main/res/drawable/sc_new_releases_48dp.xml b/app/src/main/res/drawable/sc_new_releases_48dp.xml index 20d04862c..256f5ff8f 100644 --- a/app/src/main/res/drawable/sc_new_releases_48dp.xml +++ b/app/src/main/res/drawable/sc_new_releases_48dp.xml @@ -1,21 +1,21 @@ - - - - - - - - + tools:keep="@drawable/sc_new_releases_48dp"> + + + + + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/main/res/mipmap/ic_launcher.xml diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap/ic_launcher_round.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to app/src/main/res/mipmap/ic_launcher_round.xml diff --git a/buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt b/buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt index 17e124f39..afea120de 100644 --- a/buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt +++ b/buildSrc/src/main/kotlin/mihon/buildlogic/AndroidConfig.kt @@ -5,7 +5,7 @@ import org.gradle.api.JavaVersion as GradleJavaVersion object AndroidConfig { const val COMPILE_SDK = 34 const val TARGET_SDK = 34 - const val MIN_SDK = 23 + const val MIN_SDK = 26 const val NDK = "26.1.10909125" val JavaVersion = GradleJavaVersion.VERSION_17 } diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt index 93ce0337d..6547a46e0 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt @@ -1,7 +1,5 @@ package eu.kanade.tachiyomi.util.system -import android.annotation.TargetApi -import android.os.Build import android.webkit.WebResourceError import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse @@ -28,7 +26,6 @@ abstract class WebViewClientCompat : WebViewClient() { ) { } - @TargetApi(Build.VERSION_CODES.N) final override fun shouldOverrideUrlLoading( view: WebView, request: WebResourceRequest, diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt index a61384362..b059e15d4 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/system/WebViewUtil.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.util.system import android.annotation.SuppressLint import android.content.Context import android.content.pm.PackageManager -import android.os.Build import android.webkit.CookieManager import android.webkit.WebSettings import android.webkit.WebView @@ -35,15 +34,11 @@ object WebViewUtil { } fun getVersion(context: Context): String { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val webView = WebView.getCurrentWebViewPackage() ?: return "how did you get here?" - val pm = context.packageManager - val label = webView.applicationInfo.loadLabel(pm) - val version = webView.versionName - "$label $version" - } else { - "Unknown" - } + val webView = WebView.getCurrentWebViewPackage() ?: return "how did you get here?" + val pm = context.packageManager + val label = webView.applicationInfo.loadLabel(pm) + val version = webView.versionName + return "$label $version" } fun supportsWebView(context: Context): Boolean {