…ent.
There's a race condition between changing adapter contents (causing
calls to requestLayout) and listview drawing, caused by the fact that
the adapter item count is cached: if there's a draw pass happening
between adapter contents change and the following measure pass, the
cached value mItemCount will be wrong, leading to an AIOOBE in
HeaderListViewAdapter. Fix that by enforcing a value update by
re-setting the adapter in refresh().
Also add some missing calls to notifyDataSetChanged().