From af7e02735079ec197b97c85fd7e594ef2ce4abf9 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sat, 9 Oct 2021 19:46:20 +0100 Subject: [PATCH] Switched to GridLayoutManager in entries recycler, classes moved --- .../rtbishop/look4sat/framework/DataMapper.kt | 6 +- .../look4sat/framework/PreferencesSource.kt | 4 +- .../look4sat/framework/local/Converters.kt | 4 +- .../look4sat/framework/local/LocalSource.kt | 8 +- .../look4sat/framework/local/SatelliteDao.kt | 2 +- .../look4sat/framework/model/SatEntry.kt | 2 +- .../look4sat/framework/remote/RemoteSource.kt | 2 +- .../look4sat/injection/AndroidModule.kt | 55 ------------ .../{Look4SatModule.kt => AppModule.kt} | 85 ++++++++----------- .../rtbishop/look4sat/injection/CoreModule.kt | 72 ++++++++++++++++ .../{CoroutinesModule.kt => KotlinModule.kt} | 0 .../entriesScreen/EntriesAdapter.kt | 4 +- .../entriesScreen/EntriesFragment.kt | 10 +-- .../entriesScreen/EntriesViewModel.kt | 8 +- .../presentation/mapScreen/MapData.kt | 4 +- .../presentation/mapScreen/MapFragment.kt | 4 +- .../presentation/mapScreen/MapViewModel.kt | 12 +-- .../passesScreen/PassesAdapter.kt | 2 +- .../passesScreen/PassesFragment.kt | 4 +- .../passesScreen/PassesViewModel.kt | 10 +-- .../presentation/radarScreen/RadarData.kt | 2 +- .../presentation/radarScreen/RadarFragment.kt | 4 +- .../presentation/radarScreen/RadarView.kt | 2 +- .../radarScreen/RadarViewModel.kt | 12 +-- .../radarScreen/TransmittersAdapter.kt | 2 +- app/src/main/res/layout/fragment_entries.xml | 11 ++- app/src/main/res/layout/item_entry.xml | 59 ++++++++++--- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- .../rtbishop/look4sat/data/DataRepository.kt | 14 +-- .../rtbishop/look4sat/data/LocalDataSource.kt | 8 +- .../look4sat/data/RemoteDataSource.kt | 2 +- .../look4sat/{common => domain}/Constants.kt | 3 +- .../look4sat/{common => domain}/DataState.kt | 2 +- .../rtbishop/look4sat/domain/QthConverter.kt | 8 +- .../{Repository.kt => SatelliteRepo.kt} | 8 +- .../look4sat/{ => domain}/model/OMM.kt | 2 +- .../look4sat/{ => domain}/model/SatEntry.kt | 4 +- .../look4sat/{ => domain}/model/SatItem.kt | 2 +- .../{ => domain}/model/Transmitter.kt | 2 +- .../predict}/DeepSpaceSat.kt | 2 +- .../predict}/GeoPos.kt | 2 +- .../predict}/NearEarthSat.kt | 2 +- .../predict}/Predictor.kt | 3 +- .../predict}/SatPass.kt | 2 +- .../predict}/SatPos.kt | 2 +- .../predict}/Satellite.kt | 2 +- .../{predict4kotlin => domain/predict}/TLE.kt | 2 +- .../usecases/GetSelectedSatellites.kt | 24 ------ .../look4sat/{domain => }/QthConverterTest.kt | 22 ++--- .../{predict4kotlin => }/TleParserTest.kt | 3 +- 51 files changed, 264 insertions(+), 251 deletions(-) delete mode 100644 app/src/main/java/com/rtbishop/look4sat/injection/AndroidModule.kt rename app/src/main/java/com/rtbishop/look4sat/injection/{Look4SatModule.kt => AppModule.kt} (64%) create mode 100644 app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt rename app/src/main/java/com/rtbishop/look4sat/injection/{CoroutinesModule.kt => KotlinModule.kt} (100%) rename core/src/main/java/com/rtbishop/look4sat/{common => domain}/Constants.kt (96%) rename core/src/main/java/com/rtbishop/look4sat/{common => domain}/DataState.kt (96%) rename core/src/main/java/com/rtbishop/look4sat/domain/{Repository.kt => SatelliteRepo.kt} (87%) rename core/src/main/java/com/rtbishop/look4sat/{ => domain}/model/OMM.kt (96%) rename core/src/main/java/com/rtbishop/look4sat/{ => domain}/model/SatEntry.kt (91%) rename core/src/main/java/com/rtbishop/look4sat/{ => domain}/model/SatItem.kt (95%) rename core/src/main/java/com/rtbishop/look4sat/{ => domain}/model/Transmitter.kt (95%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/DeepSpaceSat.kt (99%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/GeoPos.kt (95%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/NearEarthSat.kt (99%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/Predictor.kt (98%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/SatPass.kt (96%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/SatPos.kt (98%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/Satellite.kt (99%) rename core/src/main/java/com/rtbishop/look4sat/{predict4kotlin => domain/predict}/TLE.kt (98%) delete mode 100644 core/src/main/java/com/rtbishop/look4sat/usecases/GetSelectedSatellites.kt rename core/src/test/java/com/rtbishop/look4sat/{domain => }/QthConverterTest.kt (67%) rename core/src/test/java/com/rtbishop/look4sat/{predict4kotlin => }/TleParserTest.kt (96%) diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/DataMapper.kt b/app/src/main/java/com/rtbishop/look4sat/framework/DataMapper.kt index 969c3531..0aedb789 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/DataMapper.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/DataMapper.kt @@ -20,9 +20,9 @@ package com.rtbishop.look4sat.framework import com.rtbishop.look4sat.framework.model.SatEntry import com.rtbishop.look4sat.framework.model.SatItem import com.rtbishop.look4sat.framework.model.Transmitter -import com.rtbishop.look4sat.model.SatEntry as DomainEntry -import com.rtbishop.look4sat.model.SatItem as DomainItem -import com.rtbishop.look4sat.model.Transmitter as DomainTrans +import com.rtbishop.look4sat.domain.model.SatEntry as DomainEntry +import com.rtbishop.look4sat.domain.model.SatItem as DomainItem +import com.rtbishop.look4sat.domain.model.Transmitter as DomainTrans object DataMapper { diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/PreferencesSource.kt b/app/src/main/java/com/rtbishop/look4sat/framework/PreferencesSource.kt index 837aea65..fb206b98 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/PreferencesSource.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/PreferencesSource.kt @@ -21,8 +21,8 @@ import android.content.SharedPreferences import android.hardware.GeomagneticField import android.location.LocationManager import androidx.core.content.edit -import com.rtbishop.look4sat.common.Constants -import com.rtbishop.look4sat.predict4kotlin.GeoPos +import com.rtbishop.look4sat.domain.Constants +import com.rtbishop.look4sat.domain.predict.GeoPos import com.rtbishop.look4sat.domain.QthConverter import com.rtbishop.look4sat.utility.round import com.squareup.moshi.Moshi diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/local/Converters.kt b/app/src/main/java/com/rtbishop/look4sat/framework/local/Converters.kt index 8a1077c2..d2b5c82f 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/local/Converters.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/local/Converters.kt @@ -18,8 +18,8 @@ package com.rtbishop.look4sat.framework.local import androidx.room.TypeConverter -import com.rtbishop.look4sat.predict4kotlin.Satellite -import com.rtbishop.look4sat.predict4kotlin.TLE +import com.rtbishop.look4sat.domain.predict.Satellite +import com.rtbishop.look4sat.domain.predict.TLE import com.squareup.moshi.JsonAdapter import com.squareup.moshi.Moshi diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/local/LocalSource.kt b/app/src/main/java/com/rtbishop/look4sat/framework/local/LocalSource.kt index 0e915b51..54398062 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/local/LocalSource.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/local/LocalSource.kt @@ -18,10 +18,10 @@ package com.rtbishop.look4sat.framework.local import com.rtbishop.look4sat.data.LocalDataSource -import com.rtbishop.look4sat.model.SatEntry -import com.rtbishop.look4sat.model.SatItem -import com.rtbishop.look4sat.predict4kotlin.Satellite -import com.rtbishop.look4sat.model.Transmitter +import com.rtbishop.look4sat.domain.model.SatEntry +import com.rtbishop.look4sat.domain.model.SatItem +import com.rtbishop.look4sat.domain.predict.Satellite +import com.rtbishop.look4sat.domain.model.Transmitter import com.rtbishop.look4sat.framework.DataMapper import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/local/SatelliteDao.kt b/app/src/main/java/com/rtbishop/look4sat/framework/local/SatelliteDao.kt index 71e2a9dc..015f6d1d 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/local/SatelliteDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/local/SatelliteDao.kt @@ -21,7 +21,7 @@ import androidx.room.* import com.rtbishop.look4sat.framework.model.SatEntry import com.rtbishop.look4sat.framework.model.SatItem import com.rtbishop.look4sat.framework.model.Transmitter -import com.rtbishop.look4sat.predict4kotlin.Satellite +import com.rtbishop.look4sat.domain.predict.Satellite import kotlinx.coroutines.flow.Flow @Dao diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/model/SatEntry.kt b/app/src/main/java/com/rtbishop/look4sat/framework/model/SatEntry.kt index 4d7aec2a..5a0932b8 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/model/SatEntry.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/model/SatEntry.kt @@ -19,7 +19,7 @@ package com.rtbishop.look4sat.framework.model import androidx.room.Entity import androidx.room.PrimaryKey -import com.rtbishop.look4sat.predict4kotlin.TLE +import com.rtbishop.look4sat.domain.predict.TLE @Entity(tableName = "entries") data class SatEntry( diff --git a/app/src/main/java/com/rtbishop/look4sat/framework/remote/RemoteSource.kt b/app/src/main/java/com/rtbishop/look4sat/framework/remote/RemoteSource.kt index 46efa2cb..063cc324 100644 --- a/app/src/main/java/com/rtbishop/look4sat/framework/remote/RemoteSource.kt +++ b/app/src/main/java/com/rtbishop/look4sat/framework/remote/RemoteSource.kt @@ -18,7 +18,7 @@ package com.rtbishop.look4sat.framework.remote import com.rtbishop.look4sat.data.RemoteDataSource -import com.rtbishop.look4sat.model.Transmitter +import com.rtbishop.look4sat.domain.model.Transmitter import com.rtbishop.look4sat.framework.DataMapper import java.io.InputStream diff --git a/app/src/main/java/com/rtbishop/look4sat/injection/AndroidModule.kt b/app/src/main/java/com/rtbishop/look4sat/injection/AndroidModule.kt deleted file mode 100644 index e422617b..00000000 --- a/app/src/main/java/com/rtbishop/look4sat/injection/AndroidModule.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Look4Sat. Amateur radio satellite tracker and pass predictor. - * Copyright (C) 2019-2021 Arty Bishop (bishop.arty@gmail.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.rtbishop.look4sat.injection - -import android.content.ContentResolver -import android.content.Context -import android.content.SharedPreferences -import android.hardware.SensorManager -import android.location.LocationManager -import androidx.preference.PreferenceManager -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.android.qualifiers.ApplicationContext -import dagger.hilt.components.SingletonComponent - -@Module -@InstallIn(SingletonComponent::class) -object AndroidModule { - - @Provides - fun provideContentResolver(@ApplicationContext context: Context): ContentResolver { - return context.contentResolver - } - - @Provides - fun provideLocationManager(@ApplicationContext context: Context): LocationManager { - return context.getSystemService(Context.LOCATION_SERVICE) as LocationManager - } - - @Provides - fun provideSensorManager(@ApplicationContext context: Context): SensorManager { - return context.getSystemService(Context.SENSOR_SERVICE) as SensorManager - } - - @Provides - fun provideSharedPreferences(@ApplicationContext context: Context): SharedPreferences { - return PreferenceManager.getDefaultSharedPreferences(context) - } -} diff --git a/app/src/main/java/com/rtbishop/look4sat/injection/Look4SatModule.kt b/app/src/main/java/com/rtbishop/look4sat/injection/AppModule.kt similarity index 64% rename from app/src/main/java/com/rtbishop/look4sat/injection/Look4SatModule.kt rename to app/src/main/java/com/rtbishop/look4sat/injection/AppModule.kt index b8d6568b..f4dc8ab4 100644 --- a/app/src/main/java/com/rtbishop/look4sat/injection/Look4SatModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/injection/AppModule.kt @@ -17,35 +17,53 @@ */ package com.rtbishop.look4sat.injection +import android.content.ContentResolver import android.content.Context import android.content.SharedPreferences +import android.hardware.SensorManager import android.location.LocationManager +import androidx.preference.PreferenceManager import androidx.room.Room -import com.rtbishop.look4sat.data.LocalDataSource -import com.rtbishop.look4sat.data.RemoteDataSource -import com.rtbishop.look4sat.data.DataRepository -import com.rtbishop.look4sat.framework.remote.SatelliteApi -import com.rtbishop.look4sat.common.Constants -import com.rtbishop.look4sat.domain.Repository +import com.rtbishop.look4sat.domain.Constants import com.rtbishop.look4sat.framework.PreferencesSource -import com.rtbishop.look4sat.domain.DataReporter -import com.rtbishop.look4sat.predict4kotlin.Predictor -import com.rtbishop.look4sat.framework.remote.RemoteSource -import com.rtbishop.look4sat.framework.local.* +import com.rtbishop.look4sat.framework.local.Converters +import com.rtbishop.look4sat.framework.local.MIGRATION_1_2 +import com.rtbishop.look4sat.framework.local.SatelliteDao +import com.rtbishop.look4sat.framework.local.SatelliteDb +import com.rtbishop.look4sat.framework.remote.SatelliteApi import com.squareup.moshi.Moshi import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import kotlinx.coroutines.CoroutineDispatcher import retrofit2.Retrofit import retrofit2.converter.moshi.MoshiConverterFactory import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) -object Look4SatModule { +object AppModule { + + @Provides + fun provideContentResolver(@ApplicationContext context: Context): ContentResolver { + return context.contentResolver + } + + @Provides + fun provideLocationManager(@ApplicationContext context: Context): LocationManager { + return context.getSystemService(Context.LOCATION_SERVICE) as LocationManager + } + + @Provides + fun provideSensorManager(@ApplicationContext context: Context): SensorManager { + return context.getSystemService(Context.SENSOR_SERVICE) as SensorManager + } + + @Provides + fun provideSharedPreferences(@ApplicationContext context: Context): SharedPreferences { + return PreferenceManager.getDefaultSharedPreferences(context) + } @Provides @Singleton @@ -65,23 +83,11 @@ object Look4SatModule { @Provides @Singleton - fun providePredictor(@DefaultDispatcher dispatcher: CoroutineDispatcher): Predictor { - return Predictor(dispatcher) - } - - @Provides - @Singleton - fun provideSatelliteRepo( - localSource: LocalDataSource, - remoteSource: RemoteDataSource, - @IoDispatcher dispatcher: CoroutineDispatcher - ): Repository { - return DataRepository(localSource, remoteSource, dispatcher) - } - - @Provides - fun provideLocalDataSource(satelliteDao: SatelliteDao): LocalDataSource { - return LocalSource(satelliteDao) + fun provideSatelliteApi(): SatelliteApi { + return Retrofit.Builder() + .baseUrl(Constants.URL_BASE) + .addConverterFactory(MoshiConverterFactory.create()) + .build().create(SatelliteApi::class.java) } @Provides @@ -97,25 +103,4 @@ object Look4SatModule { return Room.databaseBuilder(context, SatelliteDb::class.java, "SatelliteDb") .addMigrations(MIGRATION_1_2).build() } - - @Provides - @Singleton - fun provideRemoteDataSource(satelliteApi: SatelliteApi): RemoteDataSource { - return RemoteSource(satelliteApi) - } - - @Provides - @Singleton - fun provideSatelliteService(): SatelliteApi { - return Retrofit.Builder() - .baseUrl(Constants.URL_BASE) - .addConverterFactory(MoshiConverterFactory.create()) - .build().create(SatelliteApi::class.java) - } - - @Provides - @Singleton - fun provideDataReporter(@IoDispatcher dispatcher: CoroutineDispatcher): DataReporter { - return DataReporter(dispatcher) - } } diff --git a/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt b/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt new file mode 100644 index 00000000..9d4c6a91 --- /dev/null +++ b/app/src/main/java/com/rtbishop/look4sat/injection/CoreModule.kt @@ -0,0 +1,72 @@ +/* + * Look4Sat. Amateur radio satellite tracker and pass predictor. + * Copyright (C) 2019-2021 Arty Bishop (bishop.arty@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.rtbishop.look4sat.injection + +import com.rtbishop.look4sat.data.LocalDataSource +import com.rtbishop.look4sat.data.RemoteDataSource +import com.rtbishop.look4sat.data.DataRepository +import com.rtbishop.look4sat.framework.remote.SatelliteApi +import com.rtbishop.look4sat.domain.SatelliteRepo +import com.rtbishop.look4sat.domain.DataReporter +import com.rtbishop.look4sat.domain.predict.Predictor +import com.rtbishop.look4sat.framework.remote.RemoteSource +import com.rtbishop.look4sat.framework.local.* +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import kotlinx.coroutines.CoroutineDispatcher +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object CoreModule { + + @Provides + fun provideLocalDataSource(satelliteDao: SatelliteDao): LocalDataSource { + return LocalSource(satelliteDao) + } + + @Provides + @Singleton + fun provideRemoteDataSource(satelliteApi: SatelliteApi): RemoteDataSource { + return RemoteSource(satelliteApi) + } + + @Provides + @Singleton + fun provideSatelliteRepo( + localSource: LocalDataSource, + remoteSource: RemoteDataSource, + @IoDispatcher dispatcher: CoroutineDispatcher + ): SatelliteRepo { + return DataRepository(localSource, remoteSource, dispatcher) + } + + @Provides + @Singleton + fun providePredictor(@DefaultDispatcher dispatcher: CoroutineDispatcher): Predictor { + return Predictor(dispatcher) + } + + @Provides + @Singleton + fun provideDataReporter(@IoDispatcher dispatcher: CoroutineDispatcher): DataReporter { + return DataReporter(dispatcher) + } +} diff --git a/app/src/main/java/com/rtbishop/look4sat/injection/CoroutinesModule.kt b/app/src/main/java/com/rtbishop/look4sat/injection/KotlinModule.kt similarity index 100% rename from app/src/main/java/com/rtbishop/look4sat/injection/CoroutinesModule.kt rename to app/src/main/java/com/rtbishop/look4sat/injection/KotlinModule.kt diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt index 8fe5e4d3..cc68dd95 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesAdapter.kt @@ -22,7 +22,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.AsyncListDiffer import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView -import com.rtbishop.look4sat.model.SatItem +import com.rtbishop.look4sat.domain.model.SatItem import com.rtbishop.look4sat.databinding.ItemEntryBinding class EntriesAdapter(private val clickListener: EntriesClickListener) : @@ -57,7 +57,7 @@ class EntriesAdapter(private val clickListener: EntriesClickListener) : RecyclerView.ViewHolder(binding.root) { fun bind(item: SatItem, listener: EntriesClickListener) { - binding.entryCheckbox.text = item.name + binding.entryName.text = item.name binding.entryCheckbox.isChecked = item.isSelected itemView.setOnClickListener { listener.updateSelection(listOf(item.catNum), item.isSelected.not()) 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 a53e721f..f0fd0760 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 @@ -23,13 +23,13 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController -import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.SimpleItemAnimator import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.rtbishop.look4sat.R -import com.rtbishop.look4sat.model.SatItem import com.rtbishop.look4sat.databinding.FragmentEntriesBinding -import com.rtbishop.look4sat.common.DataState +import com.rtbishop.look4sat.domain.model.SatItem +import com.rtbishop.look4sat.domain.DataState import com.rtbishop.look4sat.presentation.ItemDivider import com.rtbishop.look4sat.utility.getNavResult import com.rtbishop.look4sat.utility.navigateSafe @@ -51,7 +51,7 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) { } private fun setupComponents(view: View) { - val entriesAdapter = EntriesAdapter(object: EntriesAdapter.EntriesClickListener { + val entriesAdapter = EntriesAdapter(object : EntriesAdapter.EntriesClickListener { override fun updateSelection(catNums: List, isSelected: Boolean) { viewModel.updateSelection(catNums, isSelected) } @@ -60,7 +60,7 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) { entriesRecycler.apply { setHasFixedSize(true) adapter = entriesAdapter - layoutManager = LinearLayoutManager(requireContext()) + layoutManager = GridLayoutManager(requireContext(), 2) (itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false addItemDecoration(ItemDivider(R.drawable.rec_divider_light)) } 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 f28d5f15..01fef101 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 @@ -21,9 +21,9 @@ import android.content.ContentResolver import android.net.Uri import android.widget.SearchView import androidx.lifecycle.* -import com.rtbishop.look4sat.model.SatItem -import com.rtbishop.look4sat.common.DataState -import com.rtbishop.look4sat.domain.Repository +import com.rtbishop.look4sat.domain.model.SatItem +import com.rtbishop.look4sat.domain.DataState +import com.rtbishop.look4sat.domain.SatelliteRepo import com.rtbishop.look4sat.framework.PreferencesSource import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.CoroutineExceptionHandler @@ -37,7 +37,7 @@ import javax.inject.Inject class EntriesViewModel @Inject constructor( private val preferences: PreferencesSource, private val resolver: ContentResolver, - private val satelliteRepo: Repository, + private val satelliteRepo: SatelliteRepo, ) : ViewModel(), SearchView.OnQueryTextListener { private val coroutineHandler = CoroutineExceptionHandler { _, throwable -> diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt index aef324f5..5299cd93 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapData.kt @@ -17,8 +17,8 @@ */ package com.rtbishop.look4sat.presentation.mapScreen -import com.rtbishop.look4sat.predict4kotlin.GeoPos -import com.rtbishop.look4sat.predict4kotlin.Satellite +import com.rtbishop.look4sat.domain.predict.GeoPos +import com.rtbishop.look4sat.domain.predict.Satellite data class MapData( val pass: Satellite, 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 ec97c2ef..a79c0a96 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 @@ -29,8 +29,8 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import com.rtbishop.look4sat.R import com.rtbishop.look4sat.databinding.FragmentMapBinding -import com.rtbishop.look4sat.predict4kotlin.GeoPos -import com.rtbishop.look4sat.predict4kotlin.Satellite +import com.rtbishop.look4sat.domain.predict.GeoPos +import com.rtbishop.look4sat.domain.predict.Satellite import dagger.hilt.android.AndroidEntryPoint import org.osmdroid.config.Configuration import org.osmdroid.tileprovider.tilesource.TileSourceFactory diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt index 81f4f45f..611c2d37 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/mapScreen/MapViewModel.kt @@ -18,12 +18,12 @@ package com.rtbishop.look4sat.presentation.mapScreen import androidx.lifecycle.* -import com.rtbishop.look4sat.predict4kotlin.Predictor -import com.rtbishop.look4sat.domain.Repository +import com.rtbishop.look4sat.domain.predict.Predictor +import com.rtbishop.look4sat.domain.SatelliteRepo import com.rtbishop.look4sat.framework.PreferencesSource -import com.rtbishop.look4sat.predict4kotlin.GeoPos +import com.rtbishop.look4sat.domain.predict.GeoPos import com.rtbishop.look4sat.domain.QthConverter -import com.rtbishop.look4sat.predict4kotlin.Satellite +import com.rtbishop.look4sat.domain.predict.Satellite import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.* import java.util.* @@ -33,7 +33,7 @@ import kotlin.math.min @HiltViewModel class MapViewModel @Inject constructor( - private val satelliteRepo: Repository, + private val satelliteRepo: SatelliteRepo, private val predictor: Predictor, private val preferences: PreferencesSource, ) : ViewModel() { @@ -162,7 +162,7 @@ class MapViewModel @Inject constructor( val osmLat = clipLat(Math.toDegrees(satPos.latitude)) val osmLon = clipLon(Math.toDegrees(satPos.longitude)) val osmPos = GeoPos(osmLat, osmLon) - val qthLoc = QthConverter.positionToQTH(osmPos.latitude, osmPos.longitude) ?: "-- --" + val qthLoc = QthConverter.positionToQth(osmPos.latitude, osmPos.longitude) ?: "-- --" val satData = MapData( satellite, satellite.params.catnum, satellite.params.name, satPos.range, satPos.altitude, satPos.getOrbitalVelocity(), qthLoc, osmPos diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesAdapter.kt index 2c08d42f..be562e2e 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/passesScreen/PassesAdapter.kt @@ -25,7 +25,7 @@ import androidx.recyclerview.widget.RecyclerView import com.rtbishop.look4sat.R import com.rtbishop.look4sat.databinding.ItemPassGeoBinding import com.rtbishop.look4sat.databinding.ItemPassLeoBinding -import com.rtbishop.look4sat.predict4kotlin.SatPass +import com.rtbishop.look4sat.domain.predict.SatPass import java.text.SimpleDateFormat import java.util.* 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 651c85a0..56bf716a 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 @@ -29,8 +29,8 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.SimpleItemAnimator import com.rtbishop.look4sat.R import com.rtbishop.look4sat.databinding.FragmentPassesBinding -import com.rtbishop.look4sat.predict4kotlin.SatPass -import com.rtbishop.look4sat.common.DataState +import com.rtbishop.look4sat.domain.predict.SatPass +import com.rtbishop.look4sat.domain.DataState import com.rtbishop.look4sat.presentation.ItemDivider import com.rtbishop.look4sat.utility.navigateSafe import com.rtbishop.look4sat.utility.toTimerString 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 17969d4b..e13b2a48 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 @@ -21,10 +21,10 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.rtbishop.look4sat.predict4kotlin.Predictor -import com.rtbishop.look4sat.predict4kotlin.SatPass -import com.rtbishop.look4sat.common.DataState -import com.rtbishop.look4sat.domain.Repository +import com.rtbishop.look4sat.domain.predict.Predictor +import com.rtbishop.look4sat.domain.predict.SatPass +import com.rtbishop.look4sat.domain.DataState +import com.rtbishop.look4sat.domain.SatelliteRepo import com.rtbishop.look4sat.framework.PreferencesSource import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.* @@ -34,7 +34,7 @@ import javax.inject.Inject @HiltViewModel class PassesViewModel @Inject constructor( - private val satelliteRepo: Repository, + private val satelliteRepo: SatelliteRepo, private val predictor: Predictor, private val preferences: PreferencesSource ) : ViewModel() { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarData.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarData.kt index 8a0946bc..8c0f7bfd 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarData.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarData.kt @@ -17,6 +17,6 @@ */ package com.rtbishop.look4sat.presentation.radarScreen -import com.rtbishop.look4sat.predict4kotlin.SatPos +import com.rtbishop.look4sat.domain.predict.SatPos data class RadarData(val satPos: SatPos, val satTrack: List = emptyList()) diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt index dc6b9627..040a54ff 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarFragment.kt @@ -27,8 +27,8 @@ import androidx.recyclerview.widget.SimpleItemAnimator import com.rtbishop.look4sat.R import com.rtbishop.look4sat.databinding.FragmentRadarBinding import com.rtbishop.look4sat.framework.PreferencesSource -import com.rtbishop.look4sat.predict4kotlin.SatPass -import com.rtbishop.look4sat.predict4kotlin.SatPos +import com.rtbishop.look4sat.domain.predict.SatPass +import com.rtbishop.look4sat.domain.predict.SatPos import com.rtbishop.look4sat.presentation.ItemDivider import com.rtbishop.look4sat.utility.navigateSafe import com.rtbishop.look4sat.utility.toTimerString diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt index 576ed258..191cae5c 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarView.kt @@ -22,7 +22,7 @@ import android.graphics.* import android.view.View import androidx.core.content.ContextCompat import com.rtbishop.look4sat.R -import com.rtbishop.look4sat.predict4kotlin.SatPos +import com.rtbishop.look4sat.domain.predict.SatPos import kotlin.math.cos import kotlin.math.min import kotlin.math.sin diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarViewModel.kt index a832d913..2533b091 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarViewModel.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/RadarViewModel.kt @@ -19,11 +19,11 @@ package com.rtbishop.look4sat.presentation.radarScreen import androidx.lifecycle.* import com.rtbishop.look4sat.domain.DataReporter -import com.rtbishop.look4sat.domain.Repository -import com.rtbishop.look4sat.predict4kotlin.Predictor -import com.rtbishop.look4sat.predict4kotlin.SatPass -import com.rtbishop.look4sat.predict4kotlin.SatPos -import com.rtbishop.look4sat.model.Transmitter +import com.rtbishop.look4sat.domain.SatelliteRepo +import com.rtbishop.look4sat.domain.predict.Predictor +import com.rtbishop.look4sat.domain.predict.SatPass +import com.rtbishop.look4sat.domain.predict.SatPos +import com.rtbishop.look4sat.domain.model.Transmitter import com.rtbishop.look4sat.framework.OrientationSource import com.rtbishop.look4sat.framework.PreferencesSource import com.rtbishop.look4sat.utility.round @@ -40,7 +40,7 @@ class RadarViewModel @Inject constructor( private val orientationSource: OrientationSource, private val preferences: PreferencesSource, private val predictor: Predictor, - private val satelliteRepo: Repository, + private val satelliteRepo: SatelliteRepo, private val dataReporter: DataReporter ) : ViewModel(), OrientationSource.OrientationListener { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/TransmittersAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/TransmittersAdapter.kt index 8d69c5a6..d1d61937 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/TransmittersAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/radarScreen/TransmittersAdapter.kt @@ -24,7 +24,7 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.rtbishop.look4sat.R import com.rtbishop.look4sat.databinding.ItemTransBinding -import com.rtbishop.look4sat.model.Transmitter +import com.rtbishop.look4sat.domain.model.Transmitter import java.util.* class TransmittersAdapter : RecyclerView.Adapter() { diff --git a/app/src/main/res/layout/fragment_entries.xml b/app/src/main/res/layout/fragment_entries.xml index 3457a53c..d92dc412 100644 --- a/app/src/main/res/layout/fragment_entries.xml +++ b/app/src/main/res/layout/fragment_entries.xml @@ -17,7 +17,7 @@ android:id="@+id/entries_import_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="24dp" + android:layout_marginStart="18dp" android:elevation="4dp" android:text="@string/entries_update" android:textSize="18sp" @@ -53,13 +53,15 @@ + app:layout_constraintTop_toBottomOf="@+id/entries_import_web" /> - + android:layout_height="wrap_content" + app:cardCornerRadius="8dp" + app:cardElevation="0dp"> + + + + + + + + + + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8787603f..e5498bd3 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -17,7 +17,7 @@ Пожалуйста, проверьте URL Обновить спутники: - Имя / Номер + Поиск по Имени / Id Ошибка обновления спутников Выберите модуляцию трансивера diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ae87fa23..1d7edf68 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,7 +20,7 @@ Please check the entered URL TLE data update: - Name / Id + Search by Name / Id Error importing satellite data Choose transceiver mode diff --git a/core/src/main/java/com/rtbishop/look4sat/data/DataRepository.kt b/core/src/main/java/com/rtbishop/look4sat/data/DataRepository.kt index 8454331a..dc1f10a7 100644 --- a/core/src/main/java/com/rtbishop/look4sat/data/DataRepository.kt +++ b/core/src/main/java/com/rtbishop/look4sat/data/DataRepository.kt @@ -17,12 +17,12 @@ */ package com.rtbishop.look4sat.data -import com.rtbishop.look4sat.domain.Repository -import com.rtbishop.look4sat.model.SatEntry -import com.rtbishop.look4sat.model.SatItem -import com.rtbishop.look4sat.model.Transmitter -import com.rtbishop.look4sat.predict4kotlin.Satellite -import com.rtbishop.look4sat.predict4kotlin.TLE +import com.rtbishop.look4sat.domain.SatelliteRepo +import com.rtbishop.look4sat.domain.model.SatEntry +import com.rtbishop.look4sat.domain.model.SatItem +import com.rtbishop.look4sat.domain.model.Transmitter +import com.rtbishop.look4sat.domain.predict.Satellite +import com.rtbishop.look4sat.domain.predict.TLE import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.Flow @@ -35,7 +35,7 @@ class DataRepository( private val localSource: LocalDataSource, private val remoteSource: RemoteDataSource, private val repoDispatcher: CoroutineDispatcher -) : Repository { +) : SatelliteRepo { override fun getSatItems(): Flow> { return localSource.getEntriesWithModes() diff --git a/core/src/main/java/com/rtbishop/look4sat/data/LocalDataSource.kt b/core/src/main/java/com/rtbishop/look4sat/data/LocalDataSource.kt index e7d74964..fc77cde1 100644 --- a/core/src/main/java/com/rtbishop/look4sat/data/LocalDataSource.kt +++ b/core/src/main/java/com/rtbishop/look4sat/data/LocalDataSource.kt @@ -17,10 +17,10 @@ */ package com.rtbishop.look4sat.data -import com.rtbishop.look4sat.model.SatEntry -import com.rtbishop.look4sat.model.SatItem -import com.rtbishop.look4sat.model.Transmitter -import com.rtbishop.look4sat.predict4kotlin.Satellite +import com.rtbishop.look4sat.domain.model.SatEntry +import com.rtbishop.look4sat.domain.model.SatItem +import com.rtbishop.look4sat.domain.model.Transmitter +import com.rtbishop.look4sat.domain.predict.Satellite import kotlinx.coroutines.flow.Flow interface LocalDataSource { diff --git a/core/src/main/java/com/rtbishop/look4sat/data/RemoteDataSource.kt b/core/src/main/java/com/rtbishop/look4sat/data/RemoteDataSource.kt index 73ab2924..d9e9ab4e 100644 --- a/core/src/main/java/com/rtbishop/look4sat/data/RemoteDataSource.kt +++ b/core/src/main/java/com/rtbishop/look4sat/data/RemoteDataSource.kt @@ -17,7 +17,7 @@ */ package com.rtbishop.look4sat.data -import com.rtbishop.look4sat.model.Transmitter +import com.rtbishop.look4sat.domain.model.Transmitter import java.io.InputStream interface RemoteDataSource { diff --git a/core/src/main/java/com/rtbishop/look4sat/common/Constants.kt b/core/src/main/java/com/rtbishop/look4sat/domain/Constants.kt similarity index 96% rename from core/src/main/java/com/rtbishop/look4sat/common/Constants.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/Constants.kt index 4cbca6e8..e94fef76 100644 --- a/core/src/main/java/com/rtbishop/look4sat/common/Constants.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/Constants.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.common +package com.rtbishop.look4sat.domain object Constants { @@ -24,5 +24,4 @@ object Constants { const val URL_AMSAT = "https://amsat.org/tle/current/nasabare.txt" const val URL_PRISM_CLASSFD = "https://www.prismnet.com/~mmccants/tles/classfd.zip" const val URL_PRISM_INTEL = "https://www.prismnet.com/~mmccants/tles/inttles.zip" - } diff --git a/core/src/main/java/com/rtbishop/look4sat/common/DataState.kt b/core/src/main/java/com/rtbishop/look4sat/domain/DataState.kt similarity index 96% rename from core/src/main/java/com/rtbishop/look4sat/common/DataState.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/DataState.kt index d6c00810..1347bb29 100644 --- a/core/src/main/java/com/rtbishop/look4sat/common/DataState.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/DataState.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.common +package com.rtbishop.look4sat.domain sealed class DataState { data class Success(val data: T) : DataState() diff --git a/core/src/main/java/com/rtbishop/look4sat/domain/QthConverter.kt b/core/src/main/java/com/rtbishop/look4sat/domain/QthConverter.kt index b53c8fd6..cbde6448 100644 --- a/core/src/main/java/com/rtbishop/look4sat/domain/QthConverter.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/QthConverter.kt @@ -17,14 +17,14 @@ */ package com.rtbishop.look4sat.domain -import com.rtbishop.look4sat.predict4kotlin.GeoPos +import com.rtbishop.look4sat.domain.predict.GeoPos import kotlin.math.round object QthConverter { fun qthToPosition(qthString: String): GeoPos? { val trimmedQth = qthString.take(6) - if (!isValidQTH(trimmedQth)) return null + if (!isValidQth(trimmedQth)) return null val lonFirst = (trimmedQth[0].uppercaseChar().code - 65) * 20 val latFirst = (trimmedQth[1].uppercaseChar().code - 65) * 10 val lonSecond = trimmedQth[2].toString().toInt() * 2 @@ -36,7 +36,7 @@ object QthConverter { return GeoPos(latitude, longitude) } - fun positionToQTH(lat: Double, lon: Double): String? { + fun positionToQth(lat: Double, lon: Double): String? { if (!isValidPosition(lat, lon)) return null val tempLon = if (lon > 180.0) lon - 360 else lon val upper = "ABCDEFGHIJKLMNOPQRSTUVWX" @@ -52,7 +52,7 @@ object QthConverter { return "$lonFirst$latFirst$lonSecond$latSecond$lonThird$latThird" } - private fun isValidQTH(qthString: String): Boolean { + private fun isValidQth(qthString: String): Boolean { val qthPattern = "[a-xA-X][a-xA-X][0-9][0-9][a-xA-X][a-xA-X]".toRegex() return qthString.matches(qthPattern) } diff --git a/core/src/main/java/com/rtbishop/look4sat/domain/Repository.kt b/core/src/main/java/com/rtbishop/look4sat/domain/SatelliteRepo.kt similarity index 87% rename from core/src/main/java/com/rtbishop/look4sat/domain/Repository.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/SatelliteRepo.kt index 2651be83..0a30b751 100644 --- a/core/src/main/java/com/rtbishop/look4sat/domain/Repository.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/SatelliteRepo.kt @@ -17,13 +17,13 @@ */ package com.rtbishop.look4sat.domain -import com.rtbishop.look4sat.model.SatItem -import com.rtbishop.look4sat.model.Transmitter -import com.rtbishop.look4sat.predict4kotlin.Satellite +import com.rtbishop.look4sat.domain.model.SatItem +import com.rtbishop.look4sat.domain.model.Transmitter +import com.rtbishop.look4sat.domain.predict.Satellite import kotlinx.coroutines.flow.Flow import java.io.InputStream -interface Repository { +interface SatelliteRepo { fun getSatItems(): Flow> diff --git a/core/src/main/java/com/rtbishop/look4sat/model/OMM.kt b/core/src/main/java/com/rtbishop/look4sat/domain/model/OMM.kt similarity index 96% rename from core/src/main/java/com/rtbishop/look4sat/model/OMM.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/model/OMM.kt index 519126f6..7a1ce573 100644 --- a/core/src/main/java/com/rtbishop/look4sat/model/OMM.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/model/OMM.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.model +package com.rtbishop.look4sat.domain.model data class OMM( val name: String, diff --git a/core/src/main/java/com/rtbishop/look4sat/model/SatEntry.kt b/core/src/main/java/com/rtbishop/look4sat/domain/model/SatEntry.kt similarity index 91% rename from core/src/main/java/com/rtbishop/look4sat/model/SatEntry.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/model/SatEntry.kt index fe6d9b55..04550cfa 100644 --- a/core/src/main/java/com/rtbishop/look4sat/model/SatEntry.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/model/SatEntry.kt @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.rtbishop.look4sat.model +package com.rtbishop.look4sat.domain.model -import com.rtbishop.look4sat.predict4kotlin.TLE +import com.rtbishop.look4sat.domain.predict.TLE data class SatEntry( val tle: TLE, diff --git a/core/src/main/java/com/rtbishop/look4sat/model/SatItem.kt b/core/src/main/java/com/rtbishop/look4sat/domain/model/SatItem.kt similarity index 95% rename from core/src/main/java/com/rtbishop/look4sat/model/SatItem.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/model/SatItem.kt index 21752953..cd6ca592 100644 --- a/core/src/main/java/com/rtbishop/look4sat/model/SatItem.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/model/SatItem.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.model +package com.rtbishop.look4sat.domain.model data class SatItem( val catNum: Int, diff --git a/core/src/main/java/com/rtbishop/look4sat/model/Transmitter.kt b/core/src/main/java/com/rtbishop/look4sat/domain/model/Transmitter.kt similarity index 95% rename from core/src/main/java/com/rtbishop/look4sat/model/Transmitter.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/model/Transmitter.kt index 62daa909..84e80f54 100644 --- a/core/src/main/java/com/rtbishop/look4sat/model/Transmitter.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/model/Transmitter.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.model +package com.rtbishop.look4sat.domain.model data class Transmitter( val uuid: String, diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/DeepSpaceSat.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/DeepSpaceSat.kt similarity index 99% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/DeepSpaceSat.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/DeepSpaceSat.kt index 483c11fe..6e9dd3fc 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/DeepSpaceSat.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/DeepSpaceSat.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.predict4kotlin +package com.rtbishop.look4sat.domain.predict import kotlin.math.* diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/GeoPos.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/GeoPos.kt similarity index 95% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/GeoPos.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/GeoPos.kt index 4213ff5b..2f26f112 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/GeoPos.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/GeoPos.kt @@ -15,6 +15,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.rtbishop.look4sat.predict4kotlin +package com.rtbishop.look4sat.domain.predict data class GeoPos(val latitude: Double, val longitude: Double, val altitude: Double = 0.0) diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/NearEarthSat.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/NearEarthSat.kt similarity index 99% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/NearEarthSat.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/NearEarthSat.kt index 00bf9f06..eec9ff22 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/NearEarthSat.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/NearEarthSat.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.predict4kotlin +package com.rtbishop.look4sat.domain.predict import kotlin.math.* diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/Predictor.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/Predictor.kt similarity index 98% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/Predictor.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/Predictor.kt index cdaf9b5a..a310dc19 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/Predictor.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/Predictor.kt @@ -15,9 +15,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.rtbishop.look4sat.predict4kotlin +package com.rtbishop.look4sat.domain.predict -import com.rtbishop.look4sat.domain.* import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.SharedFlow diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/SatPass.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/SatPass.kt similarity index 96% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/SatPass.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/SatPass.kt index 3f2a9558..85dbb9ae 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/SatPass.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/SatPass.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.predict4kotlin +package com.rtbishop.look4sat.domain.predict data class SatPass( val aosTime: Long, diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/SatPos.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/SatPos.kt similarity index 98% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/SatPos.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/SatPos.kt index e787dd34..de8e46af 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/SatPos.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/SatPos.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.predict4kotlin +package com.rtbishop.look4sat.domain.predict import kotlin.math.* diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/Satellite.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/Satellite.kt similarity index 99% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/Satellite.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/Satellite.kt index 90c46286..7c12519f 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/Satellite.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/Satellite.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.predict4kotlin +package com.rtbishop.look4sat.domain.predict import java.util.* import java.util.concurrent.atomic.AtomicReference diff --git a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/TLE.kt b/core/src/main/java/com/rtbishop/look4sat/domain/predict/TLE.kt similarity index 98% rename from core/src/main/java/com/rtbishop/look4sat/predict4kotlin/TLE.kt rename to core/src/main/java/com/rtbishop/look4sat/domain/predict/TLE.kt index b86f4932..32ef073d 100644 --- a/core/src/main/java/com/rtbishop/look4sat/predict4kotlin/TLE.kt +++ b/core/src/main/java/com/rtbishop/look4sat/domain/predict/TLE.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.predict4kotlin +package com.rtbishop.look4sat.domain.predict import java.io.InputStream import kotlin.math.pow diff --git a/core/src/main/java/com/rtbishop/look4sat/usecases/GetSelectedSatellites.kt b/core/src/main/java/com/rtbishop/look4sat/usecases/GetSelectedSatellites.kt deleted file mode 100644 index 81338f90..00000000 --- a/core/src/main/java/com/rtbishop/look4sat/usecases/GetSelectedSatellites.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Look4Sat. Amateur radio satellite tracker and pass predictor. - * Copyright (C) 2019-2021 Arty Bishop (bishop.arty@gmail.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.rtbishop.look4sat.usecases - -import com.rtbishop.look4sat.domain.Repository - -class GetSelectedSatellites(private val dataRepository: Repository) { - suspend operator fun invoke() = dataRepository.getSelectedSatellites() -} diff --git a/core/src/test/java/com/rtbishop/look4sat/domain/QthConverterTest.kt b/core/src/test/java/com/rtbishop/look4sat/QthConverterTest.kt similarity index 67% rename from core/src/test/java/com/rtbishop/look4sat/domain/QthConverterTest.kt rename to core/src/test/java/com/rtbishop/look4sat/QthConverterTest.kt index 11d2b936..26c77812 100644 --- a/core/src/test/java/com/rtbishop/look4sat/domain/QthConverterTest.kt +++ b/core/src/test/java/com/rtbishop/look4sat/QthConverterTest.kt @@ -15,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.rtbishop.look4sat.domain +package com.rtbishop.look4sat +import com.rtbishop.look4sat.domain.QthConverter import org.junit.Test class QthConverterTest { @@ -29,29 +30,24 @@ class QthConverterTest { assert(result?.latitude == 48.1458 && result.longitude == 11.6250) result = QthConverter.qthToPosition("gf15vc") assert(result?.latitude == -34.8958 && result.longitude == -56.2083) - result = QthConverter.qthToPosition("fm18LW") - assert(result?.latitude == 38.9375 && result.longitude == -77.0417) } @Test fun `Given invalid QTH returns null`() { - var result = QthConverter.qthToPosition("ZZ00zz") - assert(result == null) - result = QthConverter.qthToPosition("JN58tz") - assert(result == null) + assert(QthConverter.qthToPosition("ZZ00zz") == null) + assert(QthConverter.qthToPosition("JN58") == null) } @Test fun `Given valid POS returns correct QTH`() { - assert(QthConverter.positionToQTH(51.4878, -0.2146) == "IO91vl") - assert(QthConverter.positionToQTH(48.1466, 11.6083) == "JN58td") - assert(QthConverter.positionToQTH(-34.91, -56.2116) == "GF15vc") - assert(QthConverter.positionToQTH(38.92, -77.065) == "FM18lw") + assert(QthConverter.positionToQth(51.4878, -0.2146) == "IO91vl") + assert(QthConverter.positionToQth(48.1466, 11.6083) == "JN58td") + assert(QthConverter.positionToQth(-34.91, -56.2116) == "GF15vc") } @Test fun `Given invalid POS returns null`() { - assert(QthConverter.positionToQTH(91.0542, -170.1142) == null) - assert(QthConverter.positionToQTH(89.0542, -240.1142) == null) + assert(QthConverter.positionToQth(91.0542, -170.1142) == null) + assert(QthConverter.positionToQth(89.0542, -240.1142) == null) } } diff --git a/core/src/test/java/com/rtbishop/look4sat/predict4kotlin/TleParserTest.kt b/core/src/test/java/com/rtbishop/look4sat/TleParserTest.kt similarity index 96% rename from core/src/test/java/com/rtbishop/look4sat/predict4kotlin/TleParserTest.kt rename to core/src/test/java/com/rtbishop/look4sat/TleParserTest.kt index 3e9feaa5..e267cf71 100644 --- a/core/src/test/java/com/rtbishop/look4sat/predict4kotlin/TleParserTest.kt +++ b/core/src/test/java/com/rtbishop/look4sat/TleParserTest.kt @@ -15,8 +15,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.rtbishop.look4sat.predict4kotlin +package com.rtbishop.look4sat +import com.rtbishop.look4sat.domain.predict.TLE import org.junit.Test class TleParserTest {