diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 32ae14c..2057a61 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -122,6 +122,10 @@ private DrawerLayout drawerLayout; private ListView poiView; private ListView menuView; + private ImageView weatherSymbol; + private TextView weatherCity; + private TextView weatherMinTemp; + private TextView weatherMaxTemp; public static ArrayList pathMarkers; public static OverlayItem imageMarker; @@ -193,6 +197,10 @@ drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); menuView = (ListView) findViewById(R.id.menuList); poiView = (ListView) findViewById(R.id.poiList); + weatherSymbol = (ImageView) findViewById(R.id.weather_symbol); + weatherCity = (TextView) findViewById(R.id.weather_city); + weatherMinTemp = (TextView) findViewById(R.id.weather_min_temp); + weatherMaxTemp = (TextView) findViewById(R.id.weather_max_temp); drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); @@ -609,6 +617,10 @@ @Override public MyWeather postRetrieve(MyWeather weather) { + weatherSymbol.setImageDrawable(weather.getWeatherCodeImage()); + weatherCity.setText(weather.getCity() + ", " + weather.getCountry()); + weatherMinTemp.setText(String.format(res.getString(R.string.preferences_n_degree_floating), weather.getMinTemp())); + weatherMaxTemp.setText(String.format(res.getString(R.string.preferences_n_degree_floating), weather.getMaxTemp())); weatherHandler.displayHints(weather); weatherHandler.displaySevereWeather(weather); return null; diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MyWeather.java b/app/src/main/java/de/apps4ics/mountainnavigation/MyWeather.java index 157d434..2f4ed84 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MyWeather.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MyWeather.java @@ -1,5 +1,6 @@ package de.apps4ics.mountainnavigation; +import android.graphics.drawable.Drawable; import android.location.Location; import com.survivingwithandroid.weather.lib.WeatherCode; @@ -36,6 +37,7 @@ private float maxTemp; private Location location; private String city; + private String country; private long sunrise; private long sunset; private int weatherId; //OWM id @@ -91,6 +93,7 @@ location.setLatitude(weather.location.getLatitude()); location.setLongitude(weather.location.getLongitude()); city = weather.location.getCity(); + country = weather.location.getCountry(); } minTemp = weather.temperature.getMinTemp() > 0 ? weather.temperature.getMinTemp() : -1; maxTemp = weather.temperature.getMaxTemp() > 0 ? weather.temperature.getMaxTemp() : -1; @@ -157,6 +160,140 @@ getWeatherCode() == WeatherCode.SLEET.getCode(); } + public int getWeatherCodeStringId() { + switch(getWeatherCode()) { + case 200: + return R.drawable.ic_chance_of_storm_96; + case 201: + return R.drawable.ic_chance_of_storm_96; + case 202: + return R.drawable.ic_chance_of_storm_96; + case 210: + return R.drawable.ic_chance_of_storm_96; + case 211: + return R.drawable.ic_chance_of_storm_96; + case 212: + return R.drawable.ic_chance_of_storm_96; + case 221: + return R.drawable.ic_chance_of_storm_96; + case 230: + return R.drawable.ic_chance_of_storm_96; + case 231: + return R.drawable.ic_chance_of_storm_96; + case 232: + return R.drawable.ic_chance_of_storm_96; + case 300: + return R.drawable.ic_light_rain_96; + case 301: + return R.drawable.ic_light_rain_96; + case 302: + return R.drawable.ic_light_rain_96; + case 310: + return R.drawable.ic_light_rain_96; + case 311: + return R.drawable.ic_light_rain_96; + case 312: + return R.drawable.ic_light_rain_96; + case 313: + return R.drawable.ic_light_rain_96; + case 314: + return R.drawable.ic_light_rain_96; + case 321: + return R.drawable.ic_light_rain_96; + case 500: + return R.drawable.ic_partly_cloudy_rain_96; + case 501: + return R.drawable.ic_partly_cloudy_rain_96; + case 502: + return R.drawable.ic_partly_cloudy_rain_96; + case 503: + return R.drawable.ic_partly_cloudy_rain_96; + case 504: + return R.drawable.ic_partly_cloudy_rain_96; + case 511: + return R.drawable.ic_snow_96; + case 520: + return R.drawable.ic_light_rain_96; + case 521: + return R.drawable.ic_light_rain_96; + case 522: + return R.drawable.ic_light_rain_96; + case 531: + return R.drawable.ic_light_rain_96; + case 600: + return R.drawable.ic_snow_96; + case 601: + return R.drawable.ic_snow_96; + case 602: + return R.drawable.ic_snow_96; + case 611: + return R.drawable.ic_snow_96; + case 612: + return R.drawable.ic_snow_96; + case 615: + return R.drawable.ic_snow_96; + case 616: + return R.drawable.ic_snow_96; + case 620: + return R.drawable.ic_snow_96; + case 621: + return R.drawable.ic_snow_96; + case 622: + return R.drawable.ic_snow_96; + case 701: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 711: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 721: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 731: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 741: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 751: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 761: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 762: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 771: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 781: + if(isAfterSunset()) return R.drawable.ic_fog_night_96; + else return R.drawable.ic_fog_day_96; + case 800: + if(isAfterSunset()) return R.drawable.ic_bright_moon_96; + else return R.drawable.ic_sun_96; + case 801: + if(isAfterSunset()) return R.drawable.ic_partly_cloudy_night_96; + else return R.drawable.ic_partly_cloudy_day_96; + case 802: + if(isAfterSunset()) return R.drawable.ic_clouds_96; + else return R.drawable.ic_clouds_96; + case 803: + if(isAfterSunset()) return R.drawable.ic_clouds_96; + else return R.drawable.ic_clouds_96; + case 804: + if(isAfterSunset()) return R.drawable.ic_clouds_96; + else return R.drawable.ic_clouds_96; + default: + return R.drawable.ic_clouds_96; + } + } + + public Drawable getWeatherCodeImage() { + return MainActivity.getRes().getDrawable(getWeatherCodeStringId()); + } + public int getClouds() { return clouds; } @@ -171,6 +308,8 @@ public String getCity() { return city; } + public String getCountry() { return country; } + public float getMaxTemp() { return maxTemp; } @@ -227,6 +366,10 @@ this.city = city; } + public void setCountry(String country) { + this.country = country; + } + public void setHumidity(float humidity) { this.humidity = humidity; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/WeatherDatabase.java b/app/src/main/java/de/apps4ics/mountainnavigation/WeatherDatabase.java index c65f442..ae1eaf8 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/WeatherDatabase.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/WeatherDatabase.java @@ -111,6 +111,7 @@ l.setLatitude(cursor.getDouble(cursor.getColumnIndex(KEY_LAT))); l.setLongitude(cursor.getDouble(cursor.getColumnIndex(KEY_LON))); weather.setCity(cursor.getString(cursor.getColumnIndex(KEY_NAME))); + weather.setCountry(cursor.getString(cursor.getColumnIndex(KEY_COUNTRY))); weather.setLocation(l); return weather; } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 5b2efe4..3b4c9d6 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -75,7 +75,53 @@ android:id="@+id/navigation_drawer" android:orientation="vertical" android:layout_height="match_parent" - android:layout_width="match_parent"> + android:layout_width="match_parent" + android:background="#ffff"> + + + + + + + + Verstanden! Dein Standort Latitude: %1$.03f<br/>Longitude: %2$.03f<br/>Höhe: %3$dm<br/>Hinzugefügt: %4$s + Keine Wetterdaten verfügbar de H:m @@ -98,6 +99,7 @@ Spezifischer Ort Ort... %1$s°C + %1$.01f°C © OpenStreetMap-Mitwirkende diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3528489..1b51fa4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -72,6 +72,7 @@ Got it! Your position Latitude: %1$.03f<br/>Longitude: %2$.03f<br/>Altitude: %3$d meters<br/>Added: %4$s + No weather data available en h:m a @@ -100,6 +101,7 @@ Custom location Location... %1$s°C + %1$.01f°C © OpenStreetMap contributors