From 51845a6501354f63d943c78de7a1476e7e623146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 20 Dec 2025 18:23:05 +0000 Subject: [PATCH] Charts: Avoid flashing progressbar when loading is fast --- .../activities/charts/AbstractChartFragment.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java index 82fda8a081..f6c18a0ad0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractChartFragment.java @@ -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 extends Abstra } }; + private final Handler loadingHandler = new Handler(); + private boolean mChartDirty = true; private AsyncTask refreshTask; @@ -140,6 +143,7 @@ public abstract class AbstractChartFragment extends Abstra @Override public void onDestroy() { + loadingHandler.removeCallbacksAndMessages(null); super.onDestroy(); LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(mReceiver); } @@ -333,7 +337,8 @@ public abstract class AbstractChartFragment 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 extends Abstra return; } + loadingHandler.removeCallbacksAndMessages(null); getChartsHost().setLoading(false); if (getTaskError() != null) {