Race condition patched in Email autocompletion.

Bug 3347962

Root cause of this problem: if the adapter's content gets updated by a backgroung
thread, the PopupDataSetObserver will call showDropDown which will popup the
list.

Added a flag to make this call show the popup iif it is already visible.
This relayout is needed to clear the mDataChanged flag set when the content was
modified and which otherwise prevents touch events on the result list.

ArrayAdapter didn't use its lock to protect access to mObject.

-------------------------------------------------

However, the study of the this race conditions revealed an other bug:

Updated adapter's content is not displayed in filtered AutoCompleteTextView
Bug 3369097

Change-Id: Icd90d452f98231866f4d8a1f6994c1492febecb9
3 files changed