add auto lock
All checks were successful
Auto Tag on Version Change / check-version (push) Successful in 3s
All checks were successful
Auto Tag on Version Change / check-version (push) Successful in 3s
This commit is contained in:
@@ -2,6 +2,8 @@ package sh.sar.basedbank.ui.home
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
@@ -42,6 +44,16 @@ class HomeActivity : AppCompatActivity() {
|
||||
private lateinit var binding: ActivityHomeBinding
|
||||
private val viewModel: HomeViewModel by viewModels()
|
||||
|
||||
private val autolockHandler = Handler(Looper.getMainLooper())
|
||||
private val autolockRunnable = Runnable {
|
||||
val securitySet = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||
.getString("security_method", null) != null
|
||||
if (securitySet) {
|
||||
startActivity(Intent(this, sh.sar.basedbank.LockActivity::class.java))
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityHomeBinding.inflate(layoutInflater)
|
||||
@@ -133,6 +145,28 @@ class HomeActivity : AppCompatActivity() {
|
||||
.commit()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
resetAutolockTimer()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
autolockHandler.removeCallbacks(autolockRunnable)
|
||||
}
|
||||
|
||||
override fun onUserInteraction() {
|
||||
super.onUserInteraction()
|
||||
resetAutolockTimer()
|
||||
}
|
||||
|
||||
private fun resetAutolockTimer() {
|
||||
autolockHandler.removeCallbacks(autolockRunnable)
|
||||
val timeout = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||
.getLong("autolock_timeout", 60_000L)
|
||||
if (timeout > 0) autolockHandler.postDelayed(autolockRunnable, timeout)
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
menuInflater.inflate(R.menu.toolbar_menu, menu)
|
||||
return true
|
||||
|
||||
@@ -60,6 +60,27 @@ class SettingsFragment : Fragment() {
|
||||
setApplicationLocales(LocaleListCompat.forLanguageTags(tag))
|
||||
}
|
||||
|
||||
// Auto-lock
|
||||
val savedTimeout = prefs.getLong("autolock_timeout", 60_000L)
|
||||
binding.autolockToggle.check(when (savedTimeout) {
|
||||
0L -> R.id.btnAutolockOff
|
||||
30_000L -> R.id.btnAutolock30s
|
||||
180_000L -> R.id.btnAutolock3m
|
||||
300_000L -> R.id.btnAutolock5m
|
||||
else -> R.id.btnAutolock1m
|
||||
})
|
||||
binding.autolockToggle.addOnButtonCheckedListener { _, checkedId, isChecked ->
|
||||
if (!isChecked) return@addOnButtonCheckedListener
|
||||
val timeout = when (checkedId) {
|
||||
R.id.btnAutolockOff -> 0L
|
||||
R.id.btnAutolock30s -> 30_000L
|
||||
R.id.btnAutolock3m -> 180_000L
|
||||
R.id.btnAutolock5m -> 300_000L
|
||||
else -> 60_000L
|
||||
}
|
||||
prefs.edit().putLong("autolock_timeout", timeout).apply()
|
||||
}
|
||||
|
||||
// Change lock
|
||||
binding.btnChangeLock.setOnClickListener {
|
||||
(requireActivity() as HomeActivity).showWithBackStack(
|
||||
|
||||
Reference in New Issue
Block a user