Skip to content

Releases: mikepenz/FastAdapter

v5.0.0-a01

28 Dec 14:45
Compare
Choose a tag to compare
v5.0.0-a01 Pre-release
Pre-release

Features

  • Adapters can now be marked as active (true / false).
    • Inactive adapters are not shown in the list e.g. changes to their item set will not result in changes in the UI
    • #854

Changes

  • Code cleanup and improvements (#851)
    • Thanks to @zTrap
    • replaced usage of 'magic number' -1 by RecyclerView.NO_POSITION constant
    • added @JvmStatic for all functions in Util object classes
    • cleared some explicit parameters
    • cleared documentations
    • added function for removing PagedListListener from PagedItemListImpl
    • bumped versions of dependencies
    • optimized some methods and classes
  • remove the generic type specification for the adapter (#845)

Interface Changes

  • The FastAdapter.with() methods now have. generic type less

v4.1.2

23 Dec 11:48
Compare
Choose a tag to compare

Fixes

  • allow passing null to the PagedModelAdapter.submitList
  • a PagedListAdapter is allowed to have placeholders. those placeholders are defined as null
    • introduce an interceptor to specify what item the adapter should provide if an element is still a placeholder.
    • NOTE: old default behavior stays the same, you shall provide an interceptor though if you want working placeholders.
    • NOTE: The IItemList was adjusted to return a nullable Item as this is a requirement for the PagedItemList.
    • FIX #843

Interface Changes

  • The IItemList was adjusted to return a nullable Item as this is a requirement for the PagedItemList. This is a breaking change if somebody implements a custom ItemList.

v4.1.2-rc01

15 Dec 18:15
Compare
Choose a tag to compare
v4.1.2-rc01 Pre-release
Pre-release

Fixes

  • allow passing null to the PagedModelAdapter.submitList
  • a PagedListAdapter is allowed to have placeholders. those placeholders are defined as null
    • introduce an interceptor to specify what item the adapter should provide if an element is still a placeholder.
    • NOTE: old default behavior stays the same, you shall provide an interceptor though if you want working placeholders.
    • NOTE: The IItemList was adjusted to return a nullable Item as this is a requirement for the PagedItemList.
    • FIX #843

Interface Changes

  • The IItemList was adjusted to return a nullable Item as this is a requirement for the PagedItemList. This is a breaking change if somebody implements a custom ItemList.

v4.1.1

16 Nov 15:06
Compare
Choose a tag to compare

Fixes

  • fix if item can not be cast to ISubItem
  • fix isOnlyOneExpandableItem does not respec the level

Changes

  • /

v4.1.0

05 Oct 09:21
Compare
Choose a tag to compare

Fixes

  • /

Changes

  • Make OnBindViewHolderListenerImpl and OnCreateViewHolderListenerImpl open
  • add convenient extension functions to minimize the boilerplate code needed to add a EventHook to the FastAdapter
  • Introduction of a new EXPERIMENTAL extension to support the paging jetpack library for adapters
implementation "com.mikepenz:fastadapter-extensions-paged:${latestFastAdapterRelease}"

v4.1.0-b02

01 Sep 11:42
Compare
Choose a tag to compare
v4.1.0-b02 Pre-release
Pre-release

Fixes

  • Use IItemAdapter in DragDropUtil, resolves #815
  • specify the -module-name for kotlin to fix un-expected META-INF conflicts

Changes

  • change property visibility of isExpanded from the ExpandableExtension to internal

v4.1.0-b01

06 Jul 17:54
Compare
Choose a tag to compare
v4.1.0-b01 Pre-release
Pre-release

Fixes

  • Fix issue with multi level expandable in the sample app
    • Collapsing a multi level expandable will not close its children, as the parent was no longer correctly supplied

Changes

  • DSL for FastAdapter #792
  • Code cleanup #793
  • Use typealias's as much as possible #794, #797
  • Various code improvements by doing them the "kotlin"-way #795, #804, #808
  • Double quotes for deps #796
  • Use unnecessary operators #802
  • Add more JVMField annotations #803

Contributors

Big thanks to @AllanWang, and @FabianTerhorst for a lot of great contributions in this release

v4.0.1

22 Jun 09:59
Compare
Choose a tag to compare

Changes

  • Open all adapter functions #777
  • Use reified functions for extension resolval #780
  • Various code cleanup, and code simplifications applied #782
  • Simplify DiffUtil class a bit #784
  • Introduce Detekt to ensure code quality for PRs #786
  • Force class match in extension factory #788
  • Use delegation in FastItemAdapter #789
  • Introduce more generic typealiases #790
  • Use item from tag in the EventHookUtil #791

Contributors

Big thanks to @AllanWang for a lot of great contributions in this release

v4.0.0

08 Jun 07:51
Compare
Choose a tag to compare

WARNING

  • This release is fully migrated to kotlin

Changes

  • Full migration to kotlin
  • Split apart into smaller library modules
  • Expandable in different package
  • ModelAdapter is the base
  • Adjustments to interfaces and generic specifications to improve Kotlin usage
  • Kotlin function types instead of interfaces for various cases
  • Extension functions to simplify common usages
  • TypeAlias for generic adapter types
  • ...

Depencencies

The following major dependency versions are required:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.x.y"
implementation "androidx.appcompat:appcompat:1.x.y"
implementation "androidx.recyclerview:recyclerview:1.x.y"

Migration

v4 is a huge release changing most of the codebase to Kotlin. This comes with many refactors, and as a result of that with many breaking API changes.
We put a lot of focus on type safety with this release, as such this release is a lot more strict and tries to prevent as many potential bad type mixups as possible.

  • As a result of the Kotlin migration the static methods can now be accessed via FastAdapter.Companion. E.g.: FastAdapter.Companion.with(...)
  • The IItem interface now requires a type specification. E.g. IItem<RecyclerView.ViewHolder>
  • The SelectExtension is no longer default enabled and wrapped in the FastAdapter use its API standalone. E.g.: selectExtension.setSelectable(true), ...
  • Extensions can be retrieved via getOrCreateExtension. SelectExtension<?> selectExtension = (SelectExtension<?>) mFastAdapter.getOrCreateExtension(SelectExtension.class)
  • Most API methods which were possible to be chained in the previous releases are now standard properties. So use set / get. E.g.: sampleItem.setSelectable(false), sampleItem.setIdentifier(1), ...
  • FastAdapterDiffUtil no longer directly takes the FastItemAdapter, provide the ItemAdapter or ModelAdapter instead.
  • The IItem interface now only requires the ViewHolder type.
  • The IExpandable interface was changed and now extends IParentItem and ISubItem.
  • The ISubItem interface now only requires the ViewHolder type.
  • The IParentItem interface only requires the ViewHolder type.
  • IIdentifyable interface does not require any type anymore.

The v4 release brings a new more modular setup. Allowing to be a lot more precise on what to take from the FastAdapter.
Due to the new modules some packages of various classes might have changes. Check out here on GitHub for the new location of classes.

The new modules are:

  • com.mikepenz:fastadapter-extensions-diff // diff util helpers
  • com.mikepenz:fastadapter-extensions-drag // drag support
  • com.mikepenz:fastadapter-extensions-scroll // scroll helpers
  • com.mikepenz:fastadapter-extensions-swipe // swipe support
  • com.mikepenz:fastadapter-extensions-ui // pre-defined ui components
  • com.mikepenz:fastadapter-extensions-utils // needs the expandable, drag and scroll extension.

If you have any issues during the migration, or any questions come up please open a github issue so we can improve the migration guide or the documentation.

v4.0.0-rc04

21 Apr 18:46
Compare
Choose a tag to compare
v4.0.0-rc04 Pre-release
Pre-release

WARNING

  • this release is the first release of FastAdapter migrated to kotlin.

Changes

Changes on top of rc03

  • open up various classes to allow overwriting
  • extendable itemfilter
  • out for eventhooks
  • update to kotlin 1.3.30