diff --git a/app/src/main/java/com/goobar/io/ad340/api/CurrentWeather.kt b/app/src/main/java/com/goobar/io/ad340/api/CurrentWeather.kt index 159e689..336c6a2 100644 --- a/app/src/main/java/com/goobar/io/ad340/api/CurrentWeather.kt +++ b/app/src/main/java/com/goobar/io/ad340/api/CurrentWeather.kt @@ -9,7 +9,9 @@ data class Coordinates(val lat: Float, val lon: Float) * Api response for OpenWeatherMap's /weather endpoint */ data class CurrentWeather( + @field:Json(name = "dt") val date: Long, val name: String, val coord: Coordinates, - @field:Json(name = "main") val forecast: Forecast + @field:Json(name = "main") val forecast: Forecast, + val weather: List ) \ No newline at end of file diff --git a/app/src/main/java/com/goobar/io/ad340/api/WeatherDescription.kt b/app/src/main/java/com/goobar/io/ad340/api/WeatherDescription.kt new file mode 100644 index 0000000..6ab2997 --- /dev/null +++ b/app/src/main/java/com/goobar/io/ad340/api/WeatherDescription.kt @@ -0,0 +1,3 @@ +package com.goobar.io.ad340.api + +data class WeatherDescription(val main: String, val description: String, val icon: String) \ No newline at end of file diff --git a/app/src/main/java/com/goobar/io/ad340/api/WeeklyForecast.kt b/app/src/main/java/com/goobar/io/ad340/api/WeeklyForecast.kt index bba2930..8c14dd3 100644 --- a/app/src/main/java/com/goobar/io/ad340/api/WeeklyForecast.kt +++ b/app/src/main/java/com/goobar/io/ad340/api/WeeklyForecast.kt @@ -2,7 +2,6 @@ package com.goobar.io.ad340.api import com.squareup.moshi.Json -data class WeatherDescription(val main: String, val description: String, val icon: String) data class Temp(val min: Float, val max: Float) data class DailyForecast( diff --git a/app/src/main/java/com/goobar/io/ad340/forecast/CurrentForecastFragment.kt b/app/src/main/java/com/goobar/io/ad340/forecast/CurrentForecastFragment.kt index cc92f39..a8e5ba5 100644 --- a/app/src/main/java/com/goobar/io/ad340/forecast/CurrentForecastFragment.kt +++ b/app/src/main/java/com/goobar/io/ad340/forecast/CurrentForecastFragment.kt @@ -5,12 +5,18 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView import android.widget.TextView import androidx.lifecycle.Observer import androidx.navigation.fragment.findNavController +import coil.api.load import com.goobar.io.ad340.* import com.goobar.io.ad340.api.CurrentWeather import com.google.android.material.floatingactionbutton.FloatingActionButton +import java.text.SimpleDateFormat +import java.util.* + +private val DATE_FORMAT = SimpleDateFormat("MM-dd-yyyy") /** * Displays the current forecast for the current saved location @@ -29,13 +35,19 @@ class CurrentForecastFragment : Fragment() { val view = inflater.inflate(R.layout.fragment_current_forecast, container, false) val locationName = view.findViewById(R.id.locationName) val tempText = view.findViewById(R.id.tempText) + val dateText = view.findViewById(R.id.dateText) + val forecastIcon = view.findViewById(R.id.forecastIcon) tempDisplaySettingManager = TempDisplaySettingManager(requireContext()) // Create the observer which updates the UI in response to forecast updates - val currentWeatherObserver = Observer { weather -> - locationName.text = weather.name - tempText.text = formatTempForDisplay(weather.forecast.temp, tempDisplaySettingManager.getTempDisplaySetting()) + val currentWeatherObserver = Observer { currentWeather -> + locationName.text = currentWeather.name + tempText.text = formatTempForDisplay(currentWeather.forecast.temp, tempDisplaySettingManager.getTempDisplaySetting()) + dateText.text = DATE_FORMAT.format(Date(currentWeather.date * 1000)) + + val iconId = currentWeather.weather[0].icon + forecastIcon.load("http://openweathermap.org/img/wn/${iconId}@2x.png") } forecastRepository.currentWeather.observe(viewLifecycleOwner, currentWeatherObserver) diff --git a/app/src/main/res/layout/fragment_current_forecast.xml b/app/src/main/res/layout/fragment_current_forecast.xml index 7076ee3..68dd8cb 100644 --- a/app/src/main/res/layout/fragment_current_forecast.xml +++ b/app/src/main/res/layout/fragment_current_forecast.xml @@ -12,12 +12,12 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" - android:layout_marginTop="16dp" android:textAppearance="@style/TextAppearance.AppCompat.Display2" + app:layout_constraintBottom_toTopOf="@+id/dateText" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toEndOf="@+id/forecastIcon" + app:layout_constraintTop_toTopOf="@+id/forecastIcon" tools:text="Seattle" /> + + + + \ No newline at end of file