diff options
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.kt | 19 |
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 | ||
19 | package org.pacien.tincapp.activities.start | 19 | package org.pacien.tincapp.activities.start |
20 | 20 | ||
21 | import android.arch.lifecycle.LiveData | 21 | import org.pacien.tincapp.activities.common.SelfRefreshingLiveData |
22 | import org.pacien.tincapp.context.AppPaths | 22 | import org.pacien.tincapp.context.AppPaths |
23 | import java.util.* | 23 | import java.util.concurrent.TimeUnit |
24 | import kotlin.concurrent.timer | ||
25 | 24 | ||
26 | /** | 25 | /** |
27 | * @author pacien | 26 | * @author pacien |
28 | */ | 27 | */ |
29 | class NetworkListLiveData : LiveData<List<String>>() { | 28 | class 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 | } |