InboxRecyclerView Versions Save

Build expandable descendant navigation, inspired by Google Inbox

v3.0

3 years ago

Nested Scrolling

As the highlight of this release, InboxRecyclerView now supports nested scrolling! Manual interception of pull-to-collapse gestures for scrollable content is no longer needed as long as your app uses nested-scrolling aware widgets such as NestedScrollView, RecyclerView, etc.

InboxItemExpander

If you aren’t a fan of using adapter IDs for expanding list items because it’s not 2020 anymore, InboxRecyclerView now lets you supply any Parcelable type using a custom InboxItemExpander. You can read more about it here: Custom expansion keys.

Haptic feedback

This release introduces PageCollapseEligibilityHapticFeedback that can play haptic feedback during a pull-to-collapse gesture to indicate when the page can be released to collapse.

Breaking changes

For apps that use a custom DimPainter, this release unfortunately introduces a breaking change to the function signature of DimPainter#cancelAnimation().

v2.3.0

3 years ago

New features

  • Smoother page expand and collapse animations (comparison video).
  • New animators: scale and none. Thanks @paolovalerdi!
  • Dimming of page when it is pulled past the collapse threshold (video).

Visually breaking changes

  • Pull-to-collapse threshold changed to 56dp (doc).
  • Pull-to-collapse friction factor reduced from 4f to 3.5f (doc).
  • Dimming is now applied to both list and page (doc).

v2.0.0-beta3

4 years ago

v2.0.0-beta1

4 years ago

Improvements

  • InboxRecyclerView and its ExpandablePageLayout no longer need to be of the same dimensions and share the same parent in the view hierarchy (Fixes #10).
  • Support for detaching a ExpandablePageLayouts from its InboxRecyclerView, essentially making it possible to use multiple expandable pages with the same list (Fixes #32).

Breaking changes

InboxRecyclerView#setExpandablePage() is removed in favor of exposing the properties directly:

val page = findViewById<ExpandablePageLayout>(...)
inboxRecyclerView.expandablePage = page

// This is optional. The default value is ~48dp.
page.pullToCollapseThresholdDistance = dp(40)

v1.0.0

4 years ago

No new changes since v1.0.0-rc2.

Making this release to pave way for v2.0.0 which will bring in some breaking changes (more details here).

v1.0.0-rc2

4 years ago

The highlight of this release is a fix for a funny bug that was making InboxRecyclerView unusable with battery saving enabled.

New changes

  • Changed the visibility ExpandablePageLayout#parentToolbar to private in favor of pushParentToolbarOnExpand().
  • Made ExpandablePageLayout#pullToCollapseInterceptor nullable so that it's easy to unregister an interceptor.
  • Made InboxRecyclerView open so that it can be subclassed.

Fixes

  • #25: InboxRecyclerView items doesn't get reset when the page is collapsed while Battery Saver is enabled (5217691).
  • #20: Pressing the back button twice in quick succession while the page was open crashes the app if ExpandablePageLayout#parentToolbar is set (b70c000).
  • Some more fixes related to clearing of state and strong references when ExpandablePageLayout is detached from the Window.

v1.0.0-rc1

5 years ago

This is a major release and I'm fairly confident that InboxRecyclerView is now ready for stable consumption.

  • Fixed a bug that was causing item change animations to get canceled immediately (354e5c1)
  • Fixed two memory leaks with InboxRecyclerView and ExpandablePageLayout. (f3ca4b0, 0b80ec6)
  • Exposed companion functions in ItemExpandAnimator and TintPainter as Java static functions (b8329fb)

v1.0.0-beta3

5 years ago
  • Fixed a bug that was causing InboxRecyclerView items to stay focused even their content had collapsed

v1.0.0-beta2

5 years ago
  • Removed the restriction for positioning ExpandablePageLayout at a higher z-index than InboxRecyclerView
  • Set up publishing of javadocs and sources. Thanks @hzsweers!
  • Specified the dependency on androidx explicitly in readme

v1.0.0-beta1

5 years ago

First release! I'm fairly satisfied with the APIs, but I'll keep the beta tag around for a few days to address feedback.

Here's the announcement blog post: http://saket.me/inboxrecyclerview/