diff --git a/app/build.gradle b/app/build.gradle index e7dc41fc..93a93aa6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,20 +56,19 @@ android { dependencies { implementation project(":core") - implementation "com.google.android.material:material:1.5.0" - implementation "androidx.appcompat:appcompat:1.4.1" - implementation "androidx.fragment:fragment-ktx:1.4.1" - implementation "androidx.core:core-ktx:1.7.0" implementation "androidx.core:core-splashscreen:1.0.0-beta01" implementation "androidx.constraintlayout:constraintlayout:2.1.3" - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1" + implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.1" implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.1" + implementation "androidx.navigation:navigation-runtime-ktx:2.4.1" implementation "androidx.navigation:navigation-fragment-ktx:2.4.1" implementation "androidx.navigation:navigation-ui-ktx:2.4.1" implementation "androidx.room:room-runtime:2.4.1" implementation "androidx.room:room-ktx:2.4.1" kapt "androidx.room:room-compiler:2.4.1" + implementation "com.google.android.material:material:1.5.0" implementation "com.google.dagger:hilt-android:2.40.5" kapt "com.google.dagger:hilt-compiler:2.40.5" diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/MainActivity.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/MainActivity.kt index 273f588c..d2ba5a3b 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/MainActivity.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/MainActivity.kt @@ -17,14 +17,11 @@ */ package com.rtbishop.look4sat.presentation -import android.annotation.SuppressLint import android.content.pm.ActivityInfo import android.os.Bundle import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.navigation.fragment.NavHostFragment -import com.rtbishop.look4sat.R import com.rtbishop.look4sat.databinding.ActivityMainBinding import dagger.hilt.android.AndroidEntryPoint @@ -33,22 +30,11 @@ class MainActivity : AppCompatActivity() { private val mainViewModel: MainViewModel by viewModels() - @SuppressLint("SourceLockedOrientationActivity") override fun onCreate(savedInstanceState: Bundle?) { requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT installSplashScreen() super.onCreate(savedInstanceState) - val binding = ActivityMainBinding.inflate(layoutInflater) - val host = supportFragmentManager.findFragmentById(R.id.navigation_host) as NavHostFragment - setContentView(binding.root) -// binding.navigationBar.apply { -// setupWithNavController(host.navController) -// setOnItemSelectedListener { item -> -// NavigationUI.onNavDestinationSelected(item, host.navController) -// host.navController.popBackStack(item.itemId, inclusive = false) -// true -// } -// } + setContentView(ActivityMainBinding.inflate(layoutInflater).root) mainViewModel.calculatePasses() } } 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 ae29ce32..26e4ab6b 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 @@ -112,7 +112,7 @@ class MapFragment : Fragment(R.layout.fragment_map) { Marker(mapView).apply { setInfoWindow(null) setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM) - icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_pos) + icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_gps) position = GeoPoint(stationPos.latitude, stationPos.longitude) mapView.overlays[0] = this mapView.invalidate() 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 c918c77d..0e5c4735 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 @@ -110,7 +110,7 @@ class RadarFragment : Fragment(R.layout.fragment_radar) { binding.radarEl.text = String.format(polarEl, Math.toDegrees(satPos.elevation)) binding.radarDst.text = String.format(polarRng, satPos.range) binding.radarAlt.text = String.format(polarAlt, satPos.altitude) - binding.radarName.text = satPass.name +// binding.radarName.text = satPass.name if (!satPass.isDeepSpace) { if (timeNow < satPass.aosTime) { diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt index d1bca874..2527df48 100644 --- a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt +++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt @@ -77,7 +77,7 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { if (y > newY) binding.settingsFab.hide() else binding.settingsFab.show() }) } - binding.prefsBack.setOnClickListener { findNavController().navigateUp() } + binding.settingsBack.setOnClickListener { findNavController().navigateUp() } setupAboutCard() setupDataCard() setupLocationCard() @@ -96,25 +96,25 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { } private fun setupAboutCard() { - binding.prefsInfo.aboutVersion.text = + binding.settingsInfo.aboutVersion.text = String.format(getString(R.string.about_version), BuildConfig.VERSION_NAME) - binding.prefsInfo.aboutBtnGithub.setOnClickListener { + binding.settingsInfo.aboutBtnGithub.setOnClickListener { gotoUrl("https://github.com/rt-bishop/Look4Sat/") } - binding.prefsInfo.aboutBtnDonate.setOnClickListener { + binding.settingsInfo.aboutBtnDonate.setOnClickListener { gotoUrl("https://www.buymeacoffee.com/rtbishop") } - binding.prefsInfo.aboutBtnFdroid.setOnClickListener { + binding.settingsInfo.aboutBtnFdroid.setOnClickListener { gotoUrl("https://f-droid.org/en/packages/com.rtbishop.look4sat/") } } private fun setupLocationCard() { setPositionText(viewModel.getStationPosition()) - binding.prefsLocation.locationBtnGps.setOnClickListener { + binding.settingsLocation.locationBtnGps.setOnClickListener { locationRequest.launch(arrayOf(locationFine, locationCoarse)) } - binding.prefsLocation.locationBtnQth.setOnClickListener { + binding.settingsLocation.locationBtnQth.setOnClickListener { val editText = EditText(requireActivity()) AlertDialog.Builder(requireContext()) .setTitle("Title") @@ -130,80 +130,80 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { } private fun setupDataCard() { - binding.prefsData.updateBtnFile.setOnClickListener { contentRequest.launch("*/*") } - binding.prefsData.updateBtnWeb.setOnClickListener { + binding.settingsData.updateBtnFile.setOnClickListener { contentRequest.launch("*/*") } + binding.settingsData.updateBtnWeb.setOnClickListener { val action = SettingsFragmentDirections.actionPrefsToSources() findNavController().navigate(action) } - binding.prefsData.updateBtnClear.setOnClickListener { viewModel.clearData() } + binding.settingsData.updateBtnClear.setOnClickListener { viewModel.clearData() } getNavResult>(R.id.nav_settings, "sources") { sources -> viewModel.updateDataFromWeb(sources) } } private fun setupTrackingCard() { - binding.prefsTracking.trackingSwitch.apply { + binding.settingsTracking.trackingSwitch.apply { isChecked = viewModel.getRotatorEnabled() - binding.prefsTracking.trackingIp.isEnabled = isChecked - binding.prefsTracking.trackingIpEdit.setText(viewModel.getRotatorServer()) - binding.prefsTracking.trackingPort.isEnabled = isChecked - binding.prefsTracking.trackingPortEdit.setText(viewModel.getRotatorPort()) + binding.settingsTracking.trackingIp.isEnabled = isChecked + binding.settingsTracking.trackingIpEdit.setText(viewModel.getRotatorServer()) + binding.settingsTracking.trackingPort.isEnabled = isChecked + binding.settingsTracking.trackingPortEdit.setText(viewModel.getRotatorPort()) setOnCheckedChangeListener { _, isChecked -> viewModel.setRotatorEnabled(isChecked) - binding.prefsTracking.trackingIp.isEnabled = isChecked - binding.prefsTracking.trackingPort.isEnabled = isChecked + binding.settingsTracking.trackingIp.isEnabled = isChecked + binding.settingsTracking.trackingPort.isEnabled = isChecked } } - binding.prefsTracking.trackingIpEdit.doOnTextChanged { text, _, _, _ -> + binding.settingsTracking.trackingIpEdit.doOnTextChanged { text, _, _, _ -> if (text.toString().isValidIPv4()) viewModel.setRotatorServer(text.toString()) } - binding.prefsTracking.trackingPortEdit.doOnTextChanged { text, _, _, _ -> + binding.settingsTracking.trackingPortEdit.doOnTextChanged { text, _, _, _ -> if (text.toString().isValidPort()) viewModel.setRotatorPort(text.toString()) } } private fun setupOtherCard() { - binding.prefsOther.otherSwitchUtc.apply { + binding.settingsOther.otherSwitchUtc.apply { isChecked = viewModel.getUseUTC() setOnCheckedChangeListener { _, isChecked -> viewModel.setUseUTC(isChecked) } } - binding.prefsOther.otherSwitchSweep.apply { + binding.settingsOther.otherSwitchSweep.apply { isChecked = viewModel.getShowSweep() setOnCheckedChangeListener { _, isChecked -> viewModel.setShowSweep(isChecked) } } - binding.prefsOther.otherSwitchSensors.apply { + binding.settingsOther.otherSwitchSensors.apply { isChecked = viewModel.getUseCompass() setOnCheckedChangeListener { _, isChecked -> viewModel.setUseCompass(isChecked) } } } private fun setupWarrantyCard() { - binding.prefsWarranty.warrantyThanks.movementMethod = LinkMovementMethod.getInstance() - binding.prefsWarranty.warrantyLicense.movementMethod = LinkMovementMethod.getInstance() + binding.settingsWarranty.warrantyThanks.movementMethod = LinkMovementMethod.getInstance() + binding.settingsWarranty.warrantyLicense.movementMethod = LinkMovementMethod.getInstance() } private fun setPositionText(geoPos: GeoPos) { val latFormat = getString(R.string.location_lat) val lonFormat = getString(R.string.location_lon) - binding.prefsLocation.locationLat.text = String.format(latFormat, geoPos.latitude) - binding.prefsLocation.locationLon.text = String.format(lonFormat, geoPos.longitude) + binding.settingsLocation.locationLat.text = String.format(latFormat, geoPos.latitude) + binding.settingsLocation.locationLon.text = String.format(lonFormat, geoPos.longitude) } private fun handleStationPosition(pos: DataState) { when (pos) { is DataState.Success -> { setPositionText(pos.data) - binding.prefsLocation.locationProgress.isIndeterminate = false + binding.settingsLocation.locationProgress.isIndeterminate = false viewModel.setPositionHandled() showToast(getString(R.string.pref_pos_success)) } is DataState.Error -> { - binding.prefsLocation.locationProgress.isIndeterminate = false + binding.settingsLocation.locationProgress.isIndeterminate = false viewModel.setPositionHandled() showToast(pos.message.toString()) } DataState.Loading -> { - binding.prefsLocation.locationProgress.isIndeterminate = true + binding.settingsLocation.locationProgress.isIndeterminate = true } DataState.Handled -> {} } @@ -212,17 +212,17 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) { private fun handleSatState(state: DataState) { when (state) { is DataState.Success -> { - binding.prefsData.updateProgress.isIndeterminate = false + binding.settingsData.updateProgress.isIndeterminate = false viewModel.setUpdateHandled() showToast("Data updated successfully") } is DataState.Error -> { - binding.prefsData.updateProgress.isIndeterminate = false + binding.settingsData.updateProgress.isIndeterminate = false viewModel.setUpdateHandled() showToast(state.message.toString()) } is DataState.Loading -> { - binding.prefsData.updateProgress.isIndeterminate = true + binding.settingsData.updateProgress.isIndeterminate = true } is DataState.Handled -> {} } diff --git a/app/src/main/res/drawable-nodpi/worldmap_dark.webp b/app/src/main/res/drawable-nodpi/worldmap_dark.webp deleted file mode 100644 index 9f19b71b..00000000 Binary files a/app/src/main/res/drawable-nodpi/worldmap_dark.webp and /dev/null differ diff --git a/app/src/main/res/drawable/ic_checkbox.xml b/app/src/main/res/drawable/ic_checkbox.xml deleted file mode 100644 index cbb9c3e5..00000000 --- a/app/src/main/res/drawable/ic_checkbox.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_clear.xml similarity index 100% rename from app/src/main/res/drawable/ic_delete.xml rename to app/src/main/res/drawable/ic_clear.xml diff --git a/app/src/main/res/drawable/ic_checkbox_out.xml b/app/src/main/res/drawable/ic_done.xml similarity index 60% rename from app/src/main/res/drawable/ic_checkbox_out.xml rename to app/src/main/res/drawable/ic_done.xml index 8c7ac2de..648f00d7 100644 --- a/app/src/main/res/drawable/ic_checkbox_out.xml +++ b/app/src/main/res/drawable/ic_done.xml @@ -6,5 +6,5 @@ android:tint="?attr/colorControlNormal"> + android:pathData="M18,7l-1.41,-1.41 -6.34,6.34 1.41,1.41L18,7zM22.24,5.59L11.66,16.17 7.48,12l-1.41,1.41L11.66,19l12,-12 -1.42,-1.41zM0.41,13.41L6,19l1.41,-1.41L1.83,12 0.41,13.41z"/> diff --git a/app/src/main/res/drawable/ic_fdroid.xml b/app/src/main/res/drawable/ic_fdroid.xml deleted file mode 100644 index 4e56c7e0..00000000 --- a/app/src/main/res/drawable/ic_fdroid.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_github.xml b/app/src/main/res/drawable/ic_github.xml deleted file mode 100644 index 978f5031..00000000 --- a/app/src/main/res/drawable/ic_github.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_pos.xml b/app/src/main/res/drawable/ic_gps.xml similarity index 100% rename from app/src/main/res/drawable/ic_pos.xml rename to app/src/main/res/drawable/ic_gps.xml diff --git a/app/src/main/res/drawable/ic_list.xml b/app/src/main/res/drawable/ic_list.xml deleted file mode 100644 index 0eb2804f..00000000 --- a/app/src/main/res/drawable/ic_list.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_world.xml b/app/src/main/res/drawable/ic_map.xml similarity index 100% rename from app/src/main/res/drawable/ic_world.xml rename to app/src/main/res/drawable/ic_map.xml diff --git a/app/src/main/res/drawable/ic_arrow_right.xml b/app/src/main/res/drawable/ic_next.xml similarity index 86% rename from app/src/main/res/drawable/ic_arrow_right.xml rename to app/src/main/res/drawable/ic_next.xml index da896608..9c0d721b 100644 --- a/app/src/main/res/drawable/ic_arrow_right.xml +++ b/app/src/main/res/drawable/ic_next.xml @@ -6,5 +6,5 @@ android:viewportHeight="24"> + android:pathData="M8,6v14l11,-7z" /> diff --git a/app/src/main/res/drawable/ic_notify_1.xml b/app/src/main/res/drawable/ic_notify_1.xml deleted file mode 100644 index 21cb88d1..00000000 --- a/app/src/main/res/drawable/ic_notify_1.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_notify_2.xml b/app/src/main/res/drawable/ic_notify_2.xml deleted file mode 100644 index c3204226..00000000 --- a/app/src/main/res/drawable/ic_notify_2.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_play.xml b/app/src/main/res/drawable/ic_play.xml deleted file mode 100644 index bc5dd1e8..00000000 --- a/app/src/main/res/drawable/ic_play.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_prefs.xml b/app/src/main/res/drawable/ic_prefs.xml deleted file mode 100644 index c4149ea4..00000000 --- a/app/src/main/res/drawable/ic_prefs.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_arrow_left.xml b/app/src/main/res/drawable/ic_prev.xml similarity index 86% rename from app/src/main/res/drawable/ic_arrow_left.xml rename to app/src/main/res/drawable/ic_prev.xml index 627b772f..8546554e 100644 --- a/app/src/main/res/drawable/ic_arrow_left.xml +++ b/app/src/main/res/drawable/ic_prev.xml @@ -6,5 +6,5 @@ android:viewportHeight="24"> + android:pathData="M16,6v14l-11,-7z" /> diff --git a/app/src/main/res/drawable/ic_support.xml b/app/src/main/res/drawable/ic_support.xml index 63351653..7297f11f 100644 --- a/app/src/main/res/drawable/ic_support.xml +++ b/app/src/main/res/drawable/ic_support.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + diff --git a/app/src/main/res/drawable/rounded_corners.xml b/app/src/main/res/drawable/rounded_corners.xml deleted file mode 100644 index 773768b1..00000000 --- a/app/src/main/res/drawable/rounded_corners.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f6043fa7..b8038cf2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,31 +1,9 @@ - - - - - - - + android:layout_height="match_parent" + app:defaultNavHost="true" + app:navGraph="@navigation/navigation_graph" /> diff --git a/app/src/main/res/layout/card_prefs_about.xml b/app/src/main/res/layout/card_prefs_about.xml index f3099364..74055185 100644 --- a/app/src/main/res/layout/card_prefs_about.xml +++ b/app/src/main/res/layout/card_prefs_about.xml @@ -59,14 +59,13 @@