Mosby v3.1.1 Release Notes

Release Date: 2018-12-17 // over 1 year ago
  • 🚀 Minor release for better support with jetifier and androidx

    Solves:

    BackstackAccessor.isFragmentOnBackStack(Fragment())
    Crash:
    java.lang.IllegalAccessError: Method 'boolean androidx.fragment.app.Fragment.isInBackStack()' is inaccessible to class 'androidx.core.app.BackstackAccessor'


Previous changes from v3.1.0

  • ➕ Added

    • MvpQueueingBasePresenter: This Presenter has a method onceViewAttached(ViewAction) that internally queues all ViewAction if no view is attached to this presenter and executes all queued actions once a view is attached. If a view is attached, the ViewAction executes immediately. This class is useful in MVP powered apps with backstack navigation.

    🔄 Changes

    • MvpPresenter.detachView(boolean retainInstance) is now split in two methods:
      • detachView(): Was the same as detachView(retainInstance = true)
      • destroy(): Was the same as detachView(retainInstance = false)
        Please note that destroy() is called when the corresponding View is also destroyed permanently. For example, if FragmentA (View) has PresenterA. Once we push a new Fragment B (with Presenter B) on top of the stack, PresenterA.detachView() is called because View of FragmentA is destroyed temporarily.

    🗄 Deprecations

    • 🗄 MvpPresenter.detachView(boolean retainInstance) is deprecated now. Use detachView() and destroy().
    • 👀 MvpBasePresenter.getView() and MvpBasePresenter.isViewAttached() are deprecated. Use MvpBasePresenter.ifViewAttached(ViewAction), see #233