From 1f2832d13e7a9f1825318d7eaa6d659fdcd7a40f Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sat, 23 Nov 2019 13:30:30 +0000 Subject: [PATCH] Added second recycler for current passes. FAB now initiates passes recalculation. Minor fixes. --- .../rtbishop/lookingsat/ui/MainActivity.kt | 12 ++--- .../com/rtbishop/lookingsat/ui/SkyFragment.kt | 49 ++++++++++--------- app/src/main/res/drawable/ic_pass_prefs.xml | 9 ++++ app/src/main/res/drawable/ic_refresh.xml | 9 ---- app/src/main/res/drawable/ic_sky.xml | 9 ---- app/src/main/res/layout/fragment_sky.xml | 25 +++++++--- app/src/main/res/menu/drawer_menu.xml | 6 +-- app/src/main/res/navigation/nav_graph.xml | 6 --- app/src/main/res/values/strings.xml | 1 - app/src/main/res/values/styles.xml | 2 +- 10 files changed, 59 insertions(+), 69 deletions(-) create mode 100644 app/src/main/res/drawable/ic_pass_prefs.xml delete mode 100644 app/src/main/res/drawable/ic_refresh.xml delete mode 100644 app/src/main/res/drawable/ic_sky.xml diff --git a/app/src/main/java/com/rtbishop/lookingsat/ui/MainActivity.kt b/app/src/main/java/com/rtbishop/lookingsat/ui/MainActivity.kt index 17cfb894..b851f6dd 100644 --- a/app/src/main/java/com/rtbishop/lookingsat/ui/MainActivity.kt +++ b/app/src/main/java/com/rtbishop/lookingsat/ui/MainActivity.kt @@ -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() } } \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/ui/SkyFragment.kt b/app/src/main/java/com/rtbishop/lookingsat/ui/SkyFragment.kt index 5ed26693..317fe466 100644 --- a/app/src/main/java/com/rtbishop/lookingsat/ui/SkyFragment.kt +++ b/app/src/main/java/com/rtbishop/lookingsat/ui/SkyFragment.kt @@ -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 = 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 + } + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_pass_prefs.xml b/app/src/main/res/drawable/ic_pass_prefs.xml new file mode 100644 index 00000000..16e5164d --- /dev/null +++ b/app/src/main/res/drawable/ic_pass_prefs.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml deleted file mode 100644 index 3a766bc2..00000000 --- a/app/src/main/res/drawable/ic_refresh.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_sky.xml b/app/src/main/res/drawable/ic_sky.xml deleted file mode 100644 index d852cf8a..00000000 --- a/app/src/main/res/drawable/ic_sky.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/layout/fragment_sky.xml b/app/src/main/res/layout/fragment_sky.xml index 5c8cbba8..62a2671e 100644 --- a/app/src/main/res/layout/fragment_sky.xml +++ b/app/src/main/res/layout/fragment_sky.xml @@ -1,10 +1,8 @@ + android:layout_height="match_parent"> + + + + + app:layout_constraintTop_toBottomOf="@+id/sky_recycler_current"> + + + \ No newline at end of file diff --git a/app/src/main/res/menu/drawer_menu.xml b/app/src/main/res/menu/drawer_menu.xml index 60fa090e..46636132 100644 --- a/app/src/main/res/menu/drawer_menu.xml +++ b/app/src/main/res/menu/drawer_menu.xml @@ -6,12 +6,8 @@ - + android:title="@string/menu_sky" /> - - Sky at a Glance Radar View - Single Sat Passes World Map View Credits About the App diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 8aa8f1e3..a436cdae 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -58,7 +58,7 @@