Add integer constraint to port preference
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package io.bartek.preference
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.preference.EditTextPreference
|
||||
import java.lang.Integer.parseInt
|
||||
|
||||
class IntEditTextPreference : EditTextPreference {
|
||||
constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int,
|
||||
defStyleRes: Int
|
||||
) : super(context, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int
|
||||
) : super(context, attrs, defStyleAttr)
|
||||
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||
|
||||
constructor(context: Context?) : super(context)
|
||||
|
||||
override fun getPersistedString(defaultReturnValue: String?) =
|
||||
getPersistedInt(Integer.valueOf(defaultReturnValue ?: "-1")).toString()
|
||||
|
||||
override fun persistString(value: String?) = persistInt(Integer.valueOf(value ?: "-1"))
|
||||
|
||||
|
||||
}
|
||||
@@ -2,14 +2,14 @@ package io.bartek.preference
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.preference.EditTextPreference
|
||||
import android.text.InputType
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreference
|
||||
import io.bartek.R
|
||||
|
||||
class PreferencesFragment : PreferenceFragmentCompat() {
|
||||
private lateinit var portPreference: EditTextPreference
|
||||
private lateinit var portPreference: IntEditTextPreference
|
||||
private lateinit var sayEndpointPreference: SwitchPreference
|
||||
private lateinit var waveEndpointPreference: SwitchPreference
|
||||
private lateinit var ttsEnginePreference: Preference
|
||||
@@ -17,6 +17,7 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||
portPreference = findPreference("preference_port")!!
|
||||
portPreference.setOnBindEditTextListener { it.inputType = InputType.TYPE_CLASS_NUMBER }
|
||||
sayEndpointPreference = findPreference("preference_enable_say_endpoint")!!
|
||||
waveEndpointPreference = findPreference("preference_enable_wave_endpoint")!!
|
||||
ttsEnginePreference = findPreference("preference_tts")!!
|
||||
|
||||
@@ -22,7 +22,7 @@ class ForegroundService : Service() {
|
||||
private var isServiceStarted = false
|
||||
private var ttsServer: TTSServer? = null
|
||||
private val port: Int
|
||||
get() = parseInt(preferences.getString("preference_port", "8080")!!)
|
||||
get() = preferences.getInt("preference_port", 8080)
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceCategory android:title="@string/preference_category_server" app:iconSpaceReserved="false">
|
||||
<EditTextPreference
|
||||
<io.bartek.preference.IntEditTextPreference
|
||||
android:defaultValue="8080"
|
||||
android:inputType="number"
|
||||
android:key="preference_port"
|
||||
|
||||
Reference in New Issue
Block a user