Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit c3668427 authored by Yorke Lee's avatar Yorke Lee
Browse files

Rewrite animation logic

* Remove old animation-related code. In the past, animations would be applied to a
view everytime getView was called. This is no longer the case so it fixes the issue of
animations triggering everytime the list was scrolled, dialpad opened, etc.

* Make PhoneFavoriteMergedAdapter (and PhoneFavoritesTileAdapter) return stable IDs, so
that they can be used for animations. The ID schemes are described below:
    (N + 1) to -2: CallLogAdapterItems, where N is equal to the number of call log items
    -1: All contacts button
    0 to (N -1): Rows of tiled contacts, where N is equal to the max rows of tiled contacts
    N to infinity: Rows of regular contacts. Their item id is calculated by N + contact_id,
    where contact_id is guaranteed to never be negative.

* Perform animations by saving each view's offset before the data set changes, and then
applying a translation animation to them based on their new offsets in the updated list view.
This is the same method described by the framework team at :
http://graphics-geek.blogspot.com/2013/06/devbytes-animating-listview-deletion.html
    In our case, we need to perform both horizontal and vertical animations because of the
contact tile favorites.

Bug: 10294203

Change-Id: I3ea4ff9995c539267410a264dbbea5ffa02bc6e3
parent 2c0ea3b3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment