Skip to content

v5.0.0-b8

Pre-release
Pre-release
Compare
Choose a tag to compare
@davideas davideas released this 17 Sep 14:33
· 434 commits to master since this release

Deprecation and Refactoring

  • Refactoring behaviour of setPermanentDelete(): default value starts with true. Creating the UndoHelper instance, the value will be set to false automatically.
  • Refactored shouldAnimate default value from true to false. Items are not animated anymore by default, you need to enable the scrolling animations with .setAnimationOnScrolling(true).
  • When setOnlyEntryAnimation() is set true, shouldAnimate is automatically set true, however when the screen is filled with last visible item, shouldAnimate is again false.
  • Marked some methods with //TODO: deprecation?. Those methods are under evaluation and could disappear in the final release.
  • Enabled shouldMoveItem() callback in OnItemMoveListener.
  • Deprecated removeItemWithDelay() with 'resetLayoutAnimation' param.
  • Deprecated getAnimators() in favour of the new method scrollAnimators() in FlexibleViewHolder.
  • Deprecated animateView() method, now it is automatically called from the adapter.
  • Deprecated/Moved all add animation methods from Adapter into AnimatorHelper.

DividerItemDecoration

  • Added new method withOffset().
  • Fixing NPE when no divider is provided.
  • Fixed normal item offset.

Improvements

  • Added @since for all methods.
  • Added new method getSectionItemPositions(). It resolves #132.
  • Added new method setAnimateToLimit().
  • Improved performance while filtering high numbers of items. This resolves #133 part 1: call notifyDataSetChanged(). Animation during filtering will be performed if the total items are below the limit of 600 (modifiable value) "current items" OR "filtered items"; Above this limit, notifyDataSetChanged() will be called with no animation. Note: updateDataSet() is also affected by this limit, it improves performance during the refresh operation with big list.
  • Option to display entry animation only. See #125.
  • Method in FlexibleViewHolder.setDragHandleView() is not final anymore!
  • Improvement performance when resetting filter flags for Expandables.
  • Upgrade to Android N (API 24), SupportLib 24.0.0, Java8.
  • Reviewed the comments for AutoMap.
  • Added new method setNotifyMoveOfFilteredItems().
  • Experimental: Added AsyncTask with synchronization animations. Fixed #133 part 2: AsyncFilter. Really lot of items can be filtered in a very short time. Adapter need to be configured accordingly, new Fragment in the demoApp helps to understand how to.
  • Experimental: updateDataSet() is now run Asynchronously too.
  • Experimental: Improved performance when collapseAll() with big list.
  • Experimental: Improved performance on showAllHeader() and hideAllHeaders().
  • Added Payload enumeration, this resolves #134.
  • New methods in Utils class findFirst/LastCompletelyVisibleItemPosition().
  • #144 - Adapter initialization and updateDataSet() with no notifyItemXXX() on headers.
  • #146 - Improved calls to setDisplayHeadersAtStartUp() and showAllHeaders() to avoid duplication of headers by a non correct initialization. As consequence 2 effects are now possible when calling setDisplayHeadersAtStartUp() read method comment, documentation will follow.
  • Adapter can be initialized with a null or empty list: addItems() can be safely called, but no scrolling animation on loading can be performed.
  • Expand items at startup can now expand all Levels of Expandable, if expanded is initially set true. updateDataSet() is also compatible with the last status of sub levels.
  • Method getItemId() now returns item.hashCode() of the current position.
  • Added stableIds to the FlexibleAdapter constructor.
  • Added AnimationDuration (configurable) for Drag and Swipe.
  • #151 - Added SmoothScrollStaggeredLayoutManager + configurable millisecondsPerInch.
  • Added setUseStepDelay() to synchronize the animations all together at startup.
  • Added animators() method in FlexibleViewHolder for scroll animations.
  • Added FlexibleItemAnimator class and AnimatedViewHolder interface for add/remove animations.
  • Added AnimatorHelper.

Fixes

  • Fixed #130 - An unnecessary call to super.onBindViewHolder() caused loop-calls throwing StackOverflowError. As consequence, method onLoadMore() is now protected to be manually called only when METHOD B (binding items in classic way) is implemented.
  • Fixed #128 - getStickySectionHeadersHolder() should return a ViewGroup with LayoutParams coherent and initialized by the user who knows how these params has to be initialized. An exception will be raised if params are nulls.
  • Fixed #126 - onUpdateEmptyView() is not being correctly called in updateDataSet() if size > 0.
  • Fixed #121 - Sticky header glitch when header layout has height set to "wrap_content"
  • Modified FastScroller bubble padding.
  • Fixed #143 - calculatePositionFor() doesn't work correctly when used for addItem().
  • Fixed #142 - 1st item is displayed under sticky header at start up and after updateDataSet().
  • Fixed #139 - Sticky header is not resized on automatic configuration change.
  • Fixed #135 - The AsyncTask changes made obsolete the fix of missing parenthesis generating a NPE.
  • Fixed filter: when no headers are displayed, headers were displayed too. Now the result is coherent with the last state.
  • Fixed some NPEs when null is passed to the constructor.
  • Fixed scrolling animation flags.
  • Fixed #148 - Support for Drag&Drop in GridLayout with Automatic header linkage and headers rebound.
  • Fixed #143 - calculatePositionFor() doesn't work correctly when used with addItem().
  • Fixed #161 - ContextThemeWrapper cannot be cast to Activity when "theme" attribute is used in the layout in combination with getStickySectionHeadersHolder().
  • Fixed #173 - Inconsistency detected with asynchronous item update.
  • When sticky header is enabled, element header at position 0, can now be dragged: layout for sticky header is cleared out, before it was not possible.

Demo App

  • BackPressed now goes back to overall View. App entry fade animation?
  • StaggeredLayout is the default at startUp.
  • Using Method B to bind the FragmentOverall instead of the AutoMap view item interfaces.
  • Fixed bug that triggered the filter when searchView is initially opened.
  • Experimental: Added a real(!) SplashActivity.
  • Added new FragmentAsyncFilter, here you can customize the Adapter and the database dynamically.
  • Added DatabaseType enumeration and created ConfigurationDatabase.
  • Changed layout for drawer and updated the menu with check boxes.
  • Reviewed menu items options with check boxes.
  • Added menu item for toggleFastScroller()
  • Added menu items persistent through some example fragments.
    • For update data set (refresh to see different result);
    • For scrolling animation (reopen the page from the drawer menu to see different result).
  • More JUnit test for ItemComparator
  • Fixed NPE when closing app before the execution of Runnable.
  • Resolved the problem when Layout for sticky header is customized and the header disappeared.
  • Added example for Item Animators and Scroll Animations, reviewed the whole Demo App to fullfil the new requirements for animations.