Bump dependencies + linting
This commit is contained in:
parent
5b474e96b7
commit
cd3cb72b65
33 changed files with 195 additions and 104 deletions
|
@ -13,11 +13,13 @@ class SetMigrateSorting(
|
|||
|
||||
enum class Mode {
|
||||
ALPHABETICAL,
|
||||
TOTAL;
|
||||
TOTAL,
|
||||
;
|
||||
}
|
||||
|
||||
enum class Direction {
|
||||
ASCENDING,
|
||||
DESCENDING;
|
||||
DESCENDING,
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -338,7 +338,9 @@ private fun InfoText(
|
|||
|
||||
val clickableModifier = if (onClick != null) {
|
||||
Modifier.clickable(interactionSource, indication = null) { onClick() }
|
||||
} else Modifier
|
||||
} else {
|
||||
Modifier
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = modifier.then(clickableModifier),
|
||||
|
|
|
@ -18,7 +18,8 @@ import eu.kanade.tachiyomi.R
|
|||
|
||||
enum class MangaCover(val ratio: Float) {
|
||||
Square(1f / 1f),
|
||||
Book(2f / 3f);
|
||||
Book(2f / 3f),
|
||||
;
|
||||
|
||||
@Composable
|
||||
operator fun invoke(
|
||||
|
@ -42,7 +43,9 @@ enum class MangaCover(val ratio: Float) {
|
|||
role = Role.Button,
|
||||
onClick = onClick,
|
||||
)
|
||||
} else Modifier,
|
||||
} else {
|
||||
Modifier
|
||||
},
|
||||
),
|
||||
contentScale = ContentScale.Crop,
|
||||
)
|
||||
|
|
|
@ -220,12 +220,18 @@ private fun ScaffoldLayout(
|
|||
.asPaddingValues(this@SubcomposeLayout)
|
||||
val innerPadding = PaddingValues(
|
||||
top =
|
||||
if (topBarHeight == 0) insets.calculateTopPadding()
|
||||
else topBarHeight.toDp(),
|
||||
if (topBarHeight == 0) {
|
||||
insets.calculateTopPadding()
|
||||
} else {
|
||||
topBarHeight.toDp()
|
||||
},
|
||||
bottom =
|
||||
(
|
||||
if (bottomBarHeight == 0) insets.calculateBottomPadding()
|
||||
else bottomBarHeight.toDp()
|
||||
if (bottomBarHeight == 0) {
|
||||
insets.calculateBottomPadding()
|
||||
} else {
|
||||
bottomBarHeight.toDp()
|
||||
}
|
||||
) + fabHeight.toDp(),
|
||||
start = insets.calculateLeftPadding((this@SubcomposeLayout).layoutDirection),
|
||||
end = insets.calculateRightPadding((this@SubcomposeLayout).layoutDirection),
|
||||
|
|
|
@ -145,13 +145,17 @@ fun VerticalFastScroller(
|
|||
)
|
||||
},
|
||||
)
|
||||
} else Modifier,
|
||||
} else {
|
||||
Modifier
|
||||
},
|
||||
)
|
||||
.then(
|
||||
// Exclude thumb from gesture area only when needed
|
||||
if (isThumbVisible && !isThumbDragged && !listState.isScrollInProgress) {
|
||||
Modifier.systemGestureExclusion()
|
||||
} else Modifier,
|
||||
} else {
|
||||
Modifier
|
||||
},
|
||||
)
|
||||
.height(ThumbLength)
|
||||
.padding(horizontal = 8.dp)
|
||||
|
@ -321,13 +325,17 @@ fun VerticalGridFastScroller(
|
|||
)
|
||||
},
|
||||
)
|
||||
} else Modifier,
|
||||
} else {
|
||||
Modifier
|
||||
},
|
||||
)
|
||||
.then(
|
||||
// Exclude thumb from gesture area only when needed
|
||||
if (isThumbVisible && !isThumbDragged && !state.isScrollInProgress) {
|
||||
Modifier.systemGestureExclusion()
|
||||
} else Modifier,
|
||||
} else {
|
||||
Modifier
|
||||
},
|
||||
)
|
||||
.height(ThumbLength)
|
||||
.padding(horizontal = 8.dp)
|
||||
|
|
|
@ -673,7 +673,9 @@ private fun LazyListScope.sharedChapterItems(
|
|||
},
|
||||
onDownloadClick = if (onDownloadChapter != null) {
|
||||
{ onDownloadChapter(listOf(chapterItem), it) }
|
||||
} else null,
|
||||
} else {
|
||||
null
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ enum class DownloadAction {
|
|||
NEXT_10_CHAPTERS,
|
||||
CUSTOM,
|
||||
UNREAD_CHAPTERS,
|
||||
ALL_CHAPTERS
|
||||
ALL_CHAPTERS,
|
||||
}
|
||||
|
||||
enum class EditCoverAction {
|
||||
|
|
|
@ -316,10 +316,12 @@ private fun MangaAndSourceTitlesLarge(
|
|||
.padding(top = 2.dp)
|
||||
.clickableNoIndication(
|
||||
onLongClick = {
|
||||
if (!author.isNullOrBlank()) context.copyToClipboard(
|
||||
if (!author.isNullOrBlank()) {
|
||||
context.copyToClipboard(
|
||||
author,
|
||||
author,
|
||||
)
|
||||
}
|
||||
},
|
||||
onClick = { if (!author.isNullOrBlank()) doSearch(author, true) },
|
||||
),
|
||||
|
@ -428,10 +430,12 @@ private fun MangaAndSourceTitlesSmall(
|
|||
style = MaterialTheme.typography.titleLarge,
|
||||
modifier = Modifier.clickableNoIndication(
|
||||
onLongClick = {
|
||||
if (title.isNotBlank()) context.copyToClipboard(
|
||||
if (title.isNotBlank()) {
|
||||
context.copyToClipboard(
|
||||
title,
|
||||
title,
|
||||
)
|
||||
}
|
||||
},
|
||||
onClick = { if (title.isNotBlank()) doSearch(title, true) },
|
||||
),
|
||||
|
@ -446,10 +450,12 @@ private fun MangaAndSourceTitlesSmall(
|
|||
.padding(top = 2.dp)
|
||||
.clickableNoIndication(
|
||||
onLongClick = {
|
||||
if (!author.isNullOrBlank()) context.copyToClipboard(
|
||||
if (!author.isNullOrBlank()) {
|
||||
context.copyToClipboard(
|
||||
author,
|
||||
author,
|
||||
)
|
||||
}
|
||||
},
|
||||
onClick = { if (!author.isNullOrBlank()) doSearch(author, true) },
|
||||
),
|
||||
|
|
|
@ -103,12 +103,16 @@ private fun Modifier.drawScrollbar(
|
|||
val estimatedItemSize = if (items.isEmpty()) 0f else itemsSize.toFloat() / items.size
|
||||
val totalSize = estimatedItemSize * layoutInfo.totalItemsCount
|
||||
val thumbSize = viewportSize / totalSize * viewportSize
|
||||
val startOffset = if (items.isEmpty()) 0f else items
|
||||
val startOffset = if (items.isEmpty()) {
|
||||
0f
|
||||
} else {
|
||||
items
|
||||
.first()
|
||||
.run {
|
||||
val startPadding = if (reverseDirection) layoutInfo.afterContentPadding else layoutInfo.beforeContentPadding
|
||||
startPadding + ((estimatedItemSize * index - offset) / totalSize * viewportSize)
|
||||
}
|
||||
}
|
||||
val drawScrollbar = onDrawScrollbar(
|
||||
orientation, reverseDirection, atEnd, showScrollbar,
|
||||
thickness, color, alpha, thumbSize, startOffset, positionOffset,
|
||||
|
@ -202,7 +206,9 @@ private fun Modifier.drawScrollbar(
|
|||
val isLtr = LocalLayoutDirection.current == LayoutDirection.Ltr
|
||||
val reverseDirection = if (orientation == Orientation.Horizontal) {
|
||||
if (isLtr) reverseScrolling else !reverseScrolling
|
||||
} else reverseScrolling
|
||||
} else {
|
||||
reverseScrolling
|
||||
}
|
||||
val atEnd = if (orientation == Orientation.Vertical) isLtr else true
|
||||
|
||||
val context = LocalContext.current
|
||||
|
|
|
@ -111,8 +111,11 @@ object Migrations {
|
|||
// Migrate library filters to tri-state versions
|
||||
fun convertBooleanPrefToTriState(key: String): Int {
|
||||
val oldPrefValue = prefs.getBoolean(key, false)
|
||||
return if (oldPrefValue) ExtendedNavigationView.Item.TriStateGroup.State.INCLUDE.value
|
||||
else ExtendedNavigationView.Item.TriStateGroup.State.IGNORE.value
|
||||
return if (oldPrefValue) {
|
||||
ExtendedNavigationView.Item.TriStateGroup.State.INCLUDE.value
|
||||
} else {
|
||||
ExtendedNavigationView.Item.TriStateGroup.State.IGNORE.value
|
||||
}
|
||||
}
|
||||
prefs.edit {
|
||||
putInt(PreferenceKeys.filterDownloaded, convertBooleanPrefToTriState("pref_filter_downloaded_key"))
|
||||
|
|
|
@ -44,8 +44,11 @@ class BackupFileValidator(
|
|||
.filter { sourceManager.get(it.key) == null }
|
||||
.values.map {
|
||||
val id = it.toLongOrNull()
|
||||
if (id == null) it
|
||||
else sourceManager.getOrStub(id).toString()
|
||||
if (id == null) {
|
||||
it
|
||||
} else {
|
||||
sourceManager.getOrStub(id).toString()
|
||||
}
|
||||
}
|
||||
.distinct()
|
||||
.sorted()
|
||||
|
|
|
@ -11,7 +11,8 @@ data class BackupTracking(
|
|||
@ProtoNumber(1) var syncId: Int,
|
||||
// LibraryId is not null in 1.x
|
||||
@ProtoNumber(2) var libraryId: Long,
|
||||
@Deprecated("Use mediaId instead", level = DeprecationLevel.WARNING) @ProtoNumber(3)
|
||||
@Deprecated("Use mediaId instead", level = DeprecationLevel.WARNING)
|
||||
@ProtoNumber(3)
|
||||
var mediaIdInt: Int = 0,
|
||||
// trackingUrl is called mediaUrl in 1.x
|
||||
@ProtoNumber(4) var trackingUrl: String = "",
|
||||
|
|
|
@ -30,22 +30,29 @@ class BangumiInterceptor(val bangumi: Bangumi) : Interceptor {
|
|||
}
|
||||
}
|
||||
|
||||
val authRequest = if (originalRequest.method == "GET") originalRequest.newBuilder()
|
||||
val authRequest = if (originalRequest.method == "GET") {
|
||||
originalRequest.newBuilder()
|
||||
.header("User-Agent", "Tachiyomi")
|
||||
.url(
|
||||
originalRequest.url.newBuilder()
|
||||
.addQueryParameter("access_token", currAuth.access_token).build(),
|
||||
)
|
||||
.build() else originalRequest.newBuilder()
|
||||
.build()
|
||||
} else {
|
||||
originalRequest.newBuilder()
|
||||
.post(addToken(currAuth.access_token, originalRequest.body as FormBody))
|
||||
.header("User-Agent", "Tachiyomi")
|
||||
.build()
|
||||
}
|
||||
|
||||
return chain.proceed(authRequest)
|
||||
}
|
||||
|
||||
fun newAuth(oauth: OAuth?) {
|
||||
this.oauth = if (oauth == null) null else OAuth(
|
||||
this.oauth = if (oauth == null) {
|
||||
null
|
||||
} else {
|
||||
OAuth(
|
||||
oauth.access_token,
|
||||
oauth.token_type,
|
||||
System.currentTimeMillis() / 1000,
|
||||
|
@ -53,6 +60,7 @@ class BangumiInterceptor(val bangumi: Bangumi) : Interceptor {
|
|||
oauth.refresh_token,
|
||||
this.oauth?.user_id,
|
||||
)
|
||||
}
|
||||
|
||||
bangumi.saveToken(oauth)
|
||||
}
|
||||
|
|
|
@ -41,8 +41,11 @@ class KomgaApi(private val client: OkHttpClient) {
|
|||
val progress = client
|
||||
.newCall(GET("${url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi"))
|
||||
.await().let {
|
||||
if (url.contains("/api/v1/series/")) it.parseAs<ReadProgressV2Dto>()
|
||||
else it.parseAs<ReadProgressDto>().toV2()
|
||||
if (url.contains("/api/v1/series/")) {
|
||||
it.parseAs<ReadProgressV2Dto>()
|
||||
} else {
|
||||
it.parseAs<ReadProgressDto>().toV2()
|
||||
}
|
||||
}
|
||||
|
||||
track.apply {
|
||||
|
|
|
@ -29,7 +29,10 @@ internal class ExtensionGithubApi {
|
|||
|
||||
suspend fun findExtensions(): List<Extension.Available> {
|
||||
return withIOContext {
|
||||
val githubResponse = if (requiresFallbackSource) null else try {
|
||||
val githubResponse = if (requiresFallbackSource) {
|
||||
null
|
||||
} else {
|
||||
try {
|
||||
networkService.client
|
||||
.newCall(GET("${REPO_URL_PREFIX}index.min.json"))
|
||||
.await()
|
||||
|
@ -38,6 +41,7 @@ internal class ExtensionGithubApi {
|
|||
requiresFallbackSource = true
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
val response = githubResponse ?: run {
|
||||
networkService.client
|
||||
|
|
|
@ -50,7 +50,8 @@ internal class ExtensionInstallReceiver(private val listener: Listener) :
|
|||
|
||||
when (intent.action) {
|
||||
Intent.ACTION_PACKAGE_ADDED -> {
|
||||
if (!isReplacing(intent)) launchNow {
|
||||
if (!isReplacing(intent)) {
|
||||
launchNow {
|
||||
when (val result = getExtensionFromIntent(context, intent)) {
|
||||
is LoadResult.Success -> listener.onExtensionInstalled(result.extension)
|
||||
is LoadResult.Untrusted -> listener.onExtensionUntrusted(result.extension)
|
||||
|
@ -58,6 +59,7 @@ internal class ExtensionInstallReceiver(private val listener: Listener) :
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Intent.ACTION_PACKAGE_REPLACED -> {
|
||||
launchNow {
|
||||
when (val result = getExtensionFromIntent(context, intent)) {
|
||||
|
|
|
@ -238,7 +238,9 @@ class UpdatesGridGlanceWidget : GlanceAppWidget() {
|
|||
.let {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
|
||||
it.transformations(RoundedCornersTransformation(roundPx))
|
||||
} else it // Handled by system
|
||||
} else {
|
||||
it // Handled by system
|
||||
}
|
||||
}
|
||||
.build()
|
||||
Pair(updatesView.mangaId, app.imageLoader.executeBlocking(request).drawable?.toBitmap())
|
||||
|
|
|
@ -74,12 +74,14 @@ internal class RateLimitInterceptor(
|
|||
throw IOException("Canceled")
|
||||
} else if (hasRemovedExpired) {
|
||||
break
|
||||
} else try { // wait for the first entry to expire, or notified by cached response
|
||||
} else {
|
||||
try { // wait for the first entry to expire, or notified by cached response
|
||||
(requestQueue as Object).wait(requestQueue.first - periodStart)
|
||||
} catch (_: InterruptedException) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add request to queue
|
||||
timestamp = SystemClock.elapsedRealtime()
|
||||
|
|
|
@ -50,7 +50,7 @@ private var lockState = LockState.INACTIVE
|
|||
private enum class LockState {
|
||||
INACTIVE,
|
||||
PENDING,
|
||||
ACTIVE
|
||||
ACTIVE,
|
||||
}
|
||||
|
||||
class SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObserver {
|
||||
|
|
|
@ -167,8 +167,11 @@ class SearchPresenter(
|
|||
val service = enhancedServices
|
||||
.firstOrNull { it.isTrackFrom(updatedTrack, prevManga, prevSource) }
|
||||
|
||||
if (service != null) service.migrateTrack(updatedTrack, manga, source)
|
||||
else updatedTrack
|
||||
if (service != null) {
|
||||
service.migrateTrack(updatedTrack, manga, source)
|
||||
} else {
|
||||
updatedTrack
|
||||
}
|
||||
}
|
||||
insertTrack.awaitAll(tracks)
|
||||
}
|
||||
|
|
|
@ -190,32 +190,44 @@ class LibraryPresenter(
|
|||
else -> downloadManager.getDownloadCount(item.manga.toDomainManga()!!) > 0
|
||||
}
|
||||
|
||||
return@downloaded if (downloadedOnly || filterDownloaded == State.INCLUDE.value) isDownloaded
|
||||
else !isDownloaded
|
||||
return@downloaded if (downloadedOnly || filterDownloaded == State.INCLUDE.value) {
|
||||
isDownloaded
|
||||
} else {
|
||||
!isDownloaded
|
||||
}
|
||||
}
|
||||
|
||||
val filterFnUnread: (LibraryItem) -> Boolean = unread@{ item ->
|
||||
if (filterUnread == State.IGNORE.value) return@unread true
|
||||
val isUnread = item.manga.unreadCount != 0
|
||||
|
||||
return@unread if (filterUnread == State.INCLUDE.value) isUnread
|
||||
else !isUnread
|
||||
return@unread if (filterUnread == State.INCLUDE.value) {
|
||||
isUnread
|
||||
} else {
|
||||
!isUnread
|
||||
}
|
||||
}
|
||||
|
||||
val filterFnStarted: (LibraryItem) -> Boolean = started@{ item ->
|
||||
if (filterStarted == State.IGNORE.value) return@started true
|
||||
val hasStarted = item.manga.hasStarted
|
||||
|
||||
return@started if (filterStarted == State.INCLUDE.value) hasStarted
|
||||
else !hasStarted
|
||||
return@started if (filterStarted == State.INCLUDE.value) {
|
||||
hasStarted
|
||||
} else {
|
||||
!hasStarted
|
||||
}
|
||||
}
|
||||
|
||||
val filterFnCompleted: (LibraryItem) -> Boolean = completed@{ item ->
|
||||
if (filterCompleted == State.IGNORE.value) return@completed true
|
||||
val isCompleted = item.manga.status == SManga.COMPLETED
|
||||
|
||||
return@completed if (filterCompleted == State.INCLUDE.value) isCompleted
|
||||
else !isCompleted
|
||||
return@completed if (filterCompleted == State.INCLUDE.value) {
|
||||
isCompleted
|
||||
} else {
|
||||
!isCompleted
|
||||
}
|
||||
}
|
||||
|
||||
val filterFnTracking: (LibraryItem) -> Boolean = tracking@{ item ->
|
||||
|
|
|
@ -305,7 +305,8 @@ class MangaController : FullComposeController<MangaPresenter> {
|
|||
previousController.search(query)
|
||||
}
|
||||
is UpdatesController,
|
||||
is HistoryController, -> {
|
||||
is HistoryController,
|
||||
-> {
|
||||
// Manually navigate to LibraryController
|
||||
router.handleBack()
|
||||
(router.activity as MainActivity).setSelectedNavItem(R.id.nav_library)
|
||||
|
|
|
@ -151,7 +151,9 @@ class HttpPageLoader(
|
|||
.mapNotNull {
|
||||
if (it.status == Page.QUEUE) {
|
||||
PriorityPage(it, 0).apply { queue.offer(this) }
|
||||
} else null
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,8 @@ enum class OrientationType(val prefValue: Int, val flag: Int, @StringRes val str
|
|||
REVERSE_PORTRAIT(6, ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT, R.string.rotation_reverse_portrait, R.drawable.ic_stay_current_portrait_24dp, 0x00000030),
|
||||
LANDSCAPE(3, ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE, R.string.rotation_landscape, R.drawable.ic_stay_current_landscape_24dp, 0x00000018),
|
||||
LOCKED_PORTRAIT(4, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, R.string.rotation_force_portrait, R.drawable.ic_screen_lock_portrait_24dp, 0x00000020),
|
||||
LOCKED_LANDSCAPE(5, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, R.string.rotation_force_landscape, R.drawable.ic_screen_lock_landscape_24dp, 0x00000028);
|
||||
LOCKED_LANDSCAPE(5, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, R.string.rotation_force_landscape, R.drawable.ic_screen_lock_landscape_24dp, 0x00000028),
|
||||
;
|
||||
|
||||
companion object {
|
||||
const val MASK = 0x00000038
|
||||
|
|
|
@ -171,7 +171,8 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() {
|
|||
|
||||
val placeAtIndex = when (viewer) {
|
||||
is L2RPagerViewer,
|
||||
is VerticalPagerViewer, -> currentIndex + 1
|
||||
is VerticalPagerViewer,
|
||||
-> currentIndex + 1
|
||||
else -> currentIndex
|
||||
}
|
||||
|
||||
|
|
|
@ -33,12 +33,14 @@ private suspend fun <T> Observable<T>.awaitOne(): T = suspendCancellableCoroutin
|
|||
}
|
||||
|
||||
override fun onCompleted() {
|
||||
if (cont.isActive) cont.resumeWithException(
|
||||
if (cont.isActive) {
|
||||
cont.resumeWithException(
|
||||
IllegalStateException(
|
||||
"Should have invoked onNext",
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
/*
|
||||
|
|
|
@ -117,7 +117,7 @@ open class ExtendedNavigationView @JvmOverloads constructor(
|
|||
enum class State(val value: Int) {
|
||||
IGNORE(0),
|
||||
INCLUDE(1),
|
||||
EXCLUDE(2)
|
||||
EXCLUDE(2),
|
||||
}
|
||||
|
||||
override fun getStateDrawable(context: Context): Drawable? {
|
||||
|
|
|
@ -46,7 +46,9 @@ class MaterialFastScroll @JvmOverloads constructor(context: Context, attrs: Attr
|
|||
} else {
|
||||
event.x > handle.width + ViewCompat.getPaddingStart(handle)
|
||||
}
|
||||
) return false
|
||||
) {
|
||||
return false
|
||||
}
|
||||
// end
|
||||
|
||||
if (ignoreTouchesOutsideHandle &&
|
||||
|
|
|
@ -39,7 +39,9 @@ class TachiyomiChangeHandlerFrameLayout(
|
|||
behavior.apply {
|
||||
shouldHeaderOverlap = overlapHeader
|
||||
}
|
||||
} else null
|
||||
} else {
|
||||
null
|
||||
}
|
||||
if (!enable) {
|
||||
// The behavior doesn't reset translationY when shouldHeaderOverlap is false
|
||||
translationY = 0F
|
||||
|
|
|
@ -48,7 +48,9 @@ class TachiyomiSearchView @JvmOverloads constructor(
|
|||
clearFocus()
|
||||
listener?.onQueryTextSubmit(query.toString())
|
||||
true
|
||||
} else false
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ lifecycle_version = "2.5.1"
|
|||
|
||||
[libraries]
|
||||
annotation = "androidx.annotation:annotation:1.4.0"
|
||||
appcompat = "androidx.appcompat:appcompat:1.6.0-beta01"
|
||||
appcompat = "androidx.appcompat:appcompat:1.6.0-rc01"
|
||||
biometricktx = "androidx.biometric:biometric-ktx:1.2.0-alpha04"
|
||||
constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.4"
|
||||
coordinatorlayout = "androidx.coordinatorlayout:coordinatorlayout:1.2.0"
|
||||
corektx = "androidx.core:core-ktx:1.8.0"
|
||||
corektx = "androidx.core:core-ktx:1.9.0"
|
||||
splashscreen = "androidx.core:core-splashscreen:1.0.0-alpha02"
|
||||
recyclerview = "androidx.recyclerview:recyclerview:1.3.0-beta02"
|
||||
viewpager = "androidx.viewpager:viewpager:1.1.0-alpha01"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[versions]
|
||||
compiler = "1.3.0-rc02"
|
||||
compiler = "1.3.1"
|
||||
compose = "1.2.1"
|
||||
accompanist = "0.25.1"
|
||||
material3 = "1.0.0-beta01"
|
||||
|
|
|
@ -103,5 +103,5 @@ conductor = ["conductor-core", "conductor-support-preference"]
|
|||
shizuku = ["shizuku-api", "shizuku-provider"]
|
||||
|
||||
[plugins]
|
||||
kotlinter = { id = "org.jmailen.kotlinter", version = "3.11.1" }
|
||||
kotlinter = { id = "org.jmailen.kotlinter", version = "3.12.0" }
|
||||
versionsx = { id = "com.github.ben-manes.versions", version = "0.42.0" }
|
Reference in a new issue