添加了顶部时间更新
This commit is contained in:
@@ -6,6 +6,12 @@ import android.view.WindowManager
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.sw.inbound.utils.DateTimeUtils
|
||||
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* activity 基类
|
||||
@@ -14,7 +20,9 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
|
||||
|
||||
protected lateinit var binding: VB
|
||||
private set
|
||||
private var headerBinding: ItemTitleTimeBinding? = null
|
||||
protected lateinit var context: Context
|
||||
private var timeJob: Job? = null
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -25,16 +33,33 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
|
||||
)
|
||||
context = this
|
||||
binding = inflateViewBinding()
|
||||
headerBinding = inflateTitleBinding()
|
||||
setContentView(binding.root)
|
||||
updateTime()
|
||||
initialize()
|
||||
}
|
||||
|
||||
fun updateTime() {
|
||||
headerBinding?.let {
|
||||
val scope = CoroutineScope(Dispatchers.Main)
|
||||
timeJob = scope.launch {
|
||||
DateTimeUtils.realTimeChineseDateFlow()
|
||||
.collect { (date, time) ->
|
||||
headerBinding!!.tvLeftDate.text = date
|
||||
headerBinding!!.tvRightTime.text = time
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract fun inflateViewBinding(): VB
|
||||
|
||||
protected abstract fun inflateTitleBinding(): ItemTitleTimeBinding?
|
||||
|
||||
protected abstract fun initialize()
|
||||
|
||||
|
||||
override fun onDestroy() {
|
||||
timeJob?.cancel()
|
||||
super.onDestroy()
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import androidx.camera.lifecycle.ProcessCameraProvider
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.google.common.util.concurrent.ListenableFuture
|
||||
import com.sw.platecabinet.databinding.ActivityLoginFaceBinding
|
||||
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
@@ -22,6 +23,10 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>() {
|
||||
return ActivityLoginFaceBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
override fun inflateTitleBinding(): ItemTitleTimeBinding {
|
||||
return binding.includeHeader
|
||||
}
|
||||
|
||||
override fun initialize() {
|
||||
initView()
|
||||
startCamera()
|
||||
|
||||
@@ -2,12 +2,17 @@ package com.sw.platecabinet.activity
|
||||
|
||||
import android.content.Intent
|
||||
import com.sw.platecabinet.databinding.ActivityLoginByPwdBinding
|
||||
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
||||
|
||||
class LoginByPwdActivity : BaseActivity<ActivityLoginByPwdBinding>() {
|
||||
override fun inflateViewBinding(): ActivityLoginByPwdBinding {
|
||||
return ActivityLoginByPwdBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
override fun inflateTitleBinding(): ItemTitleTimeBinding {
|
||||
return binding.includeHeader
|
||||
}
|
||||
|
||||
override fun initialize() {
|
||||
binding.tvFaceRec.setOnClickListener {
|
||||
val intent = Intent(this, LoginByFaceActivity::class.java)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.sw.platecabinet.activity
|
||||
|
||||
import com.sw.platecabinet.databinding.ActivityMainBinding
|
||||
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
||||
|
||||
class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
|
||||
@@ -8,6 +9,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
return ActivityMainBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
override fun inflateTitleBinding(): ItemTitleTimeBinding {
|
||||
return binding.includeHeader
|
||||
}
|
||||
|
||||
override fun initialize() {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user