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