Change Log¶
1.2.0¶
Added¶
- New bindings for
NavigationBarView
which works with bothBottomNavigationView
and the newNavigationRailView
, deprecate bindings onBottomNavigationView
.
Changed¶
- Kotlin 1.5.20
- Material Components 1.4.0
- AndroidX Core 1.6.0
- AndroidX Fragment 1.3.5
1.1.0¶
Added¶
- New bindings for
MaterialTimePicker
: fun <S> MaterialDatePicker<S>.cancels(): Flow<Unit>
fun <S> MaterialDatePicker<S>.dismisses(): Flow<Unit>
fun <S> MaterialDatePicker<S>.negativeButtonClicks(): Flow<Unit>
fun <S> MaterialDatePicker<S>.positiveButtonClicks(): Flow<S>
Changed¶
- Kotlin 1.5.10.
- Coroutines 1.5.0.
- Material Components 1.3.0
- AndroidX Activity 1.2.3.
- AndroidX Annotation 1.2.0.
- AndroidX AppCompat 1.3.0.
- AndroidX Core 1.5.0.
- AndroidX Fragment 1.3.4.
- AndroidX Lifecycle 2.3.1.
- AndroidX Navigation 2.3.5.
- AndroidX RecyclerView 1.2.1.
1.0.0¶
This is our first stable release! Thanks everyone for using FlowBinding, reporting bugs, providing feedback and sending PRs.
Changed¶
- Update to Kotlin 1.4.10.
- Update to Coroutines 1.4.2.
- Update to AndroidX Navigation 2.3.2.
- Update to AndroidX Lifecycle 2.3.0-rc01.
1.0.0-beta02¶
Changed¶
- Convert all custom event types to data class.
- Update to AndroidX Navigation 2.3.2.
- Update to Coroutines 1.4.0.
1.0.0-beta01¶
Added¶
- New API docs powered by Dokka 1.4.
Changed¶
- Update AndroidX dependencies.
- Update to Kotlin 1.4.10.
Version 1.0.0-alpha04¶
2020-08-18
- Fixed incorrect
packagingOptions
exclusion.
Version 1.0.0-alpha03¶
2020-08-16
- Update to Kotlin 1.4.0 and Coroutines 1.3.9.
- Enable explicit API mode.
- Update AndroidX and Material Components.
Version 1.0.0-alpha02¶
2020-06-27
- Fix: Explicitly adding the
flowbinding-common
dependency is no longer required.
Version 1.0.0-alpha01¶
2020-06-26
- Breaking change: Introduced a new
InitialValueFlow
type for the bindings which emit state. All bindings with theemitImmediately: Boolean = false
param have been migrated to to returnInitialValueFlow
. This is also a behavior change as the current value of a widget will now be emitted immediately upon collection. The newInitialValueFlow
provides askipInitialValue()
function for skipping the initial emission. - Dependency updates:
drawerlayout:1.1.0
fragment:1.2.5
navigation:2.3.0
swiperefreshlayout:1.1.0
Version 0.12.0¶
2020-05-29
- New: Added new bindings for Material Components:
fun Slider.touchEvents(): Flow<SliderTouchEvent>
fun RangeSlider.valuesChanges(emitImmediately: Boolean = false): Flow<List<Float>>
fun RangeSlider.changeEvents(emitImmediately: Boolean = false): Flow<RangeSliderChangeEvent>
fun RangeSlider.touchEvents(): Flow<RangeSliderTouchEvent>
fun TextInputLayout.errorIconClicks(): Flow<Unit>
fun TextInputLayout.errorIconLongClicks(): Flow<Unit>
- Enhancement: Updated to Material Components 1.2.0-beta01.
- Enhancement: Updated to Coroutines 1.3.7.
- Enhancement: Started downgrading alpha versions of AndroidX dependencies to latest stable for upcoming FlowBinding 1.0 release.
Version 0.11.1¶
2020-04-20
- Fix: revert to AGP 4.1.0-alpha05 which broke publishing.
Version 0.11.0¶
2020-04-20
- New: Added new binding
fun Slider.changeEvents(emitImmediately: Boolean = false): Flow<SliderChangeEvent>
(PR). Thanks @FlowMo7 for contribution! - New: Added flowbinding-viewpager artifact with bindings for the legacy
androidx.viewpager.widget.ViewPager
. - Enhancement: Updated to Kotlin 1.3.72, Coroutines 1.3.5.
- Enhancement: Updated AndroidX:
core:1.3.0-rc01
appcompat:1.2.0-beta01
activity:1.2.0-alpha03
fragment:1.3.0-alpha03
drawerlayout:1.1.0-beta01
navigation:2.3.0-alpha05
preference:1.1.1
recyclerview:1.2.0-alpha02
swiperefreshlayout:1.1.0-rc01
viewpager2:1.1.0-alpha01
- Enhancement: Updated Material Components to 1.2.0-alpha06.
Version 0.10.2¶
2020-03-14
- Enhancement: Started tracking API binary compatibility.
- Enhancement: Updated to Kotlin 1.3.70, Coroutines 1.3.4.
- Enhancement: Updated AndroidX:
core:1.3.0-alpha02
appcompat:1.2.0-alpha03
activity:1.2.0-alpha01
fragment:1.3.0-alpha01
drawerlayout:1.1.0-alpha04
lifecycle:2.3.0-alpha01
navigation:2.3.0-alpha03
swiperefreshlayout:1.1.0-beta01
- Fix: Do not conflate
Flow<Lifecycle.Event>
fromLifecycleEventFlow
to respect the behavior ofLifecycleObserver
.
Version 0.10.1¶
2020-02-28
- Fix: Removed incorrect
packagingOptions
exclusion.
Version 0.10.0¶
2020-02-28
- New: We have a new website with automatically generated & updated API docs.
- New:
minSdkVersion
has been dropped to API 14 to match AndroidX’s default and RxBinding. - Enhancement: Updated AndroidX, Material Components, build tools, Gradle, AGP, detekt.
Version 0.9.0¶
2020-01-24
- New: Added flowbinding-lifecycle artifact with a binding for lifecycle events.
- New: Added flowbinding-activity artifact with a binding for back pressed events.
- Enhancement: Updated AndroidX - activity 1.1.0, fragment 1.2.0 and navigation 2.2.0.
- Enhancement: Updated Material Components to 1.2.0-alpha04.
Version 0.8.0¶
2020-01-04
- Fix: Removed incorrect
packagingOptions
exclusion.
Version 0.7.0¶
2019-12-30
- New: Added flowbinding-preference artifact with bindings for the AndroidX Preference library.
- Enhancement: Migrated from custom GitHub Action to Cirrus CI for running instrumented tests. Tests now take ~15 mins compared to ~21 mins with GitHub Actions.
- Enhancement: Updated Gradle, AGP, AndroidX, Material Components, Kotlin, Coroutines, detekt, kluent, blueprint.
- Enhancement: Stopped generating
BuildConfig
for libraries.
Version 0.6.0¶
2019-11-14
- New: Added new binding
fun MaterialCardView.checkedChanges(emitImmediately: Boolean = false): Flow<Boolean>
- Enhancement: Migrated from bitrise.io to a custom GitHub Action for running instrumented tests on macOS VMs. Tests now take ~21 mins compared to 30+ mins with bitrise.
- Fix: Added
@SdkSuppress
toViewScrollChangeEventFlowTest
which requires API 23. - Enhancement: Updated Gradle, AGP and AndroidX.
- Fix: Added a bunch of missing event listener removals (PR). Thanks @hoc081098 for contribution!
- Enhancement: Added a custom lint check
MissingListenerRemoval
for detecting missing listener removals inawaitClose
within acallbackFlow
implementation.
Version 0.5.0¶
2019-10-28
This is the initial release of FlowBinding - Kotlin Flow binding APIs for Android’s platform and unbundled UI widgets.
Please note that while the library is heavily tested with instrumented tests, the APIs are not yet stable. Our plan is to polish the library by adding missing bindings and fixing bugs as we work towards 1.0.
- New: flowbinding-android artifact - provides Flow bindings for the Android platform APIs.
- New: flowbinding-appcompat artifact - provides Flow bindings for the AndroidX AppCompat library.
- New: flowbinding-core artifact - provides Flow bindings for the AndroidX Core library.
- New: flowbinding-drawerlayout artifact - provides Flow bindings for the AndroidX DrawerLayout library.
- New: flowbinding-navigation artifact - provides Flow bindings for the AndroidX Navigation library.
- New: flowbinding-recyclerview artifact - provides Flow bindings for the AndroidX RecyclerView library.
- New: flowbinding-swiperefreshlayout artifact - provides Flow bindings for the AndroidX SwipeRefreshLayout library.
- New: flowbinding-viewpager2 artifact - provides Flow bindings for the AndroidX ViewPager2 library.