Handle full-disk exceptions when viewing call log.

When the internal storage is full, resetNewCallsFlag() fails
and causes Contacts to crash.  Since this method is called
whenever the tab is opened, it makes the call log
inaccessible to users.  (We should always keep the phone in
a usable state, even when the disk is full.)

Because startUpdate() runs on a background thread, I'm
overriding the WorkerHandler used by AsyncQueryHandler to
wrap any calls in a try/catch block.

Also added a try/catch block around the code that updates
any missing contact details after a caller-ID query has
returned, which could also cause a crash when the user
switches to the call log tab.

Partially fixes http://b/issue?id=1966505
1 file changed