- #332: Namespace Kotlin module names
- #330: Corrected package name in rxlifecycle-android-lifecycle-kotlin
This major revision was made to support RxJava 3. RxLifecycle 4.0 lives in a new namespace and package names so that it can work side-by-side with previous versions of RxLifecycle.
- #290: Fixed up some missing rxlifecycle3 conversions
- #308: Support LayoutId constructors for AppCompatActivity and (AndroidX)Fragment
- #285: Updated base package to com.trello.rxlifecycle3
- #284: Deprecate rxlifecycle-navi
- #283: Upgraded to AndroidX
- #275: Updated dependencies
Normally simply updating dependencies wouldn't justify a new release, except that there are some R8 issues with RxLifecycle (due to it being compiled with Android lifecycle 1.0.0 instead of 1.1.0).
-
#248: Remove generic type declaration for Completable bindings
-
#249: Updated to release version of Android architecture components
-
#239: Added support for support preference fragments
These can be found in the new rxlifecycle-components-preference artifact.
-
#216: Added support for Android Architecture Components
These can be found in the new rxlifecycle-android-lifecycle and rxlifecycle-android-kotlin artifacts.
-
#219: Fix potential build issues by making JSR305 compileOnly
- #183: Fix usage of null in navi module
This major revision was made to support RxJava 2. RxLifecycle 2.0 lives in a new namespace and package names so that it can work side-by-side with RxLifecycle 1.0 (while transitioning).
The biggest change is that LifecycleTransformer
now works for all RxJava types:
Observable
, Flowable
, Single
, Maybe
and Completable
. Unlike before, there's
no extra steps you have to take to make it work with types other than Observable
.
- #167: Upgrade to RxJava 2
- #169: Move to com.trello.rxlifecycle2
- #170: Added Maybe support
- #172: Added Flowable support
First and (hopefully) final release of 1.x branch!
This release marks the start of maintenance mode for RxJava 1 support. Future work will be devoted to supporting RxJava 2. Important bugs may be squashed but new features will have to be extraordinarily compelling in order to be added.
-
#152: Support RxJava 1.2.0.
This change is not backwards compatible with RxJava 1.1.x, so if you want to continue receiving updates for RxLifecycle you will eventually need to upgrade to RxJava 1.2.x.
There are a couple major breaking changes in this release, so read carefully.
-
#143: Split Android parts of rxlifecycle into rxlifecycle-android
Now the
rxlifecycle
dependency is a pure Java core. To use RxLifecycle with Android, you should also includerxlifecycle-android
as well now.RxLifecycle
methods that are for Android (bindActivity()
,bindFragment()
andbindView()
) are now inRxLifecycleAndroid
(found in therxlifecycle-android
artifact).Deprecated methods in
RxLifecycle
were removed as well. -
#138 / #139: Replace
ActivityLifecycleProvider
andFragmentLifecycleProvider
withLifecycleProvider<T>
.This means that you need to replace
ActivityLifecycleProvider
withLifecycleProvider<ActivityEvent>
andFragmentLifecycleProvider
withLifecycleProvider<FragmentEvent>
.
Other changes:
- #140: Fixed type inference for LifecycleTransformer.forSingle()
- #135: Add Kotlin extensions for Singles and Completables
- #118: Use
LifecycleTransformer
in the provider interfaces
- Added
LifecycleTransformer
, which providesSingle
andCompletable
support. - #111: Added component support for
AppCompatDialogFragment
- #107: Fixed navi component package
There are a few methods which have been deprecated and will be removed in a future release. Each one has a drop-in replacement (and currently calling the deprecated version just routes to the new one):
bindUntilActivityEvent()
andbindUntilFragmentEvent()
->bindUntilEvent()
bindView()
->bind()
The other changes mostly involve opening up the API for more customization:
- #78: Added rxlifecycle-kotlin (adds some extensions)
- #79: Made bindUntilEvent() public, deprecated more specific calls
- #82: Opened up bind() methods for public consumption
- #83, #85: Added annotations for better lint checking
- #88: Use
.equals()
instead of == for event comparison (for custom event support with the newly opened-upbind()
) - #89: Make OutsideLifecycleException public (for anyone who wants
to write their own
bind()
implementations)
- #62, #67: Added Navi-based implementation of providers.
- #61: Moved
ActivityLifecycleProvider
andFragmentLifecycleProvider
into the core library so that multiple implementations can share them easily. The package name changed so you may need to re-import them in your code. - #60: Reverted generic parameters back to
Transformer<T, T>
- #46: Updated generic parameters of
Transformer<T, T>
to support Kotlin type inference.
- #12: Added
RxLifecycle.bindView()
. This allows binding aSubscription
until aView
detaches itself from the window. - #30: Calling
bindActivity()
orbindFragment()
outside of the lifecycle causes the sequence to immediately complete (instead of throwing an error). - #31: Passing nulls to RxLifecycle now always immediately throws an exception.
-
#14: Use takeUntil internally (instead of a faulty custom operator)
While this fixes some intractable problems that could occur with the old system, it also includes a major behavior change: when the bind decides to stop subscribing, it calls
onCompleted
(whereas before it would just unsubscribe).When upgrading, you should check that your usages of
onCompleted
(either insubscribe()
,doOnCompleted()
, ordoOnTerminate()
) can handle the sequence ending due to the lifecycle bind.If you still need the old behavior in some spots, you should handle the
Subscription
yourself manually (and callunsubscribe()
when appropriate). -
#16: Lowered minSdkVersion to 14
Initial independent release (split from RxAndroid 0.25.0)
- Added support for AppCompatActivity via
RxAppCompatActivity
- Components (e.g.
RxActivity
) now supportbindUntilEvent()
andbindToLifecycle()
, which avoids having to deal with the lifecycleObservable
directly.
- Renamed
LifecycleObservable
toRxLifecycle
- Switched from wrapping
Observables
to usingTransformer
+compose()
(which allows for chaining) - Split
LifecycleEvent
into two parts -ActivityEvent
andFragmentEvent
, in order to prevent easy mixups that could occur before - Split
bindUntilLifecycleEvent()
intobindUntilFragmentEvent()
andbindUntilActivityEvent()
- Renamed
bindFragmentLifecycle()
tobindFragment()
- Renamed
bindActivityLifecycle()
tobindActivity()