Rewrite grouping logic in Dialer.
- Remove expand/collapse and item type logic in GroupingListAdapter.
Losing some potential functionality, but it does not adversely
affect how we currently group, and makes grouping easier to
understanding.
+ Rewrite GroupingListAdapter to provide O(1) lookup for group size
and getItem. This requires maintaining a SparseIntArray of metadata
for each list item. Cut metadata storage from long to int, to help
adjust for the larger memory overhead.
+ Simplify the logic for building and maintaing the metadata in the
GroupingListAdapter, offloading much of it to the SparseIntArray.
+ Explictily add all groups, including groups with single items,
in the CallLogBroupBuilder.
+ Tidied up logic in CallLogGroupBuilder to make it more intuitive
what cases it's handling and what's happening.
+ Updated tests to work and pass with new tests.
Bug: 23422274
Change-Id: Ia7a00c4b580813cade87fdc054ffdd702f59c12c
7 files changed