From 93aab76863451244f5d3b908fd45229555d8a1be Mon Sep 17 00:00:00 2001 From: Mateusz Lubecki Date: Fri, 26 Nov 2021 00:27:13 +0100 Subject: [PATCH] corrected formatting in WindRose activity and Trend --- .../pogodacc/activity/FavouritesActivity.java | 4 +- .../pogodacc/activity/MainActivity.java | 12 +- .../StationDetailsPlotsTemperature.java | 2 +- .../activity/StationDetailsPlotsWind.java | 4 +- .../pressure/PressureTrendViewModel.java | 10 +- .../TemperatureTrendViewModel.java | 20 +-- .../trend/wind/WindTrendViewModel.java | 62 ++++---- .../FavouritesStationDetailsUpdater.java | 8 +- .../type/StationSummaryActElements.java | 6 +- .../type/StationWindRoseActElements.java | 10 +- .../mobile/pogodacc/type/web/Summary.java | 138 ++++++++++++++++-- .../mobile/pogodacc/type/web/TrendData.java | 132 ++++++++++++++++- .../activity_station_details_wind_rose.xml | 6 +- 13 files changed, 328 insertions(+), 86 deletions(-) diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/FavouritesActivity.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/FavouritesActivity.java index 90c7e67..772c02f 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/FavouritesActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/FavouritesActivity.java @@ -122,6 +122,8 @@ public class FavouritesActivity extends AppCompatActivity { protected void onDestroy() { super.onDestroy(); - adapter.stopUpdater(); + if (adapter != null) { + adapter.stopUpdater(); + } } } diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/MainActivity.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/MainActivity.java index 214a57e..1235699 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/MainActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/MainActivity.java @@ -149,12 +149,12 @@ public class MainActivity extends AppCompatActivity { AndroidThreeTen.init(this); - Locale locale = new Locale("pl"); - Locale.setDefault(locale); - Resources resources = this.getResources(); - Configuration config = resources.getConfiguration(); - config.setLocale(locale); - resources.updateConfiguration(config, resources.getDisplayMetrics()); +// Locale locale = new Locale("pl"); +// Locale.setDefault(locale); +// Resources resources = this.getResources(); +// Configuration config = resources.getConfiguration(); +// config.setLocale(locale); +// resources.updateConfiguration(config, resources.getDisplayMetrics()); setContentView(R.layout.activity_main); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsTemperature.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsTemperature.java index bcea3b2..460eb76 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsTemperature.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsTemperature.java @@ -137,7 +137,7 @@ public class StationDetailsPlotsTemperature extends AppCompatActivity implements // use wind speed label (on the left) to display the temperature if (this.textViewSpeed != null && this.textViewTimestamp != null) { this.textViewTimestamp.setText(date); - this.textViewSpeed.setText(getString(R.string.temperature) + String.format(": %.1f°C", temperature)); + this.textViewSpeed.setText(getString(R.string.temperature) + String.format(": %.1f°C", temperature).replace(',', '.')); } else { return; diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsWind.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsWind.java index b50b5cf..2625e63 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsWind.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsPlotsWind.java @@ -263,8 +263,8 @@ public class StationDetailsPlotsWind extends AppCompatActivity implements SeekBa if (this.textViewGusts != null && this.textViewSpeed != null && this.textViewTimestamp != null) { this.textViewTimestamp.setText(date); - this.textViewSpeed.setText(getString(R.string.mean_value_short) + String.format(": %.1f%s", mean, unit)); - this.textViewGusts.setText(getString(R.string.wind_gust_short) + String.format(": %.1f%s", gusts, unit)); + this.textViewSpeed.setText(getString(R.string.mean_value_short) + String.format(": %.1f%s", mean, unit).replace(',', '.')); + this.textViewGusts.setText(getString(R.string.wind_gust_short) + String.format(": %.1f%s", gusts, unit).replace(',', '.')); } else { return; diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/pressure/PressureTrendViewModel.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/pressure/PressureTrendViewModel.java index abde3b0..a5cca3e 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/pressure/PressureTrendViewModel.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/pressure/PressureTrendViewModel.java @@ -51,11 +51,11 @@ public class PressureTrendViewModel extends ViewModel { stationName.postValue(trend.displayed_name); if (!trend.current_qnh_qf.equals("NOT_AVALIABLE") && !trend.current_qnh_qf.equals("NO_DATA")) { - currentValue.postValue(String.format("%.1f hPa", trend.pressure_trend.current_value)); - twoHoursValue.postValue(String.format("%.1f hPa", trend.pressure_trend.two_hours_value)); - fourHoursValue.postValue(String.format("%.1f hPa", trend.pressure_trend.four_hours_value)); - sixHoursValue.postValue(String.format("%.1f hPa", trend.pressure_trend.six_hours_value)); - eightHoursValue.postValue(String.format("%.1f hPa", trend.pressure_trend.eight_hours_value)); + currentValue.postValue(String.format("%shPa", trend.pressure_trend.getCurrentVal(true, false))); + twoHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getTwoHoursVal(true, false))); + fourHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getFourHoursVal(true, false))); + sixHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getSixHoursVal(true, false))); + eightHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getEightHoursVal(true, false))); } else { currentValue.postValue("-- hPa"); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/temperature/TemperatureTrendViewModel.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/temperature/TemperatureTrendViewModel.java index e1dac5e..9305778 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/temperature/TemperatureTrendViewModel.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/temperature/TemperatureTrendViewModel.java @@ -118,11 +118,11 @@ public class TemperatureTrendViewModel extends ViewModel { if (!trend.current_humidity_qf.equals("NOT_AVALIABLE") && !trend.current_humidity_qf.equals("NO_DATA")) { - currentHumidityValue.postValue(String.format("%.1f %%", trend.humidity_trend.current_value)); - twoHoursHumidityValue.postValue(String.format("%.1f %%", trend.humidity_trend.two_hours_value)); - fourHoursHumidityValue.postValue(String.format("%.1f %%", trend.humidity_trend.four_hours_value)); - sixHoursHumidityValue.postValue(String.format("%.1f %%", trend.humidity_trend.six_hours_value)); - eightHoursHumidityValue.postValue(String.format("%.1f %%", trend.humidity_trend.eight_hours_value)); + currentHumidityValue.postValue(String.format("%s%%", trend.humidity_trend.getCurrentVal(true, true))); + twoHoursHumidityValue.postValue(String.format("%s%%", trend.humidity_trend.getTwoHoursVal(true, true))); + fourHoursHumidityValue.postValue(String.format("%s%%", trend.humidity_trend.getFourHoursVal(true, true))); + sixHoursHumidityValue.postValue(String.format("%s%%", trend.humidity_trend.getSixHoursVal(true, true))); + eightHoursHumidityValue.postValue(String.format("%s%%", trend.humidity_trend.getEightHoursVal(true, true))); } else { @@ -136,11 +136,11 @@ public class TemperatureTrendViewModel extends ViewModel { } if (!trend.current_temperature_qf.equals("NOT_AVALIABLE") && !trend.current_temperature_qf.equals("NO_DATA")) { - currentTemperatureValue.postValue(String.format("%.1f °C", trend.temperature_trend.current_value)); - twoHoursTemperatureValue.postValue(String.format("%.1f °C", trend.temperature_trend.two_hours_value)); - fourHoursTemperatureValue.postValue(String.format("%.1f °C", trend.temperature_trend.four_hours_value)); - sixHoursTemperatureValue.postValue(String.format("%.1f °C", trend.temperature_trend.six_hours_value)); - eightHoursTemperatureValue.postValue(String.format("%.1f °C", trend.temperature_trend.eight_hours_value)); + currentTemperatureValue.postValue(String.format("%s°C", trend.temperature_trend.getCurrentVal(true, false))); + twoHoursTemperatureValue.postValue(String.format("%s°C", trend.temperature_trend.getTwoHoursVal(true, false))); + fourHoursTemperatureValue.postValue(String.format("%s°C", trend.temperature_trend.getFourHoursVal(true, false))); + sixHoursTemperatureValue.postValue(String.format("%s°C", trend.temperature_trend.getSixHoursVal(true, false))); + eightHoursTemperatureValue.postValue(String.format("%s°C", trend.temperature_trend.getEightHoursVal(true, false))); } else { currentTemperatureValue.postValue("-- °C"); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/wind/WindTrendViewModel.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/wind/WindTrendViewModel.java index e5ad456..d10bf83 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/wind/WindTrendViewModel.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/trend/wind/WindTrendViewModel.java @@ -121,33 +121,45 @@ public class WindTrendViewModel extends ViewModel { displayedStationName.postValue(trend.displayed_name); if (!trend.current_wind_qf.equals("NOT_AVALIABLE") && !trend.current_wind_qf.equals("NO_DATA")) { - if (AppConfiguration.replaceMsWithKnots) { - // if knots - currentMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.current_value)); - twoHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.two_hours_value)); - fourHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.four_hours_value)); - sixHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.six_hours_value)); - eightHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.eight_hours_value)); + currentMeanValue.postValue(String.format("%sm/s", trend.average_wind_speed_trend.getCurrentVal(true, false))); + twoHoursMeanValue.postValue(String.format("%sm/s", trend.average_wind_speed_trend.getTwoHoursVal(true, false))); + fourHoursMeanValue.postValue(String.format("%sm/s", trend.average_wind_speed_trend.getFourHoursVal(true, false))); + sixHoursMeanValue.postValue(String.format("%sm/s", trend.average_wind_speed_trend.getSixHoursVal(true, false))); + eightHoursMeanValue.postValue(String.format("%sm/s", trend.average_wind_speed_trend.getEightHoursVal(true, false))); - currentGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.current_value)); - twoHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.two_hours_value)); - fourHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.four_hours_value)); - sixHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.six_hours_value)); - eightHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.eight_hours_value)); - } else { - // if meters per second - currentMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.current_value)); - twoHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.two_hours_value)); - fourHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.four_hours_value)); - sixHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.six_hours_value)); - eightHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.eight_hours_value)); + currentGustValue.postValue(String.format("%sm/s", trend.maximum_wind_speed_trend.getCurrentVal(true, false))); + twoHoursGustValue.postValue(String.format("%sm/s", trend.maximum_wind_speed_trend.getTwoHoursVal(true, false))); + fourHoursGustValue.postValue(String.format("%sm/s", trend.maximum_wind_speed_trend.getFourHoursVal(true, false))); + sixHoursGustValue.postValue(String.format("%sm/s", trend.maximum_wind_speed_trend.getSixHoursVal(true, false))); + eightHoursGustValue.postValue(String.format("%sm/s", trend.maximum_wind_speed_trend.getEightHoursVal(true, false))); - currentGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.current_value)); - twoHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.two_hours_value)); - fourHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.four_hours_value)); - sixHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.six_hours_value)); - eightHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.eight_hours_value)); - } +// if (AppConfiguration.replaceMsWithKnots) { +// // if knots +// currentMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.current_value)); +// twoHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.two_hours_value)); +// fourHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.four_hours_value)); +// sixHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.six_hours_value)); +// eightHoursMeanValue.postValue(String.format("%.0f kts", trend.average_wind_speed_trend.eight_hours_value)); +// +// currentGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.current_value)); +// twoHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.two_hours_value)); +// fourHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.four_hours_value)); +// sixHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.six_hours_value)); +// eightHoursGustValue.postValue(String.format("%.0f kts", trend.maximum_wind_speed_trend.eight_hours_value)); +// } else { +// // if meters per second +// currentMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.current_value)); +// twoHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.two_hours_value)); +// fourHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.four_hours_value)); +// sixHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.six_hours_value)); +// eightHoursMeanValue.postValue(String.format("%.1f m/s", trend.average_wind_speed_trend.eight_hours_value)); +// +// currentGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.current_value)); +// twoHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.two_hours_value)); +// fourHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.four_hours_value)); +// sixHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.six_hours_value)); +// eightHoursGustValue.postValue(String.format("%.1f m/s", trend.maximum_wind_speed_trend.eight_hours_value)); +// } } else { currentMeanValue.postValue("--"); twoHoursMeanValue.postValue("--"); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/FavouritesStationDetailsUpdater.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/FavouritesStationDetailsUpdater.java index 359723a..163063f 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/FavouritesStationDetailsUpdater.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/FavouritesStationDetailsUpdater.java @@ -87,18 +87,18 @@ public class FavouritesStationDetailsUpdater implements Runnable { // check if station transmits humidity if (summary.humidity_qf_native.equals(QualityFactor.FULL) || summary.humidity_qf_native.equals(QualityFactor.DEGRADED)) { - str = String.format("%d°C %d%% %s %s max %s", Math.round(summary.avg_temperature), summary.humidity, summary.getWindDirStr(), summary.getWindspeedStr(), summary.getWindgustsStr()); + str = String.format("%s %d%% %s %s max %s", summary.getTemperatureStr(false, true), summary.humidity, summary.getWindDirStr(), summary.getWindspeedStr(false), summary.getWindgustsStr(false)); } else { - str = String.format("%d°C %s %s max %s", Math.round(summary.avg_temperature), summary.getWindDirStr(), summary.getWindspeedStr(), summary.getWindgustsStr()); + str = String.format("%s %s %s max %s", summary.getTemperatureStr(false, true), summary.getWindDirStr(), summary.getWindspeedStr(false), summary.getWindgustsStr(false)); } } else { if (summary.humidity_qf_native.equals(QualityFactor.FULL) || summary.humidity_qf_native.equals(QualityFactor.DEGRADED)) { - str = String.format("%d°C %d%%", Math.round(summary.avg_temperature), summary.humidity); + str = String.format("%s %d%%", summary.getTemperatureStr(false, true), summary.humidity); } else { - str = String.format("%d°C", Math.round(summary.avg_temperature)); + str = String.format("%s", summary.getTemperatureStr(false, true)); } } diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationSummaryActElements.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationSummaryActElements.java index 3bcb6f5..80350dd 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationSummaryActElements.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationSummaryActElements.java @@ -109,14 +109,14 @@ public class StationSummaryActElements implements StationActivityElements { } if (!s.wind_qf_native.equals(QualityFactor.NOT_AVALIABLE) && enabledForStation.windSpeed) { - wind_speed_val.setText(String.format("%s", s.getWindspeedStr())); + wind_speed_val.setText(String.format("%s", s.getWindspeedStr(true))); } else { wind_speed_val.setText("---"); } if (!s.wind_qf_native.equals(QualityFactor.NOT_AVALIABLE) && enabledForStation.windGusts) { - wind_gusts_val.setText(String.format("%s", s.getWindgustsStr())); + wind_gusts_val.setText(String.format("%s", s.getWindgustsStr(true))); } else { wind_gusts_val.setText("---"); @@ -130,7 +130,7 @@ public class StationSummaryActElements implements StationActivityElements { } if (!s.temperature_qf_native.equals(QualityFactor.NOT_AVALIABLE)) { - temperature_val.setText(String.format("%.1f °C", s.avg_temperature)); + temperature_val.setText(String.format("%s", s.getTemperatureStr(true, false))); } else { temperature_val.setText("---"); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationWindRoseActElements.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationWindRoseActElements.java index c8f5bdc..5c2df00 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationWindRoseActElements.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationWindRoseActElements.java @@ -94,8 +94,8 @@ public class StationWindRoseActElements implements StationActivityElements { } // create strings with wind speed, gusts etc - String average_speed = String.format("%s", data.getWindspeedStr()); - String gusts_speed = String.format("%s", data.getWindgustsStr()); + String average_speed = String.format("%s", data.getWindspeedStr(true)); + String gusts_speed = String.format("%s", data.getWindgustsStr(true)); // check if wind data is avaliable in the input data set if (!no_data && !data.wind_qf_native.equals(QualityFactor.NOT_AVALIABLE)) { @@ -127,14 +127,14 @@ public class StationWindRoseActElements implements StationActivityElements { // check if temperature is avaliable in input data set if (!no_data && !data.temperature_qf_native.equals(QualityFactor.NOT_AVALIABLE)) { - temperature.setText(activity.getResources().getString(R.string.temperature_short) + '\n' + String.format("%.1f", data.avg_temperature) + "°C"); + temperature.setText(activity.getResources().getString(R.string.temperature_short) + '\n' + String.format("%s", data.getTemperatureStr(true, false))); } else { temperature.setText(activity.getResources().getString(R.string.temperature_short) + '\n' + "---"); } if (!no_data && !old_data) { - String hour_max_gusts = String.format("%s", data.getHourWindgustsStr()); - String hour_min_avg = String.format("%s", data.getHourMinWindspeedStr()); + String hour_max_gusts = String.format("%s", data.getHourWindgustsStr(true)); + String hour_min_avg = String.format("%s", data.getHourMinWindspeedStr(true)); pressure.setText(activity.getResources().getString(R.string.qnh) + ": " + String.format("%d hPa", data.qnh)); maxGust.setText(activity.getResources().getString(R.string.max_1h_gust) + ": " + hour_max_gusts); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/Summary.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/Summary.java index 86547b2..f34ae38 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/Summary.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/Summary.java @@ -4,11 +4,14 @@ import cc.pogoda.mobile.pogodacc.config.AppConfiguration; public class Summary { + private static final String SPACE = " "; + private static final String NO_SPACE = ""; + public long last_timestamp; public int number_of_measurements; - public float avg_temperature; + private float avg_temperature; public String temperature_qf; @@ -48,78 +51,181 @@ public class Summary { wind_qf_native = QualityFactor.UNSET; } - public String getWindspeedStr() { + public float getAvgTemperature() { + return avg_temperature; + } + + public float getAverageSpeed() { + return average_speed; + } + + public float getGusts() { + return gusts; + } + + public float getHourGusts() { + return hour_gusts; + } + + public float getHourMaxAverageSpeed() { + return hour_max_average_speed; + } + + public float getHourMinAverageSpeed() { + return hour_min_average_speed; + } + + public String getTemperatureStr(boolean space, boolean round) { String out; + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + + if (round) { + out = String.format("%d%s°C", Math.round(avg_temperature), s); + } + else { + out = String.format("%.1f%s°C", avg_temperature, s); + } + + out = out.replace(',', '.'); + + return out; + } + + public String getWindspeedStr(boolean space) { + String out; + + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + if (AppConfiguration.replaceMsWithKnots) { float knots = this.average_speed * 1.94f; - out = String.format("%2d kn", Math.round(knots)); + out = String.format("%2d%skn", Math.round(knots), s); } else { - out = String.format("%4.1fm/s", this.average_speed); + out = String.format("%4.1f%sm/s", this.average_speed, s); } + out = out.replace(',', '.'); + return out; } - public String getHourMinWindspeedStr() { + public String getHourMinWindspeedStr(boolean space) { String out; + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + if (AppConfiguration.replaceMsWithKnots) { float knots = this.hour_min_average_speed * 1.94f; - out = String.format("%2d kn", Math.round(knots)); + out = String.format("%2d%skn", Math.round(knots), s); } else { - out = String.format("%4.1fm/s", this.hour_min_average_speed); + out = String.format("%4.1f%sm/s", this.hour_min_average_speed, s); } + out = out.replace(',', '.'); + return out; } - public String getHourMaxWindspeedStr() { + public String getHourMaxWindspeedStr(boolean space) { String out; + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + if (AppConfiguration.replaceMsWithKnots) { float knots = this.hour_max_average_speed * 1.94f; - out = String.format("%2d kn", Math.round(knots)); + out = String.format("%2d%skn", Math.round(knots), s); } else { - out = String.format("%4.1fm/s", this.hour_max_average_speed); + out = String.format("%4.1f%sm/s", this.hour_max_average_speed, s); } + out = out.replace(',', '.'); + return out; } - public String getWindgustsStr() { + public String getWindgustsStr(boolean space) { String out; + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + if (AppConfiguration.replaceMsWithKnots) { float knots = this.gusts * 1.94f; - out = String.format("%2d kn", Math.round(knots)); + out = String.format("%2d%skn", Math.round(knots), s); } else { - out = String.format("%4.1fm/s", this.gusts); + out = String.format("%4.1f%sm/s", this.gusts, s); } + out = out.replace(',', '.'); + return out; } - public String getHourWindgustsStr() { + public String getHourWindgustsStr(boolean space) { String out; + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + if (AppConfiguration.replaceMsWithKnots) { float knots = this.hour_gusts * 1.94f; - out = String.format("%2d kn", Math.round(knots)); + out = String.format("%2d%skn", Math.round(knots), s); } else { - out = String.format("%4.1fm/s", this.hour_gusts); + out = String.format("%4.1f%sm/s", this.hour_gusts, s); } + out = out.replace(',', '.'); + return out; } diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/TrendData.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/TrendData.java index d7979c1..c063f41 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/TrendData.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/web/TrendData.java @@ -2,16 +2,138 @@ package cc.pogoda.mobile.pogodacc.type.web; public class TrendData { - public float current_value; + private static final String SPACE = " "; + private static final String NO_SPACE = ""; - public float two_hours_value; + private float current_value; - public float four_hours_value; + private float two_hours_value; - public float six_hours_value; + private float four_hours_value; - public float eight_hours_value; + private float six_hours_value; + private float eight_hours_value; + + public String getCurrentVal(boolean space, boolean round) { + String out; + + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + + if (round) { + out = String.format("%d%s", Math.round(current_value), s); + } + else { + out = String.format("%.1f%s", current_value, s); + } + + out = out.replace(',', '.'); + + return out; + } + + public String getTwoHoursVal(boolean space, boolean round) { + String out; + + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + + if (round) { + out = String.format("%d%s", Math.round(two_hours_value), s); + } + else { + out = String.format("%.1f%s", two_hours_value, s); + } + + out = out.replace(',', '.'); + + return out; + } + + public String getFourHoursVal(boolean space, boolean round) { + String out; + + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + + if (round) { + out = String.format("%d%s", Math.round(four_hours_value), s); + } + else { + out = String.format("%.1f%s", four_hours_value, s); + } + + out = out.replace(',', '.'); + + return out; + } + + public String getSixHoursVal(boolean space, boolean round) { + String out; + + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + + if (round) { + out = String.format("%d%s", Math.round(six_hours_value), s); + } + else { + out = String.format("%.1f%s", six_hours_value, s); + } + + out = out.replace(',', '.'); + + return out; + } + + public String getEightHoursVal(boolean space, boolean round) { + String out; + + String s; + + if (space) { + s = SPACE; + } + else { + s = NO_SPACE; + } + + if (round) { + out = String.format("%d%s", Math.round(eight_hours_value), s); + } + else { + out = String.format("%.1f%s", eight_hours_value, s); + } + + out = out.replace(',', '.'); + + return out; + } } diff --git a/app/src/main/res/layout/activity_station_details_wind_rose.xml b/app/src/main/res/layout/activity_station_details_wind_rose.xml index 5432b05..8286656 100644 --- a/app/src/main/res/layout/activity_station_details_wind_rose.xml +++ b/app/src/main/res/layout/activity_station_details_wind_rose.xml @@ -177,7 +177,7 @@ android:fontFamily="@font/alegreya_sans_sc_medium" android:text="@string/max_1h_gust" android:textAlignment="center" - android:textSize="24sp" + android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" @@ -192,7 +192,7 @@ android:fontFamily="@font/alegreya_sans_sc_medium" android:text="@string/min_1h_avg" android:textAlignment="center" - android:textSize="24sp" + android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" @@ -208,7 +208,7 @@ android:fontFamily="@font/alegreya_sans_sc_medium" android:text="@string/qnh" android:textAlignment="center" - android:textSize="24sp" + android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0"