diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsSummaryActivity.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsSummaryActivity.java index 8c6670a..41f362f 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsSummaryActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsSummaryActivity.java @@ -4,12 +4,9 @@ import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; -import android.widget.TextView; - -import org.w3c.dom.Text; import cc.pogoda.mobile.pogodacc.R; -import cc.pogoda.mobile.pogodacc.activity.updater.StationDetailsSummaryValUpdater; +import cc.pogoda.mobile.pogodacc.activity.updater.StationDetailsValuesUpdater; import cc.pogoda.mobile.pogodacc.dao.SummaryDao; import cc.pogoda.mobile.pogodacc.type.StationSummaryActElements; import cc.pogoda.mobile.pogodacc.type.WeatherStation; @@ -21,7 +18,7 @@ public class StationDetailsSummaryActivity extends AppCompatActivity { WeatherStation station = null; - StationDetailsSummaryValUpdater updater = null; + StationDetailsValuesUpdater updater = null; Handler handler = null; @@ -52,7 +49,7 @@ public class StationDetailsSummaryActivity extends AppCompatActivity { elems.updateFromSummary(summary); handler = new Handler(); - updater = new StationDetailsSummaryValUpdater(elems, handler, station.getSystemName()); + updater = new StationDetailsValuesUpdater(elems, handler, station.getSystemName()); if (handler != null && updater != null) { handler.post(updater); diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsWindRoseActivity.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsWindRoseActivity.java index dce5c54..da697e0 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsWindRoseActivity.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/StationDetailsWindRoseActivity.java @@ -3,14 +3,73 @@ package cc.pogoda.mobile.pogodacc.activity; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; +import android.os.Handler; import cc.pogoda.mobile.pogodacc.R; +import cc.pogoda.mobile.pogodacc.activity.updater.StationDetailsValuesUpdater; +import cc.pogoda.mobile.pogodacc.dao.SummaryDao; +import cc.pogoda.mobile.pogodacc.type.StationWindRoseActElements; +import cc.pogoda.mobile.pogodacc.type.WeatherStation; +import cc.pogoda.mobile.pogodacc.type.web.Summary; public class StationDetailsWindRoseActivity extends AppCompatActivity { + WeatherStation station; + + Summary summary; + + StationDetailsValuesUpdater updater = null; + + Handler handler = null; + + StationWindRoseActElements elements; + + public StationDetailsWindRoseActivity() { + + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_station_details_wind_rose); + + station = (WeatherStation) getIntent().getSerializableExtra("station"); + + elements = new StationWindRoseActElements(); + elements.windArrow = findViewById(R.id.imageViewWindRoseArrow); + elements.windSpeed = findViewById(R.id.textViewWindRoseWindSpeed); + elements.windGusts = findViewById(R.id.textViewWindRoseWindGusts); + elements.windDirection = findViewById(R.id.textViewWindRoseWindDirection); + elements.temperature = findViewById(R.id.textViewWindRoseTemperatura); + elements.setActivity(this); + + // create the hanlder which will update the screen in background + handler = new Handler(); + + SummaryDao summary_dao = new SummaryDao(); + + // get the set of current values to preconfigure all elements on this activity + summary = summary_dao.getStationSummary(station.getSystemName()); + + // update parameters (like turn the wind direction arrow) + elements.updateFromSummary(summary); + + handler = new Handler(); + updater = new StationDetailsValuesUpdater(elements, handler, station.getSystemName()); + + if (handler != null && updater != null) { + handler.post(updater); + } + + } + + @Override + protected void onStop() { + + if (handler != null && updater != null) { + handler.removeCallbacks(updater); + } + + super.onStop(); } } \ No newline at end of file diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/StationDetailsSummaryValUpdater.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/StationDetailsValuesUpdater.java similarity index 74% rename from app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/StationDetailsSummaryValUpdater.java rename to app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/StationDetailsValuesUpdater.java index 3997256..7bcba29 100644 --- a/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/StationDetailsSummaryValUpdater.java +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/activity/updater/StationDetailsValuesUpdater.java @@ -3,12 +3,13 @@ package cc.pogoda.mobile.pogodacc.activity.updater; import android.os.Handler; import cc.pogoda.mobile.pogodacc.dao.SummaryDao; +import cc.pogoda.mobile.pogodacc.type.StationActivityElements; import cc.pogoda.mobile.pogodacc.type.StationSummaryActElements; import cc.pogoda.mobile.pogodacc.type.web.Summary; -public class StationDetailsSummaryValUpdater implements Runnable { +public class StationDetailsValuesUpdater implements Runnable { - StationSummaryActElements elements = null; + StationActivityElements elements = null; Handler handler = null; @@ -18,7 +19,7 @@ public class StationDetailsSummaryValUpdater implements Runnable { String station_name; - public StationDetailsSummaryValUpdater(StationSummaryActElements elems, Handler h, String s) { + public StationDetailsValuesUpdater(StationActivityElements elems, Handler h, String s) { elements = elems; handler = h; station_name = s; diff --git a/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationActivityElements.java b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationActivityElements.java new file mode 100644 index 0000000..92c7f25 --- /dev/null +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationActivityElements.java @@ -0,0 +1,16 @@ +package cc.pogoda.mobile.pogodacc.type; + +import android.app.Activity; + +import cc.pogoda.mobile.pogodacc.type.web.Summary; + +/** + * This is an interface which is used to implement classes used for updating the activity content + * asynchronously (in the background) + */ +public interface StationActivityElements { + + public void updateFromSummary(Summary s); + + public void setActivity(Activity act); +} 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 73358fb..d7bea85 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 @@ -1,10 +1,11 @@ package cc.pogoda.mobile.pogodacc.type; +import android.app.Activity; import android.widget.TextView; import cc.pogoda.mobile.pogodacc.type.web.Summary; -public class StationSummaryActElements { +public class StationSummaryActElements implements StationActivityElements { public TextView title = null; public TextView wind_speed_val = null; @@ -75,4 +76,9 @@ public class StationSummaryActElements { humidity_val.setText(String.format("%d %", s.humidity)); } + @Override + public void setActivity(Activity act) { + + } + } 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 new file mode 100644 index 0000000..0663255 --- /dev/null +++ b/app/src/main/java/cc/pogoda/mobile/pogodacc/type/StationWindRoseActElements.java @@ -0,0 +1,69 @@ +package cc.pogoda.mobile.pogodacc.type; + +import android.app.Activity; +import android.content.Context; +import android.widget.ImageView; +import android.widget.TextView; + +import cc.pogoda.mobile.pogodacc.R; +import cc.pogoda.mobile.pogodacc.type.web.Summary; + +public class StationWindRoseActElements implements StationActivityElements { + + public ImageView windArrow; + + public TextView windSpeed; + + public TextView windGusts; + + public TextView windDirection; + + public TextView temperature; + + public TextView pressure; + + Activity activity; + + public StationWindRoseActElements() { + windArrow = null; + windGusts = null; + windSpeed = null; + temperature = null; + pressure = null; + activity = null; + } + + @Override + public void updateFromSummary(Summary s) { + + if (activity == null ) { + return; + } + + if (windArrow != null) { + windArrow.setRotation(s.direction - 225.0f); + } + + if (windSpeed != null) { + windSpeed.setText(activity.getResources().getString(R.string.mean_value) + '\n' + s.average_speed + "m/s"); + } + + if (windGusts != null) { + windGusts.setText(activity.getResources().getString(R.string.wind_gust_short) + '\n' + s.gusts + "m/s"); + } + + if (windDirection != null) { + windDirection.setText(activity.getResources().getString(R.string.wind_direction_short) + '\n' + s.direction + activity.getResources().getString(R.string.degrees_sign)); + } + + if (temperature != null) { + temperature.setText(activity.getResources().getString(R.string.temperature_short) + '\n' + String.format("%.1f", s.avg_temperature) + "°C"); + + } + } + + @Override + public void setActivity(Activity act) { + activity = act; + } +} diff --git a/app/src/main/res/drawable/ic_navigation.xml b/app/src/main/res/drawable/ic_navigation.xml new file mode 100644 index 0000000..a118a01 --- /dev/null +++ b/app/src/main/res/drawable/ic_navigation.xml @@ -0,0 +1,9 @@ + + + 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 af7b89c..7c69b7f 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 @@ -32,6 +32,74 @@ app:layout_constraintTop_toTopOf="@id/guidelineRoseNUp" app:srcCompat="@drawable/ic_brosen_windrose" /> + + + + + + + + + + Archival Data Export From Time Scale - Mean Value + Mean Maximum Value Show previous Hours @@ -41,4 +41,10 @@ Avg: Max: Add to favourities + Gust + Last Hour + Direction + Tempr + Degrees + Maximum gust last 1h \ No newline at end of file diff --git a/app/src/main/res/values-lv-rLV/strings.xml b/app/src/main/res/values-lv-rLV/strings.xml index ad8c145..2df51ec 100644 --- a/app/src/main/res/values-lv-rLV/strings.xml +++ b/app/src/main/res/values-lv-rLV/strings.xml @@ -41,4 +41,10 @@ - - - + - + - + - + - + - + - \ No newline at end of file diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 3a6b9f0..ace1c68 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -41,5 +41,11 @@ - - - + - + - + - + - + - + - \ No newline at end of file diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index b01f899..8feda40 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -24,7 +24,7 @@ Dane Archiwalne Exportuj do Skala czasu - Wartość średnia + Średnia Wartość maksymalna Pokaż ostatnie Godziny @@ -38,7 +38,13 @@ Zastosuj Anuluj Róża Wiatrów - Śr: - Max: + Śr + Max Dodaj do ulubionych + Poryw + Ostatnia Godzina + Kierunek + Tempr + Stopni + Maks poryw ost godzina \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8b70f18..7bc444b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -24,7 +24,7 @@ Dane Archiwalne Eksportuj od Skala czasu - Wartość średnia + Średnia Wartość masymalna Pokaż ostatnie Godziny @@ -38,7 +38,13 @@ Zastosuj Anuluj Róża Wiatrów - Śr: - Max: + Śr + Max Ddoaj do ulubionych + Poryw + Ostatnia Godzina + Kierunek + Tempr + Stopni + Maks poryw ost godzina \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9eee17b..2747cf9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,7 @@ Archival Data Export From Time Scale - Mean Value + Mean Maximum Value Show previous Hours @@ -44,4 +44,11 @@ S E W + Gust + Last Hour + Direction + Tempr + Degrees + ° + Maximum gust last 1h \ No newline at end of file