Added preference for PolarView rotation

This commit is contained in:
Arty Bishop committed 2020-05-09 13:27:34 +01:00
1 parent 80b62b4658
commit da0c7e91db
5 files changed
+22 -7

No files matched your search

@@ -55,6 +55,7 @@ class SharedViewModel @Inject constructor(
fun getUpdateStatus(): LiveData<Result<Int>> = _updateStatus fun getUpdateStatus(): LiveData<Result<Int>> = _updateStatus
fun getGSP(): LiveData<Result<GroundStationPosition>> = _gsp fun getGSP(): LiveData<Result<GroundStationPosition>> = _gsp
fun getCompass() = prefsManager.getCompass()
fun getRefreshRate() = prefsManager.getRefreshRate() fun getRefreshRate() = prefsManager.getRefreshRate()
fun getHoursAhead() = prefsManager.getHoursAhead() fun getHoursAhead() = prefsManager.getHoursAhead()
fun getMinElevation() = prefsManager.getMinElevation() fun getMinElevation() = prefsManager.getMinElevation()
@@ -82,17 +82,21 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER).also { accData -> if (viewModel.getCompass()) {
sensorManager.registerListener(this, accData, SensorManager.SENSOR_DELAY_GAME) sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER).also { accData ->
} sensorManager.registerListener(this, accData, SensorManager.SENSOR_DELAY_GAME)
sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD).also { magData -> }
sensorManager.registerListener(this, magData, SensorManager.SENSOR_DELAY_GAME) sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD).also { magData ->
sensorManager.registerListener(this, magData, SensorManager.SENSOR_DELAY_GAME)
}
} }
} }
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
sensorManager.unregisterListener(this) if (viewModel.getCompass()) {
sensorManager.unregisterListener(this)
}
} }
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {} override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
@@ -152,7 +156,6 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis
private fun refreshText(rate: Long) { private fun refreshText(rate: Long) {
refreshJob?.cancel() refreshJob?.cancel()
refreshJob = null
refreshJob = lifecycleScope.launch { refreshJob = lifecycleScope.launch {
while (true) { while (true) {
setPassText() setPassText()
@@ -35,6 +35,7 @@ class PrefsManager @Inject constructor(
private val keyLongitude = "longitude" private val keyLongitude = "longitude"
private val keyAltitude = "altitude" private val keyAltitude = "altitude"
private val keyRefreshRate = "rate" private val keyRefreshRate = "rate"
private val keyCompass = "compass"
private val defaultHoursAhead = 8 private val defaultHoursAhead = 8
private val defaultMinEl = 16.0 private val defaultMinEl = 16.0
private val defaultRefreshRate = "3000" private val defaultRefreshRate = "3000"
@@ -52,6 +53,10 @@ class PrefsManager @Inject constructor(
return preferences.getString(keyRefreshRate, defaultRefreshRate)!!.toLong() return preferences.getString(keyRefreshRate, defaultRefreshRate)!!.toLong()
} }
fun getCompass(): Boolean {
return preferences.getBoolean(keyCompass, false)
}
fun getPosition(): GroundStationPosition { fun getPosition(): GroundStationPosition {
val lat = preferences.getString(keyLatitude, defaultGSP)!!.toDouble() val lat = preferences.getString(keyLatitude, defaultGSP)!!.toDouble()
val lon = preferences.getString(keyLongitude, defaultGSP)!!.toDouble() val lon = preferences.getString(keyLongitude, defaultGSP)!!.toDouble()
+2
View File
@@ -69,6 +69,8 @@
<string name="pref_refresh_rate_key" translatable="false">rate</string> <string name="pref_refresh_rate_key" translatable="false">rate</string>
<string name="pref_refresh_rate_title">View refresh rate, ms</string> <string name="pref_refresh_rate_title">View refresh rate, ms</string>
<string name="pref_refresh_rate_input_error">Set the value between 250ms and 10000ms</string> <string name="pref_refresh_rate_input_error">Set the value between 250ms and 10000ms</string>
<string name="pref_compass_key" translatable="false">compass</string>
<string name="pref_compass_title" translatable="false">Use sensors to rotate PolarView</string>
<string name="no_mode">Mode: Null</string> <string name="no_mode">Mode: Null</string>
<string name="no_uplink">Uplink: Null</string> <string name="no_uplink">Uplink: Null</string>
+4
View File
@@ -45,5 +45,9 @@
android:selectAllOnFocus="true" android:selectAllOnFocus="true"
android:singleLine="true" android:singleLine="true"
android:title="@string/pref_refresh_rate_title" /> android:title="@string/pref_refresh_rate_title" />
<SwitchPreference
android:defaultValue="false"
android:key="@string/pref_compass_key"
android:title="@string/pref_compass_title" />
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>