package org.terst.nav import android.content.Context class NmeaConnectionPrefs(context: Context) { private val prefs = context.getSharedPreferences("nmea_connection", Context.MODE_PRIVATE) enum class Transport { TCP, UDP } var transport: Transport get() = runCatching { Transport.valueOf(prefs.getString(KEY_TRANSPORT, null) ?: "") } .getOrDefault(Transport.UDP) set(v) { prefs.edit().putString(KEY_TRANSPORT, v.name).apply() } var tcpHost: String get() = prefs.getString(KEY_HOST, DEFAULT_HOST) ?: DEFAULT_HOST set(v) { prefs.edit().putString(KEY_HOST, v).apply() } var port: Int get() = prefs.getInt(KEY_PORT, DEFAULT_PORT) set(v) { prefs.edit().putInt(KEY_PORT, v).apply() } companion object { private const val KEY_TRANSPORT = "transport" private const val KEY_HOST = "host" private const val KEY_PORT = "port" const val DEFAULT_HOST = "192.168.4.1" const val DEFAULT_PORT = 10110 } }