Releases: mikepenz/FastAdapter
v5.0.0-a01
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)
- FIX #838
Interface Changes
- The
FastAdapter.with()
methods now have. generic type less
v4.1.2
Fixes
- allow passing null to the PagedModelAdapter.submitList
- FIX #834
- 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 nullableItem
as this is a requirement for thePagedItemList
. - FIX #843
Interface Changes
- The
IItemList
was adjusted to return a nullableItem
as this is a requirement for thePagedItemList
. This is a breaking change if somebody implements a customItemList
.
v4.1.2-rc01
Fixes
- allow passing null to the PagedModelAdapter.submitList
- FIX #834
- 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 nullableItem
as this is a requirement for thePagedItemList
. - FIX #843
Interface Changes
- The
IItemList
was adjusted to return a nullableItem
as this is a requirement for thePagedItemList
. This is a breaking change if somebody implements a customItemList
.
v4.1.1
v4.1.0
Fixes
- /
Changes
- Make OnBindViewHolderListenerImpl and OnCreateViewHolderListenerImpl open
- THANSK @cirnoftw
- 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
Fixes
- Use IItemAdapter in DragDropUtil, resolves #815
- THANKS @AllanWang
- specify the
-module-name
for kotlin to fix un-expectedMETA-INF
conflicts
Changes
- change property visibility of
isExpanded
from the ExpandableExtension to internal
v4.1.0-b01
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
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 theEventHookUtil
#791
Contributors
Big thanks to @AllanWang for a lot of great contributions in this release
v4.0.0
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 theFastAdapter
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 theFastItemAdapter
, provide theItemAdapter
orModelAdapter
instead.- The
IItem
interface now only requires theViewHolder
type. - The
IExpandable
interface was changed and now extendsIParentItem
andISubItem
. - The
ISubItem
interface now only requires theViewHolder
type. - The
IParentItem
interface only requires theViewHolder
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
andscroll
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
WARNING
- this release is the first release of
FastAdapter
migrated to kotlin.
Changes
- this release contains a big amount of changes, including many breaking API changes to make its implementation easier, and make the APIs better compatible with kotlin.
- Please see the migration notes: https://github.com/mikepenz/FastAdapter/blob/feature/v4/MIGRATION.md#v4xy
Changes on top of rc03
- open up various classes to allow overwriting
- extendable itemfilter
- out for eventhooks
- update to kotlin 1.3.30