- ⚡️ Kotlin version update
- ⚡️ Licence file update
- The Data interface properties were made immutable, to further separate the extension from the actual contents.
- 🐎 A weak map of item details was added, which reuses data unless a change occurs. This, along with recursive iteration over the parent items, greatly increases performance.
⚡️ The data used for updating an item during recycling, has been grouped into a data class. In that, the same information is recursively added for any parent items.
➕ Adds the ability to override the processing function of the items while their addition iteration is performed. This way the user can handle edge cases of empty main data or empty enclosed data, and possibly append to the recycler contents without tempering with the original data.
⚡️ The sample project has been updated using the above feature to show a placeholder Pink variant for the Pink rows that have no enlosed White items.
🎉 Initial implementation of the concept, with all needed interfaces and abstract classes exposed and all core (add, remove, append, expand, contract) functionalities.
Included is a sample project which showcases the above features and contains Gray rows without any enclosed data, Red rows with Pink enclosed rows, which have White enclosed rows in their own turn. All items are visually adjusted based on their overall position and their relative position to their enclosing item.
Also, the following Click Events are added:
- 🚚 Clicking on a non empty Red row removes all contents, clicking on an empty Red row generates random Pink rows.
- 🚚 Clicking on a non empty Pink row removes all contents, clicking on an empty Pink row removes itself.
- 🚚 Clicking on a White row removes itself.