mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added second recycler for current passes. FAB now initiates passes recalculation. Minor fixes.
This commit is contained in:
1 parent
cc6e486574
commit
1f2832d13e
10 files changed
+59
-69
No files matched your search
@@ -20,7 +20,6 @@ import androidx.drawerlayout.widget.DrawerLayout
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.ui.AppBarConfiguration
|
||||
import androidx.navigation.ui.navigateUp
|
||||
import androidx.navigation.ui.setupActionBarWithNavController
|
||||
import androidx.navigation.ui.setupWithNavController
|
||||
@@ -37,7 +36,7 @@ class MainActivity : AppCompatActivity() {
|
||||
private val permGranted = PackageManager.PERMISSION_GRANTED
|
||||
private val githubUrl = "https://github.com/rt-bishop/LookingSat"
|
||||
|
||||
private lateinit var appBarConfig: AppBarConfiguration
|
||||
private lateinit var drawerLayout: DrawerLayout
|
||||
private lateinit var viewModel: MainViewModel
|
||||
private lateinit var timerLayout: ConstraintLayout
|
||||
private lateinit var timeToAos: TextView
|
||||
@@ -66,7 +65,7 @@ class MainActivity : AppCompatActivity() {
|
||||
val toolbar: Toolbar = findViewById(R.id.toolbar)
|
||||
setSupportActionBar(toolbar)
|
||||
|
||||
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
|
||||
drawerLayout = findViewById(R.id.drawer_layout)
|
||||
val navView: NavigationView = findViewById(R.id.nav_view)
|
||||
val header = navView.getHeaderView(0)
|
||||
|
||||
@@ -81,13 +80,12 @@ class MainActivity : AppCompatActivity() {
|
||||
drawerBtnExit = header.findViewById(R.id.drawer_btn_exit)
|
||||
|
||||
val navController = findNavController(R.id.nav_host)
|
||||
appBarConfig = AppBarConfiguration(setOf(R.id.nav_sky, R.id.nav_single_sat), drawerLayout)
|
||||
setupActionBarWithNavController(navController, appBarConfig)
|
||||
setupActionBarWithNavController(navController, drawerLayout)
|
||||
navView.setupWithNavController(navController)
|
||||
|
||||
navController.addOnDestinationChangedListener { _, destination, _ ->
|
||||
when (destination.id) {
|
||||
R.id.nav_sky, R.id.nav_single_sat -> {
|
||||
R.id.nav_sky -> {
|
||||
this.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|
||||
toolbar.visibility = View.VISIBLE
|
||||
timerLayout.visibility = View.VISIBLE
|
||||
@@ -175,6 +173,6 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
override fun onSupportNavigateUp(): Boolean {
|
||||
val navController = findNavController(R.id.nav_host)
|
||||
return navController.navigateUp(appBarConfig) || super.onSupportNavigateUp()
|
||||
return navController.navigateUp(drawerLayout) || super.onSupportNavigateUp()
|
||||
}
|
||||
}
|
||||
@@ -23,18 +23,18 @@ import kotlinx.coroutines.launch
|
||||
class SkyFragment : Fragment() {
|
||||
|
||||
private lateinit var viewModel: MainViewModel
|
||||
private lateinit var recView: RecyclerView
|
||||
private lateinit var recAdapter: RecyclerView.Adapter<*>
|
||||
private lateinit var btnRefresh: ImageButton
|
||||
private lateinit var recViewCurrent: RecyclerView
|
||||
private lateinit var recViewFuture: RecyclerView
|
||||
private lateinit var recAdapterCurrent: RecyclerView.Adapter<*>
|
||||
private lateinit var recAdapterFuture: RecyclerView.Adapter<*>
|
||||
private lateinit var btnPassPrefs: ImageButton
|
||||
private lateinit var progressBar: ProgressBar
|
||||
private lateinit var fab: FloatingActionButton
|
||||
|
||||
private var satPassList: List<SatPass> = emptyList()
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
|
||||
): View? {
|
||||
return inflater.inflate(R.layout.fragment_sky, container, false)
|
||||
}
|
||||
@@ -42,27 +42,12 @@ class SkyFragment : Fragment() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
viewModel = ViewModelProvider(activity as MainActivity).get(MainViewModel::class.java)
|
||||
btnRefresh = (activity as MainActivity).findViewById(R.id.toolbar_btn_refresh)
|
||||
btnPassPrefs = (activity as MainActivity).findViewById(R.id.toolbar_btn_refresh)
|
||||
progressBar = view.findViewById(R.id.sky_progressbar)
|
||||
recView = view.findViewById(R.id.sky_recycler)
|
||||
recViewFuture = view.findViewById(R.id.sky_recycler_future)
|
||||
fab = view.findViewById(R.id.sky_fab)
|
||||
|
||||
recView.layoutManager = LinearLayoutManager(activity)
|
||||
recView.setHasFixedSize(true)
|
||||
|
||||
btnRefresh.setOnClickListener {
|
||||
lifecycleScope.launch(Dispatchers.Main) {
|
||||
recView.visibility = View.INVISIBLE
|
||||
progressBar.visibility = View.VISIBLE
|
||||
progressBar.isIndeterminate = true
|
||||
satPassList = viewModel.getPassesForSelectedSatellites()
|
||||
recAdapter = SatPassAdapter(satPassList)
|
||||
recView.adapter = recAdapter
|
||||
progressBar.isIndeterminate = false
|
||||
progressBar.visibility = View.INVISIBLE
|
||||
recView.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
recViewFuture.layoutManager = LinearLayoutManager(activity)
|
||||
|
||||
fab.setOnClickListener { showSelectSatDialog() }
|
||||
}
|
||||
@@ -95,10 +80,12 @@ class SkyFragment : Fragment() {
|
||||
.setPositiveButton("Ok") { _, _ ->
|
||||
for ((tle, value) in selectionMap) {
|
||||
tleSelectedMap[tle] = value
|
||||
calculatePasses()
|
||||
}
|
||||
}
|
||||
.setNeutralButton("Clear All") { _, _ ->
|
||||
tleSelectedMap.clear()
|
||||
calculatePasses()
|
||||
}
|
||||
.setNegativeButton("Cancel") { dialog, _ ->
|
||||
dialog.cancel()
|
||||
@@ -106,4 +93,18 @@ class SkyFragment : Fragment() {
|
||||
.create()
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun calculatePasses() {
|
||||
lifecycleScope.launch(Dispatchers.Main) {
|
||||
recViewFuture.visibility = View.INVISIBLE
|
||||
progressBar.visibility = View.VISIBLE
|
||||
progressBar.isIndeterminate = true
|
||||
satPassList = viewModel.getPassesForSelectedSatellites()
|
||||
recAdapterFuture = SatPassAdapter(satPassList)
|
||||
recViewFuture.adapter = recAdapterFuture
|
||||
progressBar.isIndeterminate = false
|
||||
progressBar.visibility = View.INVISIBLE
|
||||
recViewFuture.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#C0C0C0"
|
||||
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z" />
|
||||
</vector>
|
||||
@@ -1,9 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#C0C0C0"
|
||||
android:pathData="M12,4L12,1L8,5l4,4L12,6c3.31,0 6,2.69 6,6 0,1.01 -0.25,1.97 -0.7,2.8l1.46,1.46C19.54,15.03 20,13.57 20,12c0,-4.42 -3.58,-8 -8,-8zM12,18c-3.31,0 -6,-2.69 -6,-6 0,-1.01 0.25,-1.97 0.7,-2.8L5.24,7.74C4.46,8.97 4,10.43 4,12c0,4.42 3.58,8 8,8v3l4,-4 -4,-4v3z" />
|
||||
</vector>
|
||||
@@ -1,9 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="32dp"
|
||||
android:height="32dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M3,17h18v-2L3,15v2zM3,20h18v-1L3,19v1zM3,13h18v-3L3,10v3zM3,4v4h18L21,4L3,4z" />
|
||||
</vector>
|
||||
@@ -1,10 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.SkyFragment">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/sky_progressbar"
|
||||
@@ -12,20 +10,32 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/sky_recycler"
|
||||
app:layout_constraintEnd_toEndOf="@+id/sky_recycler"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/sky_recycler"
|
||||
android:id="@+id/sky_recycler_current"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
</androidx.recyclerview.widget.RecyclerView>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/sky_recycler_future"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/sky_recycler_current">
|
||||
|
||||
</androidx.recyclerview.widget.RecyclerView>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/sky_fab"
|
||||
@@ -37,4 +47,5 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:srcCompat="@drawable/ic_sat_asc_left" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -6,12 +6,8 @@
|
||||
<group android:checkableBehavior="single">
|
||||
<item
|
||||
android:id="@+id/nav_sky"
|
||||
android:icon="@drawable/ic_sky"
|
||||
android:title="@string/menu_sky" />
|
||||
<item
|
||||
android:id="@+id/nav_single_sat"
|
||||
android:icon="@drawable/ic_sat_asc_right"
|
||||
android:title="@string/menu_single_sat" />
|
||||
android:title="@string/menu_sky" />
|
||||
<item
|
||||
android:id="@+id/nav_map"
|
||||
android:icon="@drawable/ic_map"
|
||||
|
||||
@@ -11,12 +11,6 @@
|
||||
android:label="@string/menu_sky"
|
||||
tools:layout="@layout/fragment_sky" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_single_sat"
|
||||
android:name="com.rtbishop.lookingsat.ui.SkyFragment"
|
||||
android:label="@string/menu_single_sat"
|
||||
tools:layout="@layout/fragment_sky" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_radar"
|
||||
android:name="com.rtbishop.lookingsat.ui.RadarFragment"
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
|
||||
<string name="menu_sky">Sky at a Glance</string>
|
||||
<string name="menu_radar">Radar View</string>
|
||||
<string name="menu_single_sat">Single Sat Passes</string>
|
||||
<string name="menu_map">World Map View</string>
|
||||
<string name="menu_credits">Credits</string>
|
||||
<string name="menu_about">About the App</string>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<style name="ToolbarButton">
|
||||
<item name="android:layout_width">48dp</item>
|
||||
<item name="android:layout_height">48dp</item>
|
||||
<item name="android:src">@drawable/ic_refresh</item>
|
||||
<item name="android:src">@drawable/ic_pass_prefs</item>
|
||||
<item name="android:backgroundTint">@color/toolbarButton</item>
|
||||
</style>
|
||||
|
||||
|
||||
Reference in new issue
Block a user