Added dummy countdown timer to midnight to the toolbar

pull/30/head
Arty Bishop 2019-10-20 18:20:02 +01:00
rodzic 13ac2357ea
commit 1d219ab841
3 zmienionych plików z 77 dodań i 11 usunięć

Wyświetl plik

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

Wyświetl plik

@ -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">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/timer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/time_to_aos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:gravity="center"
android:text="@string/next_aos_pattern"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>

Wyświetl plik

@ -22,5 +22,6 @@
<string name="height_def">64</string>
<string name="height_summary">Ground station height in meters AMSL</string>
<string name="next_aos_pattern">Next AOS in %02d:%02d:%02d</string>
<string name="placeholder">Placeholder</string>
</resources>