diff --git a/app/build.gradle b/app/build.gradle
index 0e5f50b6..88b2ee5d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -17,9 +17,9 @@ android {
versionCode 254
versionName "2.5.4"
- javaCompileOptions {
- annotationProcessorOptions {
- arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
+ kapt {
+ arguments {
+ arg("room.schemaLocation", "$projectDir/schemas")
}
}
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/db/Converters.kt b/app/src/main/java/com/rtbishop/look4sat/framework/db/Converters.kt
index b7c96f46..eab45fe3 100644
--- a/app/src/main/java/com/rtbishop/look4sat/framework/db/Converters.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/framework/db/Converters.kt
@@ -33,19 +33,19 @@ object Converters {
@JvmStatic
@TypeConverter
- fun tleToString(tle: TLE): String {
+ fun paramsToString(tle: TLE): String {
return paramsAdapter.toJson(tle)
}
@JvmStatic
@TypeConverter
- fun tleFromString(string: String): TLE? {
+ fun paramsFromString(string: String): TLE? {
return paramsAdapter.fromJson(string)
}
@JvmStatic
@TypeConverter
- fun satFromString(string: String): Satellite? {
+ fun satelliteFromString(string: String): Satellite? {
return paramsAdapter.fromJson(string)?.createSat()
}
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/Look4SatActivity.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/Look4SatActivity.kt
index d2185dee..1ccd1ebe 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/Look4SatActivity.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/Look4SatActivity.kt
@@ -37,7 +37,7 @@ class Look4SatActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
- val navHost = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment
- binding.navBottom.setupWithNavController(navHost.navController)
+ val navHost = supportFragmentManager.findFragmentById(R.id.main_nav_host) as NavHostFragment
+ binding.mainNavBottom.setupWithNavController(navHost.navController)
}
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt
similarity index 87%
rename from app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemAdapter.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt
index b9a06ac6..0304a840 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemAdapter.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt
@@ -15,17 +15,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.presentation.satItemScreen
+package com.rtbishop.look4sat.presentation.entriesScreen
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.AsyncListDiffer
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
-import com.rtbishop.look4sat.databinding.SatItemBinding
import com.rtbishop.look4sat.data.SatItem
+import com.rtbishop.look4sat.databinding.ItemEntryBinding
-class SatItemAdapter : RecyclerView.Adapter() {
+class EntriesAdapter : RecyclerView.Adapter() {
private val diffCallback = object : DiffUtil.ItemCallback() {
override fun areItemsTheSame(oldItem: SatItem, newItem: SatItem): Boolean {
@@ -61,12 +61,12 @@ class SatItemAdapter : RecyclerView.Adapter() {
holder.bind(differ.currentList[position], clickListener)
}
- class SatItemHolder private constructor(private val binding: SatItemBinding) :
+ class SatItemHolder private constructor(private val binding: ItemEntryBinding) :
RecyclerView.ViewHolder(binding.root) {
fun bind(item: SatItem, listener: EntriesClickListener) {
- binding.satItemCheckbox.text = item.name
- binding.satItemCheckbox.isChecked = item.isSelected
+ binding.entryCheckbox.text = item.name
+ binding.entryCheckbox.isChecked = item.isSelected
itemView.setOnClickListener {
listener.updateSelection(listOf(item.catNum), item.isSelected.not())
}
@@ -75,7 +75,7 @@ class SatItemAdapter : RecyclerView.Adapter() {
companion object {
fun from(parent: ViewGroup): SatItemHolder {
val inflater = LayoutInflater.from(parent.context)
- return SatItemHolder(SatItemBinding.inflate(inflater, parent, false))
+ return SatItemHolder(ItemEntryBinding.inflate(inflater, parent, false))
}
}
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt
similarity index 88%
rename from app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemFragment.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt
index b66dfb78..06ec0dd3 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.presentation.satItemScreen
+package com.rtbishop.look4sat.presentation.entriesScreen
import android.os.Bundle
import android.view.View
@@ -27,8 +27,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.SimpleItemAnimator
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.rtbishop.look4sat.R
-import com.rtbishop.look4sat.databinding.FragmentEntriesBinding
import com.rtbishop.look4sat.data.SatItem
+import com.rtbishop.look4sat.databinding.FragmentEntriesBinding
import com.rtbishop.look4sat.framework.model.Result
import com.rtbishop.look4sat.utility.RecyclerDivider
import com.rtbishop.look4sat.utility.getNavResult
@@ -37,9 +37,9 @@ import com.rtbishop.look4sat.utility.showSnack
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
-class SatItemFragment : Fragment(R.layout.fragment_entries) {
+class EntriesFragment : Fragment(R.layout.fragment_entries) {
- private val viewModel: SatItemViewModel by viewModels()
+ private val viewModel: EntriesViewModel by viewModels()
private val contentContract = ActivityResultContracts.GetContent()
private val filePicker = registerForActivityResult(contentContract) { uri ->
uri?.let { viewModel.updateEntriesFromFile(uri) }
@@ -51,7 +51,7 @@ class SatItemFragment : Fragment(R.layout.fragment_entries) {
}
private fun setupComponents(view: View) {
- val entriesAdapter = SatItemAdapter().apply {
+ val entriesAdapter = EntriesAdapter().apply {
setEntriesClickListener(viewModel)
}
val binding = FragmentEntriesBinding.bind(view).apply {
@@ -62,13 +62,13 @@ class SatItemFragment : Fragment(R.layout.fragment_entries) {
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
addItemDecoration(RecyclerDivider(R.drawable.rec_divider_light))
}
- importWeb.setOnClickListener {
+ entriesImportWeb.setOnClickListener {
findNavController().navigateSafe(R.id.action_entries_to_sources)
}
- importFile.setOnClickListener { filePicker.launch("*/*") }
- selectMode.setOnClickListener { showModesDialog() }
- selectAll.setOnClickListener { viewModel.selectCurrentItems() }
- searchBar.setOnQueryTextListener(viewModel)
+ entriesImportFile.setOnClickListener { filePicker.launch("*/*") }
+ entriesSelectMode.setOnClickListener { showModesDialog() }
+ entriesSelectAll.setOnClickListener { viewModel.selectCurrentItems() }
+ entriesSearchBar.setOnQueryTextListener(viewModel)
}
viewModel.satData.observe(viewLifecycleOwner, { satData ->
handleSatData(satData, binding, entriesAdapter)
@@ -81,11 +81,11 @@ class SatItemFragment : Fragment(R.layout.fragment_entries) {
private fun handleSatData(
result: Result>,
binding: FragmentEntriesBinding,
- satItemAdapter: SatItemAdapter
+ entriesAdapter: EntriesAdapter
) {
when (result) {
is Result.Success -> {
- satItemAdapter.submitList(result.data)
+ entriesAdapter.submitList(result.data)
binding.entriesProgress.visibility = View.INVISIBLE
binding.entriesRecycler.visibility = View.VISIBLE
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt
similarity index 96%
rename from app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemViewModel.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt
index ccbf1981..5c15a337 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/satItemScreen/SatItemViewModel.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.presentation.satItemScreen
+package com.rtbishop.look4sat.presentation.entriesScreen
import android.content.ContentResolver
import android.net.Uri
@@ -32,11 +32,11 @@ import java.util.*
import javax.inject.Inject
@HiltViewModel
-class SatItemViewModel @Inject constructor(
+class EntriesViewModel @Inject constructor(
private val preferencesSource: PreferencesSource,
private val resolver: ContentResolver,
private val satelliteRepo: SatelliteRepo,
-) : ViewModel(), SatItemAdapter.EntriesClickListener, SearchView.OnQueryTextListener {
+) : ViewModel(), EntriesAdapter.EntriesClickListener, SearchView.OnQueryTextListener {
private val transModes = MutableLiveData(satelliteRepo.loadSelectedModes())
private val currentQuery = MutableLiveData(String())
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/appInfoScreen/AppInfoFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/infoScreen/InfoFragment.kt
similarity index 88%
rename from app/src/main/java/com/rtbishop/look4sat/presentation/appInfoScreen/AppInfoFragment.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/infoScreen/InfoFragment.kt
index 7e47e3c8..a3cc3434 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/appInfoScreen/AppInfoFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/infoScreen/InfoFragment.kt
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.presentation.appInfoScreen
+package com.rtbishop.look4sat.presentation.infoScreen
import android.content.Intent
import android.net.Uri
@@ -27,20 +27,20 @@ import com.rtbishop.look4sat.BuildConfig
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.databinding.FragmentInfoBinding
-class AppInfoFragment : Fragment(R.layout.fragment_info) {
+class InfoFragment : Fragment(R.layout.fragment_info) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
FragmentInfoBinding.bind(view).apply {
infoVersion.text =
String.format(getString(R.string.info_version), BuildConfig.VERSION_NAME)
- infoGithub.setOnClickListener {
+ infoBtnGithub.setOnClickListener {
gotoUrl("https://github.com/rt-bishop/Look4Sat/")
}
- infoFdroid.setOnClickListener {
+ infoBtnFdroid.setOnClickListener {
gotoUrl("https://f-droid.org/en/packages/com.rtbishop.look4sat/")
}
- infoBmc.setOnClickListener {
+ infoBtnDonate.setOnClickListener {
gotoUrl("https://www.buymeacoffee.com/rtbishop")
}
val moveMethod = LinkMovementMethod.getInstance()
diff --git a/core/src/main/java/com/rtbishop/look4sat/data/SatData.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt
similarity index 93%
rename from core/src/main/java/com/rtbishop/look4sat/data/SatData.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt
index 0252e46b..92c8dc11 100644
--- a/core/src/main/java/com/rtbishop/look4sat/data/SatData.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt
@@ -15,12 +15,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.data
+package com.rtbishop.look4sat.presentation.mapScreen
import com.rtbishop.look4sat.domain.GeoPos
import com.rtbishop.look4sat.domain.Satellite
-data class SatData(
+data class MapData(
val pass: Satellite,
val catNum: Int,
val name: String,
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satMapScreen/SatMapFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt
similarity index 88%
rename from app/src/main/java/com/rtbishop/look4sat/presentation/satMapScreen/SatMapFragment.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt
index 857525e4..93ca4e2e 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/satMapScreen/SatMapFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapFragment.kt
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.presentation.satMapScreen
+package com.rtbishop.look4sat.presentation.mapScreen
import android.content.SharedPreferences
import android.graphics.Color
@@ -31,7 +31,6 @@ import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.databinding.FragmentMapBinding
import com.rtbishop.look4sat.domain.GeoPos
import com.rtbishop.look4sat.domain.Satellite
-import com.rtbishop.look4sat.data.SatData
import dagger.hilt.android.AndroidEntryPoint
import org.osmdroid.config.Configuration
import org.osmdroid.tileprovider.tilesource.TileSourceFactory
@@ -44,12 +43,12 @@ import java.util.*
import javax.inject.Inject
@AndroidEntryPoint
-class SatMapFragment : Fragment(R.layout.fragment_map) {
+class MapFragment : Fragment(R.layout.fragment_map) {
@Inject
lateinit var sharedPreferences: SharedPreferences
- private val viewModel: SatMapViewModel by viewModels()
+ private val viewModel: MapViewModel by viewModels()
private val minLat = MapView.getTileSystem().minLatitude
private val maxLat = MapView.getTileSystem().maxLatitude
private val trackPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
@@ -83,8 +82,8 @@ class SatMapFragment : Fragment(R.layout.fragment_map) {
overlays.addAll(Array(4) { FolderOverlay() })
}
}
- binding.fabPrev.setOnClickListener { viewModel.scrollSelection(true) }
- binding.fabNext.setOnClickListener { viewModel.scrollSelection(false) }
+ binding.mapBtnPrev.setOnClickListener { viewModel.scrollSelection(true) }
+ binding.mapBtnNext.setOnClickListener { viewModel.scrollSelection(false) }
setupObservers(binding)
}
@@ -93,7 +92,7 @@ class SatMapFragment : Fragment(R.layout.fragment_map) {
viewModel.satPositions.observe(viewLifecycleOwner, { renderSatPositions(it, binding) })
viewModel.satTrack.observe(viewLifecycleOwner, { renderSatTrack(it, binding) })
viewModel.satFootprint.observe(viewLifecycleOwner, { renderSatFootprint(it, binding) })
- viewModel.satData.observe(viewLifecycleOwner, { renderSatData(it, binding) })
+ viewModel.mapData.observe(viewLifecycleOwner, { renderSatData(it, binding) })
}
private fun renderStationPos(stationPos: GeoPos, binding: FragmentMapBinding) {
@@ -183,16 +182,18 @@ class SatMapFragment : Fragment(R.layout.fragment_map) {
binding.mapView.overlays[2] = footprintOverlay
}
- private fun renderSatData(satData: SatData, binding: FragmentMapBinding) {
+ private fun renderSatData(mapData: MapData, binding: FragmentMapBinding) {
binding.apply {
- idName.text =
- String.format(getString(R.string.pat_osm_idName), satData.catNum, satData.name)
- qthLocator.text = String.format(getString(R.string.map_qth), satData.qthLoc)
- altitude.text = String.format(getString(R.string.pat_altitude), satData.altitude)
- distance.text = String.format(getString(R.string.pat_distance), satData.range)
- velocity.text = String.format(getString(R.string.pat_osm_vel), satData.velocity)
- mapLat.text = String.format(getString(R.string.pat_osm_lat), satData.osmPos.latitude)
- mapLon.text = String.format(getString(R.string.pat_osm_lon), satData.osmPos.longitude)
+ mapDataName.text =
+ String.format(getString(R.string.pat_osm_idName), mapData.catNum, mapData.name)
+ mapDataQth.text = String.format(getString(R.string.map_qth), mapData.qthLoc)
+ mapDataAlt.text = String.format(getString(R.string.pat_altitude), mapData.altitude)
+ mapDataDst.text = String.format(getString(R.string.pat_distance), mapData.range)
+ mapDataVel.text = String.format(getString(R.string.pat_osm_vel), mapData.velocity)
+ mapDataLat.text =
+ String.format(getString(R.string.pat_osm_lat), mapData.osmPos.latitude)
+ mapDataLon.text =
+ String.format(getString(R.string.pat_osm_lon), mapData.osmPos.longitude)
}
binding.mapView.invalidate()
}
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/satMapScreen/SatMapViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt
similarity index 96%
rename from app/src/main/java/com/rtbishop/look4sat/presentation/satMapScreen/SatMapViewModel.kt
rename to app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt
index 813e7b2a..60f32a11 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/satMapScreen/SatMapViewModel.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt
@@ -15,12 +15,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.rtbishop.look4sat.presentation.satMapScreen
+package com.rtbishop.look4sat.presentation.mapScreen
import androidx.lifecycle.*
import com.rtbishop.look4sat.domain.Predictor
import com.rtbishop.look4sat.data.PreferencesSource
-import com.rtbishop.look4sat.data.SatData
import com.rtbishop.look4sat.data.SatelliteRepo
import com.rtbishop.look4sat.domain.*
import dagger.hilt.android.lifecycle.HiltViewModel
@@ -31,7 +30,7 @@ import kotlin.math.max
import kotlin.math.min
@HiltViewModel
-class SatMapViewModel @Inject constructor(
+class MapViewModel @Inject constructor(
private val satelliteRepo: SatelliteRepo,
private val predictor: Predictor,
private val preferences: PreferencesSource,
@@ -54,8 +53,8 @@ class SatMapViewModel @Inject constructor(
private val _satFootprint = MutableLiveData>()
val satFootprint: LiveData> = _satFootprint
- private val _satData = MutableLiveData()
- val satData: LiveData = this._satData
+ private val _satData = MutableLiveData()
+ val mapData: LiveData = this._satData
private val _satPositions = MutableLiveData