mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added station location entry from QTH locator
This commit is contained in:
1 parent
328810fccf
commit
e391ef6109
5 files changed
+35
-4
No files matched your search
@@ -30,6 +30,7 @@ import androidx.preference.PreferenceFragmentCompat
|
|||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.rtbishop.look4sat.R
|
import com.rtbishop.look4sat.R
|
||||||
import com.rtbishop.look4sat.utility.PrefsManager
|
import com.rtbishop.look4sat.utility.PrefsManager
|
||||||
|
import com.rtbishop.look4sat.utility.Utilities
|
||||||
import com.rtbishop.look4sat.utility.Utilities.round
|
import com.rtbishop.look4sat.utility.Utilities.round
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -59,6 +60,27 @@ class PrefsFragment : PreferenceFragmentCompat() {
|
|||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
findPreference<Preference>(PrefsManager.keyPositionQTH)?.apply {
|
||||||
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
|
setPositionFromQth(newValue.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setPositionFromQth(qthLocator: String): Boolean {
|
||||||
|
val qthPattern = "[A-X][A-X][0-9][0-9][a-x][a-x]".toRegex()
|
||||||
|
return if (qthLocator.matches(qthPattern)) {
|
||||||
|
val location = Utilities.qthToGSP(qthLocator)
|
||||||
|
val latitude = location.latitude.round(4)
|
||||||
|
val longitude = location.longitude.round(4)
|
||||||
|
prefsManager.setStationPosition(latitude, longitude, location.heightAMSL)
|
||||||
|
showSnack(getString(R.string.pref_pos_success))
|
||||||
|
true
|
||||||
|
} else {
|
||||||
|
showSnack(getString(R.string.pref_pos_qth_error))
|
||||||
|
false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setPositionFromGPS() {
|
private fun setPositionFromGPS() {
|
||||||
@@ -70,7 +92,7 @@ class PrefsFragment : PreferenceFragmentCompat() {
|
|||||||
val longitude = location.longitude.round(4)
|
val longitude = location.longitude.round(4)
|
||||||
val altitude = location.altitude.round(1)
|
val altitude = location.altitude.round(1)
|
||||||
prefsManager.setStationPosition(latitude, longitude, altitude)
|
prefsManager.setStationPosition(latitude, longitude, altitude)
|
||||||
showSnack(getString(R.string.pref_pos_gps_success))
|
showSnack(getString(R.string.pref_pos_success))
|
||||||
} else showSnack(getString(R.string.pref_pos_gps_null))
|
} else showSnack(getString(R.string.pref_pos_gps_null))
|
||||||
} else requestPermissions(arrayOf(locPermString), locPermReqCode)
|
} else requestPermissions(arrayOf(locPermString), locPermReqCode)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ class PrefsManager @Inject constructor(val preferences: SharedPreferences) {
|
|||||||
const val keyHoursAhead = "hoursAhead"
|
const val keyHoursAhead = "hoursAhead"
|
||||||
const val keyMinElevation = "minElevation"
|
const val keyMinElevation = "minElevation"
|
||||||
const val keyPositionGPS = "setPositionGPS"
|
const val keyPositionGPS = "setPositionGPS"
|
||||||
|
const val keyPositionQTH = "setPositionQTH"
|
||||||
const val keyIsFirstLaunch = "isFirstLaunch"
|
const val keyIsFirstLaunch = "isFirstLaunch"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,9 +54,11 @@
|
|||||||
|
|
||||||
<string name="pref_gsp_title">Местоположение наземной станции</string>
|
<string name="pref_gsp_title">Местоположение наземной станции</string>
|
||||||
<string name="pref_pos_gps">Установить позицию по данным GPS</string>
|
<string name="pref_pos_gps">Установить позицию по данным GPS</string>
|
||||||
<string name="pref_pos_gps_success">Позиция успешно обновлена</string>
|
|
||||||
<string name="pref_pos_gps_null">Местоположение отключено</string>
|
<string name="pref_pos_gps_null">Местоположение отключено</string>
|
||||||
<string name="pref_pos_gps_error">Нет разрешения использовать геоданные</string>
|
<string name="pref_pos_gps_error">Нет разрешения использовать геоданные</string>
|
||||||
|
<string name="pref_pos_qth">Установить позицию по локатору QTH</string>
|
||||||
|
<string name="pref_pos_qth_error">Неправильный локатор QTH</string>
|
||||||
|
<string name="pref_pos_success">Позиция успешно обновлена</string>
|
||||||
<string name="pref_pass_title">Настройки пролетов спутников</string>
|
<string name="pref_pass_title">Настройки пролетов спутников</string>
|
||||||
<string name="pref_hours_title">Количество часов</string>
|
<string name="pref_hours_title">Количество часов</string>
|
||||||
<string name="pref_elev_title">Минимальная элевация</string>
|
<string name="pref_elev_title">Минимальная элевация</string>
|
||||||
|
|||||||
@@ -72,10 +72,12 @@
|
|||||||
<string name="pat_osm_vel">Vel: %.2f km/s</string>
|
<string name="pat_osm_vel">Vel: %.2f km/s</string>
|
||||||
|
|
||||||
<string name="pref_gsp_title">Ground station position</string>
|
<string name="pref_gsp_title">Ground station position</string>
|
||||||
<string name="pref_pos_gps">Set position from GPS</string>
|
<string name="pref_pos_gps">Set position from GPS data</string>
|
||||||
<string name="pref_pos_gps_success">Position updated successfully</string>
|
|
||||||
<string name="pref_pos_gps_null">Location is switched off</string>
|
<string name="pref_pos_gps_null">Location is switched off</string>
|
||||||
<string name="pref_pos_gps_error">Check your location permissions</string>
|
<string name="pref_pos_gps_error">Check your location permissions</string>
|
||||||
|
<string name="pref_pos_qth">Set position from QTH locator</string>
|
||||||
|
<string name="pref_pos_qth_error">Invalid QTH locator</string>
|
||||||
|
<string name="pref_pos_success">Position updated successfully</string>
|
||||||
<string name="pref_pass_title">Satellite pass preferences</string>
|
<string name="pref_pass_title">Satellite pass preferences</string>
|
||||||
<string name="pref_hours_title">Hours ahead</string>
|
<string name="pref_hours_title">Hours ahead</string>
|
||||||
<string name="pref_elev_title">Minimal elevation</string>
|
<string name="pref_elev_title">Minimal elevation</string>
|
||||||
|
|||||||
@@ -26,6 +26,10 @@
|
|||||||
android:key="setPositionGPS"
|
android:key="setPositionGPS"
|
||||||
android:title="@string/pref_pos_gps"
|
android:title="@string/pref_pos_gps"
|
||||||
app:iconSpaceReserved="false" />
|
app:iconSpaceReserved="false" />
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="setPositionQTH"
|
||||||
|
android:title="@string/pref_pos_qth"
|
||||||
|
app:iconSpaceReserved="false" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/pref_pass_title"
|
android:title="@string/pref_pass_title"
|
||||||
|
|||||||
Reference in new issue
Block a user