diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 653a6688..c2a1eaa3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,12 +7,12 @@
diff --git a/app/src/main/java/com/rtbishop/look4sat/data/repository/PrefsRepo.kt b/app/src/main/java/com/rtbishop/look4sat/data/repository/PrefsRepo.kt
index 4a435723..9e5be0aa 100644
--- a/app/src/main/java/com/rtbishop/look4sat/data/repository/PrefsRepo.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/data/repository/PrefsRepo.kt
@@ -135,7 +135,7 @@ class PrefsRepo @Inject constructor(val preferences: SharedPreferences, moshi: M
preferences.edit { putString(keySources, sourcesJson) }
}
- private fun loadDefaultSources(): List {
+ fun loadDefaultSources(): List {
return listOf(
TleSource("https://celestrak.com/NORAD/elements/active.txt"),
TleSource("https://amsat.org/tle/current/nasabare.txt"),
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt b/app/src/main/java/com/rtbishop/look4sat/ui/Look4SatActivity.kt
similarity index 88%
rename from app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt
rename to app/src/main/java/com/rtbishop/look4sat/ui/Look4SatActivity.kt
index ac3c1529..9d42639c 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/Look4SatActivity.kt
@@ -22,13 +22,13 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController
import com.rtbishop.look4sat.R
-import com.rtbishop.look4sat.databinding.ActivityMainBinding
import com.rtbishop.look4sat.data.repository.PrefsRepo
+import com.rtbishop.look4sat.databinding.ActivityMainBinding
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
-class MainActivity : AppCompatActivity() {
+class Look4SatActivity : AppCompatActivity() {
@Inject
lateinit var prefsRepo: PrefsRepo
@@ -40,7 +40,11 @@ class MainActivity : AppCompatActivity() {
setContentView(root)
val navHost = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
navBottom.setupWithNavController(navHost.navController)
- if (prefsRepo.isFirstLaunch()) navHost.navController.navigate(R.id.nav_dialog_splash)
+
+ if (prefsRepo.isFirstLaunch()) {
+ prefsRepo.setFirstLaunchDone()
+ navHost.navController.navigate(R.id.nav_dialog_splash)
+ }
}
}
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/Look4SatApp.kt b/app/src/main/java/com/rtbishop/look4sat/ui/Look4SatApplication.kt
similarity index 89%
rename from app/src/main/java/com/rtbishop/look4sat/Look4SatApp.kt
rename to app/src/main/java/com/rtbishop/look4sat/ui/Look4SatApplication.kt
index ef73006b..6f11a9ff 100644
--- a/app/src/main/java/com/rtbishop/look4sat/Look4SatApp.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/Look4SatApplication.kt
@@ -15,14 +15,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat
+package com.rtbishop.look4sat.ui
import android.app.Application
+import com.rtbishop.look4sat.BuildConfig
import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber
@HiltAndroidApp
-class Look4SatApp : Application() {
+class Look4SatApplication : Application() {
+
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt
index e1779c67..47271812 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesFragment.kt
@@ -100,7 +100,12 @@ class EntriesFragment : Fragment(R.layout.fragment_entries), EntriesAdapter.Entr
private fun observeSourcesResult() {
getNavResult>(R.id.nav_entries, "sources") { result ->
- viewModel.importSatDataFromSources(result.map { TleSource(it) })
+ val sources = result.map { TleSource(it) }
+ if (sources.isNullOrEmpty()) {
+ viewModel.importSatDataFromSources()
+ } else {
+ viewModel.importSatDataFromSources(sources)
+ }
}
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt
index 98347132..31bcd977 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/entriesScreen/EntriesViewModel.kt
@@ -59,13 +59,13 @@ class EntriesViewModel @Inject constructor(
}
}
- fun importSatDataFromSources(sources: List = prefsRepo.loadTleSources()) {
+ fun importSatDataFromSources(sources: List = prefsRepo.loadDefaultSources()) {
viewModelScope.launch {
satDataState.emit(Result.InProgress)
val updateMillis = measureTimeMillis {
try {
- satelliteRepo.importSatDataFromWeb(sources)
prefsRepo.saveTleSources(sources)
+ satelliteRepo.importSatDataFromWeb(sources)
} catch (exception: Exception) {
satDataState.emit(Result.Error(exception))
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapFragment.kt
index cab2a7ff..a6c2e22e 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapFragment.kt
@@ -24,16 +24,14 @@ import android.os.Bundle
import android.view.View
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import com.github.amsacode.predict4java.Position
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.data.model.Result
import com.rtbishop.look4sat.data.model.SatPass
import com.rtbishop.look4sat.data.model.SelectedSat
-import com.rtbishop.look4sat.databinding.FragmentMapBinding
-import com.rtbishop.look4sat.ui.SharedViewModel
import com.rtbishop.look4sat.data.repository.PrefsRepo
+import com.rtbishop.look4sat.databinding.FragmentMapBinding
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.FlowPreview
import org.osmdroid.config.Configuration
@@ -56,7 +54,6 @@ class MapFragment : Fragment(R.layout.fragment_map) {
lateinit var prefsRepo: PrefsRepo
private lateinit var binding: FragmentMapBinding
private val mapViewModel: MapViewModel by viewModels()
- private val sharedViewModel: SharedViewModel by activityViewModels()
private val minLat = MapView.getTileSystem().minLatitude
private val maxLat = MapView.getTileSystem().maxLatitude
@@ -85,7 +82,7 @@ class MapFragment : Fragment(R.layout.fragment_map) {
private fun setupObservers() {
mapViewModel.getGSP().observe(viewLifecycleOwner, { setupPosOverlay(it) })
- sharedViewModel.passes.observe(viewLifecycleOwner, {
+ mapViewModel.passes.observe(viewLifecycleOwner, {
if (it is Result.Success && it.data.isNotEmpty()) {
mapViewModel.setPasses(it.data)
binding.fabPrev.setOnClickListener { mapViewModel.scrollSelection(true) }
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapViewModel.kt
index 8bd56e6d..07559a16 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapViewModel.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/mapScreen/MapViewModel.kt
@@ -19,14 +19,12 @@ package com.rtbishop.look4sat.ui.mapScreen
import android.graphics.Color
import android.graphics.Paint
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.viewModelScope
+import androidx.lifecycle.*
import com.github.amsacode.predict4java.Position
import com.github.amsacode.predict4java.SatPos
import com.rtbishop.look4sat.data.model.SatPass
import com.rtbishop.look4sat.data.model.SelectedSat
+import com.rtbishop.look4sat.data.repository.PassesRepo
import com.rtbishop.look4sat.data.repository.PrefsRepo
import com.rtbishop.look4sat.utility.QthConverter
import dagger.hilt.android.lifecycle.HiltViewModel
@@ -48,9 +46,10 @@ import kotlin.math.sqrt
@HiltViewModel
class MapViewModel @Inject constructor(
private val prefsRepo: PrefsRepo,
+ passesRepo: PassesRepo,
private val qthConverter: QthConverter
) : ViewModel() {
-
+
private val dateNow = Date()
private val trackPaint = Paint().apply {
strokeWidth = 2f
@@ -77,6 +76,8 @@ class MapViewModel @Inject constructor(
private val _satMarkers = MutableLiveData