From 131166654a439208047cbcd979c2f292dc6d0448 Mon Sep 17 00:00:00 2001 From: Vladimir Raupov Date: Thu, 13 Jan 2022 23:55:43 +0300 Subject: [PATCH 1/3] codacy badge fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 506e492c..8ad2a841 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Kotlin Coroutines Version](https://img.shields.io/badge/Coroutines-v1.6.0-blue.svg)](https://kotlinlang.org/docs/reference/coroutines-overview.html) [![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a1c9a1b1d1ce4ca7a201ab93492bf6e0)](https://www.codacy.com/app/LDRAlighieri/Corbind?utm_source=github.com&utm_medium=referral&utm_content=LDRAlighieri/Corbind&utm_campaign=Badge_Grade) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a1c9a1b1d1ce4ca7a201ab93492bf6e0)](https://app.codacy.com/gh/LDRAlighieri/Corbind) [![API](https://img.shields.io/badge/API-14%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=14) [![Google Dev Library](https://img.shields.io/badge/Featured%20in%20devlibrary.withgoogle.com-Corbind-blue)](https://devlibrary.withgoogle.com/products/android/repos/LDRAlighieri-Corbind) From a9c401232ffadde47e6faf881704b3da91eb2096 Mon Sep 17 00:00:00 2001 From: Vladimir Raupov Date: Sat, 7 May 2022 22:18:10 +0300 Subject: [PATCH 2/3] Update dependencies, update SlidingPaneLayout listeners, update ChipGroup listener --- build.gradle | 6 +- corbind-material/README.md | 2 +- .../material/ChipGroupCheckedChanges.kt | 71 +++++++------------ .../SlidingPaneLayoutPaneOpens.kt | 24 +++---- .../SlidingPaneLayoutSlides.kt | 24 +++---- corbind/build.gradle | 2 - gradle.properties | 2 +- gradle/libs.versions.toml | 22 +++--- gradle/wrapper/gradle-wrapper.properties | 2 +- sample/build.gradle | 2 +- 10 files changed, 62 insertions(+), 95 deletions(-) diff --git a/build.gradle b/build.gradle index 6c16d039..393d8607 100644 --- a/build.gradle +++ b/build.gradle @@ -55,8 +55,8 @@ subprojects { allWarningsAsErrors = true // Enable experimental coroutines APIs - freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.ObsoleteCoroutinesApi" - freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" + freeCompilerArgs += "-opt-in=kotlinx.coroutines.ObsoleteCoroutinesApi" + freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } } @@ -109,8 +109,6 @@ subprojects { detekt { - toolVersion = libs.versions.detekt.get() - allRules = false buildUponDefaultConfig = true diff --git a/corbind-material/README.md b/corbind-material/README.md index 71ad28df..40c1f7ef 100644 --- a/corbind-material/README.md +++ b/corbind-material/README.md @@ -15,7 +15,7 @@ Component | Extension | Description **View**
(BottomSheetBehavior) | `slides` | Called when the bottom sheet is being dragged.   | `stateChanges` | Called when the bottom sheet changes its state. **Chip** | `closeIconClicks` | Called when the chip’s close icon is clicked. -**ChipGroup** | `checkedChanges` | Called when the checked chip has changed (only in single selection mode). +**ChipGroup** | `checkedChanges` | Called when the checked chips are changed. **MaterialButton** | `checkedChanges` | Called when the checked state of a MaterialButton has changed. **MaterialButtonToggleGroup** | `buttonCheckedChangeEvents` | Called when a `MaterialButton` in this group is checked or unchecked (only *not* in single selection mode).   | `buttonCheckedChanges` | Called when a `MaterialButton` in this group is checked (only in single selection mode). diff --git a/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt b/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt index 518c2e1a..853bfd25 100644 --- a/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt +++ b/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt @@ -16,7 +16,6 @@ package ru.ldralighieri.corbind.material -import android.view.View import androidx.annotation.CheckResult import com.google.android.material.chip.ChipGroup import kotlinx.coroutines.CoroutineScope @@ -35,8 +34,8 @@ import ru.ldralighieri.corbind.internal.corbindReceiveChannel /** * Perform an action on checked view ID changes in [ChipGroup]. * - * *Warning:* The created actor uses [ChipGroup.setOnCheckedChangeListener]. Only one actor can be - * used at a time. + * *Warning:* The created actor uses [ChipGroup.setOnCheckedStateChangeListener]. Only one actor can + * be used at a time. * * @param scope Root coroutine scope * @param capacity Capacity of the channel's buffer (no buffer by default) @@ -45,30 +44,29 @@ import ru.ldralighieri.corbind.internal.corbindReceiveChannel fun ChipGroup.checkedChanges( scope: CoroutineScope, capacity: Int = Channel.RENDEZVOUS, - action: suspend (Int) -> Unit + action: suspend (List) -> Unit ) { - val events = scope.actor(Dispatchers.Main.immediate, capacity) { + val events = scope.actor>(Dispatchers.Main.immediate, capacity) { for (checkedId in channel) action(checkedId) } - checkSelectionMode(this) - events.trySend(checkedChipId) - setOnCheckedChangeListener(listener(scope, events::trySend)) - events.invokeOnClose { setOnCheckedChangeListener(null) } + events.trySend(checkedChipIds) + setOnCheckedStateChangeListener(listener(scope, events::trySend)) + events.invokeOnClose { setOnCheckedStateChangeListener(null) } } /** * Perform an action on checked view ID changes in [ChipGroup], inside new [CoroutineScope]. * - * *Warning:* The created actor uses [ChipGroup.setOnCheckedChangeListener]. Only one actor can be - * used at a time. + * *Warning:* The created actor uses [ChipGroup.setOnCheckedStateChangeListener]. Only one actor can + * be used at a time. * * @param capacity Capacity of the channel's buffer (no buffer by default) * @param action An action to perform */ suspend fun ChipGroup.checkedChanges( capacity: Int = Channel.RENDEZVOUS, - action: suspend (Int) -> Unit + action: suspend (List) -> Unit ) = coroutineScope { checkedChanges(this, capacity, action) } @@ -76,12 +74,11 @@ suspend fun ChipGroup.checkedChanges( /** * Create a channel of the checked view ID changes in [ChipGroup]. * - * *Warning:* Only in single selection mode. - * *Warning:* The created channel uses [ChipGroup.setOnCheckedChangeListener]. Only one channel can - * be used at a time. + * *Warning:* The created channel uses [ChipGroup.setOnCheckedStateChangeListener]. Only one channel + * can be used at a time. * * *Note:* A value will be emitted immediately. - * *Note:* When the selection is cleared, checkedId is [View.NO_ID]. + * *Note:* When the selection is cleared, checkedIds will be an empty list. * * Example: * @@ -99,22 +96,20 @@ suspend fun ChipGroup.checkedChanges( fun ChipGroup.checkedChanges( scope: CoroutineScope, capacity: Int = Channel.RENDEZVOUS -): ReceiveChannel = corbindReceiveChannel(capacity) { - checkSelectionMode(this@checkedChanges) - trySend(checkedChipId) - setOnCheckedChangeListener(listener(scope, ::trySend)) - invokeOnClose { setOnCheckedChangeListener(null) } +): ReceiveChannel> = corbindReceiveChannel(capacity) { + trySend(checkedChipIds) + setOnCheckedStateChangeListener(listener(scope, ::trySend)) + invokeOnClose { setOnCheckedStateChangeListener(null) } } /** * Create a flow of the checked view ID changes in [ChipGroup]. * - * *Warning:* Only in single selection mode. - * *Warning:* The created flow uses [ChipGroup.setOnCheckedChangeListener]. Only one flow can be - * used at a time. + * *Warning:* The created flow uses [ChipGroup.setOnCheckedStateChangeListener]. Only one flow can + * be used at a time. * * *Note:* A value will be emitted immediately. - * *Note:* When the selection is cleared, checkedId is [View.NO_ID]. + * *Note:* When the selection is cleared, checkedIds will be an empty list. * * Examples: * @@ -134,27 +129,15 @@ fun ChipGroup.checkedChanges( * ``` */ @CheckResult -fun ChipGroup.checkedChanges(): InitialValueFlow = channelFlow { - checkSelectionMode(this@checkedChanges) - setOnCheckedChangeListener(listener(this, ::trySend)) - awaitClose { setOnCheckedChangeListener(null) } -}.asInitialValueFlow(checkedChipId) - -private fun checkSelectionMode(group: ChipGroup) { - check(group.isSingleSelection) { "The ChipGroup is not in single selection mode." } -} +fun ChipGroup.checkedChanges(): InitialValueFlow> = channelFlow { + setOnCheckedStateChangeListener(listener(this, ::trySend)) + awaitClose { setOnCheckedStateChangeListener(null) } +}.asInitialValueFlow(checkedChipIds) @CheckResult private fun listener( scope: CoroutineScope, - emitter: (Int) -> Unit -) = object : ChipGroup.OnCheckedChangeListener { - - private var lastChecked = View.NO_ID - override fun onCheckedChanged(group: ChipGroup, checkedId: Int) { - if (scope.isActive && checkedId != lastChecked) { - lastChecked = checkedId - emitter(checkedId) - } - } + emitter: (List) -> Unit +) = ChipGroup.OnCheckedStateChangeListener { _, checkedIds -> + if (scope.isActive) { emitter(checkedIds) } } diff --git a/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutPaneOpens.kt b/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutPaneOpens.kt index 5585ba0c..bea2d341 100644 --- a/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutPaneOpens.kt +++ b/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutPaneOpens.kt @@ -35,9 +35,6 @@ import ru.ldralighieri.corbind.internal.corbindReceiveChannel /** * Perform an action on the open state of the pane of [SlidingPaneLayout]. * - * *Warning:* The created actor uses [SlidingPaneLayout.setPanelSlideListener]. Only one actor can - * be used at a time. - * * @param scope Root coroutine scope * @param capacity Capacity of the channel's buffer (no buffer by default) * @param action An action to perform @@ -52,8 +49,9 @@ fun SlidingPaneLayout.panelOpens( } events.trySend(isOpen) - setPanelSlideListener(listener(scope, events::trySend)) - events.invokeOnClose { setPanelSlideListener(null) } + val listener = listener(scope, events::trySend) + addPanelSlideListener(listener) + events.invokeOnClose { removePanelSlideListener(listener) } } /** @@ -76,9 +74,6 @@ suspend fun SlidingPaneLayout.panelOpens( /** * Create a channel of the open state of the pane of [SlidingPaneLayout]. * - * *Warning:* The created channel uses [SlidingPaneLayout.setPanelSlideListener]. Only one channel - * can be used at a time. - * * *Note:* A value will be emitted immediately. * * Example: @@ -99,16 +94,14 @@ fun SlidingPaneLayout.panelOpens( capacity: Int = Channel.RENDEZVOUS ): ReceiveChannel = corbindReceiveChannel(capacity) { trySend(isOpen) - setPanelSlideListener(listener(scope, ::trySend)) - invokeOnClose { setPanelSlideListener(null) } + val listener = listener(scope, ::trySend) + addPanelSlideListener(listener) + invokeOnClose { removePanelSlideListener(listener) } } /** * Create a flow of the open state of the pane of [SlidingPaneLayout]. * - * *Warning:* The created flow uses [SlidingPaneLayout.setPanelSlideListener]. Only one flow can be - * used at a time. - * * *Note:* A value will be emitted immediately. * * Examples: @@ -130,8 +123,9 @@ fun SlidingPaneLayout.panelOpens( */ @CheckResult fun SlidingPaneLayout.panelOpens(): InitialValueFlow = channelFlow { - setPanelSlideListener(listener(this, ::trySend)) - awaitClose { setPanelSlideListener(null) } + val listener = listener(this, ::trySend) + addPanelSlideListener(listener) + awaitClose { removePanelSlideListener(listener) } }.asInitialValueFlow(isOpen) @CheckResult diff --git a/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutSlides.kt b/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutSlides.kt index b2075725..ef1d75cc 100644 --- a/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutSlides.kt +++ b/corbind-slidingpanelayout/src/main/kotlin/ru/ldralighieri/corbind/slidingpanelayout/SlidingPaneLayoutSlides.kt @@ -34,9 +34,6 @@ import ru.ldralighieri.corbind.internal.corbindReceiveChannel /** * Perform an action on the slide offset of the pane of [SlidingPaneLayout]. * - * *Warning:* The actor channel uses [SlidingPaneLayout.setPanelSlideListener]. Only one actor can - * be used at a time. - * * @param scope Root coroutine scope * @param capacity Capacity of the channel's buffer (no buffer by default) * @param action An action to perform @@ -50,8 +47,9 @@ fun SlidingPaneLayout.panelSlides( for (slide in channel) action(slide) } - setPanelSlideListener(listener(scope, events::trySend)) - events.invokeOnClose { setPanelSlideListener(null) } + val listener = listener(scope, events::trySend) + addPanelSlideListener(listener) + events.invokeOnClose { removePanelSlideListener(listener) } } /** @@ -74,9 +72,6 @@ suspend fun SlidingPaneLayout.panelSlides( /** * Create a channel of the slide offset of the pane of [SlidingPaneLayout]. * - * *Warning:* The created channel uses [SlidingPaneLayout.setPanelSlideListener]. Only one channel - * can be used at a time. - * * Example: * * ``` @@ -94,16 +89,14 @@ fun SlidingPaneLayout.panelSlides( scope: CoroutineScope, capacity: Int = Channel.RENDEZVOUS ): ReceiveChannel = corbindReceiveChannel(capacity) { - setPanelSlideListener(listener(scope, ::trySend)) - invokeOnClose { setPanelSlideListener(null) } + val listener = listener(scope, ::trySend) + addPanelSlideListener(listener) + invokeOnClose { removePanelSlideListener(listener) } } /** * Create a flow of the slide offset of the pane of [SlidingPaneLayout]. * - * *Warning:* The created flow uses [SlidingPaneLayout.setPanelSlideListener]. Only one flow can be - * used at a time. - * * Example: * * ``` @@ -115,8 +108,9 @@ fun SlidingPaneLayout.panelSlides( */ @CheckResult fun SlidingPaneLayout.panelSlides(): Flow = channelFlow { - setPanelSlideListener(listener(this, ::trySend)) - awaitClose { setPanelSlideListener(null) } + val listener = listener(this, ::trySend) + addPanelSlideListener(listener) + awaitClose { removePanelSlideListener(listener) } } @CheckResult diff --git a/corbind/build.gradle b/corbind/build.gradle index a604fa9d..db624715 100644 --- a/corbind/build.gradle +++ b/corbind/build.gradle @@ -1,5 +1,3 @@ -import org.jetbrains.dokka.gradle.DokkaTask - /* * Copyright 2019 Vladimir Raupov * diff --git a/gradle.properties b/gradle.properties index f68e4bac..8feb7341 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # https://github.com/Kotlin/dokka/issues/1405 -org.gradle.jvmargs=-XX:MaxMetaspaceSize=2G +org.gradle.jvmargs=-XX:MaxMetaspaceSize=3G # AndroidX diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 81fd3283..7857f427 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,32 +1,32 @@ [versions] -spotless = "6.2.0" -gver = "0.41.0" -detekt = "1.19.0" +spotless = "6.5.2" +gver = "0.42.0" +detekt = "1.20.0" dokka = "1.6.10" maven-publish = "0.18.0" -plugin-android = "7.0.4" -plugin-kotlin = "1.6.10" +plugin-android = "7.1.3" +plugin-kotlin = "1.6.21" ktlint = "0.43.2" -kotlin = "1.6.10" -kotlin-coroutines = "1.6.0" +kotlin = "1.6.21" +kotlin-coroutines = "1.6.1" androidx-core = "1.7.0" androidx-annotation = "1.3.0" androidx-appcompat = "1.4.1" androidx-drawerlayout = "1.1.1" androidx-leanback = "1.0.0" -androidx-navigation = "2.3.5" +androidx-navigation = "2.4.2" androidx-recyclerview = "1.2.1" -androidx-slidingpanelayout = "1.1.0" +androidx-slidingpanelayout = "1.2.0" androidx-swiperefreshlayout = "1.1.0" androidx-viewpager = "1.0.0" androidx-viewpager2 = "1.0.0" -androidx-lifecycle = "2.4.0" +androidx-lifecycle = "2.4.1" androidx-activity = "1.4.0" -material = "1.5.0" +material = "1.6.0" [plugins] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6a0887c9..e39e8b0c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -18,4 +18,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip diff --git a/sample/build.gradle b/sample/build.gradle index b13e536a..a56c7576 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -77,6 +77,6 @@ dependencies { implementation libs.androidx.appcompat implementation libs.androidx.lifecycle.runtime.ktx implementation libs.material - implementation 'androidx.constraintlayout:constraintlayout:2.1.2' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' } From 13b39d10dceb46df6b3af2251f3ee5016f582645 Mon Sep 17 00:00:00 2001 From: Vladimir Raupov Date: Sun, 8 May 2022 14:27:15 +0300 Subject: [PATCH 3/3] Updated version, README.md of each module and CHANGELOG.md for version 1.5.4 --- CHANGELOG.md | 13 +++++++ README.md | 34 +++++++++---------- corbind-activity/README.md | 2 +- corbind-appcompat/README.md | 2 +- corbind-core/README.md | 2 +- corbind-drawerlayout/README.md | 2 +- corbind-leanback/README.md | 2 +- corbind-lifecycle/README.md | 2 +- corbind-material/README.md | 2 +- .../material/ChipGroupCheckedChanges.kt | 12 +++---- corbind-navigation/README.md | 2 +- corbind-recyclerview/README.md | 2 +- corbind-slidingpanelayout/README.md | 2 +- corbind-swiperefreshlayout/README.md | 2 +- corbind-viewpager/README.md | 2 +- corbind-viewpager2/README.md | 2 +- corbind/README.md | 2 +- gradle.properties | 6 ++-- 18 files changed, 53 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d60c74f3..8be7c5de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ # ChangeLog +## Version 1.5.4 + +* Update: `SlidingPaneLayout` `panelOpens` extensions. Changed listener setting method from `set` to `add`. +* Update: `SlidingPaneLayout` `panelSlides` extensions. Changed listener setting method from `set` to `add`. +* Update: `ChipGroup` `checkedChanges` extensions. Replace ChipGroup.OnCheckedChangeListener with +ChipGroup.OnCheckedStateChangeListener. Supports multiple checked IDs and no longer requires the +single selection flag. +* Update: Kotlin modules dependency to v1.6.21. +* Update: Kotlin coroutines modules dependency to v1.6.1. +* Update: Material components dependency to v1.6.0. +* Update: Minor update of other libraries. + + ## Version 1.5.3 * Update: Kotlin modules dependency to v1.6.10. diff --git a/README.md b/README.md index 8ad2a841..5c502544 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ [![Corbind](logo.svg)](https://ldralighieri.github.io/Corbind) [![Maven Central](https://img.shields.io/maven-central/v/ru.ldralighieri.corbind/corbind.svg)](https://search.maven.org/search?q=g:ru.ldralighieri.corbind) -[![Kotlin Version](https://img.shields.io/badge/Kotlin-v1.6.10-blue.svg)](https://kotlinlang.org) -[![Kotlin Coroutines Version](https://img.shields.io/badge/Coroutines-v1.6.0-blue.svg)](https://kotlinlang.org/docs/reference/coroutines-overview.html) +[![Kotlin Version](https://img.shields.io/badge/Kotlin-v1.6.21-blue.svg)](https://kotlinlang.org) +[![Kotlin Coroutines Version](https://img.shields.io/badge/Coroutines-v1.6.1-blue.svg)](https://kotlinlang.org/docs/reference/coroutines-overview.html) [![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a1c9a1b1d1ce4ca7a201ab93492bf6e0)](https://app.codacy.com/gh/LDRAlighieri/Corbind) @@ -25,28 +25,28 @@ This library is for Android applications only. Help you to transform Android UI Platform bindings: ```groovy -implementation 'ru.ldralighieri.corbind:corbind:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind:1.5.4' ``` AndroidX library bindings: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-activity:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-appcompat:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-core:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-drawerlayout:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-leanback:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-lifecycle:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-navigation:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-recyclerview:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-slidingpanelayout:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-swiperefreshlayout:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-viewpager:1.5.3' -implementation 'ru.ldralighieri.corbind:corbind-viewpager2:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-activity:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-appcompat:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-core:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-drawerlayout:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-leanback:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-lifecycle:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-navigation:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-recyclerview:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-slidingpanelayout:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-swiperefreshlayout:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-viewpager:1.5.4' +implementation 'ru.ldralighieri.corbind:corbind-viewpager2:1.5.4' ``` Google 'material' library bindings: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-material:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-material:1.5.4' ``` Snapshot build: @@ -56,7 +56,7 @@ repositories { } dependencies { - implementation 'ru.ldralighieri.corbind:{module}:1.5.4-SNAPSHOT' + implementation 'ru.ldralighieri.corbind:{module}:1.5.5-SNAPSHOT' } ``` diff --git a/corbind-activity/README.md b/corbind-activity/README.md index 1806e1dd..29185316 100644 --- a/corbind-activity/README.md +++ b/corbind-activity/README.md @@ -4,7 +4,7 @@ To add androidx activity bindings, import `corbind-activity` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-activity:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-activity:1.5.4' ``` ## List of extensions diff --git a/corbind-appcompat/README.md b/corbind-appcompat/README.md index bcf23873..651fb648 100644 --- a/corbind-appcompat/README.md +++ b/corbind-appcompat/README.md @@ -4,7 +4,7 @@ To add androidx appcompat bindings, import `corbind-appcompat` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-appcompat:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-appcompat:1.5.4' ``` ## List of extensions diff --git a/corbind-core/README.md b/corbind-core/README.md index e3ccb6e6..b6eb9a27 100644 --- a/corbind-core/README.md +++ b/corbind-core/README.md @@ -4,7 +4,7 @@ To add androidx core bindings, import `corbind-core` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-core:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-core:1.5.4' ``` ## List of extensions diff --git a/corbind-drawerlayout/README.md b/corbind-drawerlayout/README.md index e5ec246e..37cde395 100644 --- a/corbind-drawerlayout/README.md +++ b/corbind-drawerlayout/README.md @@ -4,7 +4,7 @@ To add androidx drawerlayout bindings, import `corbind-drawerlayout` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-drawerlayout:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-drawerlayout:1.5.4' ``` ## List of extensions diff --git a/corbind-leanback/README.md b/corbind-leanback/README.md index c47fc406..f469d6f9 100644 --- a/corbind-leanback/README.md +++ b/corbind-leanback/README.md @@ -4,7 +4,7 @@ To add androidx leanback bindings, import `corbind-leanback` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-leanback:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-leanback:1.5.4' ``` ## List of extensions diff --git a/corbind-lifecycle/README.md b/corbind-lifecycle/README.md index 8078e7e9..85ba786e 100644 --- a/corbind-lifecycle/README.md +++ b/corbind-lifecycle/README.md @@ -4,7 +4,7 @@ To add androidx lifecycle bindings, import `corbind-lifecycle` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-lifecycle:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-lifecycle:1.5.4' ``` ## List of extensions diff --git a/corbind-material/README.md b/corbind-material/README.md index 40c1f7ef..cc169b96 100644 --- a/corbind-material/README.md +++ b/corbind-material/README.md @@ -4,7 +4,7 @@ To add material bindings, import `corbind-material` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-material:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-material:1.5.4' ``` ## List of extensions diff --git a/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt b/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt index 853bfd25..2020fa8b 100644 --- a/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt +++ b/corbind-material/src/main/kotlin/ru/ldralighieri/corbind/material/ChipGroupCheckedChanges.kt @@ -32,7 +32,7 @@ import ru.ldralighieri.corbind.internal.asInitialValueFlow import ru.ldralighieri.corbind.internal.corbindReceiveChannel /** - * Perform an action on checked view ID changes in [ChipGroup]. + * Perform an action on checked view IDs changes in [ChipGroup]. * * *Warning:* The created actor uses [ChipGroup.setOnCheckedStateChangeListener]. Only one actor can * be used at a time. @@ -56,7 +56,7 @@ fun ChipGroup.checkedChanges( } /** - * Perform an action on checked view ID changes in [ChipGroup], inside new [CoroutineScope]. + * Perform an action on checked view IDs changes in [ChipGroup], inside new [CoroutineScope]. * * *Warning:* The created actor uses [ChipGroup.setOnCheckedStateChangeListener]. Only one actor can * be used at a time. @@ -72,7 +72,7 @@ suspend fun ChipGroup.checkedChanges( } /** - * Create a channel of the checked view ID changes in [ChipGroup]. + * Create a channel of the checked view IDs changes in [ChipGroup]. * * *Warning:* The created channel uses [ChipGroup.setOnCheckedStateChangeListener]. Only one channel * can be used at a time. @@ -85,7 +85,7 @@ suspend fun ChipGroup.checkedChanges( * ``` * launch { * chipGroup.checkedChanges(scope) - * .consumeEach { /* handle checked view */ } + * .consumeEach { /* handle checked ids */ } * } * ``` * @@ -103,7 +103,7 @@ fun ChipGroup.checkedChanges( } /** - * Create a flow of the checked view ID changes in [ChipGroup]. + * Create a flow of the checked view IDs changes in [ChipGroup]. * * *Warning:* The created flow uses [ChipGroup.setOnCheckedStateChangeListener]. Only one flow can * be used at a time. @@ -116,7 +116,7 @@ fun ChipGroup.checkedChanges( * ``` * // handle initial value * chipGroup.checkedChanges() - * .onEach { /* handle checked view */ } + * .onEach { /* handle checked ids */ } * .flowWithLifecycle(lifecycle) * .launchIn(lifecycleScope) // lifecycle-runtime-ktx * diff --git a/corbind-navigation/README.md b/corbind-navigation/README.md index fb1deb8d..6524c5fd 100644 --- a/corbind-navigation/README.md +++ b/corbind-navigation/README.md @@ -4,7 +4,7 @@ To add androidx navigation bindings, import `corbind-navigation` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-navigation:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-navigation:1.5.4' ``` ## List of extensions diff --git a/corbind-recyclerview/README.md b/corbind-recyclerview/README.md index abf6ef00..07bd07f5 100644 --- a/corbind-recyclerview/README.md +++ b/corbind-recyclerview/README.md @@ -4,7 +4,7 @@ To add androidx recyclerview bindings, import `corbind-recyclerview` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-recyclerview:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-recyclerview:1.5.4' ``` ## List of extensions diff --git a/corbind-slidingpanelayout/README.md b/corbind-slidingpanelayout/README.md index 67bffd48..f9c64bf5 100644 --- a/corbind-slidingpanelayout/README.md +++ b/corbind-slidingpanelayout/README.md @@ -4,7 +4,7 @@ To add androidx slidingpanelayout bindings, import `corbind-slidingpanelayout` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-slidingpanelayout:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-slidingpanelayout:1.5.4' ``` ## List of extensions diff --git a/corbind-swiperefreshlayout/README.md b/corbind-swiperefreshlayout/README.md index 27561436..7d7a4f80 100644 --- a/corbind-swiperefreshlayout/README.md +++ b/corbind-swiperefreshlayout/README.md @@ -4,7 +4,7 @@ To add androidx swiperefreshlayout bindings, import `corbind-swiperefreshlayout` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-swiperefreshlayout:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-swiperefreshlayout:1.5.4' ``` ## List of extensions diff --git a/corbind-viewpager/README.md b/corbind-viewpager/README.md index d6c6ec04..49a02595 100644 --- a/corbind-viewpager/README.md +++ b/corbind-viewpager/README.md @@ -4,7 +4,7 @@ To add androidx viewpager bindings, import `corbind-viewpager` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-viewpager:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-viewpager:1.5.4' ``` ## List of extensions diff --git a/corbind-viewpager2/README.md b/corbind-viewpager2/README.md index 047121ee..5f4fc0df 100644 --- a/corbind-viewpager2/README.md +++ b/corbind-viewpager2/README.md @@ -4,7 +4,7 @@ To add androidx viewpager2 bindings, import `corbind-viewpager2` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind-viewpager2:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind-viewpager2:1.5.4' ``` ## List of extensions diff --git a/corbind/README.md b/corbind/README.md index e3d21a9f..5190dfbf 100644 --- a/corbind/README.md +++ b/corbind/README.md @@ -4,7 +4,7 @@ To add platform bindings, import `corbind` module: ```groovy -implementation 'ru.ldralighieri.corbind:corbind:1.5.3' +implementation 'ru.ldralighieri.corbind:corbind:1.5.4' ``` ## List of extensions diff --git a/gradle.properties b/gradle.properties index 8feb7341..dbac1f86 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,14 +4,14 @@ org.gradle.jvmargs=-XX:MaxMetaspaceSize=3G # AndroidX android.useAndroidX=true -android.compileSdk=31 -android.targetSdk=31 +android.compileSdk=32 +android.targetSdk=32 android.minSdk=14 # Maven GROUP=ru.ldralighieri.corbind -VERSION_NAME=1.5.4-SNAPSHOT +VERSION_NAME=1.5.4 POM_DESCRIPTION=Kotlin Coroutines binding APIs for Android UI widgets from the platform and support libraries.