mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-23 17:41:50 +01:00
Updating to min sdk 23
This commit is contained in:
parent
4734cc1668
commit
1d5163163d
@ -31,7 +31,7 @@ android {
|
||||
buildToolsVersion("29.0.2")
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion(21)
|
||||
minSdkVersion(23)
|
||||
targetSdkVersion(29)
|
||||
applicationId = "eu.kanade.tachiyomi"
|
||||
versionCode = 60
|
||||
|
@ -114,9 +114,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
|
||||
}
|
||||
|
||||
// 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()
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package eu.kanade.tachiyomi.ui.base.controller
|
||||
|
||||
import android.content.pm.PackageManager.PERMISSION_GRANTED
|
||||
import android.os.Build
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.bluelinelabs.conductor.Controller
|
||||
import com.bluelinelabs.conductor.Router
|
||||
@ -19,11 +18,9 @@ fun Router.popControllerWithTag(tag: String): Boolean {
|
||||
|
||||
fun Controller.requestPermissionsSafe(permissions: Array<String>, 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -39,9 +39,7 @@ class DisplayBottomSheet(private val controller: LibraryController) : BottomShee
|
||||
|
||||
sheetBehavior = BottomSheetBehavior.from(view.parent as ViewGroup)
|
||||
setEdgeToEdge(activity, bottom_sheet, view, false)
|
||||
val height = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
} else 0
|
||||
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
sheetBehavior.peekHeight = 220.dpToPx + height
|
||||
|
||||
sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
|
@ -83,10 +83,6 @@ class LibraryHeaderItem(private val categoryF: (Int) -> Category, val catId: Int
|
||||
updateButton.setOnClickListener { addCategoryToUpdate() }
|
||||
sortText.setOnClickListener { it.post { showCatSortOptions() } }
|
||||
checkboxImage.setOnClickListener { selectAll() }
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
|
||||
sortText.compoundDrawablesRelative[2]?.mutate()?.setTint(
|
||||
ContextCompat.getColor(contentView.context, R.color.gray_button))
|
||||
}
|
||||
updateButton.drawable.mutate()
|
||||
}
|
||||
|
||||
|
@ -390,13 +390,9 @@ class LibraryListController(bundle: Bundle? = null) : LibraryController(bundle),
|
||||
if (headerPosition > -1) {
|
||||
val appbar = activity?.appbar
|
||||
recycler.suppressLayout(true)
|
||||
val appbarOffset = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (appbar?.y ?: 0f > -20) 0 else (appbar?.y?.plus(
|
||||
val appbarOffset = if (appbar?.y ?: 0f > -20) 0 else (appbar?.y?.plus(
|
||||
view?.rootWindowInsets?.systemWindowInsetTop ?: 0
|
||||
) ?: 0f).roundToInt() + 30.dpToPx
|
||||
} else {
|
||||
0
|
||||
}
|
||||
(recycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
|
||||
headerPosition, (if (headerPosition == 0) 0 else (-28).dpToPx) + appbarOffset
|
||||
)
|
||||
|
@ -223,7 +223,7 @@ open class MainActivity : BaseActivity(), DownloadServiceListener {
|
||||
// if device doesn't support light nav bar
|
||||
window.navigationBarColor = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||
// basically if in landscape on a phone
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (v.rootWindowInsets.systemWindowInsetLeft > 0 || v.rootWindowInsets.systemWindowInsetRight > 0))
|
||||
if (v.rootWindowInsets.systemWindowInsetLeft > 0 || v.rootWindowInsets.systemWindowInsetRight > 0))
|
||||
// For lollipop, draw opaque nav bar
|
||||
Color.BLACK
|
||||
else Color.argb(179, 0, 0, 0)
|
||||
@ -283,7 +283,7 @@ open class MainActivity : BaseActivity(), DownloadServiceListener {
|
||||
View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
)
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && currentNightMode == Configuration.UI_MODE_NIGHT_NO) content.systemUiVisibility =
|
||||
if (currentNightMode == Configuration.UI_MODE_NIGHT_NO) content.systemUiVisibility =
|
||||
content.systemUiVisibility.or(
|
||||
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||
)
|
||||
@ -364,13 +364,12 @@ open class MainActivity : BaseActivity(), DownloadServiceListener {
|
||||
}
|
||||
|
||||
override fun startSupportActionMode(callback: androidx.appcompat.view.ActionMode.Callback): androidx.appcompat.view.ActionMode? {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) window?.statusBarColor =
|
||||
getResourceColor(R.attr.colorPrimary)
|
||||
window?.statusBarColor = getResourceColor(R.attr.colorPrimary)
|
||||
return super.startSupportActionMode(callback)
|
||||
}
|
||||
|
||||
override fun onSupportActionModeFinished(mode: androidx.appcompat.view.ActionMode) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) launchUI {
|
||||
launchUI {
|
||||
val scale = Settings.Global.getFloat(
|
||||
contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f
|
||||
)
|
||||
|
@ -31,9 +31,7 @@ class ChaptersSortBottomSheet(controller: MangaDetailsController) : BottomSheetD
|
||||
|
||||
sheetBehavior = BottomSheetBehavior.from(view.parent as ViewGroup)
|
||||
setEdgeToEdge(activity, bottom_sheet, view, false)
|
||||
val height = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
} else 0
|
||||
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
sheetBehavior.peekHeight = 380.dpToPx + height
|
||||
|
||||
sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
|
@ -48,9 +48,7 @@ class TrackingBottomSheet(private val controller: MangaDetailsController) : Bott
|
||||
|
||||
sheetBehavior = BottomSheetBehavior.from(view.parent as ViewGroup)
|
||||
setEdgeToEdge(activity, display_bottom_sheet, view, false)
|
||||
val height = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
} else 0
|
||||
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
sheetBehavior.peekHeight = 380.dpToPx + height
|
||||
|
||||
sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
|
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.migration.manga.design
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.res.Configuration
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import android.widget.CompoundButton
|
||||
@ -78,9 +77,7 @@ class MigrationBottomSheetDialog(
|
||||
|
||||
initPreferences()
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
window?.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
|
||||
}
|
||||
|
||||
fab.setOnClickListener {
|
||||
preferences.skipPreMigration().set(skip_step.isChecked)
|
||||
|
@ -57,9 +57,7 @@ class ReaderSettingsSheet(private val activity: ReaderActivity) :
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && preferences.readerTheme()
|
||||
.getOrDefault() == 0 && activity.window.decorView.rootWindowInsets.systemWindowInsetRight == 0 && activity.window.decorView.rootWindowInsets.systemWindowInsetLeft == 0
|
||||
) window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
val height = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
} else 0
|
||||
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
sheetBehavior.peekHeight = 200.dpToPx + height
|
||||
|
||||
sheetBehavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
|
@ -5,10 +5,10 @@ import eu.davidea.flexibleadapter.items.IFlexible
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import java.text.DateFormat
|
||||
import java.text.DecimalFormat
|
||||
import java.text.DecimalFormatSymbols
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
/**
|
||||
* Adapter of RecentlyReadHolder.
|
||||
@ -48,6 +48,6 @@ FlexibleAdapter<IFlexible<*>>(null, controller, true) {
|
||||
}
|
||||
|
||||
interface OnCoverClickListener {
|
||||
fun onCoverClick(position: Int, lastTouchY: Float)
|
||||
fun onCoverClick(position: Int)
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ class RecentlyReadController(bundle: Bundle? = null) : BaseController(bundle),
|
||||
RemoveHistoryDialog(this, manga, history).showDialog(router)
|
||||
}
|
||||
|
||||
override fun onCoverClick(position: Int, lastTouchY: Float) {
|
||||
override fun onCoverClick(position: Int) {
|
||||
val manga = (adapter?.getItem(position) as? RecentlyReadItem)?.mch?.manga ?: return
|
||||
router.pushController(MangaDetailsController(manga).withFadeTransaction())
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package eu.kanade.tachiyomi.ui.recently_read
|
||||
|
||||
import android.os.Build
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
@ -9,9 +8,9 @@ import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
||||
import eu.kanade.tachiyomi.data.glide.GlideApp
|
||||
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
||||
import eu.kanade.tachiyomi.util.lang.toTimestampString
|
||||
import kotlinx.android.synthetic.main.recently_read_item.*
|
||||
import java.util.Date
|
||||
import kotlin.math.max
|
||||
import kotlinx.android.synthetic.main.recently_read_item.*
|
||||
|
||||
/**
|
||||
* Holder that contains recent manga item
|
||||
@ -27,7 +26,6 @@ class RecentlyReadHolder(
|
||||
val adapter: RecentlyReadAdapter
|
||||
) : BaseFlexibleViewHolder(view, adapter) {
|
||||
|
||||
private var lastTouchUpY = 0f
|
||||
init {
|
||||
remove.setOnClickListener {
|
||||
adapter.removeClickListener.onRemoveClick(adapterPosition)
|
||||
@ -38,17 +36,7 @@ class RecentlyReadHolder(
|
||||
}
|
||||
|
||||
cover.setOnClickListener {
|
||||
adapter.coverClickListener.onCoverClick(adapterPosition, lastTouchUpY)
|
||||
}
|
||||
cover.setOnTouchListener { v, event ->
|
||||
when (event?.action) {
|
||||
MotionEvent.ACTION_UP -> {
|
||||
val topH = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
||||
v.rootWindowInsets.systemWindowInsetTop else 38
|
||||
lastTouchUpY = max(topH + 175f, event.rawY - topH - 154f)
|
||||
}
|
||||
}
|
||||
false
|
||||
adapter.coverClickListener.onCoverClick(adapterPosition)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -121,8 +121,7 @@ class WebViewActivity : BaseActivity() {
|
||||
if (Build.VERSION.SDK_INT >= 26 && currentNightMode == Configuration.UI_MODE_NIGHT_NO) {
|
||||
content.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && currentNightMode == Configuration
|
||||
.UI_MODE_NIGHT_NO && preferences.theme() >= 8)
|
||||
if (currentNightMode == Configuration.UI_MODE_NIGHT_NO && preferences.theme() >= 8)
|
||||
content.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||
insets
|
||||
}
|
||||
@ -215,7 +214,7 @@ class WebViewActivity : BaseActivity() {
|
||||
web_linear_layout.systemUiVisibility = web_linear_layout.systemUiVisibility.or(View
|
||||
.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR)
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && lightMode && preferences.theme() >= 8)
|
||||
if (lightMode && preferences.theme() >= 8)
|
||||
web_linear_layout.systemUiVisibility = web_linear_layout.systemUiVisibility
|
||||
.or(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)
|
||||
invalidateOptionsMenu()
|
||||
|
@ -35,11 +35,11 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.min
|
||||
import kotlinx.android.synthetic.main.main_activity.*
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.min
|
||||
|
||||
/**
|
||||
* Returns coordinates of view.
|
||||
@ -391,13 +391,13 @@ fun BottomSheetDialog.setEdgeToEdge(
|
||||
contentView: View,
|
||||
setTopMargin: Boolean
|
||||
) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) window?.setBackgroundDrawable(null)
|
||||
window?.setBackgroundDrawable(null)
|
||||
val currentNightMode =
|
||||
activity.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
|
||||
if (currentNightMode == Configuration.UI_MODE_NIGHT_NO) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
if (activity.window.decorView.rootWindowInsets.systemWindowInsetRight == 0 && activity.window.decorView.rootWindowInsets.systemWindowInsetLeft == 0) window?.decorView?.systemUiVisibility =
|
||||
View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && layout is ConstraintLayout) {
|
||||
} else if (layout is ConstraintLayout) {
|
||||
val nView = View(context)
|
||||
val height = activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
val params = ConstraintLayout.LayoutParams(
|
||||
@ -414,25 +414,19 @@ fun BottomSheetDialog.setEdgeToEdge(
|
||||
)
|
||||
layout.addView(nView)
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
// window?.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
|
||||
window?.findViewById<View>(com.google.android.material.R.id.container)?.fitsSystemWindows =
|
||||
false
|
||||
contentView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
if (setTopMargin) topMargin =
|
||||
activity.window.decorView.rootWindowInsets.systemWindowInsetTop
|
||||
leftMargin = activity.window.decorView.rootWindowInsets.systemWindowInsetLeft
|
||||
rightMargin = activity.window.decorView.rootWindowInsets.systemWindowInsetRight
|
||||
}
|
||||
window?.findViewById<View>(com.google.android.material.R.id.container)?.fitsSystemWindows =
|
||||
false
|
||||
contentView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
if (setTopMargin) topMargin =
|
||||
activity.window.decorView.rootWindowInsets.systemWindowInsetTop
|
||||
leftMargin = activity.window.decorView.rootWindowInsets.systemWindowInsetLeft
|
||||
rightMargin = activity.window.decorView.rootWindowInsets.systemWindowInsetRight
|
||||
}
|
||||
}
|
||||
|
||||
fun setBottomEdge(view: View, activity: Activity) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
val marginB = view.marginBottom
|
||||
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
bottomMargin =
|
||||
marginB + activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
}
|
||||
val marginB = view.marginBottom
|
||||
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
bottomMargin = marginB + activity.window.decorView.rootWindowInsets.systemWindowInsetBottom
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user