diff --git a/app/src/main/java/com/rtbishop/look4sat/SharedViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/SharedViewModel.kt index adac6f52..72dfa8c9 100644 --- a/app/src/main/java/com/rtbishop/look4sat/SharedViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/SharedViewModel.kt @@ -20,10 +20,7 @@ package com.rtbishop.look4sat import android.net.Uri -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope +import androidx.lifecycle.* import com.rtbishop.look4sat.data.* import com.rtbishop.look4sat.repo.EntriesRepo import com.rtbishop.look4sat.repo.SourcesRepo @@ -50,7 +47,7 @@ class SharedViewModel @Inject constructor( private val _appEvent = MutableLiveData>() private var selectedEntries = emptyList() private var shouldTriggerCalculation = true - + init { if (prefsManager.isFirstLaunch()) { updateDefaultSourcesAndEntries() @@ -58,21 +55,22 @@ class SharedViewModel @Inject constructor( } startApplicationTimer() } - + fun getAppEvent(): LiveData> = _appEvent fun getAppTimer(): LiveData = _appTimer - fun getSources() = sourcesRepo.getSources() - fun getEntries() = entriesRepo.getEntries() + fun getSources() = sourcesRepo.getSources().asLiveData() + fun getEntries() = entriesRepo.getEntries().asLiveData() fun getPasses(): LiveData>> = _passes - fun getTransmittersForSat(satId: Int) = transmittersRepo.getTransmittersForSat(satId) - + fun getTransmittersForSat(satId: Int) = + transmittersRepo.getTransmittersForSat(satId).asLiveData() + fun triggerCalculation() { if (shouldTriggerCalculation) { shouldTriggerCalculation = false calculatePasses() } } - + fun calculatePasses(dateNow: Date = Date(System.currentTimeMillis())) { shouldTriggerCalculation = false _passes.value = Result.InProgress diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/EntriesRepo.kt b/app/src/main/java/com/rtbishop/look4sat/repo/EntriesRepo.kt index 382723af..2ead16fc 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/EntriesRepo.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/EntriesRepo.kt @@ -21,12 +21,12 @@ package com.rtbishop.look4sat.repo import android.content.ContentResolver import android.net.Uri -import androidx.lifecycle.LiveData import com.github.amsacode.predict4java.TLE import com.rtbishop.look4sat.data.SatEntry import com.rtbishop.look4sat.data.TleSource import com.rtbishop.look4sat.repo.local.EntriesDao import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.withContext import okhttp3.OkHttpClient import okhttp3.Request @@ -39,7 +39,7 @@ class EntriesRepo @Inject constructor( private val entriesDao: EntriesDao ) { - fun getEntries(): LiveData> { + fun getEntries(): Flow> { return entriesDao.getEntries() } diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/SourcesRepo.kt b/app/src/main/java/com/rtbishop/look4sat/repo/SourcesRepo.kt index 0f31f382..cd8166bd 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/SourcesRepo.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/SourcesRepo.kt @@ -19,14 +19,14 @@ package com.rtbishop.look4sat.repo -import androidx.lifecycle.LiveData import com.rtbishop.look4sat.data.TleSource import com.rtbishop.look4sat.repo.local.SourcesDao +import kotlinx.coroutines.flow.Flow import javax.inject.Inject class SourcesRepo @Inject constructor(private val sourcesDao: SourcesDao) { - fun getSources(): LiveData> { + fun getSources(): Flow> { return sourcesDao.getSources() } diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/TransmittersRepo.kt b/app/src/main/java/com/rtbishop/look4sat/repo/TransmittersRepo.kt index b811ddc8..7886158a 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/TransmittersRepo.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/TransmittersRepo.kt @@ -19,10 +19,10 @@ package com.rtbishop.look4sat.repo -import androidx.lifecycle.LiveData import com.rtbishop.look4sat.data.SatTrans import com.rtbishop.look4sat.repo.local.TransmittersDao import com.rtbishop.look4sat.repo.remote.TransmittersApi +import kotlinx.coroutines.flow.Flow import javax.inject.Inject class TransmittersRepo @Inject constructor( @@ -30,7 +30,7 @@ class TransmittersRepo @Inject constructor( private val transmittersApi: TransmittersApi ) { - fun getTransmittersForSat(satId: Int): LiveData> { + fun getTransmittersForSat(satId: Int): Flow> { return transmittersDao.getTransmittersForSat(satId) } diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt index fba16ccf..8915038f 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt @@ -19,15 +19,15 @@ package com.rtbishop.look4sat.repo.local -import androidx.lifecycle.LiveData import androidx.room.* import com.rtbishop.look4sat.data.SatEntry +import kotlinx.coroutines.flow.Flow @Dao interface EntriesDao { - + @Query("SELECT * FROM entries ORDER BY name ASC") - fun getEntries(): LiveData> + fun getEntries(): Flow> @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertEntries(entries: List) diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt index 19e6af01..669f4619 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt @@ -19,15 +19,15 @@ package com.rtbishop.look4sat.repo.local -import androidx.lifecycle.LiveData import androidx.room.* import com.rtbishop.look4sat.data.TleSource +import kotlinx.coroutines.flow.Flow @Dao interface SourcesDao { - + @Query("SELECT * FROM sources") - fun getSources(): LiveData> + fun getSources(): Flow> @Transaction suspend fun updateSources(sources: List) { diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/local/TransmittersDao.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/TransmittersDao.kt index 802f3ffb..d00ba674 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/local/TransmittersDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/TransmittersDao.kt @@ -19,15 +19,15 @@ package com.rtbishop.look4sat.repo.local -import androidx.lifecycle.LiveData import androidx.room.* import com.rtbishop.look4sat.data.SatTrans +import kotlinx.coroutines.flow.Flow @Dao interface TransmittersDao { - + @Query("SELECT * FROM transmitters WHERE isAlive = 1 and catNum = :satId") - fun getTransmittersForSat(satId: Int): LiveData> + fun getTransmittersForSat(satId: Int): Flow> @Transaction suspend fun updateTransmitters(transmitters: List) { diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/MapFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/MapFragment.kt index bce0f033..efe9e986 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/MapFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/mainScreen/MapFragment.kt @@ -68,7 +68,7 @@ class MapFragment : Fragment(R.layout.fragment_map) { setMultiTouchControls(true) setTileSource(getTileSource()) val minZoom = getMinZoom(resources.displayMetrics.heightPixels) - minZoomLevel = 2.5 + minZoomLevel = minZoom maxZoomLevel = 6.0 controller.setZoom(minZoom + 0.5) zoomController.setVisibility(CustomZoomButtonsController.Visibility.NEVER)