From 37fdbc6a589e823f6908b2f80120352798a99710 Mon Sep 17 00:00:00 2001 From: Mateusz Lubecki Date: Thu, 9 Dec 2021 20:50:19 +0100 Subject: [PATCH] changing minimal decimation period and few ux tweaks --- .../pogodacc/activity/ExportDataActivity.java | 4 +- .../pogodacc/activity/MainActivity.java | 2 +- .../pogodacc/activity/SettingsActivity.java | 40 +++++- .../pogodacc/config/AppConfiguration.java | 2 + .../pogodacc/file/ConfigurationFile.java | 3 + .../mobile/pogodacc/file/ExcelExport.java | 18 ++- .../activity_all_stations_linear_layout.xml | 1 + .../main/res/layout/activity_export_data.xml | 4 +- .../activity_favourites_linear_layout.xml | 2 +- ...activity_favourites_linear_layout_data.xml | 1 + app/src/main/res/layout/activity_settings.xml | 52 +++++++- .../activity_station_details_summary.xml | 6 + app/src/main/res/layout/spinner_item.xml | 6 +- app/src/main/res/values-cs-rCZ/strings.xml | 4 +- app/src/main/res/values-cs/strings.xml | 4 +- app/src/main/res/values-de-rAT/strings.xml | 120 ++++++++++++++++++ app/src/main/res/values-de-rDE/strings.xml | 120 ++++++++++++++++++ app/src/main/res/values-de/strings.xml | 120 ++++++++++++++++++ app/src/main/res/values-en-rUS/strings.xml | 2 +- app/src/main/res/values-lv-rLV/strings.xml | 2 +- app/src/main/res/values-lv/strings.xml | 2 +- app/src/main/res/values-pl-rPL/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-ru-rBY/strings.xml | 2 +- app/src/main/res/values-ru-rRU/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-uk-rUA/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- app/src/main/res/values/strings.xml | 5 +- 29 files changed, 501 insertions(+), 33 deletions(-) create mode 100644 app/src/main/res/values-de-rAT/strings.xml create mode 100644 app/src/main/res/values-de-rDE/strings.xml create mode 100644 app/src/main/res/values-de/strings.xml diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/ExportDataActivity.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/ExportDataActivity.java index 18e8d23..84a87e0 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/ExportDataActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/ExportDataActivity.java @@ -94,8 +94,8 @@ public class ExportDataActivity extends AppCompatActivity { try { Integer ln = Integer.valueOf(text.toString()); - if (ln > 100) { - out = 100; + if (ln > 199) { + out = 199; } else { out = ln; 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 e951615..e3683fe 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 @@ -167,7 +167,7 @@ public class MainActivity extends AppCompatActivity { confFile.restoreFromFile(); - if (AppConfiguration.locale != null && AppConfiguration.locale != "default") { + if (AppConfiguration.locale != null && !AppConfiguration.locale.equals("default") ) { Locale locale = new Locale(AppConfiguration.locale); Locale.setDefault(locale); Resources resources = this.getResources(); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/SettingsActivity.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/SettingsActivity.java index 3e757d3..b7c40a7 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/SettingsActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/SettingsActivity.java @@ -3,10 +3,13 @@ package cc.pogoda.mobile.pogodacc.activity; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.CompoundButton; +import android.widget.EditText; import android.widget.Spinner; import android.widget.Switch; import android.widget.TextView; @@ -27,6 +30,8 @@ public class SettingsActivity extends AppCompatActivity { Spinner language; + EditText enditTextMinutesPeriod; + private static String languageNameFromShort(String shortName) { switch (shortName) { case "en-rUS": return "English"; @@ -35,6 +40,7 @@ public class SettingsActivity extends AppCompatActivity { case "uk": return "Українська мова"; case "ru": return "Русский"; case "lv": return "Latviešu"; + case "de": return "Deutsch"; default: return "AUTO"; } } @@ -42,7 +48,7 @@ public class SettingsActivity extends AppCompatActivity { private void updateWindspdUnitTv(boolean b) { if (windspdUnitDisplayTv != null) { if (b) { - windspdUnitDisplayTv.setText(R.string.knots); + windspdUnitDisplayTv.setText(R.string.knots_long); } else { windspdUnitDisplayTv.setText(R.string.meters_per_second); @@ -75,6 +81,37 @@ public class SettingsActivity extends AppCompatActivity { }); } + enditTextMinutesPeriod = (EditText) findViewById(R.id.editTextNumberSettingsMinTimeRes); + enditTextMinutesPeriod.setText(Integer.toString(AppConfiguration.decimationPeriod)); + if (enditTextMinutesPeriod != null) { + enditTextMinutesPeriod.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + if (i2 > 0) { + try { + int newValue = Integer.valueOf(String.valueOf(charSequence), 10); + AppConfiguration.decimationPeriod = newValue; + + confFile.storeToFile(); + } + catch (NumberFormatException e) { + AppConfiguration.decimationPeriod = 0; + } + } + } + + @Override + public void afterTextChanged(Editable editable) { + + } + }); + } + language = (Spinner) findViewById(R.id.spinnerSettingsLanguage); if (language != null) { ArrayAdapter spinnerLanguageAdapter = ArrayAdapter.createFromResource(getBaseContext(), R.array.languages, R.layout.spinner_item); @@ -100,6 +137,7 @@ public class SettingsActivity extends AppCompatActivity { case "Українська мова": AppConfiguration.locale = "uk"; break; case "Русский": AppConfiguration.locale = "ru"; break; case "Latviešu": AppConfiguration.locale = "lv"; break; + case "Deutsch": AppConfiguration.locale = "de"; break; default: AppConfiguration.locale = "default"; } diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/config/AppConfiguration.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/config/AppConfiguration.java index 070138e..d82abcf 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/config/AppConfiguration.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/config/AppConfiguration.java @@ -5,4 +5,6 @@ public class AppConfiguration { public static boolean replaceMsWithKnots = false; public static String locale = "default"; + + public static int decimationPeriod = 0; } diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ConfigurationFile.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ConfigurationFile.java index 48b142f..2d72b4d 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ConfigurationFile.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ConfigurationFile.java @@ -44,12 +44,14 @@ public class ConfigurationFile { AppConfiguration.replaceMsWithKnots = mainObject.getBoolean("replaceMsWithKnots"); AppConfiguration.locale = mainObject.getString("locale"); + AppConfiguration.decimationPeriod = mainObject.getInt("decimationPeriodMinutes"); } catch (IOException | JSONException e) { e.printStackTrace(); AppConfiguration.locale = "default"; AppConfiguration.replaceMsWithKnots = false; + AppConfiguration.decimationPeriod = 0; } } @@ -64,6 +66,7 @@ public class ConfigurationFile { masterObject.put("replaceMsWithKnots", AppConfiguration.replaceMsWithKnots); masterObject.put("locale", AppConfiguration.locale); + masterObject.put("decimationPeriodMinutes", AppConfiguration.decimationPeriod); jsonData = masterObject.toString(); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ExcelExport.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ExcelExport.java index 6c288f7..e2fb325 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ExcelExport.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/file/ExcelExport.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat; +import cc.pogoda.mobile.pogodacc.config.AppConfiguration; import cc.pogoda.mobile.pogodacc.type.WeatherStation; import cc.pogoda.mobile.pogodacc.type.web.ListOfStationData; import cc.pogoda.mobile.pogodacc.type.web.StationData; @@ -54,6 +55,8 @@ public class ExcelExport { int rowNumber = 0; + long previousEpoch = 0; + Cell cell; ZonedDateTime first = ZonedDateTime.ofInstant(Instant.ofEpochSecond(data.list_of_station_data[0].epoch), ZoneId.of(station.getTimezone())); @@ -164,6 +167,13 @@ public class ExcelExport { // put data into output file for (StationData d : data.list_of_station_data) { + + if (d.epoch - previousEpoch < AppConfiguration.decimationPeriod * 60) { + continue; + } + + previousEpoch = d.epoch; + Row r = sheet.createRow(rowNumber++); Cell epoch = r.createCell(0); @@ -200,12 +210,12 @@ public class ExcelExport { windgust.setCellStyle(left); Cell windspeed_kts = r.createCell(8); - windspeed.setCellValue(round(d.windspeed * 0.514)); - windspeed.setCellStyle(left); + windspeed_kts.setCellValue(round(d.windspeed * 0.514)); + windspeed_kts.setCellStyle(left); Cell windgust_kts = r.createCell(9); - windgust.setCellValue(round(d.windgusts * 0.514)); - windgust.setCellStyle(left); + windgust_kts.setCellValue(round(d.windgusts * 0.514)); + windgust_kts.setCellStyle(left); } sheet.setColumnWidth(0, 6600); diff --git a/app/src/main/res/layout/activity_all_stations_linear_layout.xml b/app/src/main/res/layout/activity_all_stations_linear_layout.xml index 04f27ea..4b60f79 100644 --- a/app/src/main/res/layout/activity_all_stations_linear_layout.xml +++ b/app/src/main/res/layout/activity_all_stations_linear_layout.xml @@ -13,6 +13,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" + android:fontFamily="@font/alegreya_sans_sc_medium" android:textSize="20sp" />