LAFWeatherActivity.kt raw

   1  package io.github.domi04151309.alwayson.activities
   2  
   3  import android.content.Intent
   4  import android.os.Bundle
   5  import android.widget.EditText
   6  import androidx.core.content.edit
   7  import androidx.core.net.toUri
   8  import androidx.preference.Preference
   9  import com.google.android.material.dialog.MaterialAlertDialogBuilder
  10  import io.github.domi04151309.alwayson.R
  11  import io.github.domi04151309.alwayson.custom.BasePreferenceFragment
  12  import io.github.domi04151309.alwayson.helpers.P
  13  
  14  class LAFWeatherActivity : BaseActivity() {
  15      override fun onCreate(savedInstanceState: Bundle?) {
  16          super.onCreate(savedInstanceState)
  17          setContentView(R.layout.activity_settings)
  18          supportFragmentManager
  19              .beginTransaction()
  20              .replace(R.id.settings, PreferenceFragment())
  21              .commit()
  22      }
  23  
  24      class PreferenceFragment : BasePreferenceFragment() {
  25          override fun onCreatePreferences(
  26              savedInstanceState: Bundle?,
  27              rootKey: String?,
  28          ) {
  29              addPreferencesFromResource(R.xml.pref_laf_wf_weather)
  30              checkPermissions()
  31  
  32              findPreference<Preference>(P.WEATHER_FORMAT)?.setOnPreferenceClickListener {
  33                  val dialogView = layoutInflater.inflate(R.layout.dialog_edit_text, null, false)
  34                  val editText = dialogView.findViewById<EditText>(R.id.editText)
  35                  editText.setText(
  36                      preferenceManager.sharedPreferences?.getString(
  37                          P.WEATHER_FORMAT,
  38                          P.WEATHER_FORMAT_DEFAULT,
  39                      ),
  40                  )
  41                  MaterialAlertDialogBuilder(requireContext())
  42                      .setTitle(R.string.pref_look_and_feel_weather_format)
  43                      .setView(dialogView)
  44                      .setPositiveButton(android.R.string.ok) { _, _ ->
  45                          preferenceManager.sharedPreferences?.edit {
  46                              putString(P.WEATHER_FORMAT, editText.text.toString())
  47                          }
  48                      }
  49                      .setNegativeButton(android.R.string.cancel) { _, _ -> }
  50                      .setNeutralButton(R.string.pref_ao_date_format_dialog_neutral) { _, _ ->
  51                          startActivity(
  52                              Intent(Intent.ACTION_VIEW)
  53                                  .setData(
  54                                      "https://github.com/chubin/wttr.in#one-line-output".toUri(),
  55                                  ),
  56                          )
  57                      }
  58                      .show()
  59                  true
  60              }
  61  
  62              MaterialAlertDialogBuilder(requireContext())
  63                  .setTitle(R.string.about_privacy)
  64                  .setMessage(R.string.pref_look_and_feel_weather_provider)
  65                  .setPositiveButton(android.R.string.ok) { _, _ -> }
  66                  .setNegativeButton(android.R.string.cancel) { _, _ ->
  67                      requireActivity().finish()
  68                  }
  69                  .setNeutralButton(R.string.pref_look_and_feel_weather_provider_name) { _, _ ->
  70                      startActivity(
  71                          Intent(
  72                              Intent.ACTION_VIEW,
  73                              "https://github.com/chubin/wttr.in".toUri(),
  74                          ),
  75                      )
  76                  }
  77                  .show()
  78          }
  79      }
  80  }
  81