Charts: Avoid flashing progressbar when loading is fast

This commit is contained in:
José Rebelo
2025-12-20 18:23:14 +00:00
parent 4f339a1d51
commit 51845a6501
@@ -24,6 +24,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.text.format.DateUtils;
import android.view.View;
@@ -83,6 +84,8 @@ public abstract class AbstractChartFragment<D extends ChartsData> extends Abstra
}
};
private final Handler loadingHandler = new Handler();
private boolean mChartDirty = true;
private AsyncTask refreshTask;
@@ -140,6 +143,7 @@ public abstract class AbstractChartFragment<D extends ChartsData> extends Abstra
@Override
public void onDestroy() {
loadingHandler.removeCallbacksAndMessages(null);
super.onDestroy();
LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(mReceiver);
}
@@ -333,7 +337,8 @@ public abstract class AbstractChartFragment<D extends ChartsData> extends Abstra
ChartsHost chartsHost = getChartsHost();
if (chartsHost != null) {
if (chartsHost.getDevice() != null) {
chartsHost.setLoading(true);
// Delay the loading slightly to prevent quick flashes on fast loading
loadingHandler.postDelayed(() -> chartsHost.setLoading(true), 300L);
mChartDirty = false;
if (refreshTask != null && refreshTask.getStatus() != AsyncTask.Status.FINISHED) {
refreshTask.cancel(true);
@@ -374,6 +379,7 @@ public abstract class AbstractChartFragment<D extends ChartsData> extends Abstra
return;
}
loadingHandler.removeCallbacksAndMessages(null);
getChartsHost().setLoading(false);
if (getTaskError() != null) {