update provideLocation feedback

pull/354/head
andrekir 2022-01-26 16:27:16 -03:00
rodzic 6d53b78007
commit 7a316928be
2 zmienionych plików z 23 dodań i 16 usunięć

Wyświetl plik

@ -1018,10 +1018,10 @@ class MeshService : Service(), Logging {
else
broadcastSecs * 1000L
// if (prefs.locationShare == RadioConfigProtos.LocationSharing.LocDisabled) {
// info("GPS location sharing is disabled")
// desiredInterval = 0
// }
if (prefs.locationShare == RadioConfigProtos.LocationSharing.LocDisabled) {
info("GPS location sharing is disabled")
desiredInterval = 0
}
// if (prefs.fixedPosition) {
// info("Node has fixed position, therefore not overriding position")
@ -1033,6 +1033,7 @@ class MeshService : Service(), Logging {
startLocationRequests(desiredInterval)
} else {
info("No GPS assistance desired, but sending UTC time to mesh")
warnUserAboutLocation()
sendPosition()
}
}

Wyświetl plik

@ -615,22 +615,29 @@ class SettingsFragment : ScreenFragment("Settings"), Logging {
regionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = regionAdapter
model.bluetoothEnabled.observe(
viewLifecycleOwner, {
if (it) binding.changeRadioButton.show()
else binding.changeRadioButton.hide()
})
model.bluetoothEnabled.observe(viewLifecycleOwner, {
if (it) binding.changeRadioButton.show()
else binding.changeRadioButton.hide()
})
model.ownerName.observe(viewLifecycleOwner, { name ->
binding.usernameEditText.setText(name)
})
// Only let user edit their name or set software update while connected to a radio
model.isConnected.observe(
viewLifecycleOwner, {
updateNodeInfo()
updateDevicesButtons(scanModel.devices.value)
})
model.isConnected.observe(viewLifecycleOwner, {
updateNodeInfo()
updateDevicesButtons(scanModel.devices.value)
})
model.radioConfig.observe(viewLifecycleOwner, {
binding.provideLocationCheckbox.isEnabled =
isGooglePlayAvailable(requireContext()) && model.locationShare ?: true
if (model.locationShare == false) {
model.provideLocation.value = false
binding.provideLocationCheckbox.isChecked = false
}
})
// Also watch myNodeInfo because it might change later
model.myNodeInfo.observe(viewLifecycleOwner, {
@ -659,7 +666,6 @@ class SettingsFragment : ScreenFragment("Settings"), Logging {
requireActivity().hideKeyboard()
}
binding.provideLocationCheckbox.isEnabled = isGooglePlayAvailable(requireContext())
binding.provideLocationCheckbox.setOnCheckedChangeListener { view, isChecked ->
if (view.isPressed && isChecked) { // We want to ignore changes caused by code (as opposed to the user)
// Don't check the box until the system setting changes
@ -896,7 +902,7 @@ class SettingsFragment : ScreenFragment("Settings"), Logging {
debug("We have location access")
}
locationSettingsResponse.addOnFailureListener { _ ->
locationSettingsResponse.addOnFailureListener {
errormsg("Failed to get location access")
// We always show the toast regardless of what type of exception we receive. Because even non
// resolvable api exceptions mean user still needs to fix something.