summaryrefslogtreecommitdiff
path: root/android-app/app/src/main/kotlin/org/terst/nav/NmeaConnectionPrefs.kt
blob: 19ad7a24fcf1cba0f16f5f0a2e611666c05b1a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
    }
}