Minor fixes and code cleanup

This commit is contained in:
Arty Bishop committed 2022-01-13 21:13:17 +00:00
1 parent f559c60154
commit 148104880e
9 files changed
+14 -67

No files matched your search

@@ -23,6 +23,7 @@ import android.content.pm.PackageManager
import android.location.Location
import android.location.LocationListener
import android.location.LocationManager
import android.os.Bundle
import androidx.core.content.ContextCompat
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.domain.LocationHandler
@@ -105,4 +106,10 @@ class LocationProvider @Inject constructor(
manager.removeUpdates(this)
setStationPosition(location.latitude, location.longitude)
}
override fun onProviderEnabled(provider: String) {}
override fun onProviderDisabled(provider: String) {}
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {}
}
@@ -53,7 +53,7 @@ object CoreModule {
@DefaultDispatcher defaultDispatcher: CoroutineDispatcher
): DataRepository {
val dataParser = DataParser(defaultDispatcher)
val db = Room.databaseBuilder(context, SatelliteDb::class.java, "SatelliteDb")
val db = Room.databaseBuilder(context, SatelliteDb::class.java, "Look4SatDB")
.fallbackToDestructiveMigration().build()
val localSource = LocalSource(db.entriesDao(), db.transmittersDao())
val remoteSource = RemoteSource(ioDispatcher)
@@ -32,7 +32,6 @@ import com.rtbishop.look4sat.databinding.FragmentEntriesBinding
import com.rtbishop.look4sat.domain.model.DataState
import com.rtbishop.look4sat.domain.model.SatItem
import com.rtbishop.look4sat.presentation.ItemDivider
import com.rtbishop.look4sat.presentation.getNavResult
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
@@ -63,9 +62,6 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) {
viewModel.satData.observe(viewLifecycleOwner, { satData ->
handleSatData(satData, binding, entriesAdapter)
})
getNavResult<List<String>>(R.id.nav_satellites, "sources") { sources ->
viewModel.updateDataFromWeb(sources)
}
}
private fun handleSatData(
@@ -17,8 +17,6 @@
*/
package com.rtbishop.look4sat.presentation.entriesScreen
import android.content.ContentResolver
import android.net.Uri
import android.widget.SearchView
import androidx.lifecycle.*
import com.rtbishop.look4sat.domain.DataRepository
@@ -26,23 +24,16 @@ import com.rtbishop.look4sat.domain.model.DataState
import com.rtbishop.look4sat.domain.model.SatItem
import com.rtbishop.look4sat.framework.SettingsProvider
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.launch
import timber.log.Timber
import java.util.*
import javax.inject.Inject
@HiltViewModel
class EntriesViewModel @Inject constructor(
private val preferences: SettingsProvider,
private val resolver: ContentResolver,
private val dataRepository: DataRepository
) : ViewModel(), SearchView.OnQueryTextListener, EntriesAdapter.EntriesClickListener {
private val coroutineHandler = CoroutineExceptionHandler { _, throwable ->
Timber.d(throwable)
_satData.value = DataState.Error(null)
}
private val transModes = MutableLiveData(preferences.loadModesSelection())
private val currentQuery = MutableLiveData(String())
private val itemsWithModes = transModes.switchMap { modes ->
@@ -57,24 +48,6 @@ class EntriesViewModel @Inject constructor(
private var shouldSelectAll = true
val satData: LiveData<DataState<List<SatItem>>> = _satData
fun updateDataFromFile(uri: Uri) {
viewModelScope.launch(coroutineHandler) {
_satData.value = DataState.Loading
runCatching {
resolver.openInputStream(uri)?.use { stream ->
dataRepository.updateDataFromFile(stream)
}
}.onFailure { _satData.value = DataState.Error(null) }
}
}
fun updateDataFromWeb(sources: List<String>) {
viewModelScope.launch(coroutineHandler) {
_satData.value = DataState.Loading
dataRepository.updateDataFromWeb(sources)
}
}
fun selectCurrentItems() {
val currentValue = _satData.value
if (currentValue is DataState.Success) {
@@ -93,6 +66,7 @@ class EntriesViewModel @Inject constructor(
}
fun setQuery(query: String) {
shouldSelectAll = true
currentQuery.value = query
}
@@ -27,6 +27,7 @@ import android.view.View
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.databinding.FragmentMapBinding
import com.rtbishop.look4sat.domain.predict.GeoPos
@@ -82,6 +83,7 @@ class MapFragment : Fragment(R.layout.fragment_map) {
overlays.addAll(Array(4) { FolderOverlay() })
}
}
binding.mapBack.setOnClickListener { findNavController().navigateUp() }
binding.mapBtnPrev.setOnClickListener { viewModel.scrollSelection(true) }
binding.mapBtnNext.setOnClickListener { viewModel.scrollSelection(false) }
setupObservers(binding)
@@ -41,15 +41,6 @@ import java.util.*
class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesClickListener {
private val passesViewModel: PassesViewModel by viewModels()
// private val permReqContract = ActivityResultContracts.RequestMultiplePermissions()
// private val locPermFine = Manifest.permission.ACCESS_FINE_LOCATION
// private val locPermCoarse = Manifest.permission.ACCESS_COARSE_LOCATION
// private val locPermReq = registerForActivityResult(permReqContract) { permissions ->
// when {
// permissions[locPermFine] == true -> passesViewModel.triggerInitialSetup()
// permissions[locPermCoarse] == true -> passesViewModel.triggerInitialSetup()
// }
// }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@@ -85,9 +76,6 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
passesViewModel.passes.observe(viewLifecycleOwner, { passesResult ->
handleNewPasses(passesResult, passesAdapter, binding)
})
passesViewModel.isFirstLaunchDone.observe(viewLifecycleOwner, { setupDone ->
// if (!setupDone) locPermReq.launch(arrayOf(locPermFine, locPermCoarse))
})
getNavResult<Pair<Int, Double>>(R.id.nav_passes, "prefs") { prefs ->
passesViewModel.forceCalculation(prefs.first, prefs.second)
}
@@ -38,10 +38,8 @@ class PassesViewModel @Inject constructor(
) : ViewModel() {
private val _passes = MutableLiveData<DataState<List<SatPass>>>()
private val _isFirstLaunchDone = MutableLiveData<Boolean>()
private var passesProcessing: Job? = null
val passes: LiveData<DataState<List<SatPass>>> = _passes
val isFirstLaunchDone: LiveData<Boolean> = _isFirstLaunchDone
init {
if (preferences.getSetupDone()) {
@@ -54,8 +52,6 @@ class PassesViewModel @Inject constructor(
val minElev = preferences.getMinElevation()
predictor.triggerCalculation(satellites, stationPos, timeNow, hoursAhead, minElev)
}
} else {
_isFirstLaunchDone.value = false
}
viewModelScope.launch {
predictor.passes.collect { passes ->
@@ -65,22 +61,6 @@ class PassesViewModel @Inject constructor(
}
}
fun triggerInitialSetup() {
// preferences.updatePositionFromGPS()
viewModelScope.launch {
// _passes.postValue(DataState.Loading)
// val satellites = dataRepository.getSelectedSatellites()
// val stationPos = preferences.loadStationPosition()
// val hoursAhead = preferences.getHoursAhead()
// val minElev = preferences.getMinElevation()
// dataRepository.updateDataFromWeb()
// dataRepository.updateSelection(isSelected = true)
// predictor.forceCalculation(satellites, stationPos, Date().time, hoursAhead, minElev)
// preferences.setSetupDone()
_isFirstLaunchDone.value = true
}
}
fun forceCalculation(
hoursAhead: Int = preferences.getHoursAhead(),
minElevation: Double = preferences.getMinElevation(),
+1 -1
View File
@@ -14,7 +14,7 @@
<item name="android:textColorPrimary">@color/themeLight</item>
<item name="android:statusBarColor">@color/surfaceStatusbar</item>
<item name="android:windowBackground">@color/surfaceBg</item>
<item name="android:navigationBarColor">@color/surfaceToolbar</item>
<item name="android:navigationBarColor">@color/surfaceStatusbar</item>
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
</style>