Allow to change server port only when server is down
This commit is contained in:
@@ -1,12 +1,18 @@
|
|||||||
package io.bartek.preference
|
package io.bartek.preference
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver
|
||||||
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.IntentFilter
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.InputType
|
import android.text.InputType
|
||||||
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import androidx.preference.SwitchPreference
|
import androidx.preference.SwitchPreference
|
||||||
import io.bartek.R
|
import io.bartek.R
|
||||||
|
import io.bartek.service.ForegroundService
|
||||||
|
import io.bartek.service.ServiceState
|
||||||
|
|
||||||
class PreferencesFragment : PreferenceFragmentCompat() {
|
class PreferencesFragment : PreferenceFragmentCompat() {
|
||||||
private lateinit var portPreference: IntEditTextPreference
|
private lateinit var portPreference: IntEditTextPreference
|
||||||
@@ -14,6 +20,35 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
|||||||
private lateinit var waveEndpointPreference: SwitchPreference
|
private lateinit var waveEndpointPreference: SwitchPreference
|
||||||
private lateinit var ttsEnginePreference: Preference
|
private lateinit var ttsEnginePreference: Preference
|
||||||
|
|
||||||
|
private val receiver = object : BroadcastReceiver() {
|
||||||
|
override fun onReceive(context: Context?, intent: Intent?) {
|
||||||
|
intent?.let {
|
||||||
|
updateViewAccordingToServiceState(
|
||||||
|
ServiceState.valueOf(it.getStringExtra("STATE") ?: "STOPPED")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateViewAccordingToServiceState(state: ServiceState) {
|
||||||
|
portPreference.isEnabled = state == ServiceState.STOPPED
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
LocalBroadcastManager
|
||||||
|
.getInstance(context!!)
|
||||||
|
.registerReceiver(receiver, IntentFilter("io.bartek.web.server.CHANGE_STATE"))
|
||||||
|
updateViewAccordingToServiceState(ForegroundService.state)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onPause() {
|
||||||
|
LocalBroadcastManager
|
||||||
|
.getInstance(context!!)
|
||||||
|
.unregisterReceiver(receiver)
|
||||||
|
super.onPause()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||||
portPreference = findPreference("preference_port")!!
|
portPreference = findPreference("preference_port")!!
|
||||||
@@ -25,5 +60,6 @@ class PreferencesFragment : PreferenceFragmentCompat() {
|
|||||||
startActivity(Intent("com.android.settings.TTS_SETTINGS"))
|
startActivity(Intent("com.android.settings.TTS_SETTINGS"))
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
updateViewAccordingToServiceState(ForegroundService.state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user