diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt index ad2bad1f..fe68586d 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/SharedViewModel.kt @@ -55,7 +55,6 @@ class SharedViewModel @Inject constructor( fun getGSP(): LiveData> = _gsp fun getCompass() = prefsManager.getCompass() - fun getRefreshRate() = prefsManager.getRefreshRate() fun getHoursAhead() = prefsManager.getHoursAhead() fun getMinElevation() = prefsManager.getMinElevation() suspend fun getAllEntries() = repository.getAllEntries() diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt index 1a5ca60d..cda828ac 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt @@ -108,12 +108,11 @@ class PolarFragment : Fragment(R.layout.fragment_polar), SensorEventListener { private fun observePasses() { viewModel.getPassList().observe(viewLifecycleOwner, { result -> if (result is Result.Success) { - val refreshRate = viewModel.getRefreshRate() satPass = result.data[args.satPassIndex] polarView = PolarView(mainActivity, satPass) binding.frame.addView(polarView) observeTransmitters() - refreshText(refreshRate) + refreshText() } }) } @@ -147,13 +146,13 @@ class PolarFragment : Fragment(R.layout.fragment_polar), SensorEventListener { }) } - private fun refreshText(rate: Long) { + private fun refreshText() { lifecycleScope.launch { while (true) { setPassText() polarView?.invalidate() transmitterAdapter.notifyDataSetChanged() - delay(rate) + delay(3000) } } } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt index 68797383..9f0233c2 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt @@ -26,24 +26,16 @@ import androidx.preference.EditTextPreference import androidx.preference.PreferenceFragmentCompat import com.rtbishop.look4sat.R import com.rtbishop.look4sat.utility.Extensions.snack +import com.rtbishop.look4sat.utility.PrefsManager class PrefsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener { - private lateinit var keyLat: String - private lateinit var keyLon: String - private lateinit var keyAlt: String - private lateinit var keyDelay: String - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preference, rootKey) val provider = EditTextPreference.SimpleSummaryProvider.getInstance() - keyLat = preferenceManager.context.getString(R.string.pref_lat_key) - keyLon = preferenceManager.context.getString(R.string.pref_lon_key) - keyAlt = preferenceManager.context.getString(R.string.pref_alt_key) - keyDelay = preferenceManager.context.getString(R.string.pref_refresh_rate_key) - findPreference(keyLat)?.apply { + findPreference(PrefsManager.keyLatitude)?.apply { summaryProvider = provider setOnBindEditTextListener { it.inputType = InputType.TYPE_CLASS_NUMBER or @@ -60,7 +52,7 @@ class PrefsFragment : PreferenceFragmentCompat(), } } - findPreference(keyLon)?.apply { + findPreference(PrefsManager.keyLongitude)?.apply { summaryProvider = provider setOnBindEditTextListener { it.inputType = InputType.TYPE_CLASS_NUMBER or @@ -77,7 +69,7 @@ class PrefsFragment : PreferenceFragmentCompat(), } } - findPreference(keyAlt)?.apply { + findPreference(PrefsManager.keyAltitude)?.apply { summaryProvider = provider setOnBindEditTextListener { it.inputType = InputType.TYPE_CLASS_NUMBER or @@ -93,19 +85,6 @@ class PrefsFragment : PreferenceFragmentCompat(), return@setOnPreferenceChangeListener true } } - - findPreference(keyDelay)?.apply { - summaryProvider = provider - setOnBindEditTextListener { it.inputType = InputType.TYPE_CLASS_NUMBER } - setOnPreferenceChangeListener { _, newValue -> - val valueStr = newValue.toString() - if (valueStr.isEmpty() || valueStr.toLong() < 250 || valueStr.toLong() > 10000) { - getString(R.string.pref_refresh_rate_input_error).snack(requireView()) - return@setOnPreferenceChangeListener false - } - return@setOnPreferenceChangeListener true - } - } } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {} diff --git a/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt b/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt index 3c2df13a..9b6f233e 100644 --- a/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt +++ b/app/src/main/java/com/rtbishop/look4sat/utility/PrefsManager.kt @@ -30,21 +30,21 @@ class PrefsManager @Inject constructor( private val preferences: SharedPreferences, private val locationManager: LocationManager ) { - private val keyHoursAhead = "hoursAhead" - private val keyMinElevation = "minEl" - private val keyLatitude = "latitude" - private val keyLongitude = "longitude" - private val keyAltitude = "altitude" - private val keyRefreshRate = "rate" - private val keyCompass = "compass" - private val keyTimeUtc = "timeUTC" - private val defaultHoursAhead = 8 - private val defaultMinEl = 16.0 - private val defaultRefreshRate = "3000" - private val defaultGSP = "0.0" + companion object { + const val keyHoursAhead = "hoursAhead" + const val keyMinElevation = "minEl" + const val keyLatitude = "latitude" + const val keyLongitude = "longitude" + const val keyAltitude = "altitude" + const val keyCompass = "compass" + const val keyTimeUtc = "timeUTC" + const val defaultHoursAhead = 8 + const val defaultMinEl = 16.0 + const val defaultGSP = "0.0" + const val keyIsFirstLaunch = "keyIsFirstLaunch" + } fun isFirstLaunch(): Boolean { - val keyIsFirstLaunch = "keyIsFirstLaunch" val isFirstLaunch = preferences.getBoolean(keyIsFirstLaunch, true) return if (isFirstLaunch) { preferences.edit { @@ -67,10 +67,6 @@ class PrefsManager @Inject constructor( return preferences.getDouble(keyMinElevation, defaultMinEl) } - fun getRefreshRate(): Long { - return preferences.getString(keyRefreshRate, defaultRefreshRate)!!.toLong() - } - fun getCompass(): Boolean { return preferences.getBoolean(keyCompass, true) } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f647ba4c..26392cf4 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -47,11 +47,7 @@ Высота, м Введите значение между -413м и 8850м Другие настройки - Частота обновления, мс - Введите значение между 250мс и 10000мс Использовать компас при отображении полярных координат - - timeUTC Показывать время пролёта по UTC Модуляция: нет diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 19493572..cfefdb76 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,33 +33,22 @@ Manage TLE sources Name/CatNum - hoursAhead Hours ahead Show passes that occur within X hours Set the value between 1h and 168h - minEl Minimum elevation Show passes with max elevation above Set the value between 0° and 90° Ground station position - latitude Latitude, deg Set the value between -90° and 90° - longitude Longitude, deg Set the value between -180° and 180° - altitude Altitude, m Set the value between -413m and 8850m Other - rate - Refresh rate, ms - Set the value between 250ms and 10000ms - compass Use sensors to rotate PolarView - - timeUTC Show pass time in UTC Mode: null diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml index 20de182b..619e18b4 100644 --- a/app/src/main/res/xml/preference.xml +++ b/app/src/main/res/xml/preference.xml @@ -21,37 +21,25 @@ -