diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt b/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt index 49ddc16fb..d26b3a0e2 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.network import android.annotation.SuppressLint import android.content.Context -import android.os.Build import android.os.Handler import android.os.Looper import android.webkit.WebSettings @@ -114,10 +113,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor { latch.countDown() } - // HTTP error codes are only received since M - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && - url == origRequestUrl && !challengeFound - ) { + if (url == origRequestUrl && !challengeFound) { // The first request didn't return the challenge, abort. latch.countDown() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ConductorExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ConductorExtensions.kt index d0dc796c4..d678a124c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ConductorExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ConductorExtensions.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.base.controller import android.content.Intent import android.content.pm.PackageManager.PERMISSION_GRANTED -import android.os.Build import androidx.core.content.ContextCompat import androidx.core.net.toUri import com.bluelinelabs.conductor.Controller @@ -22,11 +21,9 @@ fun Router.popControllerWithTag(tag: String): Boolean { fun Controller.requestPermissionsSafe(permissions: Array, requestCode: Int) { val activity = activity ?: return - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - permissions.forEach { permission -> - if (ContextCompat.checkSelfPermission(activity, permission) != PERMISSION_GRANTED) { - requestPermissions(arrayOf(permission), requestCode) - } + permissions.forEach { permission -> + if (ContextCompat.checkSelfPermission(activity, permission) != PERMISSION_GRANTED) { + requestPermissions(arrayOf(permission), requestCode) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index 6517beebb..25d2e3952 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -407,23 +407,17 @@ class MangaController : fab.setOnClickListener { val item = presenter.getNextUnreadChapter() if (item != null) { - // Create animation listener - val revealAnimationListener: Animator.AnimatorListener = object : AnimatorListenerAdapter() { - override fun onAnimationStart(animation: Animator?) { - openChapter(item.chapter, true) - } - } - // Get coordinates and start animation actionFab?.getCoordinates()?.let { coordinates -> - if (!binding.revealView.showRevealEffect( - coordinates.x, - coordinates.y, - revealAnimationListener - ) - ) { - openChapter(item.chapter) - } + binding.revealView.showRevealEffect( + coordinates.x, + coordinates.y, + object : AnimatorListenerAdapter() { + override fun onAnimationStart(animation: Animator?) { + openChapter(item.chapter, true) + } + } + ) } } else { view?.context?.toast(R.string.no_next_chapter) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 7d5a238ed..e20a07107 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -1,7 +1,5 @@ package eu.kanade.tachiyomi.ui.manga.info -import android.graphics.PorterDuff -import android.os.Build import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -23,7 +21,6 @@ import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.all.MergedSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.system.copyToClipboard -import eu.kanade.tachiyomi.util.system.getResourceColor import exh.merged.sql.models.MergedMangaReference import exh.source.MERGED_SOURCE_ID import exh.util.SourceTagsUtil @@ -299,14 +296,6 @@ class MangaInfoHeaderAdapter( .into(it) } } - - if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) { - @Suppress("DEPRECATION") - binding.backdropOverlay.background.setColorFilter( - view.context.getResourceColor(android.R.attr.colorBackground), - PorterDuff.Mode.SRC_ATOP - ) - } } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt index 32ce6cca6..9e28b818e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoItemAdapter.kt @@ -1,7 +1,5 @@ package eu.kanade.tachiyomi.ui.manga.info -import android.graphics.PorterDuff -import android.os.Build import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,7 +17,6 @@ import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.online.NamespaceSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.system.copyToClipboard -import eu.kanade.tachiyomi.util.system.getResourceColor import exh.metadata.metadata.base.RaisedSearchMetadata import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.source.getMainSource @@ -178,15 +175,6 @@ class MangaInfoItemAdapter( initialLoad = false } } - - // backgroundTint attribute doesn't work properly on Android 5 - if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) { - @Suppress("DEPRECATION") - binding.mangaInfoToggleMoreScrim.background.setColorFilter( - view.context.getResourceColor(android.R.attr.colorBackground), - PorterDuff.Mode.SRC_ATOP - ) - } } private fun showMangaInfo(visible: Boolean) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt index c9ad1bb01..627aede4b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt @@ -163,11 +163,6 @@ class AboutController : SettingsController() { private fun checkVersion() { if (activity == null) return - if (Build.VERSION.SDK_INT under Build.VERSION_CODES.M) { - activity?.toast(R.string.update_check_eol) - return - } - activity?.toast(R.string.update_check_look_for_updates) launchNow { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index 2c87ff4a8..241a04f5f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.app.Dialog import android.content.ActivityNotFoundException import android.content.Intent -import android.os.Build import android.os.Bundle import android.provider.Settings import android.widget.Toast @@ -77,27 +76,25 @@ class SettingsAdvancedController : SettingsController() { } } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - preference { - key = "pref_disable_battery_optimization" - titleRes = R.string.pref_disable_battery_optimization - summaryRes = R.string.pref_disable_battery_optimization_summary + preference { + key = "pref_disable_battery_optimization" + titleRes = R.string.pref_disable_battery_optimization + summaryRes = R.string.pref_disable_battery_optimization_summary - onClick { - val packageName: String = context.packageName - if (!context.powerManager.isIgnoringBatteryOptimizations(packageName)) { - try { - val intent = Intent().apply { - action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS - data = "package:$packageName".toUri() - } - startActivity(intent) - } catch (e: ActivityNotFoundException) { - context.toast(R.string.battery_optimization_setting_activity_not_found) + onClick { + val packageName: String = context.packageName + if (!context.powerManager.isIgnoringBatteryOptimizations(packageName)) { + try { + val intent = Intent().apply { + action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS + data = "package:$packageName".toUri() } - } else { - context.toast(R.string.battery_optimization_disabled) + startActivity(intent) + } catch (e: ActivityNotFoundException) { + context.toast(R.string.battery_optimization_setting_activity_not_found) } + } else { + context.toast(R.string.battery_optimization_disabled) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/BiometricUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/BiometricUtil.kt index c7e397bef..64f734e9e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/BiometricUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/BiometricUtil.kt @@ -33,7 +33,7 @@ object BiometricUtil { * Returns whether the device is secured with a PIN, pattern or password. */ private fun isLegacySecured(context: Context): Boolean { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { if (context.keyguardManager.isDeviceSecure) { return true } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt index 8d2eea7cf..5ccbb4f7e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/WebViewClientCompat.kt @@ -54,7 +54,6 @@ abstract class WebViewClientCompat : WebViewClient() { return shouldInterceptRequestCompat(view, url) } - @TargetApi(Build.VERSION_CODES.M) final override fun onReceivedError( view: WebView, request: WebResourceRequest, @@ -78,7 +77,6 @@ abstract class WebViewClientCompat : WebViewClient() { onReceivedErrorCompat(view, errorCode, description, failingUrl, failingUrl == view.url) } - @TargetApi(Build.VERSION_CODES.M) final override fun onReceivedHttpError( view: WebView, request: WebResourceRequest, diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/ElevationAppBarLayout.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/ElevationAppBarLayout.kt index 66057589f..ad0e52e03 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/ElevationAppBarLayout.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/ElevationAppBarLayout.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.widget import android.animation.ObjectAnimator import android.animation.StateListAnimator import android.content.Context -import android.os.Build import android.util.AttributeSet import com.google.android.material.R import com.google.android.material.appbar.AppBarLayout @@ -20,12 +19,7 @@ class ElevationAppBarLayout @JvmOverloads constructor( } fun enableElevation(liftOnScroll: Boolean) { - if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) { - // Delay to avoid crash - post { setElevation(liftOnScroll) } - } else { - setElevation(liftOnScroll) - } + setElevation(liftOnScroll) } private fun setElevation(liftOnScroll: Boolean) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/RevealAnimationView.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/RevealAnimationView.kt index 8201d3b4a..6bd1546f1 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/RevealAnimationView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/RevealAnimationView.kt @@ -49,10 +49,8 @@ class RevealAnimationView @JvmOverloads constructor(context: Context, attrs: Att * @param centerX x starting point * @param centerY y starting point * @param listener animation listener - * - * @return sdk version lower then 21 */ - fun showRevealEffect(centerX: Int, centerY: Int, listener: Animator.AnimatorListener): Boolean { + fun showRevealEffect(centerX: Int, centerY: Int, listener: Animator.AnimatorListener) { this.isVisible = true val height = this.height @@ -71,6 +69,5 @@ class RevealAnimationView @JvmOverloads constructor(context: Context, attrs: Att anim.addListener(listener) anim.start() - return true } } diff --git a/app/src/main/java/exh/EXHMigrations.kt b/app/src/main/java/exh/EXHMigrations.kt index ff557c9bf..31f1fb6d5 100644 --- a/app/src/main/java/exh/EXHMigrations.kt +++ b/app/src/main/java/exh/EXHMigrations.kt @@ -1,7 +1,6 @@ package exh import android.content.Context -import android.os.Build import androidx.core.content.edit import androidx.preference.PreferenceManager import com.pushtorefresh.storio.sqlite.queries.Query @@ -35,7 +34,6 @@ import exh.source.MERGED_SOURCE_ID import exh.source.PERV_EDEN_EN_SOURCE_ID import exh.source.PERV_EDEN_IT_SOURCE_ID import exh.source.TSUMINO_SOURCE_ID -import exh.util.over import exh.util.under import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -68,7 +66,7 @@ object EXHMigrations { // Fresh install if (oldVersion == 0) { // Set up default background tasks - if (BuildConfig.INCLUDE_UPDATER && Build.VERSION.SDK_INT over Build.VERSION_CODES.LOLLIPOP_MR1) { + if (BuildConfig.INCLUDE_UPDATER) { UpdaterJob.setupTask(context) } ExtensionUpdateJob.setupTask(context) @@ -234,9 +232,9 @@ object EXHMigrations { // Reset rotation to Free after replacing Lock preferences.rotation().set(1) // Disable update check for Android 5.x users - if (BuildConfig.INCLUDE_UPDATER && Build.VERSION.SDK_INT under Build.VERSION_CODES.M) { - UpdaterJob.cancelTask(context) - } + //if (BuildConfig.INCLUDE_UPDATER && Build.VERSION.SDK_INT under Build.VERSION_CODES.M) { + // UpdaterJob.cancelTask(context) + //} } // if (oldVersion under 1) { } (1 is current release version) diff --git a/app/src/main/res/values-v23/themes.xml b/app/src/main/res/values-v23/themes.xml deleted file mode 100644 index 49f3e5ea6..000000000 --- a/app/src/main/res/values-v23/themes.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 93cee7ae8..ddbf8c2be 100755 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -91,7 +91,10 @@ -