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