aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt')
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt19
1 files changed, 4 insertions, 15 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt b/app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt
index d0d39b8..aaab0e7 100644
--- a/app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt
+++ b/app/src/main/java/org/pacien/tincapp/activities/start/NetworkListLiveData.kt
@@ -18,28 +18,17 @@
18 18
19package org.pacien.tincapp.activities.start 19package org.pacien.tincapp.activities.start
20 20
21import android.arch.lifecycle.LiveData 21import org.pacien.tincapp.activities.common.SelfRefreshingLiveData
22import org.pacien.tincapp.context.AppPaths 22import org.pacien.tincapp.context.AppPaths
23import java.util.* 23import java.util.concurrent.TimeUnit
24import kotlin.concurrent.timer
25 24
26/** 25/**
27 * @author pacien 26 * @author pacien
28 */ 27 */
29class NetworkListLiveData : LiveData<List<String>>() { 28class NetworkListLiveData : SelfRefreshingLiveData<List<String>>(1, TimeUnit.SECONDS) {
30 private val updateInterval = 2 * 1000L // in milliseconds
31 private val appPaths = AppPaths 29 private val appPaths = AppPaths
32 private lateinit var updateTimer: Timer
33 30
34 override fun onActive() { 31 override fun onRefresh() {
35 updateTimer = timer(period = updateInterval, action = { updateNetworkList() })
36 }
37
38 override fun onInactive() {
39 updateTimer.apply { cancel() }.apply { purge() }
40 }
41
42 private fun updateNetworkList() {
43 val networkList = appPaths.confDir().list()?.sorted() ?: emptyList() 32 val networkList = appPaths.confDir().list()?.sorted() ?: emptyList()
44 postValue(networkList) 33 postValue(networkList)
45 } 34 }