mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Minor fixes and code cleanup
This commit is contained in:
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(
|
||||
|
||||
+1
-27
@@ -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(),
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in new issue
Block a user