forked from shihaam/thijooree
new feature: resume last activity after unlocking instead of goind to dashboard everytime
This commit is contained in:
@@ -39,6 +39,7 @@ class LockActivity : AppCompatActivity() {
|
|||||||
companion object {
|
companion object {
|
||||||
private const val MAX_ATTEMPTS = 5
|
private const val MAX_ATTEMPTS = 5
|
||||||
private const val LOCKOUT_MS = 30_000L
|
private const val LOCKOUT_MS = 30_000L
|
||||||
|
const val EXTRA_RESUME = "resume"
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@@ -270,8 +271,12 @@ class LockActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun proceed() {
|
private fun proceed() {
|
||||||
startActivity(Intent(this, HomeActivity::class.java))
|
if (intent.getBooleanExtra(EXTRA_RESUME, false)) {
|
||||||
finish()
|
finish()
|
||||||
|
} else {
|
||||||
|
startActivity(Intent(this, HomeActivity::class.java))
|
||||||
|
finish()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Brute-force tracking ──────────────────────────────────────────────────
|
// ── Brute-force tracking ──────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -64,15 +64,22 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private val warningRunnable = Runnable { showAutolockWarning() }
|
private val warningRunnable = Runnable { showAutolockWarning() }
|
||||||
|
|
||||||
|
private var isLocked = false
|
||||||
|
|
||||||
private val autolockRunnable = Runnable {
|
private val autolockRunnable = Runnable {
|
||||||
countdownTimer?.cancel(); countdownTimer = null
|
countdownTimer?.cancel(); countdownTimer = null
|
||||||
warningDialog?.dismiss(); warningDialog = null
|
warningDialog?.dismiss(); warningDialog = null
|
||||||
val securitySet = getSharedPreferences("prefs", MODE_PRIVATE)
|
val securitySet = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||||
.getString("security_method", null) != null
|
.getString("security_method", null) != null
|
||||||
if (securitySet) {
|
if (securitySet) lock()
|
||||||
startActivity(Intent(this, sh.sar.basedbank.LockActivity::class.java))
|
}
|
||||||
finish()
|
|
||||||
}
|
private fun lock() {
|
||||||
|
isLocked = true
|
||||||
|
startActivity(
|
||||||
|
Intent(this, sh.sar.basedbank.LockActivity::class.java)
|
||||||
|
.putExtra(sh.sar.basedbank.LockActivity.EXTRA_RESUME, true)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@@ -237,6 +244,13 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
// Returning from LockActivity — skip the elapsed check and reset state.
|
||||||
|
if (isLocked) {
|
||||||
|
isLocked = false
|
||||||
|
pauseTime = 0L
|
||||||
|
resetAutolockTimer()
|
||||||
|
return
|
||||||
|
}
|
||||||
// If we were away long enough to have hit the autolock timeout (e.g. while
|
// If we were away long enough to have hit the autolock timeout (e.g. while
|
||||||
// QrScannerActivity was in the foreground), lock immediately.
|
// QrScannerActivity was in the foreground), lock immediately.
|
||||||
if (pauseTime > 0L) {
|
if (pauseTime > 0L) {
|
||||||
@@ -244,8 +258,7 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
val timeout = getSharedPreferences("prefs", MODE_PRIVATE).getLong("autolock_timeout", 60_000L)
|
val timeout = getSharedPreferences("prefs", MODE_PRIVATE).getLong("autolock_timeout", 60_000L)
|
||||||
val securitySet = getSharedPreferences("prefs", MODE_PRIVATE).getString("security_method", null) != null
|
val securitySet = getSharedPreferences("prefs", MODE_PRIVATE).getString("security_method", null) != null
|
||||||
if (timeout > 0L && elapsed >= timeout && securitySet) {
|
if (timeout > 0L && elapsed >= timeout && securitySet) {
|
||||||
startActivity(Intent(this, sh.sar.basedbank.LockActivity::class.java))
|
lock()
|
||||||
finish()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -316,8 +329,7 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
if (item.itemId == R.id.action_lock) {
|
if (item.itemId == R.id.action_lock) {
|
||||||
startActivity(Intent(this, sh.sar.basedbank.LockActivity::class.java))
|
lock()
|
||||||
finish()
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item)
|
return super.onOptionsItemSelected(item)
|
||||||
|
|||||||
Reference in New Issue
Block a user