From 4b050e21f0bbd45c8747bc45c39f62e7601420ac Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sat, 26 Sep 2020 15:26:22 +0100 Subject: [PATCH] Further refactoring and code cleanup --- app/src/main/AndroidManifest.xml | 3 +- .../rtbishop/look4sat/dagger/AppComponent.kt | 12 +- .../look4sat/dagger/modules/NetworkModule.kt | 8 +- .../dagger/modules/PersistenceModule.kt | 20 +- .../look4sat/dagger/modules/RepoModule.kt | 16 +- .../data/{Transmitter.kt => SatTrans.kt} | 2 +- .../look4sat/repo/DefaultRepository.kt | 24 +- .../com/rtbishop/look4sat/repo/Repository.kt | 6 +- .../repo/{dao => local}/EntriesDao.kt | 2 +- .../repo/{SatelliteDb.kt => local/SatDb.kt} | 13 +- .../repo/{dao => local}/SourcesDao.kt | 2 +- .../TransmittersDao.kt => local/TransDao.kt} | 10 +- .../TransmittersApi.kt => remote/TransApi.kt} | 8 +- .../com/rtbishop/look4sat/ui/MainActivity.kt | 3 +- .../{SatEntryAdapter.kt => EntriesAdapter.kt} | 4 +- .../{SatPassAdapter.kt => PassesAdapter.kt} | 8 +- ...TleSourcesAdapter.kt => SourcesAdapter.kt} | 4 +- ...{TransmitterAdapter.kt => TransAdapter.kt} | 62 +++--- .../look4sat/ui/fragments/AboutFragment.kt | 8 +- ...ntryDialogFragment.kt => EntriesDialog.kt} | 14 +- .../look4sat/ui/fragments/EntriesFragment.kt | 17 ++ .../{MapOsmFragment.kt => MapFragment.kt} | 8 +- ...{PassListFragment.kt => PassesFragment.kt} | 58 ++--- ...{PolarViewFragment.kt => PolarFragment.kt} | 34 +-- ...referencesFragment.kt => PrefsFragment.kt} | 2 +- ...rcesDialogFragment.kt => SourcesDialog.kt} | 12 +- .../com/rtbishop/look4sat/ui/views/MapView.kt | 171 --------------- .../look4sat/utility/PassPredictor.kt | 42 +--- .../main/res/drawable-nodpi/splash_front.webp | Bin 16966 -> 0 bytes app/src/main/res/drawable/ic_add.xml | 10 +- app/src/main/res/drawable/ic_arrow.xml | 6 +- app/src/main/res/drawable/ic_arrow_swipe.xml | 28 --- app/src/main/res/drawable/ic_doppler.xml | 7 - app/src/main/res/drawable/ic_file_open.xml | 9 - app/src/main/res/drawable/ic_filter.xml | 28 --- .../{ic_goto_github.xml => ic_github.xml} | 6 +- app/src/main/res/drawable/ic_map_pos.xml | 1 - app/src/main/res/drawable/ic_map_sat.xml | 1 - ...{ic_help_outline.xml => ic_menu_about.xml} | 3 +- .../{ic_list.xml => ic_menu_passes.xml} | 3 +- .../{ic_sputnik.xml => ic_menu_sat.xml} | 27 +-- app/src/main/res/drawable/ic_pass_active.xml | 6 +- .../main/res/drawable/ic_pass_inactive.xml | 6 +- app/src/main/res/drawable/ic_prefs.xml | 9 + app/src/main/res/drawable/ic_proceed.xml | 9 + app/src/main/res/drawable/ic_refresh.xml | 9 + app/src/main/res/drawable/ic_sat_asc_left.xml | 57 ----- app/src/main/res/drawable/ic_select_all.xml | 9 + app/src/main/res/drawable/ic_settings.xml | 6 +- app/src/main/res/drawable/ic_trans.xml | 30 +-- .../main/res/drawable/ic_trans_doppler.xml | 18 ++ app/src/main/res/drawable/ic_update_file.xml | 9 + app/src/main/res/drawable/ic_update_web.xml | 9 + .../{ic_update_tle.xml => ic_world.xml} | 10 +- app/src/main/res/drawable/ic_world_map.xml | 28 --- app/src/main/res/drawable/splash_drawable.xml | 28 --- app/src/main/res/layout/activity_main.xml | 20 +- ...ialog_sat_entry.xml => dialog_entries.xml} | 0 ...dialog_pass_pref.xml => dialog_passes.xml} | 0 ...log_tle_sources.xml => dialog_sources.xml} | 0 app/src/main/res/layout/fragment_about.xml | 34 +-- app/src/main/res/layout/fragment_entries.xml | 104 +++++++++ ...{fragment_map_osm.xml => fragment_map.xml} | 14 +- .../main/res/layout/fragment_pass_list.xml | 205 ------------------ app/src/main/res/layout/fragment_passes.xml | 70 ++++++ ...ment_polar_view.xml => fragment_polar.xml} | 36 +-- .../{item_transmitter.xml => item_trans.xml} | 5 +- app/src/main/res/menu/nav_menu.xml | 14 +- app/src/main/res/navigation/nav_graph.xml | 35 ++- app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/values/styles.xml | 50 ----- 72 files changed, 546 insertions(+), 988 deletions(-) rename app/src/main/java/com/rtbishop/look4sat/data/{Transmitter.kt => SatTrans.kt} (98%) rename app/src/main/java/com/rtbishop/look4sat/repo/{dao => local}/EntriesDao.kt (97%) rename app/src/main/java/com/rtbishop/look4sat/repo/{SatelliteDb.kt => local/SatDb.kt} (76%) rename app/src/main/java/com/rtbishop/look4sat/repo/{dao => local}/SourcesDao.kt (91%) rename app/src/main/java/com/rtbishop/look4sat/repo/{dao/TransmittersDao.kt => local/TransDao.kt} (57%) rename app/src/main/java/com/rtbishop/look4sat/repo/{api/TransmittersApi.kt => remote/TransApi.kt} (84%) rename app/src/main/java/com/rtbishop/look4sat/ui/adapters/{SatEntryAdapter.kt => EntriesAdapter.kt} (94%) rename app/src/main/java/com/rtbishop/look4sat/ui/adapters/{SatPassAdapter.kt => PassesAdapter.kt} (96%) rename app/src/main/java/com/rtbishop/look4sat/ui/adapters/{TleSourcesAdapter.kt => SourcesAdapter.kt} (95%) rename app/src/main/java/com/rtbishop/look4sat/ui/adapters/{TransmitterAdapter.kt => TransAdapter.kt} (66%) rename app/src/main/java/com/rtbishop/look4sat/ui/fragments/{SatEntryDialogFragment.kt => EntriesDialog.kt} (90%) create mode 100644 app/src/main/java/com/rtbishop/look4sat/ui/fragments/EntriesFragment.kt rename app/src/main/java/com/rtbishop/look4sat/ui/fragments/{MapOsmFragment.kt => MapFragment.kt} (98%) rename app/src/main/java/com/rtbishop/look4sat/ui/fragments/{PassListFragment.kt => PassesFragment.kt} (79%) rename app/src/main/java/com/rtbishop/look4sat/ui/fragments/{PolarViewFragment.kt => PolarFragment.kt} (84%) rename app/src/main/java/com/rtbishop/look4sat/ui/fragments/{PreferencesFragment.kt => PrefsFragment.kt} (98%) rename app/src/main/java/com/rtbishop/look4sat/ui/fragments/{TleSourcesDialogFragment.kt => SourcesDialog.kt} (86%) delete mode 100644 app/src/main/java/com/rtbishop/look4sat/ui/views/MapView.kt delete mode 100644 app/src/main/res/drawable-nodpi/splash_front.webp delete mode 100644 app/src/main/res/drawable/ic_arrow_swipe.xml delete mode 100644 app/src/main/res/drawable/ic_doppler.xml delete mode 100644 app/src/main/res/drawable/ic_file_open.xml delete mode 100644 app/src/main/res/drawable/ic_filter.xml rename app/src/main/res/drawable/{ic_goto_github.xml => ic_github.xml} (95%) rename app/src/main/res/drawable/{ic_help_outline.xml => ic_menu_about.xml} (84%) rename app/src/main/res/drawable/{ic_list.xml => ic_menu_passes.xml} (85%) rename app/src/main/res/drawable/{ic_sputnik.xml => ic_menu_sat.xml} (57%) create mode 100644 app/src/main/res/drawable/ic_prefs.xml create mode 100644 app/src/main/res/drawable/ic_proceed.xml create mode 100644 app/src/main/res/drawable/ic_refresh.xml delete mode 100644 app/src/main/res/drawable/ic_sat_asc_left.xml create mode 100644 app/src/main/res/drawable/ic_select_all.xml create mode 100644 app/src/main/res/drawable/ic_trans_doppler.xml create mode 100644 app/src/main/res/drawable/ic_update_file.xml create mode 100644 app/src/main/res/drawable/ic_update_web.xml rename app/src/main/res/drawable/{ic_update_tle.xml => ic_world.xml} (89%) delete mode 100644 app/src/main/res/drawable/ic_world_map.xml delete mode 100644 app/src/main/res/drawable/splash_drawable.xml rename app/src/main/res/layout/{dialog_sat_entry.xml => dialog_entries.xml} (100%) rename app/src/main/res/layout/{dialog_pass_pref.xml => dialog_passes.xml} (100%) rename app/src/main/res/layout/{dialog_tle_sources.xml => dialog_sources.xml} (100%) create mode 100644 app/src/main/res/layout/fragment_entries.xml rename app/src/main/res/layout/{fragment_map_osm.xml => fragment_map.xml} (88%) delete mode 100644 app/src/main/res/layout/fragment_pass_list.xml create mode 100644 app/src/main/res/layout/fragment_passes.xml rename app/src/main/res/layout/{fragment_polar_view.xml => fragment_polar.xml} (74%) rename app/src/main/res/layout/{item_transmitter.xml => item_trans.xml} (98%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 35da8305..c0435b15 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,8 +34,7 @@ android:theme="@style/AppTheme"> + android:screenOrientation="portrait"> diff --git a/app/src/main/java/com/rtbishop/look4sat/dagger/AppComponent.kt b/app/src/main/java/com/rtbishop/look4sat/dagger/AppComponent.kt index 07928430..9681d4d1 100644 --- a/app/src/main/java/com/rtbishop/look4sat/dagger/AppComponent.kt +++ b/app/src/main/java/com/rtbishop/look4sat/dagger/AppComponent.kt @@ -22,9 +22,9 @@ package com.rtbishop.look4sat.dagger import android.content.Context import com.rtbishop.look4sat.dagger.modules.* import com.rtbishop.look4sat.ui.MainActivity -import com.rtbishop.look4sat.ui.fragments.MapOsmFragment -import com.rtbishop.look4sat.ui.fragments.PassListFragment -import com.rtbishop.look4sat.ui.fragments.PolarViewFragment +import com.rtbishop.look4sat.ui.fragments.MapFragment +import com.rtbishop.look4sat.ui.fragments.PassesFragment +import com.rtbishop.look4sat.ui.fragments.PolarFragment import dagger.BindsInstance import dagger.Component import javax.inject.Singleton @@ -42,7 +42,7 @@ interface AppComponent { } fun inject(mainActivity: MainActivity) - fun inject(passListFragment: PassListFragment) - fun inject(polarViewFragment: PolarViewFragment) - fun inject(mapOsmFragment: MapOsmFragment) + fun inject(passesFragment: PassesFragment) + fun inject(polarFragment: PolarFragment) + fun inject(mapFragment: MapFragment) } diff --git a/app/src/main/java/com/rtbishop/look4sat/dagger/modules/NetworkModule.kt b/app/src/main/java/com/rtbishop/look4sat/dagger/modules/NetworkModule.kt index ddc62ec9..cdfd6568 100644 --- a/app/src/main/java/com/rtbishop/look4sat/dagger/modules/NetworkModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/dagger/modules/NetworkModule.kt @@ -19,7 +19,7 @@ package com.rtbishop.look4sat.dagger.modules -import com.rtbishop.look4sat.repo.api.TransmittersApi +import com.rtbishop.look4sat.repo.remote.TransApi import dagger.Module import dagger.Provides import okhttp3.OkHttpClient @@ -32,17 +32,17 @@ class NetworkModule { @Singleton @Provides - fun provideOkHttpClient(): OkHttpClient { + fun provideWebClient(): OkHttpClient { return OkHttpClient() } @Singleton @Provides - fun provideTransmittersApi(): TransmittersApi { + fun provideTransApi(): TransApi { return Retrofit.Builder() .baseUrl("https://db.satnogs.org/api/") .addConverterFactory(GsonConverterFactory.create()) .build() - .create(TransmittersApi::class.java) + .create(TransApi::class.java) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/dagger/modules/PersistenceModule.kt b/app/src/main/java/com/rtbishop/look4sat/dagger/modules/PersistenceModule.kt index c74f2098..70dfb4ff 100644 --- a/app/src/main/java/com/rtbishop/look4sat/dagger/modules/PersistenceModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/dagger/modules/PersistenceModule.kt @@ -21,10 +21,10 @@ package com.rtbishop.look4sat.dagger.modules import android.content.Context import androidx.room.Room -import com.rtbishop.look4sat.repo.SatelliteDb -import com.rtbishop.look4sat.repo.dao.EntriesDao -import com.rtbishop.look4sat.repo.dao.SourcesDao -import com.rtbishop.look4sat.repo.dao.TransmittersDao +import com.rtbishop.look4sat.repo.local.EntriesDao +import com.rtbishop.look4sat.repo.local.SatDb +import com.rtbishop.look4sat.repo.local.SourcesDao +import com.rtbishop.look4sat.repo.local.TransDao import dagger.Module import dagger.Provides import javax.inject.Singleton @@ -34,26 +34,26 @@ class PersistenceModule { @Singleton @Provides - fun provideEntriesDao(db: SatelliteDb): EntriesDao { + fun provideEntriesDao(db: SatDb): EntriesDao { return db.entriesDao() } @Singleton @Provides - fun provideTransmittersDao(db: SatelliteDb): TransmittersDao { - return db.transmittersDao() + fun provideTransDao(db: SatDb): TransDao { + return db.transDao() } @Singleton @Provides - fun providesSourcesDao(db: SatelliteDb): SourcesDao { + fun providesSourcesDao(db: SatDb): SourcesDao { return db.sourcesDao() } @Singleton @Provides - fun provideSatelliteDb(context: Context): SatelliteDb { - return Room.databaseBuilder(context, SatelliteDb::class.java, "satDb") + fun provideSatDb(context: Context): SatDb { + return Room.databaseBuilder(context, SatDb::class.java, "satDb") .build() } } diff --git a/app/src/main/java/com/rtbishop/look4sat/dagger/modules/RepoModule.kt b/app/src/main/java/com/rtbishop/look4sat/dagger/modules/RepoModule.kt index 51e97c82..c6160aee 100644 --- a/app/src/main/java/com/rtbishop/look4sat/dagger/modules/RepoModule.kt +++ b/app/src/main/java/com/rtbishop/look4sat/dagger/modules/RepoModule.kt @@ -4,10 +4,10 @@ import android.content.ContentResolver import android.content.Context import com.rtbishop.look4sat.repo.DefaultRepository import com.rtbishop.look4sat.repo.Repository -import com.rtbishop.look4sat.repo.api.TransmittersApi -import com.rtbishop.look4sat.repo.dao.EntriesDao -import com.rtbishop.look4sat.repo.dao.SourcesDao -import com.rtbishop.look4sat.repo.dao.TransmittersDao +import com.rtbishop.look4sat.repo.local.EntriesDao +import com.rtbishop.look4sat.repo.local.SourcesDao +import com.rtbishop.look4sat.repo.local.TransDao +import com.rtbishop.look4sat.repo.remote.TransApi import dagger.Module import dagger.Provides import okhttp3.OkHttpClient @@ -26,19 +26,19 @@ class RepoModule { @Provides fun provideDefaultRepository( resolver: ContentResolver, - transmittersApi: TransmittersApi, client: OkHttpClient, + transApi: TransApi, entriesDao: EntriesDao, - transmittersDao: TransmittersDao, + transDao: TransDao, sourcesDao: SourcesDao ): Repository { return DefaultRepository( resolver, client, - transmittersApi, + transApi, entriesDao, sourcesDao, - transmittersDao + transDao ) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/data/Transmitter.kt b/app/src/main/java/com/rtbishop/look4sat/data/SatTrans.kt similarity index 98% rename from app/src/main/java/com/rtbishop/look4sat/data/Transmitter.kt rename to app/src/main/java/com/rtbishop/look4sat/data/SatTrans.kt index a07c0088..441c9a48 100644 --- a/app/src/main/java/com/rtbishop/look4sat/data/Transmitter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/data/SatTrans.kt @@ -24,7 +24,7 @@ import androidx.room.PrimaryKey import com.google.gson.annotations.SerializedName @Entity(tableName = "transmitters") -data class Transmitter( +data class SatTrans( @PrimaryKey @SerializedName("uuid") val uuid: String, @SerializedName("description") val description: String, @SerializedName("alive") val isAlive: Boolean, diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/DefaultRepository.kt b/app/src/main/java/com/rtbishop/look4sat/repo/DefaultRepository.kt index 6065999c..974836a5 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/DefaultRepository.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/DefaultRepository.kt @@ -23,12 +23,12 @@ import android.content.ContentResolver import android.net.Uri import com.github.amsacode.predict4java.TLE import com.rtbishop.look4sat.data.SatEntry +import com.rtbishop.look4sat.data.SatTrans import com.rtbishop.look4sat.data.TleSource -import com.rtbishop.look4sat.data.Transmitter -import com.rtbishop.look4sat.repo.api.TransmittersApi -import com.rtbishop.look4sat.repo.dao.EntriesDao -import com.rtbishop.look4sat.repo.dao.SourcesDao -import com.rtbishop.look4sat.repo.dao.TransmittersDao +import com.rtbishop.look4sat.repo.local.EntriesDao +import com.rtbishop.look4sat.repo.local.SourcesDao +import com.rtbishop.look4sat.repo.local.TransDao +import com.rtbishop.look4sat.repo.remote.TransApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import okhttp3.OkHttpClient @@ -39,10 +39,10 @@ import javax.inject.Inject class DefaultRepository @Inject constructor( private val resolver: ContentResolver, private val client: OkHttpClient, - private val api: TransmittersApi, + private val api: TransApi, private val entriesDao: EntriesDao, private val sourcesDao: SourcesDao, - private val transmittersDao: TransmittersDao + private val transDao: TransDao ) : Repository { override suspend fun updateEntriesFromFile(tleUri: Uri) { @@ -82,8 +82,8 @@ class DefaultRepository @Inject constructor( return@withContext streams } - override suspend fun fetchTransmitters(): List { - return api.fetchTransmitters() + override suspend fun fetchTransmitters(): List { + return api.fetchTransList() } override suspend fun insertEntries(entries: List) { @@ -112,12 +112,12 @@ class DefaultRepository @Inject constructor( override suspend fun updateTransmitters() { } - override suspend fun getTransmittersByCatNum(catNum: Int): List { - return transmittersDao.getTransmittersByCatNum(catNum) + override suspend fun getTransmittersByCatNum(catNum: Int): List { + return transDao.getTransmittersForCatNum(catNum) } override suspend fun clearTransmitters() { - transmittersDao.clearTransmitters() + transDao.clearTransmitters() } //////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/Repository.kt b/app/src/main/java/com/rtbishop/look4sat/repo/Repository.kt index 13d04ad8..343d87a0 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/Repository.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/Repository.kt @@ -2,8 +2,8 @@ package com.rtbishop.look4sat.repo import android.net.Uri import com.rtbishop.look4sat.data.SatEntry +import com.rtbishop.look4sat.data.SatTrans import com.rtbishop.look4sat.data.TleSource -import com.rtbishop.look4sat.data.Transmitter import java.io.InputStream interface Repository { @@ -16,7 +16,7 @@ interface Repository { suspend fun fetchTleStreams(urlList: List): List - suspend fun fetchTransmitters(): List + suspend fun fetchTransmitters(): List suspend fun insertEntries(entries: List) @@ -32,7 +32,7 @@ interface Repository { suspend fun updateTransmitters() - suspend fun getTransmittersByCatNum(catNum: Int): List + suspend fun getTransmittersByCatNum(catNum: Int): List suspend fun clearTransmitters() diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/dao/EntriesDao.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt similarity index 97% rename from app/src/main/java/com/rtbishop/look4sat/repo/dao/EntriesDao.kt rename to app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt index 54b72914..94250859 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/dao/EntriesDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/EntriesDao.kt @@ -17,7 +17,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package com.rtbishop.look4sat.repo.dao +package com.rtbishop.look4sat.repo.local import androidx.room.Dao import androidx.room.Insert diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/SatelliteDb.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/SatDb.kt similarity index 76% rename from app/src/main/java/com/rtbishop/look4sat/repo/SatelliteDb.kt rename to app/src/main/java/com/rtbishop/look4sat/repo/local/SatDb.kt index d54e0038..68f5966d 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/SatelliteDb.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/SatDb.kt @@ -17,30 +17,27 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package com.rtbishop.look4sat.repo +package com.rtbishop.look4sat.repo.local import androidx.room.Database import androidx.room.RoomDatabase import androidx.room.TypeConverters import com.rtbishop.look4sat.data.SatEntry +import com.rtbishop.look4sat.data.SatTrans import com.rtbishop.look4sat.data.TleSource -import com.rtbishop.look4sat.data.Transmitter -import com.rtbishop.look4sat.repo.dao.EntriesDao -import com.rtbishop.look4sat.repo.dao.SourcesDao -import com.rtbishop.look4sat.repo.dao.TransmittersDao import com.rtbishop.look4sat.utility.Converters @Database( - entities = [Transmitter::class, SatEntry::class, TleSource::class], + entities = [SatTrans::class, SatEntry::class, TleSource::class], version = 1, exportSchema = false ) @TypeConverters(Converters::class) -abstract class SatelliteDb : RoomDatabase() { +abstract class SatDb : RoomDatabase() { abstract fun entriesDao(): EntriesDao - abstract fun transmittersDao(): TransmittersDao + abstract fun transDao(): TransDao abstract fun sourcesDao(): SourcesDao } diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/dao/SourcesDao.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt similarity index 91% rename from app/src/main/java/com/rtbishop/look4sat/repo/dao/SourcesDao.kt rename to app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt index c0b8d099..54393ae0 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/dao/SourcesDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/SourcesDao.kt @@ -1,4 +1,4 @@ -package com.rtbishop.look4sat.repo.dao +package com.rtbishop.look4sat.repo.local import androidx.room.Dao import androidx.room.Insert diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/dao/TransmittersDao.kt b/app/src/main/java/com/rtbishop/look4sat/repo/local/TransDao.kt similarity index 57% rename from app/src/main/java/com/rtbishop/look4sat/repo/dao/TransmittersDao.kt rename to app/src/main/java/com/rtbishop/look4sat/repo/local/TransDao.kt index 913ec579..390906f1 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/dao/TransmittersDao.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/local/TransDao.kt @@ -1,19 +1,19 @@ -package com.rtbishop.look4sat.repo.dao +package com.rtbishop.look4sat.repo.local import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.rtbishop.look4sat.data.Transmitter +import com.rtbishop.look4sat.data.SatTrans @Dao -interface TransmittersDao { +interface TransDao { @Insert(onConflict = OnConflictStrategy.REPLACE) - suspend fun insertTransmitters(transmitters: List) + suspend fun insertTransmitters(satTrans: List) @Query("SELECT * FROM transmitters WHERE isAlive = 1 and catNum = :catNum") - suspend fun getTransmittersByCatNum(catNum: Int): List + suspend fun getTransmittersForCatNum(catNum: Int): List @Query("DELETE FROM transmitters") suspend fun clearTransmitters() diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/api/TransmittersApi.kt b/app/src/main/java/com/rtbishop/look4sat/repo/remote/TransApi.kt similarity index 84% rename from app/src/main/java/com/rtbishop/look4sat/repo/api/TransmittersApi.kt rename to app/src/main/java/com/rtbishop/look4sat/repo/remote/TransApi.kt index f98f87c9..6fcfa3ab 100644 --- a/app/src/main/java/com/rtbishop/look4sat/repo/api/TransmittersApi.kt +++ b/app/src/main/java/com/rtbishop/look4sat/repo/remote/TransApi.kt @@ -17,13 +17,13 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package com.rtbishop.look4sat.repo.api +package com.rtbishop.look4sat.repo.remote -import com.rtbishop.look4sat.data.Transmitter +import com.rtbishop.look4sat.data.SatTrans import retrofit2.http.GET -interface TransmittersApi { +interface TransApi { @GET("transmitters/") - suspend fun fetchTransmitters(): List + suspend fun fetchTransList(): List } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt b/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt index d97f3e98..a81a6c5a 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt @@ -19,7 +19,6 @@ class MainActivity : AppCompatActivity() { // ) override fun onCreate(savedInstanceState: Bundle?) { - setTheme(R.style.AppTheme) super.onCreate(savedInstanceState) val binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) @@ -48,7 +47,7 @@ class MainActivity : AppCompatActivity() { // } // private fun openSourcesDialog() { -// TleSourcesDialogFragment(viewModel.getTleSources()).apply { +// SourcesDialog(viewModel.getTleSources()).apply { // setSourcesListener(this@MainActivity) // show(supportFragmentManager, "TleSourcesDialog") // } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/EntriesAdapter.kt similarity index 94% rename from app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/adapters/EntriesAdapter.kt index 5a3513f5..43ed20b9 100755 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/EntriesAdapter.kt @@ -26,8 +26,8 @@ import androidx.recyclerview.widget.RecyclerView import com.rtbishop.look4sat.data.SatEntry import com.rtbishop.look4sat.databinding.ItemSatEntryBinding -class SatEntryAdapter(private var entries: MutableList) : - RecyclerView.Adapter() { +class EntriesAdapter(private var entries: MutableList) : + RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SatEntryHolder { val binding = ItemSatEntryBinding diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/PassesAdapter.kt similarity index 96% rename from app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/adapters/PassesAdapter.kt index 5af2bee6..685f7c6b 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatPassAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/PassesAdapter.kt @@ -29,12 +29,12 @@ import com.rtbishop.look4sat.R import com.rtbishop.look4sat.data.SatPass import com.rtbishop.look4sat.databinding.ItemPassGeoBinding import com.rtbishop.look4sat.databinding.ItemPassLeoBinding -import com.rtbishop.look4sat.ui.fragments.PassListFragmentDirections +import com.rtbishop.look4sat.ui.fragments.PassesFragmentDirections import com.rtbishop.look4sat.utility.PrefsManager import java.text.SimpleDateFormat import java.util.* -class SatPassAdapter( +class PassesAdapter( private var satPassList: MutableList, private val prefsManager: PrefsManager ) : @@ -125,7 +125,7 @@ class SatPassAdapter( itemView.setOnClickListener { val passIndex = satPassList.indexOf(satPass) - val action = PassListFragmentDirections.actionPassToPolar(passIndex) + val action = PassesFragmentDirections.actionPassToPolar(passIndex) itemView.findNavController().navigate(action) } } @@ -148,7 +148,7 @@ class SatPassAdapter( itemView.setOnClickListener { val passIndex = satPassList.indexOf(satPass) - val action = PassListFragmentDirections.actionPassToPolar(passIndex) + val action = PassesFragmentDirections.actionPassToPolar(passIndex) itemView.findNavController().navigate(action) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/TleSourcesAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt similarity index 95% rename from app/src/main/java/com/rtbishop/look4sat/ui/adapters/TleSourcesAdapter.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt index 1f1239e5..9a52052c 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/TleSourcesAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SourcesAdapter.kt @@ -28,8 +28,8 @@ import androidx.recyclerview.widget.RecyclerView import com.rtbishop.look4sat.data.TleSource import com.rtbishop.look4sat.databinding.ItemTleSourceBinding -class TleSourcesAdapter(private var sources: MutableList) : - RecyclerView.Adapter() { +class SourcesAdapter(private var sources: MutableList) : + RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TleSourceHolder { val binding = ItemTleSourceBinding diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/TransmitterAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/TransAdapter.kt similarity index 66% rename from app/src/main/java/com/rtbishop/look4sat/ui/adapters/TransmitterAdapter.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/adapters/TransAdapter.kt index a1b4d65b..6bdfed5c 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/TransmitterAdapter.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/TransAdapter.kt @@ -25,21 +25,21 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.rtbishop.look4sat.R -import com.rtbishop.look4sat.data.Transmitter -import com.rtbishop.look4sat.databinding.ItemTransmitterBinding +import com.rtbishop.look4sat.data.SatTrans +import com.rtbishop.look4sat.databinding.ItemTransBinding import com.rtbishop.look4sat.utility.PassPredictor import java.util.* -class TransmitterAdapter : RecyclerView.Adapter() { +class TransAdapter : RecyclerView.Adapter() { - private var transmittersList = emptyList() + private var transmittersList = emptyList() private lateinit var predictor: PassPredictor fun setPredictor(predict: PassPredictor) { predictor = predict } - fun setList(list: List) { + fun setList(list: List) { transmittersList = list } @@ -47,86 +47,86 @@ class TransmitterAdapter : RecyclerView.Adapter) : +class EntriesDialog(private var entries: MutableList) : AppCompatDialogFragment(), SearchView.OnQueryTextListener { private lateinit var entriesListener: EntriesSubmitListener - private val entryAdapter = SatEntryAdapter(entries) + private val entryAdapter = EntriesAdapter(entries) private var selectAllToggle = true override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - val binding = DialogSatEntryBinding.inflate(requireActivity().layoutInflater) + val binding = DialogEntriesBinding.inflate(requireActivity().layoutInflater) val satEntryDialog = Dialog(requireActivity()).apply { window?.requestFeature(Window.FEATURE_NO_TITLE) setContentView(binding.root) @@ -50,7 +50,7 @@ class SatEntryDialogFragment(private var entries: MutableList) : } binding.dialogSearch.apply { - setOnQueryTextListener(this@SatEntryDialogFragment) + setOnQueryTextListener(this@EntriesDialog) onActionViewExpanded() clearFocus() } @@ -67,7 +67,7 @@ class SatEntryDialogFragment(private var entries: MutableList) : return satEntryDialog } - fun setEntriesListener(listener: EntriesSubmitListener): SatEntryDialogFragment { + fun setEntriesListener(listener: EntriesSubmitListener): EntriesDialog { entriesListener = listener return this } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/EntriesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/EntriesFragment.kt new file mode 100644 index 00000000..82b1f4da --- /dev/null +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/EntriesFragment.kt @@ -0,0 +1,17 @@ +package com.rtbishop.look4sat.ui.fragments + +import android.os.Bundle +import android.view.View +import androidx.fragment.app.Fragment +import com.rtbishop.look4sat.R +import com.rtbishop.look4sat.databinding.FragmentEntriesBinding + +class EntriesFragment : Fragment(R.layout.fragment_entries) { + + private lateinit var binding: FragmentEntriesBinding + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding = FragmentEntriesBinding.bind(view) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapOsmFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapFragment.kt similarity index 98% rename from app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapOsmFragment.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapFragment.kt index fefb9906..69f81a75 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapOsmFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapFragment.kt @@ -20,7 +20,7 @@ import com.rtbishop.look4sat.dagger.ViewModelFactory import com.rtbishop.look4sat.data.Result import com.rtbishop.look4sat.data.SatItem import com.rtbishop.look4sat.data.SatPass -import com.rtbishop.look4sat.databinding.FragmentMapOsmBinding +import com.rtbishop.look4sat.databinding.FragmentMapBinding import com.rtbishop.look4sat.ui.SharedViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -39,13 +39,13 @@ import javax.inject.Inject import kotlin.math.pow import kotlin.math.sqrt -class MapOsmFragment : Fragment(R.layout.fragment_map_osm) { +class MapFragment : Fragment(R.layout.fragment_map) { @Inject lateinit var modelFactory: ViewModelFactory private lateinit var mainActivity: FragmentActivity private lateinit var viewModel: SharedViewModel - private lateinit var binding: FragmentMapOsmBinding + private lateinit var binding: FragmentMapBinding private lateinit var trackPaint: Paint private lateinit var footprintPaint: Paint private lateinit var selectedPass: SatPass @@ -53,7 +53,7 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - binding = FragmentMapOsmBinding.bind(view) + binding = FragmentMapBinding.bind(view) mainActivity = requireActivity() (mainActivity.application as Look4SatApp).appComponent.inject(this) viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java) diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt similarity index 79% rename from app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt index 53173f32..2887ec9d 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassesFragment.kt @@ -36,9 +36,9 @@ import com.rtbishop.look4sat.dagger.ViewModelFactory import com.rtbishop.look4sat.data.Result import com.rtbishop.look4sat.data.SatEntry import com.rtbishop.look4sat.data.SatPass -import com.rtbishop.look4sat.databinding.FragmentPassListBinding +import com.rtbishop.look4sat.databinding.FragmentPassesBinding import com.rtbishop.look4sat.ui.SharedViewModel -import com.rtbishop.look4sat.ui.adapters.SatPassAdapter +import com.rtbishop.look4sat.ui.adapters.PassesAdapter import com.rtbishop.look4sat.utility.Extensions.snack import com.rtbishop.look4sat.utility.PrefsManager import kotlinx.coroutines.launch @@ -46,7 +46,7 @@ import java.util.* import java.util.concurrent.TimeUnit import javax.inject.Inject -class PassListFragment : Fragment(R.layout.fragment_pass_list) { +class PassesFragment : Fragment(R.layout.fragment_passes) { @Inject lateinit var modelFactory: ViewModelFactory @@ -55,10 +55,10 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { lateinit var prefsManager: PrefsManager private lateinit var viewModel: SharedViewModel - private lateinit var satPassAdapter: SatPassAdapter + private lateinit var passesAdapter: PassesAdapter private lateinit var aosTimer: CountDownTimer private lateinit var mainActivity: FragmentActivity - private lateinit var binding: FragmentPassListBinding + private lateinit var binding: FragmentPassesBinding private var isTimerSet: Boolean = false private var satPassList: MutableList = mutableListOf() @@ -66,10 +66,10 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) mainActivity = requireActivity() - binding = FragmentPassListBinding.bind(view) + binding = FragmentPassesBinding.bind(view) (mainActivity.application as Look4SatApp).appComponent.inject(this) viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java) - satPassAdapter = SatPassAdapter(satPassList, prefsManager) + passesAdapter = PassesAdapter(satPassList, prefsManager) setupObservers() setupComponents() @@ -77,7 +77,7 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { override fun onStart() { super.onStart() - if (satPassAdapter.itemCount == 0) { + if (passesAdapter.itemCount == 0) { viewModel.calculatePasses() } } @@ -87,41 +87,29 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { when (result) { is Result.Success -> { satPassList = result.data - satPassAdapter.setList(satPassList) - if (satPassList.isNotEmpty()) { - binding.layoutInfo.visibility = View.INVISIBLE - binding.recPassList.visibility = View.VISIBLE - } else { - binding.layoutInfo.visibility = View.VISIBLE - binding.recPassList.visibility = View.INVISIBLE - } + passesAdapter.setList(satPassList) setTimer() -// binding.refLayoutPassList.isRefreshing = false } is Result.InProgress -> { -// binding.refLayoutPassList.isRefreshing = true } } }) } private fun setupComponents() { - binding.recPassList.apply { + binding.passesRecycler.apply { layoutManager = LinearLayoutManager(mainActivity) - adapter = satPassAdapter + adapter = passesAdapter isVerticalScrollBarEnabled = false (itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false } - satPassAdapter.setList(satPassList) + passesAdapter.setList(satPassList) setTimer() -// binding.refLayoutPassList.setProgressBackgroundColorSchemeResource(R.color.themeAccent) -// binding.refLayoutPassList.setColorSchemeResources(R.color.backgroundDark) -// binding.refLayoutPassList.setOnRefreshListener { viewModel.calculatePasses() } - binding.toolbarFilter.setOnClickListener { + binding.passesFilter.setOnClickListener { showSatPassPrefsDialog(viewModel.getHoursAhead(), viewModel.getMinElevation()) } - binding.fabSatSelect.setOnClickListener { + binding.passesFab.setOnClickListener { lifecycleScope.launch { val list = viewModel.getAllEntries() as MutableList if (list.isEmpty()) { @@ -134,7 +122,7 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { } private fun showSatPassPrefsDialog(hoursAhead: Int, minEl: Double) { - val satPassPrefView = View.inflate(mainActivity, R.layout.dialog_pass_pref, null) + val satPassPrefView = View.inflate(mainActivity, R.layout.dialog_passes, null) val etHoursAhead = satPassPrefView.findViewById(R.id.pref_et_hoursAhead) val etMinEl = satPassPrefView.findViewById(R.id.pref_et_minEl) etHoursAhead.setText(hoursAhead.toString()) @@ -172,15 +160,15 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { } private fun showSelectSatDialog(tleMainList: MutableList) { - val listener = object : SatEntryDialogFragment.EntriesSubmitListener { + val listener = object : EntriesDialog.EntriesSubmitListener { override fun onEntriesSubmit(catNumList: MutableList) { viewModel.updateEntriesSelection(catNumList) } } - SatEntryDialogFragment(tleMainList).apply { + EntriesDialog(tleMainList).apply { setEntriesListener(listener) - show(mainActivity.supportFragmentManager, "SatEntryDialogFragment") + show(mainActivity.supportFragmentManager, "EntriesDialog") } } @@ -210,13 +198,13 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { } override fun onTick(millisUntilFinished: Long) { - binding.toolbarTimer.text = String.format( + binding.passesTimer.text = String.format( mainActivity.getString(R.string.pat_timer), TimeUnit.MILLISECONDS.toHours(millisUntilFinished) % 60, TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % 60, TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % 60 ) - satPassAdapter.updateRecycler() + passesAdapter.updateRecycler() } } } @@ -230,13 +218,13 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { } override fun onTick(millisUntilFinished: Long) { - binding.toolbarTimer.text = String.format( + binding.passesTimer.text = String.format( mainActivity.getString(R.string.pat_timer), TimeUnit.MILLISECONDS.toHours(millisUntilFinished) % 60, TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % 60, TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % 60 ) - satPassAdapter.updateRecycler() + passesAdapter.updateRecycler() } } } @@ -246,7 +234,7 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) { aosTimer.cancel() isTimerSet = false } - if (resetToNull) binding.toolbarTimer.text = + if (resetToNull) binding.passesTimer.text = String.format(getString(R.string.pat_timer), 0, 0, 0) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt similarity index 84% rename from app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt index c188e4aa..1a5ca60d 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarFragment.kt @@ -34,9 +34,9 @@ import com.rtbishop.look4sat.R import com.rtbishop.look4sat.dagger.ViewModelFactory import com.rtbishop.look4sat.data.Result import com.rtbishop.look4sat.data.SatPass -import com.rtbishop.look4sat.databinding.FragmentPolarViewBinding +import com.rtbishop.look4sat.databinding.FragmentPolarBinding import com.rtbishop.look4sat.ui.SharedViewModel -import com.rtbishop.look4sat.ui.adapters.TransmitterAdapter +import com.rtbishop.look4sat.ui.adapters.TransAdapter import com.rtbishop.look4sat.ui.views.PolarView import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -44,28 +44,28 @@ import java.util.* import javax.inject.Inject import kotlin.math.round -class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventListener { +class PolarFragment : Fragment(R.layout.fragment_polar), SensorEventListener { @Inject lateinit var modelFactory: ViewModelFactory private lateinit var mainActivity: FragmentActivity private lateinit var viewModel: SharedViewModel - private lateinit var binding: FragmentPolarViewBinding + private lateinit var binding: FragmentPolarBinding private lateinit var satPass: SatPass private lateinit var sensorManager: SensorManager private var polarView: PolarView? = null - private val args: PolarViewFragmentArgs by navArgs() - private val transmitterAdapter = TransmitterAdapter() + private val args: PolarFragmentArgs by navArgs() + private val transmitterAdapter = TransAdapter() private var magneticDeclination = 0f override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) mainActivity = requireActivity() - binding = FragmentPolarViewBinding.bind(view) + binding = FragmentPolarBinding.bind(view) (mainActivity.application as Look4SatApp).appComponent.inject(this) viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java) sensorManager = mainActivity.getSystemService(Context.SENSOR_SERVICE) as SensorManager - binding.recPolar.apply { + binding.recycler.apply { layoutManager = LinearLayoutManager(mainActivity) adapter = transmitterAdapter } @@ -111,7 +111,7 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis val refreshRate = viewModel.getRefreshRate() satPass = result.data[args.satPassIndex] polarView = PolarView(mainActivity, satPass) - binding.framePolar.addView(polarView) + binding.frame.addView(polarView) observeTransmitters() refreshText(refreshRate) } @@ -124,11 +124,11 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis transmitterAdapter.setPredictor(satPass.predictor) transmitterAdapter.setList(it) transmitterAdapter.notifyDataSetChanged() - binding.recPolar.visibility = View.VISIBLE - binding.tvPolarNoTrans.visibility = View.INVISIBLE + binding.recycler.visibility = View.VISIBLE + binding.noTransMsg.visibility = View.INVISIBLE } else { - binding.recPolar.visibility = View.INVISIBLE - binding.tvPolarNoTrans.visibility = View.VISIBLE + binding.recycler.visibility = View.INVISIBLE + binding.noTransMsg.visibility = View.VISIBLE } }) } @@ -164,9 +164,9 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis val polarEl = mainActivity.getString(R.string.pat_elevation) val polarRng = mainActivity.getString(R.string.pat_distance) val polarAlt = mainActivity.getString(R.string.pat_altitude) - binding.tvPolarAz.text = String.format(polarAz, Math.toDegrees(satPos.azimuth)) - binding.tvPolarEl.text = String.format(polarEl, Math.toDegrees(satPos.elevation)) - binding.tvPolarRng.text = String.format(polarRng, satPos.range) - binding.tvPolarAlt.text = String.format(polarAlt, satPos.altitude) + binding.azimuth.text = String.format(polarAz, Math.toDegrees(satPos.azimuth)) + binding.elevation.text = String.format(polarEl, Math.toDegrees(satPos.elevation)) + binding.distance.text = String.format(polarRng, satPos.range) + binding.altitude.text = String.format(polarAlt, satPos.altitude) } } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt similarity index 98% rename from app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt index c40ff994..68797383 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PrefsFragment.kt @@ -27,7 +27,7 @@ import androidx.preference.PreferenceFragmentCompat import com.rtbishop.look4sat.R import com.rtbishop.look4sat.utility.Extensions.snack -class PreferencesFragment : PreferenceFragmentCompat(), +class PrefsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener { private lateinit var keyLat: String diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/TleSourcesDialogFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt similarity index 86% rename from app/src/main/java/com/rtbishop/look4sat/ui/fragments/TleSourcesDialogFragment.kt rename to app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt index 62efa876..ab815df0 100644 --- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/TleSourcesDialogFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/SourcesDialog.kt @@ -26,18 +26,18 @@ import android.view.Window import androidx.appcompat.app.AppCompatDialogFragment import androidx.recyclerview.widget.LinearLayoutManager import com.rtbishop.look4sat.data.TleSource -import com.rtbishop.look4sat.databinding.DialogTleSourcesBinding -import com.rtbishop.look4sat.ui.adapters.TleSourcesAdapter +import com.rtbishop.look4sat.databinding.DialogSourcesBinding +import com.rtbishop.look4sat.ui.adapters.SourcesAdapter -class TleSourcesDialogFragment(sources: List) : +class SourcesDialog(sources: List) : AppCompatDialogFragment() { private lateinit var sourcesListener: SourcesSubmitListener private val emptySource = TleSource("") - private val sourcesAdapter = TleSourcesAdapter(sources.toMutableList()) + private val sourcesAdapter = SourcesAdapter(sources.toMutableList()) override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - val binding = DialogTleSourcesBinding.inflate(requireActivity().layoutInflater) + val binding = DialogSourcesBinding.inflate(requireActivity().layoutInflater) val tleSourcesDialog = Dialog(requireActivity()).apply { window?.requestFeature(Window.FEATURE_NO_TITLE) setContentView(binding.root) @@ -70,7 +70,7 @@ class TleSourcesDialogFragment(sources: List) : return tleSourcesDialog } - fun setSourcesListener(listener: SourcesSubmitListener): TleSourcesDialogFragment { + fun setSourcesListener(listener: SourcesSubmitListener): SourcesDialog { sourcesListener = listener return this } diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/views/MapView.kt b/app/src/main/java/com/rtbishop/look4sat/ui/views/MapView.kt deleted file mode 100644 index ce241036..00000000 --- a/app/src/main/java/com/rtbishop/look4sat/ui/views/MapView.kt +++ /dev/null @@ -1,171 +0,0 @@ -package com.rtbishop.look4sat.ui.views - -import android.annotation.SuppressLint -import android.content.Context -import android.graphics.* -import android.view.View -import androidx.core.content.ContextCompat -import com.github.amsacode.predict4java.GroundStationPosition -import com.github.amsacode.predict4java.Position -import com.github.amsacode.predict4java.SatPos -import com.github.amsacode.predict4java.TLE -import com.rtbishop.look4sat.R -import com.rtbishop.look4sat.data.SatPass -import java.util.* -import kotlin.math.abs - -class MapView(context: Context) : View(context) { - - constructor(context: Context, groundStationPosition: GroundStationPosition) : this(context) { - gsp = groundStationPosition - } - - private lateinit var passList: List - private lateinit var gsp: GroundStationPosition - private lateinit var selectedSat: TLE - private val scale = resources.displayMetrics.density - private val groundTrackPaint = Paint().apply { - isAntiAlias = true - color = ContextCompat.getColor(context, R.color.satTrack) - style = Paint.Style.STROKE - strokeWidth = scale - } - private val satPaintPrim = Paint().apply { - isAntiAlias = true - color = ContextCompat.getColor(context, R.color.satPrimary) - style = Paint.Style.STROKE - strokeWidth = scale - } - private val satPaintSec = Paint().apply { - isAntiAlias = true - color = ContextCompat.getColor(context, R.color.satSecondary) - style = Paint.Style.STROKE - strokeWidth = scale - } - private val txtPaint = Paint().apply { - isAntiAlias = true - color = ContextCompat.getColor(context, R.color.satPrimary) - style = Paint.Style.FILL - strokeWidth = scale - textSize = 16f - setShadowLayer(2f, 2f, 2f, Color.BLACK) - } - private val outlinePaint = Paint().apply { - isAntiAlias = true - color = Color.BLACK - style = Paint.Style.FILL_AND_STROKE - strokeWidth = scale - textSize = 16f - } - private val rect = Rect() - private var checked = 0 - private var degLon = 0f - private var degLat = 0f - - fun setList(satPassList: List) { - passList = satPassList - } - - fun setChecked(item: Int) { - checked = item - selectedSat = passList[checked].tle - } - - @SuppressLint("DrawAllocation") - override fun onDraw(canvas: Canvas) { - degLon = width / 360f - degLat = height / 180f - canvas.translate(width / 2f, height / 2f) - drawHomeLoc(canvas) - val currentTime = Date(System.currentTimeMillis()) - val orbitalPeriod = (24 * 60 / selectedSat.meanmo).toInt() - val predictor = passList[checked].predictor - val positions = predictor.getPositions(currentTime, 60, 0, orbitalPeriod * 3) - drawGroundTrack(canvas, positions) - passList.forEach { satPass -> drawSat(canvas, satPass, currentTime, satPaintSec) } - drawSat(canvas, passList[checked], currentTime, satPaintPrim) - } - - private fun drawHomeLoc(canvas: Canvas) { - val lon = gsp.longitude.toFloat() - val lat = gsp.latitude.toFloat() * -1 - val cx = lon * degLon - val cy = lat * degLat - val gspName = context.getString(R.string.map_gsp) - txtPaint.getTextBounds(gspName, 0, gspName.length, rect) - canvas.drawCircle(cx, cy, scale * 2, txtPaint) - canvas.drawText(gspName, cx - rect.width() / 2, cy - txtPaint.textSize, outlinePaint) - canvas.drawText(gspName, cx - rect.width() / 2, cy - txtPaint.textSize, txtPaint) - - } - - private fun drawGroundTrack(canvas: Canvas, list: List) { - val path = Path() - var lon: Float - var lat: Float - var lastLon = 181f - - list.withIndex().forEach { (index, satPos) -> - lon = Math.toDegrees(satPos.longitude).toFloat() - lat = Math.toDegrees(satPos.latitude).toFloat() * -1 - - if (lon > 180f) lon -= 360f - - lon *= degLon - lat *= degLat - - if (index == 0 || abs(lon - lastLon) > 180) path.moveTo(lon, lat) - else path.lineTo(lon, lat) - - lastLon = lon - } - canvas.drawPath(path, groundTrackPaint) - } - - private fun drawSat(canvas: Canvas, satPass: SatPass, date: Date, paint: Paint) { - val tle = satPass.tle - val predictor = satPass.predictor - val satPosNow = predictor.getSatPos(date) - val footprintPosList = satPosNow.rangeCircle - drawFootprint(canvas, footprintPosList, paint) - drawName(canvas, satPosNow, tle.name) - } - - private fun drawFootprint(canvas: Canvas, list: List, paint: Paint) { - val path = Path() - var lon: Float - var lat: Float - var lastLon = 181f - - list.withIndex().forEach { (index, position) -> - lon = position.lon.toFloat() - lat = position.lat.toFloat() * -1 - - if (lon > 180f) lon -= 360f - - lon *= degLon - lat *= degLat - - if (index == 0 || abs(lon - lastLon) > 180) path.moveTo(lon, lat) - else path.lineTo(lon, lat) - - lastLon = lon - } - canvas.drawPath(path, paint) - } - - private fun drawName(canvas: Canvas, position: SatPos, name: String) { - var lon = Math.toDegrees(position.longitude).toFloat() - val lat = Math.toDegrees(position.latitude).toFloat() * -1 - - if (lon > 180f) lon -= 360f - - val cx = lon * degLon - val cy = lat * degLat - - canvas.drawCircle(cx, cy, scale * 2, txtPaint) - txtPaint.getTextBounds(name, 0, name.length, rect) - canvas.drawText(name, cx - rect.width() / 2, cy - txtPaint.textSize, outlinePaint) - canvas.drawText(name, cx - rect.width() / 2, cy - txtPaint.textSize, txtPaint) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/look4sat/utility/PassPredictor.kt b/app/src/main/java/com/rtbishop/look4sat/utility/PassPredictor.kt index e41f2c1e..b8a800ff 100644 --- a/app/src/main/java/com/rtbishop/look4sat/utility/PassPredictor.kt +++ b/app/src/main/java/com/rtbishop/look4sat/utility/PassPredictor.kt @@ -42,31 +42,17 @@ import java.util.* class PassPredictor(private val tle: TLE, private val qth: GroundStationPosition) { private val sat: Satellite = SatelliteFactory.createSatellite(tle) - private val south = "south" - private val north = "north" - private val deadSpotNone = "none" private val speedOfLight = 2.99792458E8 - private val twoPi = Math.PI * 2.0 private val timeZone: TimeZone = TimeZone.getTimeZone("UTC") private var iterationCount = 0 fun getDownlinkFreq(freq: Long, date: Date): Long { - val cal = Calendar.getInstance(timeZone).apply { - clear() - timeInMillis = date.time - } - val satPos = getSatPos(cal.time) - val rangeRate = satPos.rangeRate + val rangeRate = getSatPos(date).rangeRate return (freq.toDouble() * (speedOfLight - rangeRate * 1000.0) / speedOfLight).toLong() } fun getUplinkFreq(freq: Long, date: Date): Long { - val cal = Calendar.getInstance(timeZone).apply { - clear() - timeInMillis = date.time - } - val satPos = getSatPos(cal.time) - val rangeRate = satPos.rangeRate + val rangeRate = getSatPos(date).rangeRate return (freq.toDouble() * (speedOfLight + rangeRate * 1000.0) / speedOfLight).toLong() } @@ -155,7 +141,7 @@ class PassPredictor(private val tle: TLE, private val qth: GroundStationPosition var maxElevation = 0.0 var elevation: Double var prevPos: SatPos - var polePassed = deadSpotNone + var polePassed = "none" // get the current position val cal = Calendar.getInstance(timeZone).apply { @@ -206,7 +192,7 @@ class PassPredictor(private val tle: TLE, private val qth: GroundStationPosition do { satPos = getPosition(cal, 30) val currPolePassed = getPolePassed(prevPos, satPos) - if (currPolePassed != deadSpotNone) { + if (currPolePassed != "none") { polePassed = currPolePassed } elevation = satPos.elevation @@ -242,23 +228,17 @@ class PassPredictor(private val tle: TLE, private val qth: GroundStationPosition } private fun getPolePassed(prevPos: SatPos, satPos: SatPos): String { - var polePassed = deadSpotNone - val az1 = prevPos.azimuth / twoPi * 360.0 - val az2 = satPos.azimuth / twoPi * 360.0 + var polePassed = "none" + val north = "north" + val south = "south" + val az1 = Math.toDegrees(prevPos.azimuth) + val az2 = Math.toDegrees(satPos.azimuth) if (az1 > az2) { - // we may be moving from 350 or greater through north if (az1 > 350 && az2 < 10) polePassed = north - else { - // we may be moving from 190 or greater through south - if (az1 > 180 && az2 < 180) polePassed = south - } + else if (az1 > 180 && az2 < 180) polePassed = south } else { - // we may be moving from 10 or less through north if (az1 < 10 && az2 > 350) polePassed = north - else { - // we may be moving from 170 or more through south - if (az1 < 180 && az2 > 180) polePassed = south - } + else if (az1 < 180 && az2 > 180) polePassed = south } return polePassed } diff --git a/app/src/main/res/drawable-nodpi/splash_front.webp b/app/src/main/res/drawable-nodpi/splash_front.webp deleted file mode 100644 index c694aa09a4414699817f4c8e27ac8f4592d75a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16966 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 + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_arrow.xml b/app/src/main/res/drawable/ic_arrow.xml index 48ad72a9..221e9ac9 100644 --- a/app/src/main/res/drawable/ic_arrow.xml +++ b/app/src/main/res/drawable/ic_arrow.xml @@ -20,9 +20,9 @@ + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_arrow_swipe.xml b/app/src/main/res/drawable/ic_arrow_swipe.xml deleted file mode 100644 index b3a8073f..00000000 --- a/app/src/main/res/drawable/ic_arrow_swipe.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_doppler.xml b/app/src/main/res/drawable/ic_doppler.xml deleted file mode 100644 index dd42f45c..00000000 --- a/app/src/main/res/drawable/ic_doppler.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/ic_file_open.xml b/app/src/main/res/drawable/ic_file_open.xml deleted file mode 100644 index fa95c65b..00000000 --- a/app/src/main/res/drawable/ic_file_open.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_filter.xml b/app/src/main/res/drawable/ic_filter.xml deleted file mode 100644 index b3c0e18a..00000000 --- a/app/src/main/res/drawable/ic_filter.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_goto_github.xml b/app/src/main/res/drawable/ic_github.xml similarity index 95% rename from app/src/main/res/drawable/ic_goto_github.xml rename to app/src/main/res/drawable/ic_github.xml index 257a083f..72c1d085 100644 --- a/app/src/main/res/drawable/ic_goto_github.xml +++ b/app/src/main/res/drawable/ic_github.xml @@ -19,12 +19,12 @@ diff --git a/app/src/main/res/drawable/ic_map_pos.xml b/app/src/main/res/drawable/ic_map_pos.xml index f6d41062..23dfe20f 100644 --- a/app/src/main/res/drawable/ic_map_pos.xml +++ b/app/src/main/res/drawable/ic_map_pos.xml @@ -1,7 +1,6 @@ diff --git a/app/src/main/res/drawable/ic_list.xml b/app/src/main/res/drawable/ic_menu_passes.xml similarity index 85% rename from app/src/main/res/drawable/ic_list.xml rename to app/src/main/res/drawable/ic_menu_passes.xml index 9d1961ed..4a2250f1 100644 --- a/app/src/main/res/drawable/ic_list.xml +++ b/app/src/main/res/drawable/ic_menu_passes.xml @@ -1,10 +1,9 @@ diff --git a/app/src/main/res/drawable/ic_sputnik.xml b/app/src/main/res/drawable/ic_menu_sat.xml similarity index 57% rename from app/src/main/res/drawable/ic_sputnik.xml rename to app/src/main/res/drawable/ic_menu_sat.xml index 61a2cedb..66d61d98 100644 --- a/app/src/main/res/drawable/ic_sputnik.xml +++ b/app/src/main/res/drawable/ic_menu_sat.xml @@ -1,33 +1,14 @@ - - diff --git a/app/src/main/res/drawable/ic_pass_active.xml b/app/src/main/res/drawable/ic_pass_active.xml index 8c9b5c22..b8579448 100644 --- a/app/src/main/res/drawable/ic_pass_active.xml +++ b/app/src/main/res/drawable/ic_pass_active.xml @@ -20,9 +20,9 @@ + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_pass_inactive.xml b/app/src/main/res/drawable/ic_pass_inactive.xml index 5c059d76..e8d43b7c 100644 --- a/app/src/main/res/drawable/ic_pass_inactive.xml +++ b/app/src/main/res/drawable/ic_pass_inactive.xml @@ -20,9 +20,9 @@ + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_prefs.xml b/app/src/main/res/drawable/ic_prefs.xml new file mode 100644 index 00000000..58652c58 --- /dev/null +++ b/app/src/main/res/drawable/ic_prefs.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_proceed.xml b/app/src/main/res/drawable/ic_proceed.xml new file mode 100644 index 00000000..0e761d37 --- /dev/null +++ b/app/src/main/res/drawable/ic_proceed.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml new file mode 100644 index 00000000..92e942ad --- /dev/null +++ b/app/src/main/res/drawable/ic_refresh.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sat_asc_left.xml b/app/src/main/res/drawable/ic_sat_asc_left.xml deleted file mode 100644 index edced987..00000000 --- a/app/src/main/res/drawable/ic_sat_asc_left.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_select_all.xml b/app/src/main/res/drawable/ic_select_all.xml new file mode 100644 index 00000000..01948a0e --- /dev/null +++ b/app/src/main/res/drawable/ic_select_all.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml index 7cae9d70..04c3c2ef 100644 --- a/app/src/main/res/drawable/ic_settings.xml +++ b/app/src/main/res/drawable/ic_settings.xml @@ -18,11 +18,11 @@ --> diff --git a/app/src/main/res/drawable/ic_trans.xml b/app/src/main/res/drawable/ic_trans.xml index 981d3800..da8d3d54 100644 --- a/app/src/main/res/drawable/ic_trans.xml +++ b/app/src/main/res/drawable/ic_trans.xml @@ -1,31 +1,9 @@ - - + android:viewportWidth="24" + android:viewportHeight="24"> - + android:fillColor="@color/themeAccent" + android:pathData="M12,11c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,13c0,-3.31 -2.69,-6 -6,-6s-6,2.69 -6,6c0,2.22 1.21,4.15 3,5.19l1,-1.74c-1.19,-0.7 -2,-1.97 -2,-3.45 0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,1.48 -0.81,2.75 -2,3.45l1,1.74c1.79,-1.04 3,-2.97 3,-5.19zM12,3C6.48,3 2,7.48 2,13c0,3.7 2.01,6.92 4.99,8.65l1,-1.73C5.61,18.53 4,15.96 4,13c0,-4.42 3.58,-8 8,-8s8,3.58 8,8c0,2.96 -1.61,5.53 -4,6.92l1,1.73c2.99,-1.73 5,-4.95 5,-8.65 0,-5.52 -4.48,-10 -10,-10z" /> diff --git a/app/src/main/res/drawable/ic_trans_doppler.xml b/app/src/main/res/drawable/ic_trans_doppler.xml new file mode 100644 index 00000000..536164e4 --- /dev/null +++ b/app/src/main/res/drawable/ic_trans_doppler.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_update_file.xml b/app/src/main/res/drawable/ic_update_file.xml new file mode 100644 index 00000000..0e122f79 --- /dev/null +++ b/app/src/main/res/drawable/ic_update_file.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update_web.xml b/app/src/main/res/drawable/ic_update_web.xml new file mode 100644 index 00000000..f6bfc51b --- /dev/null +++ b/app/src/main/res/drawable/ic_update_web.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update_tle.xml b/app/src/main/res/drawable/ic_world.xml similarity index 89% rename from app/src/main/res/drawable/ic_update_tle.xml rename to app/src/main/res/drawable/ic_world.xml index fc19cf9e..f8719a00 100644 --- a/app/src/main/res/drawable/ic_update_tle.xml +++ b/app/src/main/res/drawable/ic_world.xml @@ -18,11 +18,11 @@ --> + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_world_map.xml b/app/src/main/res/drawable/ic_world_map.xml deleted file mode 100644 index 87f367c0..00000000 --- a/app/src/main/res/drawable/ic_world_map.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/splash_drawable.xml b/app/src/main/res/drawable/splash_drawable.xml deleted file mode 100644 index 34e5c42b..00000000 --- a/app/src/main/res/drawable/splash_drawable.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 386dec1d..25a95f28 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,23 +4,17 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - + app:layout_constraintTop_toTopOf="parent" + app:navGraph="@navigation/nav_graph" /> + app:layout_constraintStart_toEndOf="@+id/title_img" + app:layout_constraintTop_toTopOf="@+id/title_img" /> + app:layout_constraintTop_toBottomOf="@+id/title" /> + app:layout_constraintTop_toBottomOf="@+id/version" /> + app:layout_constraintEnd_toEndOf="@+id/subtitle" + app:layout_constraintStart_toStartOf="@+id/subtitle" + app:layout_constraintTop_toBottomOf="@+id/subtitle" /> + app:layout_constraintTop_toBottomOf="@+id/thanks" /> diff --git a/app/src/main/res/layout/fragment_entries.xml b/app/src/main/res/layout/fragment_entries.xml new file mode 100644 index 00000000..4b7799a8 --- /dev/null +++ b/app/src/main/res/layout/fragment_entries.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_map_osm.xml b/app/src/main/res/layout/fragment_map.xml similarity index 88% rename from app/src/main/res/layout/fragment_map_osm.xml rename to app/src/main/res/layout/fragment_map.xml index 0eba8675..5f85bb10 100644 --- a/app/src/main/res/layout/fragment_map_osm.xml +++ b/app/src/main/res/layout/fragment_map.xml @@ -2,13 +2,12 @@ + tools:context=".ui.fragments.MapFragment"> + app:layout_constraintTop_toBottomOf="@+id/id_name" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_passes.xml b/app/src/main/res/layout/fragment_passes.xml new file mode 100644 index 00000000..0385bd31 --- /dev/null +++ b/app/src/main/res/layout/fragment_passes.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_polar_view.xml b/app/src/main/res/layout/fragment_polar.xml similarity index 74% rename from app/src/main/res/layout/fragment_polar_view.xml rename to app/src/main/res/layout/fragment_polar.xml index 7c19bf64..f3b77b3d 100644 --- a/app/src/main/res/layout/fragment_polar_view.xml +++ b/app/src/main/res/layout/fragment_polar.xml @@ -22,10 +22,10 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ui.fragments.PolarViewFragment"> + tools:context=".ui.fragments.PolarFragment"> + app:layout_constraintStart_toStartOf="@+id/frame" + app:layout_constraintTop_toTopOf="@+id/frame" /> + app:layout_constraintEnd_toEndOf="@+id/frame" + app:layout_constraintTop_toTopOf="@+id/frame" /> + app:layout_constraintBottom_toBottomOf="@+id/frame" + app:layout_constraintStart_toStartOf="@+id/frame" /> + app:layout_constraintBottom_toBottomOf="@+id/frame" + app:layout_constraintEnd_toEndOf="@+id/frame" /> + app:layout_constraintTop_toBottomOf="@+id/frame" /> + app:layout_constraintTop_toBottomOf="@+id/frame" /> diff --git a/app/src/main/res/layout/item_transmitter.xml b/app/src/main/res/layout/item_trans.xml similarity index 98% rename from app/src/main/res/layout/item_transmitter.xml rename to app/src/main/res/layout/item_trans.xml index 9c1ef25e..145ed4a2 100644 --- a/app/src/main/res/layout/item_transmitter.xml +++ b/app/src/main/res/layout/item_trans.xml @@ -113,7 +113,6 @@ android:layout_marginStart="4dp" android:layout_marginTop="4dp" android:contentDescription="@string/placeholder" - android:rotation="90" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/ic_trans" /> @@ -161,7 +160,7 @@ app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/trans_downlink_doppler" - app:srcCompat="@drawable/ic_doppler" /> + app:srcCompat="@drawable/ic_trans_doppler" /> + app:srcCompat="@drawable/ic_trans_doppler" /> diff --git a/app/src/main/res/menu/nav_menu.xml b/app/src/main/res/menu/nav_menu.xml index ccc1e428..8ca6577e 100644 --- a/app/src/main/res/menu/nav_menu.xml +++ b/app/src/main/res/menu/nav_menu.xml @@ -18,23 +18,23 @@ --> \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 22f155dd..021b216d 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -21,20 +21,20 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/mobile_navigation" - app:startDestination="@id/nav_passes"> + app:startDestination="@id/nav_entries"> + android:id="@+id/nav_entries" + android:name="com.rtbishop.look4sat.ui.fragments.EntriesFragment" + tools:layout="@layout/fragment_entries" /> + android:name="com.rtbishop.look4sat.ui.fragments.PassesFragment" + tools:layout="@layout/fragment_passes"> + android:id="@+id/nav_polar" + android:name="com.rtbishop.look4sat.ui.fragments.PolarFragment" + tools:layout="@layout/fragment_polar"> + android:id="@+id/nav_map" + android:name="com.rtbishop.look4sat.ui.fragments.MapFragment" + tools:layout="@layout/fragment_map" /> + android:id="@+id/nav_prefs" + android:name="com.rtbishop.look4sat.ui.fragments.PrefsFragment" /> - diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index db5459c8..35420d6e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -158,4 +158,5 @@ СТЦ Источник TLE Используйте протокол HTTPS + Импорт спутников diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index df1685e1..8bf2035b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,4 +180,5 @@ Please use HTTPS URLs only Placeholder Wikimedia maps | Map data © OpenStreetMap contributors + Import satellite data diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 7dc78ecd..e1fb26d5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -33,56 +33,6 @@ @android:color/transparent - - - - - - - - - - - - - - - -