diff options
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/features')
-rw-r--r-- | app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt index 2ba8613..e31f21d 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt @@ -246,13 +246,17 @@ class FakeLocationFragment : NavToolbarFragment(R.layout.fragment_fake_location) } private fun updateMockLocationParameters() { - viewModel.submitAction( - Action.UpdateMockLocationParameters( - binding.altitude.text.toString().toFloat(), - binding.speed.text.toString().toFloat(), - binding.jitter.text.toString().toFloat(), + try { + viewModel.submitAction( + Action.UpdateMockLocationParameters( + binding.edittextAltitude.text.toString().toFloat(), + binding.edittextSpeed.text.toString().toFloat(), + binding.edittextJitter.text.toString().toFloat(), + ) ) - ) + } catch (e: NumberFormatException) { + Timber.e("Unfiltered wrong altitude/speed/jitter format") + } } @Suppress("UNUSED_PARAMETER") @@ -292,7 +296,7 @@ class FakeLocationFragment : NavToolbarFragment(R.layout.fragment_fake_location) private val latLonOnFocusChangeListener = object : View.OnFocusChangeListener { override fun onFocusChange(v: View?, hasFocus: Boolean) { - if (!isEditingLatLon) { + if (!isEditingLatLon && !binding.edittextAltitude.isFocused && !binding.edittextSpeed.isFocused && !binding.edittextJitter.isFocused) { (context?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager)?.hideSoftInputFromWindow( v?.windowToken, 0 @@ -317,11 +321,14 @@ class FakeLocationFragment : NavToolbarFragment(R.layout.fragment_fake_location) } } - binding.altitude.addTextChangedListener(afterTextChanged = ::onAltitudeTextChanged) - binding.speed.addTextChangedListener(afterTextChanged = ::onSpeedTextChanged) - binding.jitter.addTextChangedListener(afterTextChanged = ::onJitterTextChanged) + binding.edittextAltitude.addTextChangedListener(afterTextChanged = ::onAltitudeTextChanged) + binding.edittextSpeed.addTextChangedListener(afterTextChanged = ::onSpeedTextChanged) + binding.edittextJitter.addTextChangedListener(afterTextChanged = ::onJitterTextChanged) binding.edittextLatitude.addTextChangedListener(afterTextChanged = ::onLatTextChanged) binding.edittextLongitude.addTextChangedListener(afterTextChanged = ::onLonTextChanged) + binding.edittextAltitude.onFocusChangeListener = latLonOnFocusChangeListener + binding.edittextSpeed.onFocusChangeListener = latLonOnFocusChangeListener + binding.edittextJitter.onFocusChangeListener = latLonOnFocusChangeListener binding.edittextLatitude.onFocusChangeListener = latLonOnFocusChangeListener binding.edittextLongitude.onFocusChangeListener = latLonOnFocusChangeListener } @@ -336,18 +343,18 @@ class FakeLocationFragment : NavToolbarFragment(R.layout.fragment_fake_location) binding.mapView.isEnabled = (state.mode == LocationMode.SPECIFIC_LOCATION) - binding.altitude.isEnabled = state.mode == LocationMode.SPECIFIC_LOCATION - binding.speed.isEnabled = state.mode == LocationMode.SPECIFIC_LOCATION - binding.jitter.isEnabled = state.mode == LocationMode.SPECIFIC_LOCATION + binding.textlayoutAltitude.isVisible = state.mode == LocationMode.SPECIFIC_LOCATION + binding.textlayoutSpeed.isVisible = state.mode == LocationMode.SPECIFIC_LOCATION + binding.textlayoutJitter.isVisible = state.mode == LocationMode.SPECIFIC_LOCATION - if(!binding.altitude.isFocused) - binding.altitude.setText(state.altitude?.toString()) + if(!binding.edittextAltitude.isFocused) + binding.edittextAltitude.setText(state.altitude?.toString()) - if(!binding.speed.isFocused) - binding.speed.setText(state.speed?.toString()) + if(!binding.edittextSpeed.isFocused) + binding.edittextSpeed.setText(state.speed?.toString()) - if(!binding.jitter.isFocused) - binding.jitter.setText(state.jitter?.toString()) + if(!binding.edittextJitter.isFocused) + binding.edittextJitter.setText(state.jitter?.toString()) if (state.mode == LocationMode.REAL_LOCATION) { binding.centeredMarker.isVisible = false |