[516248] Improve Navigatable caching

Jumping to the next unresolved diff can be slow for very large trees.
Therefore, this change improves the caching of this tree to enable
finding and selecting the next diff faster.

Keep a full map of the children and ancestors and eagerly populate it
whenever the tree changes.  The population is done on the UI thread, but
only for short periods of time so that the UI thread remains responsive.
Also generalize how the case when the content provider doesn't correctly
know the parent is handled so eliminate the special case code for
difference groups.

Bug: 516248
Change-Id: Ibf55ba9f9930541e923cdba250531ada1ab95664
Signed-off-by: Philip Langer <planger@eclipsesource.com>
2 files changed