kopia lustrzana https://github.com/rt-bishop/Look4Sat
Restored bottom navigation bar for comparison
rodzic
8b8c443bd1
commit
a0c6ceef15
|
@ -23,6 +23,9 @@ 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 androidx.navigation.ui.setupWithNavController
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.databinding.ActivityMainBinding
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
|
@ -36,7 +39,10 @@ class MainActivity : AppCompatActivity() {
|
|||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||
installSplashScreen()
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(ActivityMainBinding.inflate(layoutInflater).root)
|
||||
val binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
val host = supportFragmentManager.findFragmentById(R.id.navigation_host) as NavHostFragment
|
||||
setContentView(binding.root)
|
||||
binding.navigationBar.setupWithNavController(host.navController)
|
||||
mainViewModel.calculatePasses()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,12 +74,12 @@ class MapViewModel @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
fun selectDefaultSatellite(catnum: Int?) {
|
||||
fun selectDefaultSatellite(catnum: Int) {
|
||||
viewModelScope.launch {
|
||||
dataRepository.getSelectedSatellites().also { satellites ->
|
||||
if (satellites.isNotEmpty()) {
|
||||
allSatList = satellites
|
||||
if (catnum == null) {
|
||||
if (catnum == -1) {
|
||||
selectSatellite(satellites.first())
|
||||
} else {
|
||||
satellites.find { it.params.catnum == catnum }?.let { selectSatellite(it) }
|
||||
|
|
|
@ -19,13 +19,11 @@ package com.rtbishop.look4sat.presentation.passesScreen
|
|||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.databinding.FragmentPassesBinding
|
||||
|
@ -57,12 +55,6 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
|||
this.layoutManager = layoutManager
|
||||
addItemDecoration(itemDecoration)
|
||||
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
|
||||
addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
||||
if (dy > 0 && passesFab.visibility == View.VISIBLE) passesFab.hide()
|
||||
else if (dy < 0 && passesFab.visibility != View.VISIBLE) passesFab.show()
|
||||
}
|
||||
})
|
||||
}
|
||||
passesSwipe.apply {
|
||||
setColorSchemeResources(R.color.surfaceToolbar)
|
||||
|
@ -75,17 +67,6 @@ class PassesFragment : Fragment(R.layout.fragment_passes), PassesAdapter.PassesC
|
|||
passesViewModel.passes.observe(viewLifecycleOwner) { passesResult ->
|
||||
handleNewPasses(passesResult, adapter, binding)
|
||||
}
|
||||
passesViewModel.satellites.observe(viewLifecycleOwner) { satellites ->
|
||||
satellites?.let {
|
||||
if (satellites.isEmpty()) {
|
||||
binding.passesFab.setOnClickListener {
|
||||
Toast.makeText(requireContext(), "Nothing to show", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
} else {
|
||||
binding.passesFab.setOnClickListener { findNavController().navigate(R.id.nav_entries) }
|
||||
}
|
||||
}
|
||||
}
|
||||
getNavResult<Pair<Int, Double>>(R.id.nav_passes, "prefs") { prefs ->
|
||||
passesViewModel.saveCalculationPrefs(prefs.first, prefs.second)
|
||||
passesViewModel.forceCalculation(prefs.first, prefs.second)
|
||||
|
|
|
@ -17,7 +17,10 @@
|
|||
*/
|
||||
package com.rtbishop.look4sat.presentation.passesScreen
|
||||
|
||||
import androidx.lifecycle.*
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.rtbishop.look4sat.data.ISettingsHandler
|
||||
import com.rtbishop.look4sat.domain.IDataRepository
|
||||
import com.rtbishop.look4sat.domain.model.DataState
|
||||
|
@ -37,7 +40,6 @@ class PassesViewModel @Inject constructor(
|
|||
private var passesProcessing: Job? = null
|
||||
private val _passes = MutableLiveData<DataState<List<SatPass>>>()
|
||||
val passes: LiveData<DataState<List<SatPass>>> = _passes
|
||||
val satellites = repository.getSatelliteItems().asLiveData()
|
||||
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
|
|
|
@ -1,9 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/main_nav_host"
|
||||
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:defaultNavHost="true"
|
||||
app:navGraph="@navigation/nav_graph" />
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/navigation_host"
|
||||
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:defaultNavHost="true"
|
||||
app:layout_constraintBottom_toTopOf="@+id/navigation_bar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:navGraph="@navigation/navigation_graph" />
|
||||
|
||||
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
android:id="@+id/navigation_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="56dp"
|
||||
app:itemBackground="@color/surfaceToolbar"
|
||||
app:labelVisibilityMode="unlabeled"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:menu="@menu/navigation_menu" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -72,16 +72,4 @@
|
|||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/passes_fab"
|
||||
style="@style/Widget.MaterialComponents.FloatingActionButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:src="@drawable/ic_satellite"
|
||||
android:tint="@color/surfaceBg"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/nav_entries"
|
||||
android:icon="@drawable/ic_sputnik"
|
||||
android:title="@string/menu_satellites" />
|
||||
<item
|
||||
android:id="@+id/nav_passes"
|
||||
android:icon="@drawable/ic_list"
|
||||
android:title="@string/menu_passes" />
|
||||
<!-- <item-->
|
||||
<!-- android:id="@+id/nav_radar"-->
|
||||
<!-- android:icon="@drawable/ic_support"-->
|
||||
<!-- android:title="@string/menu_radar" />-->
|
||||
<item
|
||||
android:id="@+id/nav_map"
|
||||
android:icon="@drawable/ic_world"
|
||||
android:title="@string/menu_map" />
|
||||
<item
|
||||
android:id="@+id/nav_settings"
|
||||
android:icon="@drawable/ic_prefs"
|
||||
android:title="@string/menu_settings" />
|
||||
</menu>
|
|
@ -26,7 +26,7 @@
|
|||
tools:layout="@layout/fragment_radar">
|
||||
<argument
|
||||
android:name="catNum"
|
||||
android:defaultValue="0"
|
||||
android:defaultValue="-1"
|
||||
app:argType="integer" />
|
||||
<argument
|
||||
android:name="aosTime"
|
||||
|
@ -39,7 +39,7 @@
|
|||
tools:layout="@layout/fragment_map">
|
||||
<argument
|
||||
android:name="catNum"
|
||||
android:defaultValue="0"
|
||||
android:defaultValue="-1"
|
||||
app:argType="integer" />
|
||||
</fragment>
|
||||
<fragment
|
|
@ -7,11 +7,16 @@
|
|||
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Look4Sat.Main" parent="Theme.MaterialComponents.NoActionBar">
|
||||
<style name="Theme.Look4Sat.Main" parent="Theme.Material3.Dark.NoActionBar">
|
||||
<item name="colorAccent">@color/themeAccent</item>
|
||||
<item name="colorControlNormal">@color/themeLight</item>
|
||||
<item name="colorPrimary">@color/themeAccent</item>
|
||||
<item name="colorSecondary">@color/themeAccent</item>
|
||||
<!-- Bottom bar colors-->
|
||||
<item name="colorOnSecondaryContainer">@color/themeLight</item>
|
||||
<item name="colorOnSurfaceVariant">@color/themeLight</item>
|
||||
<item name="colorSecondaryContainer">@color/surfaceIcon</item>
|
||||
<!-- -->
|
||||
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
|
||||
<item name="android:listDivider">@drawable/item_divider</item>
|
||||
<item name="android:navigationBarColor">@color/surfaceBg</item>
|
||||
|
|
Ładowanie…
Reference in New Issue