From 57fe1bfbfd54e04dbedfa52c40c3fc50e48796c9 Mon Sep 17 00:00:00 2001 From: Mateusz Lubecki Date: Sun, 8 May 2022 17:26:47 +0200 Subject: [PATCH] speed up FavouritesStationSummaryUpdater in case of empty favs list --- .../meteosystem/activity/FavouritesActivity.java | 4 ++++ .../updater/FavouritesStationSummaryUpdater.java | 10 ++++++++-- .../mobile/meteosystem/dao/AvailableParametersDao.java | 2 +- .../cc/pogoda/mobile/meteosystem/dao/SummaryDao.java | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/FavouritesActivity.java b/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/FavouritesActivity.java index c3171ff..ec65a06 100644 --- a/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/FavouritesActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/FavouritesActivity.java @@ -17,6 +17,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import org.tinylog.Logger; import java.util.ArrayList; import java.util.Comparator; @@ -117,6 +118,8 @@ public class FavouritesActivity extends AppCompatActivity { @Override protected void onResume() { + Logger.debug("[FavouritesActivity][onResume]"); + super.onResume(); EventBus.getDefault().register(this); updateStationList(); @@ -153,6 +156,7 @@ public class FavouritesActivity extends AppCompatActivity { @Subscribe(threadMode = ThreadMode.MAIN) public void allStationsEventHandler(@NonNull AllStationsReceivedEvent event) { + Logger.info("[allStationsEventHandler][event = " + event.toString() +"]"); updateStationList(); } diff --git a/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/updater/FavouritesStationSummaryUpdater.java b/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/updater/FavouritesStationSummaryUpdater.java index aa5d53c..cd3753c 100644 --- a/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/updater/FavouritesStationSummaryUpdater.java +++ b/app/src/main/java/cc/pogoda/mobile/meteosystem/activity/updater/FavouritesStationSummaryUpdater.java @@ -51,7 +51,7 @@ public class FavouritesStationSummaryUpdater implements Runnable { // check if map was set so something if (map != null && map.size() > 0) { - Logger.debug("[FavouritesStationSummaryUpdater][run][map.size() = " + map.size() +"]"); + Logger.info("[FavouritesStationSummaryUpdater][run][map.size() = " + map.size() +"]"); // get a set of all stations from favourites Set> _set_of_stations_names = map.entrySet(); @@ -70,7 +70,7 @@ public class FavouritesStationSummaryUpdater implements Runnable { // check if summary was returned (as it will not in case on HTTP 500 or something else) if (summary != null) { - Logger.debug("[FavouritesStationSummaryUpdater][run][station_name = " + station_name + "][summary.last_timestamp = " + summary.last_timestamp + "]"); + Logger.info("[FavouritesStationSummaryUpdater][run][station_name = " + station_name + "][summary.last_timestamp = " + summary.last_timestamp + "]"); // put the summary back into the map map.put(station_name, summary); @@ -80,7 +80,13 @@ public class FavouritesStationSummaryUpdater implements Runnable { } else { + // no station to update may be caused by two reasons + // 1. there is no weather station to update + // 2. API responds very slow or there is a problem with internet connection Logger.info("[FavouritesStationSummaryUpdater][run][no station to update]"); + + stop(); + start(5000); } if (forceUpdate) { diff --git a/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/AvailableParametersDao.java b/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/AvailableParametersDao.java index c6044ea..63704f2 100644 --- a/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/AvailableParametersDao.java +++ b/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/AvailableParametersDao.java @@ -46,7 +46,7 @@ public class AvailableParametersDao { Logger.error("[AvailableParametersDao][Worker][worker is done, response is null]"); } else { - Logger.debug("[AvailableParametersDao][Worker][worker is done][response.code() = " + response.code() +"]"); + Logger.info("[AvailableParametersDao][Worker][worker is done][response.code() = " + response.code() +"]"); } } } diff --git a/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/SummaryDao.java b/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/SummaryDao.java index 44eb27e..d128083 100644 --- a/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/SummaryDao.java +++ b/app/src/main/java/cc/pogoda/mobile/meteosystem/dao/SummaryDao.java @@ -32,7 +32,7 @@ public class SummaryDao { SummaryConsumer consumer = restClient.getWeatherStationClient().create(SummaryConsumer.class); try { - Logger.debug("[SummaryDao][Worker][station = " + station +"]"); + Logger.info("[SummaryDao][Worker][station = " + station +"]"); response = consumer.getSummaryForStation(station).execute(); } catch (IOException e) { @@ -54,7 +54,7 @@ public class SummaryDao { Logger.error("[SummaryDao][Worker][worker is done, response is null]"); } else { - Logger.debug("[SummaryDao][Worker][worker is done][response.code() = " + response.code() +"]"); + Logger.info("[SummaryDao][Worker][worker is done][response.code() = " + response.code() +"]"); } } }