64 lines
3.0 KiB
Kotlin
64 lines
3.0 KiB
Kotlin
package com.tommasoberlose.anotherwidget.components
|
|
|
|
import android.content.Context
|
|
import android.view.View
|
|
import androidx.core.view.isVisible
|
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
|
import com.tommasoberlose.anotherwidget.R
|
|
import com.tommasoberlose.anotherwidget.global.Constants
|
|
import com.tommasoberlose.anotherwidget.global.Preferences
|
|
import com.tommasoberlose.anotherwidget.helpers.WeatherHelper
|
|
import com.tommasoberlose.anotherwidget.utils.openURI
|
|
import kotlinx.android.synthetic.main.weather_provider_settings_layout.view.*
|
|
|
|
class BottomSheetWeatherProviderSettings(context: Context, callback: () -> Unit) : BottomSheetDialog(context, R.style.BottomSheetDialogTheme) {
|
|
|
|
init {
|
|
val view = View.inflate(context, R.layout.weather_provider_settings_layout, null)
|
|
view.api_key_container.isVisible = WeatherHelper.isKeyRequired()
|
|
view.action_save_key.isVisible = WeatherHelper.isKeyRequired()
|
|
|
|
WeatherHelper.getProviderInfoTitle(context).let { title ->
|
|
view.info_title.text = title
|
|
view.info_title.isVisible = title != ""
|
|
}
|
|
|
|
WeatherHelper.getProviderInfoSubtitle(context).let { subtitle ->
|
|
view.info_subtitle.text = subtitle
|
|
view.info_subtitle.isVisible = subtitle != ""
|
|
}
|
|
|
|
view.info_provider.text = WeatherHelper.getProviderName(context)
|
|
|
|
view.api_key.editText?.setText(when (Constants.WeatherProvider.fromInt(Preferences.weatherProvider)) {
|
|
Constants.WeatherProvider.OPEN_WEATHER -> Preferences.weatherProviderApiOpen
|
|
Constants.WeatherProvider.WEATHER_BIT -> Preferences.weatherProviderApiWeatherBit
|
|
Constants.WeatherProvider.WEATHER_API -> Preferences.weatherProviderApiWeatherApi
|
|
Constants.WeatherProvider.HERE -> Preferences.weatherProviderApiHere
|
|
Constants.WeatherProvider.ACCUWEATHER -> Preferences.weatherProviderApiAccuweather
|
|
Constants.WeatherProvider.WEATHER_GOV,
|
|
Constants.WeatherProvider.YR,
|
|
null -> ""
|
|
})
|
|
|
|
view.action_open_provider.setOnClickListener {
|
|
context.openURI(WeatherHelper.getProviderLink())
|
|
}
|
|
|
|
view.action_save_key.setOnClickListener {
|
|
val key = view.api_key.editText?.text.toString()
|
|
when (Constants.WeatherProvider.fromInt(Preferences.weatherProvider)) {
|
|
Constants.WeatherProvider.OPEN_WEATHER -> Preferences.weatherProviderApiOpen = key
|
|
Constants.WeatherProvider.WEATHER_BIT -> Preferences.weatherProviderApiWeatherBit = key
|
|
Constants.WeatherProvider.WEATHER_API -> Preferences.weatherProviderApiWeatherApi = key
|
|
Constants.WeatherProvider.HERE -> Preferences.weatherProviderApiHere = key
|
|
Constants.WeatherProvider.ACCUWEATHER -> Preferences.weatherProviderApiAccuweather = key
|
|
else -> {}
|
|
}
|
|
callback.invoke()
|
|
dismiss()
|
|
}
|
|
|
|
setContentView(view)
|
|
}
|
|
} |