diff --git a/app/src/main/java/com/rtbishop/lookingsat/MainActivity.kt b/app/src/main/java/com/rtbishop/lookingsat/MainActivity.kt
index d7d3d263..c991742b 100644
--- a/app/src/main/java/com/rtbishop/lookingsat/MainActivity.kt
+++ b/app/src/main/java/com/rtbishop/lookingsat/MainActivity.kt
@@ -1,11 +1,15 @@
package com.rtbishop.lookingsat
import android.os.Bundle
+import android.os.CountDownTimer
import android.view.Menu
import android.view.MenuItem
+import android.view.View
+import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
+import androidx.constraintlayout.widget.ConstraintLayout
import androidx.drawerlayout.widget.DrawerLayout
import androidx.lifecycle.ViewModelProviders
import androidx.navigation.findNavController
@@ -13,38 +17,76 @@ 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.floatingactionbutton.FloatingActionButton
import com.google.android.material.navigation.NavigationView
-import com.google.android.material.snackbar.Snackbar
+import java.util.*
+import java.util.concurrent.TimeUnit
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfig: AppBarConfiguration
private lateinit var mainViewModel: MainViewModel
+ private lateinit var timerLayout: ConstraintLayout
+ private lateinit var timeToAos: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
+ setupViews()
+ setupNavigation()
+ setupTimer()
+ }
+ private fun setupViews() {
mainViewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
+ timerLayout = findViewById(R.id.timer_layout)
+ timeToAos = findViewById(R.id.time_to_aos)
+ }
+ private fun setupNavigation() {
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
- val fab: FloatingActionButton = findViewById(R.id.fab)
- fab.setOnClickListener { view ->
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show()
- }
-
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host)
- appBarConfig =
- AppBarConfiguration(setOf(R.id.nav_sky, R.id.nav_radar, R.id.nav_map), drawerLayout)
+ appBarConfig = AppBarConfiguration(setOf(R.id.nav_sky), drawerLayout)
setupActionBarWithNavController(navController, appBarConfig)
navView.setupWithNavController(navController)
+
+ navController.addOnDestinationChangedListener { _, destination, _ ->
+ if (destination.id == R.id.nav_sky) {
+ timerLayout.visibility = View.VISIBLE
+ } else {
+ timerLayout.visibility = View.GONE
+ }
+ }
+ }
+
+ 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.next_aos_pattern),
+ TimeUnit.MILLISECONDS.toHours(millisUntilFinished) % 60,
+ TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % 60,
+ TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % 60
+ )
+ }
+ }
+ timer.start()
}
override fun onSupportNavigateUp(): Boolean {
diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml
index 353840fb..d41e2801 100644
--- a/app/src/main/res/layout/app_bar_main.xml
+++ b/app/src/main/res/layout/app_bar_main.xml
@@ -16,7 +16,30 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
- app:popupTheme="@style/AppTheme.PopupOverlay" />
+ app:popupTheme="@style/AppTheme.PopupOverlay">
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 89e2fd7a..8c94b1cf 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -22,5 +22,6 @@
64
Ground station height in meters AMSL
+ Next AOS in %02d:%02d:%02d
Placeholder