Improvements for the Magisk hide application list
The current implementation of application list's refreshing and filtering is not thread-safe: adapter's lists are modified from a background thread by AsyncTask's doInBackground() method, this may lead to crashes or unreliable data displayed.
The first commit fixes this behavior, which should improve things regarding issue #41 and pull request #44.
Other commits are fixing/improving the list:
- ~checked state of blacklisted apps is not modifiable,~
- filter is reapplied when the list is reloaded,
- avoid list blinking when reloading,
- code cleaning to avoid unnecessary class fields...
~I didn't know if you wanted to have blacklisted apps permanently checked or unchecked.
To keep the previous behavior I left them unchecked, but if you want to change this you can edit
```holder.checkBox.setChecked(!blacklisted && mHideList.contains(info.packageName));```
```holder.checkBox.setChecked(blacklisted || mHideList.contains(info.packageName));```
in ```app/src/main/java/com/topjohnwu/magisk/adapters/ApplicationAdapter.java``` at line 67 after merging my commits (or I can do it for you).~~~