Added dummy countdown timer to midnight to the toolbar

This commit is contained in:
Arty Bishop committed 2019-10-20 18:20:02 +01:00
1 parent 13ac2357ea
commit 1d219ab841
3 files changed
+77 -11

No files matched your search

@@ -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 {