mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Charts: Avoid flashing progressbar when loading is fast
This commit is contained in:
+7
-1
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user