Fix Inconsistency in log fragment (#1624)

This commit is contained in:
LoveSy 2022-02-04 02:27:34 +08:00 committed by GitHub
parent d06b26db2b
commit 84a2fa1f8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 8 deletions

View File

@ -198,22 +198,26 @@ public class LogsFragment extends BaseFragment {
return log.size();
}
void refresh() {
isLoaded = true;
runOnUiThread(this::notifyDataSetChanged);
@SuppressLint("NotifyDataSetChanged")
void refresh(List<CharSequence> log) {
runOnUiThread(() ->{
isLoaded = true;
this.log = log;
notifyDataSetChanged();
});
}
void fullRefresh() {
runAsync(() -> {
isLoaded = false;
List<CharSequence> tmp;
try (var parcelFileDescriptor = ConfigManager.getLog(verbose);
var br = new BufferedReader(new InputStreamReader(new FileInputStream(parcelFileDescriptor != null ? parcelFileDescriptor.getFileDescriptor() : null)))) {
log = br.lines().parallel().collect(Collectors.toList());
tmp = br.lines().parallel().collect(Collectors.toList());
} catch (Throwable e) {
log = Arrays.asList(Log.getStackTraceString(e).split("\n"));
} finally {
refresh();
tmp = Arrays.asList(Log.getStackTraceString(e).split("\n"));
}
refresh(tmp);
});
}
@ -324,7 +328,6 @@ public class LogsFragment extends BaseFragment {
@Override
public void onResume() {
super.onResume();
adaptor.refresh();
attachListeners();
}