Minor fixes and code cleanup

pull/87/head
Arty Bishop 2022-01-13 21:13:17 +00:00
rodzic f559c60154
commit 148104880e
9 zmienionych plików z 14 dodań i 67 usunięć

Wyświetl plik

@ -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?) {}
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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(

Wyświetl plik

@ -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
}

Wyświetl plik

@ -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)

Wyświetl plik

@ -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)
}

Wyświetl plik

@ -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(),

Wyświetl plik

@ -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>

Wyświetl plik

@ -8,14 +8,14 @@ buildscript {
lifecycle_version = '2.4.0'
navigation_version = '2.3.5'
preference_version = '1.1.1'
room_version = '2.4.0'
room_version = '2.4.1'
hilt_version = '2.40.5'
json_version = '20211205'
osmdroid_version = '6.1.11'
timber_version = '5.0.1'
junit_version = '4.13.2'
mockito_version = '4.2.0'
leak_canary_version = '2.8'
leak_canary_version = '2.8.1'
}
repositories {
google()