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 b851f6dd..c0474952 100644
--- a/app/src/main/java/com/rtbishop/lookingsat/ui/MainActivity.kt
+++ b/app/src/main/java/com/rtbishop/lookingsat/ui/MainActivity.kt
@@ -6,7 +6,6 @@ import android.content.pm.ActivityInfo
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Bundle
-import android.os.CountDownTimer
import android.view.View
import android.widget.ImageButton
import android.widget.TextView
@@ -20,14 +19,13 @@ 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
import com.google.android.material.navigation.NavigationView
import com.rtbishop.lookingsat.MainViewModel
import com.rtbishop.lookingsat.R
-import java.util.*
-import java.util.concurrent.TimeUnit
class MainActivity : AppCompatActivity() {
@@ -36,42 +34,38 @@ class MainActivity : AppCompatActivity() {
private val permGranted = PackageManager.PERMISSION_GRANTED
private val githubUrl = "https://github.com/rt-bishop/LookingSat"
- private lateinit var drawerLayout: DrawerLayout
private lateinit var viewModel: MainViewModel
private lateinit var timerLayout: ConstraintLayout
- private lateinit var timeToAos: TextView
+ private lateinit var drawerLayout: DrawerLayout
private lateinit var drawerLat: TextView
private lateinit var drawerLon: TextView
- private lateinit var drawerHeight: TextView
private lateinit var drawerBtnLoc: ImageButton
private lateinit var drawerBtnTle: ImageButton
private lateinit var drawerBtnTrans: ImageButton
private lateinit var drawerBtnGithub: ImageButton
private lateinit var drawerBtnExit: ImageButton
+ private lateinit var appBarConfig: AppBarConfiguration
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupComponents()
setupDrawer()
- setupTimer()
}
private fun setupComponents() {
- viewModel = ViewModelProvider(this).get(MainViewModel::class.java)
- timerLayout = findViewById(R.id.toolbar_layout_timer)
- timeToAos = findViewById(R.id.toolbar_time_to_aos)
-
+ val navView: NavigationView = findViewById(R.id.nav_view)
+ val header = navView.getHeaderView(0)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
+ viewModel = ViewModelProvider(this).get(MainViewModel::class.java)
+
+ timerLayout = findViewById(R.id.toolbar_layout_timer)
drawerLayout = findViewById(R.id.drawer_layout)
- val navView: NavigationView = findViewById(R.id.nav_view)
- val header = navView.getHeaderView(0)
drawerLat = header.findViewById(R.id.drawer_lat_value)
drawerLon = header.findViewById(R.id.drawer_lon_value)
- drawerHeight = header.findViewById(R.id.drawer_height_value)
drawerBtnLoc = header.findViewById(R.id.drawer_btn_loc)
drawerBtnTle = header.findViewById(R.id.drawer_btn_tle)
@@ -79,8 +73,13 @@ class MainActivity : AppCompatActivity() {
drawerBtnGithub = header.findViewById(R.id.drawer_btn_github)
drawerBtnExit = header.findViewById(R.id.drawer_btn_exit)
+ appBarConfig = AppBarConfiguration(
+ setOf(R.id.nav_sky, R.id.nav_map, R.id.nav_credits, R.id.nav_about),
+ drawerLayout
+ )
+
val navController = findNavController(R.id.nav_host)
- setupActionBarWithNavController(navController, drawerLayout)
+ setupActionBarWithNavController(navController, appBarConfig)
navView.setupWithNavController(navController)
navController.addOnDestinationChangedListener { _, destination, _ ->
@@ -95,6 +94,8 @@ class MainActivity : AppCompatActivity() {
toolbar.visibility = View.GONE
}
else -> {
+ this.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
+ toolbar.visibility = View.VISIBLE
timerLayout.visibility = View.GONE
}
}
@@ -111,7 +112,6 @@ class MainActivity : AppCompatActivity() {
viewModel.gsp.observe(this, Observer { gsp ->
drawerLat.text = String.format("%.4f", gsp.latitude)
drawerLon.text = String.format("%.4f", gsp.longitude)
- drawerHeight.text = String.format("%.1fm", gsp.heightAMSL)
})
drawerBtnLoc.setOnClickListener { updateLocation() }
@@ -123,32 +123,6 @@ class MainActivity : AppCompatActivity() {
drawerBtnExit.setOnClickListener { finish() }
}
- private fun setupTimer() {
- val cal = Calendar.getInstance()
- cal.add(Calendar.DAY_OF_MONTH, 1)
- cal.set(Calendar.HOUR_OF_DAY, 0)
- cal.set(Calendar.MINUTE, 0)
- cal.set(Calendar.SECOND, 0)
- cal.set(Calendar.MILLISECOND, 0)
- val totalMillis = cal.timeInMillis - System.currentTimeMillis()
-
- val timer = object : CountDownTimer(totalMillis, 1000) {
- override fun onFinish() {
- Toast.makeText(this@MainActivity, "Time is up!", Toast.LENGTH_SHORT).show()
- }
-
- override fun onTick(millisUntilFinished: Long) {
- timeToAos.text = String.format(
- resources.getString(R.string.toolbar_aos_in),
- TimeUnit.MILLISECONDS.toHours(millisUntilFinished) % 60,
- TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % 60,
- TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % 60
- )
- }
- }
- timer.start()
- }
-
private fun updateLocation() {
if (ContextCompat.checkSelfPermission(this, permLocation) != permGranted) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permLocation)) {
@@ -173,6 +147,6 @@ class MainActivity : AppCompatActivity() {
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host)
- return navController.navigateUp(drawerLayout) || super.onSupportNavigateUp()
+ return navController.navigateUp(appBarConfig) || 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 317fe466..fb193e54 100644
--- a/app/src/main/java/com/rtbishop/lookingsat/ui/SkyFragment.kt
+++ b/app/src/main/java/com/rtbishop/lookingsat/ui/SkyFragment.kt
@@ -1,11 +1,14 @@
package com.rtbishop.lookingsat.ui
import android.os.Bundle
+import android.os.CountDownTimer
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageButton
import android.widget.ProgressBar
+import android.widget.TextView
+import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
@@ -19,6 +22,8 @@ import com.rtbishop.lookingsat.R
import com.rtbishop.lookingsat.repo.SatPass
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
+import java.util.*
+import java.util.concurrent.TimeUnit
class SkyFragment : Fragment() {
@@ -27,6 +32,7 @@ class SkyFragment : Fragment() {
private lateinit var recViewFuture: RecyclerView
private lateinit var recAdapterCurrent: RecyclerView.Adapter<*>
private lateinit var recAdapterFuture: RecyclerView.Adapter<*>
+ private lateinit var timeToAos: TextView
private lateinit var btnPassPrefs: ImageButton
private lateinit var progressBar: ProgressBar
private lateinit var fab: FloatingActionButton
@@ -42,6 +48,7 @@ class SkyFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel = ViewModelProvider(activity as MainActivity).get(MainViewModel::class.java)
+ timeToAos = (activity as MainActivity).findViewById(R.id.toolbar_time_to_aos)
btnPassPrefs = (activity as MainActivity).findViewById(R.id.toolbar_btn_refresh)
progressBar = view.findViewById(R.id.sky_progressbar)
recViewFuture = view.findViewById(R.id.sky_recycler_future)
@@ -50,6 +57,8 @@ class SkyFragment : Fragment() {
recViewFuture.layoutManager = LinearLayoutManager(activity)
fab.setOnClickListener { showSelectSatDialog() }
+
+ setupTimer()
}
private fun showSelectSatDialog() {
@@ -107,4 +116,30 @@ class SkyFragment : Fragment() {
recViewFuture.visibility = View.VISIBLE
}
}
+
+ private fun setupTimer() {
+ val cal = Calendar.getInstance()
+ cal.add(Calendar.DAY_OF_MONTH, 1)
+ cal.set(Calendar.HOUR_OF_DAY, 0)
+ cal.set(Calendar.MINUTE, 0)
+ cal.set(Calendar.SECOND, 0)
+ cal.set(Calendar.MILLISECOND, 0)
+ val totalMillis = cal.timeInMillis - System.currentTimeMillis()
+
+ val timer = object : CountDownTimer(totalMillis, 1000) {
+ override fun onFinish() {
+ Toast.makeText(activity, "Time is up!", Toast.LENGTH_SHORT).show()
+ }
+
+ override fun onTick(millisUntilFinished: Long) {
+ timeToAos.text = String.format(
+ "AOS -%02d:%02d:%02d",
+ TimeUnit.MILLISECONDS.toHours(millisUntilFinished) % 60,
+ TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % 60,
+ TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % 60
+ )
+ }
+ }
+ timer.start()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml
index 7a361ab2..bcbb9057 100644
--- a/app/src/main/res/layout/drawer_header.xml
+++ b/app/src/main/res/layout/drawer_header.xml
@@ -2,7 +2,7 @@
@@ -12,129 +12,148 @@
android:layout_width="108dp"
android:layout_height="108dp"
android:layout_marginTop="24dp"
- android:layout_marginEnd="8dp"
android:contentDescription="@string/app_name"
app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/drawer_title"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_sat_desc_left" />
+ app:layout_constraintBaseline_toBaselineOf="@+id/drawer_lat_value"
+ app:layout_constraintStart_toStartOf="@+id/drawer_subtitle" />
+ app:layout_constraintStart_toEndOf="@+id/drawer_lat"
+ app:layout_constraintTop_toBottomOf="@+id/drawer_sat_img" />
+ app:layout_constraintStart_toStartOf="@+id/drawer_lat"
+ app:layout_constraintTop_toBottomOf="@+id/drawer_lat" />
-
-
-
-
+ app:layout_constraintBottom_toTopOf="@+id/drawer_btn_tle"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/drawer_lon_value" />
+
+
+ app:layout_constraintBottom_toTopOf="@+id/drawer_btn_trans"
+ app:layout_constraintStart_toStartOf="@+id/drawer_btn_loc"
+ app:layout_constraintTop_toBottomOf="@+id/drawer_btn_loc" />
+
+
+ app:layout_constraintBottom_toTopOf="@+id/drawer_btn_github"
+ app:layout_constraintStart_toStartOf="@+id/drawer_btn_tle"
+ app:layout_constraintTop_toBottomOf="@+id/drawer_btn_tle" />
+
+
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="@+id/drawer_btn_trans"
+ app:layout_constraintTop_toBottomOf="@+id/drawer_btn_trans" />
+
+
+
+
diff --git a/app/src/main/res/menu/drawer_menu.xml b/app/src/main/res/menu/drawer_menu.xml
index 46636132..f5cb3149 100644
--- a/app/src/main/res/menu/drawer_menu.xml
+++ b/app/src/main/res/menu/drawer_menu.xml
@@ -12,18 +12,13 @@
android:id="@+id/nav_map"
android:icon="@drawable/ic_map"
android:title="@string/menu_map" />
+
+
-
- -
-
-
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 8fcc18c4..59a0b0c4 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,4 +1,3 @@
- 292dp
16dp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a6173df4..782a5bd4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -8,8 +8,12 @@
51.5074
Longitude:
0.1278
- Height AMSL:
- 48.0m
+
+ Update location
+ Update TLE file
+ Update transmitters DB
+ GitHub
+ Exit
Sky at a Glance
Radar View
@@ -17,9 +21,6 @@
Credits
About the App
- AOS in %02d:%02d:%02d
- Refresh
-
Meteor M2–2
V: 180° -> 360°
75.5°
@@ -30,5 +31,4 @@
Nasa Map
Placeholder
- About
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index a436cdae..97144b03 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -29,14 +29,14 @@
- bold
-
-
+
+