Something about setting `mErrorMessage` to the same resource string in multiple places, and then having that string broadcast as the error string, seems off. 

It seems cleaner to me to set a boolean `mDidHaveErrors` to true when an error occurs, and then pass that to broadcastUpdate() when the update finishes.

```
private void broadcastUpdate(boolean isUpdating) {
    broadcastUpdate(isUpdating, false);
}
private void broadcastUpdate(boolean isUpdating, boolean hadErrors) {
    Intent intent = new Intent()
            .setAction(ACTION_STATS_UPDATING)
            .putExtra(EXTRA_IS_UPDATING, isUpdating);
    
    if (hadErrors) {
        intent.putExtra(EXTRA_IS_ERROR, true);
        intent.putExtra(EXTRA_ERROR_MSG, getString(R.string.stats_generic_error));
    }
    
    LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
```

Your call on that one, of course - I may just be being nitpicky.