diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/LocationProvider.kt b/app/src/main/java/com/rtbishop/look4sat/framework/LocationProvider.kt index 32ec966d..f166eade 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/LocationProvider.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/LocationProvider.kt @@ -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?) {} } diff --git a/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt b/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt index 5710decb..171f33f7 100644 --- a/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt @@ -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) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt index 96b1449b..a897aee2 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt @@ -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>(R.id.nav_satellites, "sources") { sources -> - viewModel.updateDataFromWeb(sources) - } } private fun handleSatData( diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt index 440fc2e5..c1bd9201 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt @@ -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>> = _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) { - 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 } diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt index 90df824d..12620cfa 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt @@ -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) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesFragment.kt index 249ef554..945ed3ef 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesFragment.kt @@ -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>(R.id.nav_passes, "prefs") { prefs -> passesViewModel.forceCalculation(prefs.first, prefs.second) } diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt index 9e55afa4..1e97caa8 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesViewModel.kt @@ -38,10 +38,8 @@ class PassesViewModel @Inject constructor( ) : ViewModel() { private val _passes = MutableLiveData>>() - private val _isFirstLaunchDone = MutableLiveData() private var passesProcessing: Job? = null val passes: LiveData>> = _passes - val isFirstLaunchDone: LiveData = _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(), diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 37601c42..99b8b19e 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -14,7 +14,7 @@ @color/themeLight @color/surfaceStatusbar @color/surfaceBg - @color/surfaceToolbar + @color/surfaceStatusbar false diff --git a/build.gradle b/build.gradle index b967de6f..2e9969c1 100644 --- a/build.gradle +++ b/build.gradle @@ -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()