Added second recycler for current passes. FAB now initiates passes recalculation. Minor fixes.

This commit is contained in:
Arty Bishop committed 2019-11-23 13:30:30 +00:00
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
}
}
}