kopia lustrzana https://github.com/SP8EBC/MeteoSystem
speed up FavouritesStationSummaryUpdater in case of empty favs list
rodzic
5a211da64e
commit
57fe1bfbfd
|
@ -17,6 +17,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
import org.tinylog.Logger;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
@ -117,6 +118,8 @@ public class FavouritesActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
|
Logger.debug("[FavouritesActivity][onResume]");
|
||||||
|
|
||||||
super.onResume();
|
super.onResume();
|
||||||
EventBus.getDefault().register(this);
|
EventBus.getDefault().register(this);
|
||||||
updateStationList();
|
updateStationList();
|
||||||
|
@ -153,6 +156,7 @@ public class FavouritesActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void allStationsEventHandler(@NonNull AllStationsReceivedEvent event) {
|
public void allStationsEventHandler(@NonNull AllStationsReceivedEvent event) {
|
||||||
|
Logger.info("[allStationsEventHandler][event = " + event.toString() +"]");
|
||||||
updateStationList();
|
updateStationList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class FavouritesStationSummaryUpdater implements Runnable {
|
||||||
// check if map was set so something
|
// check if map was set so something
|
||||||
if (map != null && map.size() > 0) {
|
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
|
// get a set of all stations from favourites
|
||||||
Set<Map.Entry<String, Summary>> _set_of_stations_names = map.entrySet();
|
Set<Map.Entry<String, Summary>> _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)
|
// check if summary was returned (as it will not in case on HTTP 500 or something else)
|
||||||
if (summary != null) {
|
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
|
// put the summary back into the map
|
||||||
map.put(station_name, summary);
|
map.put(station_name, summary);
|
||||||
|
@ -80,7 +80,13 @@ public class FavouritesStationSummaryUpdater implements Runnable {
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
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]");
|
Logger.info("[FavouritesStationSummaryUpdater][run][no station to update]");
|
||||||
|
|
||||||
|
stop();
|
||||||
|
start(5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (forceUpdate) {
|
if (forceUpdate) {
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class AvailableParametersDao {
|
||||||
Logger.error("[AvailableParametersDao][Worker][worker is done, response is null]");
|
Logger.error("[AvailableParametersDao][Worker][worker is done, response is null]");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Logger.debug("[AvailableParametersDao][Worker][worker is done][response.code() = " + response.code() +"]");
|
Logger.info("[AvailableParametersDao][Worker][worker is done][response.code() = " + response.code() +"]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class SummaryDao {
|
||||||
SummaryConsumer consumer = restClient.getWeatherStationClient().create(SummaryConsumer.class);
|
SummaryConsumer consumer = restClient.getWeatherStationClient().create(SummaryConsumer.class);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Logger.debug("[SummaryDao][Worker][station = " + station +"]");
|
Logger.info("[SummaryDao][Worker][station = " + station +"]");
|
||||||
|
|
||||||
response = consumer.getSummaryForStation(station).execute();
|
response = consumer.getSummaryForStation(station).execute();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -54,7 +54,7 @@ public class SummaryDao {
|
||||||
Logger.error("[SummaryDao][Worker][worker is done, response is null]");
|
Logger.error("[SummaryDao][Worker][worker is done, response is null]");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Logger.debug("[SummaryDao][Worker][worker is done][response.code() = " + response.code() +"]");
|
Logger.info("[SummaryDao][Worker][worker is done][response.code() = " + response.code() +"]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue