Mostly a maintenance release improving documentation, adding tests and cleaning up the repository.
Highlight: The test
package is now deprecated and all functionality was moved into the thirtyinch
artifact.
Thanks for external contributors: @baltuky @vpondala
- Pull 115 New: Update dependencies (support lib 26.0.0, target- and compileSdkVersion 26 and other minor updates)
- Pull 120 New:
TiPresenter#test()
returns aTiTestPresenter
with helper methods for unit testing. ReplacesTiPresenterInstructor
and deprecates thetest
artifact. - Pull 126 Fix:
TiPresenter#test()
documentation, thx @baltuky
- Pull 99 Fix: remove javadoc warnings
- Pull 103 New: Improved
RELEASE.md
instructions - Pull 105 New: Deprecate internal
DelegatedTiActivity#isActivityChangingConfigurations
which turned out as not required to handle config changes correctly. Simplifies internal logic - Pull 112 New: Update to gradlew 4.1 allowing development with Android Studio 3.0
- Pull 113 New: Test for LifecycleObserver cleanup
- Pull 114 New: Tests for internal
OneTimeRemovable
- Pull 117 New: internal
PresenterScope
tests - Pull 121 New: Replace all
Hamcrest
assertions withAssertJ
, thx @vpondala - Pull 123 New: Add codestyle to project and reformat all sources according to this. Reduces diffs for external contributors
- Pull 127 New: Additional tests for
TiTestPresenter
Version 0.8.0 is a big step forward towards 1.0.0. The biggest problem, a memory leak when using Fragments could be resolved. This bugfix was only possible after introducing tons of tests.
API enhancements of TiPresenter
make MVP even easier and removes common pitfalls
Thanks for external contributors: @remcomokveld, @vRallev, @jonathan-caryl, @k0shk0sh
TiPresenter
- Pull 26 New:
onAttachView(TiView)
replacesonWakeUp()
which is now deprecated - Pull 26 New:
onDetachView()
replacesonSleep()
which is now deprecated - Pull 26 New:
getView()
is now annotated with@Nullable
- Pull 87 New:
getViewOrThrow()
for cases where the view logically can't benull
- Pull 36 New:
sendToView(ViewAction<TiView>)
to postpone code execution until the view is attached - Pull 65 New:
runOnUiThread(Runnable)
executes code on the view Ui Thread. - Pull 65 New:
sendToView(view -> { })
automatically executes the action on the Ui Thread - Pull 94 Always call observer for events which happend when they were registered
TiFragment
- Pull 78 Presenter gets correctly destroyed when Fragment is not managed by the
FragmentManager
anymore - Pull 78, Pull 67 uses now the default:
setRetainInstanceState(false)
. SettingTiFragment#setRetainInstanceState(true)
will throw - Pull 78 Support for backstack
TiActivity
- Pull 78 Always use
PresenterSavior
singleton, drop support forNonConfigurationInstance
Other
- Pull 14, Pull 15
TiLog
is used for logging. Listener to see a log output - Pull 19, Pull 24
@DistinctUntilChanged
supports multiple comparators. (EqualsComparator
,WeakEqualsComparator
,HashComparator
(default)) - Pull 23 AppCompat is now included with
provided
dependency instead ofcompile
- Pull 42 New:
TiDialogFragment
- Pull 79 New:
@CallSuper
where a super call is required. - Pull 79 New: restrict
TiActivity
,TiFragment
... API for subclasses. - Pull 78, Pull 33, Pull 83, Pull 68 Fix:
TiPresenter
gets destroyed whenTiFragment
gets removed from the FragmentManager - Pull 81 New:
Proguard
rules included in the library - Pull 78
TiConfiguration#setUseStaticSaviorToRetain(Boolean)
is now deprecated. ThePresenterSavior
singleton is always used to retain presenters whenTiConfiguration#setRetainPresenterEnabled(true)
.
- Pull 27 Fix: view can be
null
before unsubscribing from Subscriptions - Pull 43 New:
manage\[View\]Subscriptions(Subscription...)
- Pull 58, Pull 61
manageViewSubscription(Subscription)
will now throw when the view isn't attached - Pull 61
RxTiPresenterUtils#isViewReady()
now emits the ready event afteronAttachView(TiView)
was called. - Pull 73 New:
manage\[View\]Subscription
will now returnSubscription
New module for RxJava2 analog to rx module
- Pull 54, Pull 64 New:
RxTiPresenterDisposableHandler#manageDisposable
andRxTiPresenterDisposableHandler#manageViewDisposable
- Pull 49 New:
TiFragmentPlugin
- Pull 65
TiPresenterInstructor
automatically sets anExecutor
forrunOnUiThread
andsendToView
actions
- Pull 85 New: Add logging interceptor module including
LoggingInterceptor
- add missing
TiActivity#getPresenter()
TiConfiguration
- Presenter LifecycleObservers
- ViewBindingInterceptors
TiActivityDelegate
for code sharing- separate Rx module
- separate Test module
- public release, projects using
Ti
: ∞
- Tests
- Smaller bugfixes and minor breaking changes
- plugin for CompositeAndroid
- Clean usage syntax by automatically using the
TiActivity
as theTiView
- Projects using
Ti
: 6
- Extracted into standalone library
- Rebranded to ThirtyInch
- Projects using
Ti
: 3
- CallOnMainThread annotation
- fix "Don't keep activities" with
PresenterSavior
- stabilize Activity and Fragment support
- first configuration change surviving Presenter
- heavy usage or RxJava