diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41288a85..7b35f156 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,7 +18,6 @@
-->
@@ -28,23 +27,31 @@
+ android:theme="@style/AppTheme">
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
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 170539bc..2cd1a7c2 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/MainActivity.kt
@@ -31,7 +31,6 @@ import android.view.View
import android.view.WindowManager
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
-import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController
@@ -133,7 +132,7 @@ class MainActivity : AppCompatActivity(), TleSourcesDialogFragment.SourcesSubmit
}
private fun setupObservers() {
- viewModel.getGSP().observe(this, Observer { result ->
+ viewModel.getGSP().observe(this, { result ->
when (result) {
is Result.Success -> {
drawerBinding.drawerLatValue.text =
@@ -151,7 +150,7 @@ class MainActivity : AppCompatActivity(), TleSourcesDialogFragment.SourcesSubmit
}
}
})
- viewModel.getUpdateStatus().observe(this, Observer { result ->
+ viewModel.getUpdateStatus().observe(this, { result ->
when (result) {
is Result.Success -> getString(R.string.import_data_success).toast(this)
is Result.Error -> getString(R.string.import_data_failure).toast(this)
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/NavActivity.kt b/app/src/main/java/com/rtbishop/look4sat/ui/NavActivity.kt
new file mode 100644
index 00000000..11368458
--- /dev/null
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/NavActivity.kt
@@ -0,0 +1,19 @@
+package com.rtbishop.look4sat.ui
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.navigation.fragment.NavHostFragment
+import androidx.navigation.ui.setupWithNavController
+import com.rtbishop.look4sat.R
+import com.rtbishop.look4sat.databinding.ActivityNavBinding
+
+class NavActivity : AppCompatActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ val binding = ActivityNavBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ val navHost = supportFragmentManager.findFragmentById(R.id.nav_frag) as NavHostFragment
+ binding.navBottom.setupWithNavController(navHost.navController)
+ }
+}
\ 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/MapOsmFragment.kt
index 6975e116..fefb9906 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapOsmFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapOsmFragment.kt
@@ -9,6 +9,7 @@ import android.view.View
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceManager
@@ -20,7 +21,6 @@ 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.ui.MainActivity
import com.rtbishop.look4sat.ui.SharedViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
@@ -43,7 +43,7 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) {
@Inject
lateinit var modelFactory: ViewModelFactory
- private lateinit var mainActivity: MainActivity
+ private lateinit var mainActivity: FragmentActivity
private lateinit var viewModel: SharedViewModel
private lateinit var binding: FragmentMapOsmBinding
private lateinit var trackPaint: Paint
@@ -54,7 +54,7 @@ class MapOsmFragment : Fragment(R.layout.fragment_map_osm) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding = FragmentMapOsmBinding.bind(view)
- mainActivity = requireActivity() as MainActivity
+ 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/MapViewFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapViewFragment.kt
index 4970c3a5..106dd362 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapViewFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/MapViewFragment.kt
@@ -23,6 +23,7 @@ import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.github.amsacode.predict4java.GroundStationPosition
@@ -33,7 +34,6 @@ import com.rtbishop.look4sat.dagger.ViewModelFactory
import com.rtbishop.look4sat.data.Result
import com.rtbishop.look4sat.data.SatPass
import com.rtbishop.look4sat.databinding.FragmentMapViewBinding
-import com.rtbishop.look4sat.ui.MainActivity
import com.rtbishop.look4sat.ui.SharedViewModel
import com.rtbishop.look4sat.ui.views.MapView
import com.rtbishop.look4sat.utility.Extensions.toast
@@ -47,7 +47,7 @@ class MapViewFragment : Fragment(R.layout.fragment_map_view) {
@Inject
lateinit var modelFactory: ViewModelFactory
- private lateinit var mainActivity: MainActivity
+ private lateinit var mainActivity: FragmentActivity
private lateinit var viewModel: SharedViewModel
private lateinit var mapView: MapView
private lateinit var predictor: PassPredictor
@@ -60,7 +60,7 @@ class MapViewFragment : Fragment(R.layout.fragment_map_view) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding = FragmentMapViewBinding.bind(view)
- mainActivity = requireActivity() as MainActivity
+ mainActivity = requireActivity()
(mainActivity.application as Look4SatApp).appComponent.inject(this)
viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java)
setupObservers(binding)
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt
index ca1c8952..b359e199 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PassListFragment.kt
@@ -30,6 +30,7 @@ import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
@@ -41,7 +42,6 @@ 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.ui.MainActivity
import com.rtbishop.look4sat.ui.SharedViewModel
import com.rtbishop.look4sat.ui.adapters.SatPassAdapter
import com.rtbishop.look4sat.utility.Extensions.toast
@@ -64,7 +64,7 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) {
private lateinit var btnPassPrefs: ImageButton
private lateinit var aosTimer: CountDownTimer
private lateinit var aosTimerText: TextView
- private lateinit var mainActivity: MainActivity
+ private lateinit var mainActivity: FragmentActivity
private var isTimerSet: Boolean = false
private var satPassList: MutableList = mutableListOf()
@@ -82,7 +82,7 @@ class PassListFragment : Fragment(R.layout.fragment_pass_list) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- mainActivity = activity as MainActivity
+ mainActivity = requireActivity()
(mainActivity.application as Look4SatApp).appComponent.inject(this)
viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java)
satPassAdapter = SatPassAdapter(satPassList, prefsManager)
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt
index c2bd4199..c188e4aa 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PolarViewFragment.kt
@@ -24,6 +24,7 @@ import android.hardware.*
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.navArgs
@@ -34,7 +35,6 @@ 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.ui.MainActivity
import com.rtbishop.look4sat.ui.SharedViewModel
import com.rtbishop.look4sat.ui.adapters.TransmitterAdapter
import com.rtbishop.look4sat.ui.views.PolarView
@@ -48,7 +48,7 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis
@Inject
lateinit var modelFactory: ViewModelFactory
- private lateinit var mainActivity: MainActivity
+ private lateinit var mainActivity: FragmentActivity
private lateinit var viewModel: SharedViewModel
private lateinit var binding: FragmentPolarViewBinding
private lateinit var satPass: SatPass
@@ -60,7 +60,7 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- mainActivity = activity as MainActivity
+ mainActivity = requireActivity()
binding = FragmentPolarViewBinding.bind(view)
(mainActivity.application as Look4SatApp).appComponent.inject(this)
viewModel = ViewModelProvider(mainActivity, modelFactory).get(SharedViewModel::class.java)
@@ -110,7 +110,6 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis
if (result is Result.Success) {
val refreshRate = viewModel.getRefreshRate()
satPass = result.data[args.satPassIndex]
- mainActivity.supportActionBar?.title = satPass.tle.name
polarView = PolarView(mainActivity, satPass)
binding.framePolar.addView(polarView)
observeTransmitters()
diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt
index 13c747d7..1a755a95 100644
--- a/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/ui/fragments/PreferencesFragment.kt
@@ -22,18 +22,18 @@ package com.rtbishop.look4sat.ui.fragments
import android.content.SharedPreferences
import android.os.Bundle
import android.text.InputType
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
import androidx.preference.EditTextPreference
import androidx.preference.PreferenceFragmentCompat
import com.rtbishop.look4sat.R
-import com.rtbishop.look4sat.ui.MainActivity
import com.rtbishop.look4sat.ui.SharedViewModel
import com.rtbishop.look4sat.utility.Extensions.toast
class PreferencesFragment : PreferenceFragmentCompat(),
SharedPreferences.OnSharedPreferenceChangeListener {
- private lateinit var mainActivity: MainActivity
+ private lateinit var mainActivity: FragmentActivity
private lateinit var viewModel: SharedViewModel
private lateinit var keyLat: String
private lateinit var keyLon: String
@@ -44,7 +44,7 @@ class PreferencesFragment : PreferenceFragmentCompat(),
setPreferencesFromResource(R.xml.preference, rootKey)
val provider = EditTextPreference.SimpleSummaryProvider.getInstance()
- mainActivity = activity as MainActivity
+ mainActivity = requireActivity()
viewModel = ViewModelProvider(mainActivity).get(SharedViewModel::class.java)
keyLat = mainActivity.getString(R.string.pref_lat_key)
diff --git a/app/src/main/res/color/nav_item_selector.xml b/app/src/main/res/color/nav_item_selector.xml
new file mode 100644
index 00000000..539f4f3b
--- /dev/null
+++ b/app/src/main/res/color/nav_item_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_help_outline.xml b/app/src/main/res/drawable/ic_help_outline.xml
new file mode 100644
index 00000000..95af104a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_help_outline.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_list.xml b/app/src/main/res/drawable/ic_list.xml
new file mode 100644
index 00000000..9d1961ed
--- /dev/null
+++ b/app/src/main/res/drawable/ic_list.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_nav.xml b/app/src/main/res/layout/activity_nav.xml
new file mode 100644
index 00000000..0793a628
--- /dev/null
+++ b/app/src/main/res/layout/activity_nav.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/nav_menu.xml b/app/src/main/res/menu/nav_menu.xml
new file mode 100644
index 00000000..c19440bb
--- /dev/null
+++ b/app/src/main/res/menu/nav_menu.xml
@@ -0,0 +1,40 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/temp_graph.xml b/app/src/main/res/navigation/temp_graph.xml
new file mode 100644
index 00000000..3dd676a7
--- /dev/null
+++ b/app/src/main/res/navigation/temp_graph.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index ed0f677d..db5459c8 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -37,6 +37,11 @@
Карта мира (Демо)
Настройки
О приложении
+ Спутники
+ Пролеты
+ Карта Мира
+ Настройки
+ О приложении
Выберите спутники для слежения
Показать трассу орбиты для
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index cc3c3598..df1685e1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -40,6 +40,11 @@
World Map Demo
Settings
About the App
+ Satellites
+ Passes
+ World Map
+ Settings
+ About
Select satellites to track
Show ground track for