Added rotator ip address and port checks and error messages

This commit is contained in:
Arty Bishop committed 2021-04-18 18:40:23 +01:00
1 parent e5e5fe7ee7
commit e27224d9a8
3 files changed
+34 -3

No files matched your search

@@ -21,9 +21,12 @@ import android.Manifest
import android.content.pm.PackageManager
import android.location.LocationManager
import android.os.Bundle
import android.text.InputType
import android.util.Patterns
import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import androidx.preference.EditTextPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.google.android.material.snackbar.Snackbar
@@ -72,6 +75,30 @@ class PrefsFragment : PreferenceFragmentCompat() {
setPositionFromQth(newValue.toString())
}
}
findPreference<EditTextPreference>(PrefsManager.keyRotatorAddress)?.apply {
setOnPreferenceChangeListener { _, newValue ->
if (Patterns.IP_ADDRESS.matcher(newValue.toString()).matches()) {
return@setOnPreferenceChangeListener true
} else {
showSnack(getString(R.string.tracking_rotator_address_invalid))
return@setOnPreferenceChangeListener false
}
}
}
findPreference<EditTextPreference>(PrefsManager.keyRotatorPort)?.apply {
setOnBindEditTextListener { it.inputType = InputType.TYPE_CLASS_NUMBER }
setOnPreferenceChangeListener { _, newValue ->
val portValue = newValue.toString()
if (portValue.isNotEmpty() && portValue.toInt() in 1024..65535) {
return@setOnPreferenceChangeListener true
} else {
showSnack(getString(R.string.tracking_rotator_port_invalid))
return@setOnPreferenceChangeListener false
}
}
}
}
private fun setPositionFromQth(qthString: String): Boolean {
+5 -3
View File
@@ -65,9 +65,11 @@
установите позицию наземной станции через меню Настройки</string>
<string name="tracking_title">Настройки слежения</string>
<string name="tracking_rotator_switch">Управление вращателем антенны</string>
<string name="tracking_rotator_address">IP адрес вращателя</string>
<string name="tracking_rotator_port">Порт вращателя</string>
<string name="tracking_rotator_switch">Управление поворотным устройством</string>
<string name="tracking_rotator_address">IP адрес поворотного устройства</string>
<string name="tracking_rotator_address_invalid">Введён неправильный IP адрес</string>
<string name="tracking_rotator_port">Порт поворотного устройства</string>
<string name="tracking_rotator_port_invalid">Введите порт в диапазоне от 1024 до 65535</string>
<string name="info_version">Версия: %s</string>
<string name="info_subtitle">Трекер спутников для Android</string>
+2
View File
@@ -83,7 +83,9 @@
<string name="tracking_title">Tracking preferences</string>
<string name="tracking_rotator_switch">Antenna rotator control</string>
<string name="tracking_rotator_address">Rotator IP address</string>
<string name="tracking_rotator_address_invalid">Please enter a valid IP address</string>
<string name="tracking_rotator_port">Rotator port</string>
<string name="tracking_rotator_port_invalid">Please enter a port between 1024 to 65535</string>
<string name="info_version">Version: %s</string>
<string name="info_subtitle">Satellite tracker and pass predictor</string>