forked from shihaam/thijooree
add auto lock
This commit is contained in:
@@ -2,6 +2,8 @@ package sh.sar.basedbank.ui.home
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@@ -42,6 +44,16 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
private lateinit var binding: ActivityHomeBinding
|
private lateinit var binding: ActivityHomeBinding
|
||||||
private val viewModel: HomeViewModel by viewModels()
|
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?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityHomeBinding.inflate(layoutInflater)
|
binding = ActivityHomeBinding.inflate(layoutInflater)
|
||||||
@@ -133,6 +145,28 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
.commit()
|
.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 {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.toolbar_menu, menu)
|
menuInflater.inflate(R.menu.toolbar_menu, menu)
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -60,6 +60,27 @@ class SettingsFragment : Fragment() {
|
|||||||
setApplicationLocales(LocaleListCompat.forLanguageTags(tag))
|
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
|
// Change lock
|
||||||
binding.btnChangeLock.setOnClickListener {
|
binding.btnChangeLock.setOnClickListener {
|
||||||
(requireActivity() as HomeActivity).showWithBackStack(
|
(requireActivity() as HomeActivity).showWithBackStack(
|
||||||
|
|||||||
@@ -100,6 +100,64 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/settings_change_lock" />
|
android:text="@string/settings_change_lock" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/settings_autolock"
|
||||||
|
android:textAppearance="?attr/textAppearanceBodyLarge"
|
||||||
|
android:textColor="?attr/colorOnSurface"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButtonToggleGroup
|
||||||
|
android:id="@+id/autolockToggle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:singleSelection="true"
|
||||||
|
app:selectionRequired="true">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btnAutolockOff"
|
||||||
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/autolock_off" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btnAutolock30s"
|
||||||
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/autolock_30s" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btnAutolock1m"
|
||||||
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/autolock_1m" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btnAutolock3m"
|
||||||
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/autolock_3m" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btnAutolock5m"
|
||||||
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@string/autolock_5m" />
|
||||||
|
|
||||||
|
</com.google.android.material.button.MaterialButtonToggleGroup>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/rowBiometrics"
|
android:id="@+id/rowBiometrics"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -89,6 +89,12 @@
|
|||||||
<string name="settings_security">Security</string>
|
<string name="settings_security">Security</string>
|
||||||
<string name="settings_change_lock">Change PIN / Pattern</string>
|
<string name="settings_change_lock">Change PIN / Pattern</string>
|
||||||
<string name="settings_biometrics">Use Biometrics</string>
|
<string name="settings_biometrics">Use Biometrics</string>
|
||||||
|
<string name="settings_autolock">Auto-lock</string>
|
||||||
|
<string name="autolock_off">Off</string>
|
||||||
|
<string name="autolock_30s">30s</string>
|
||||||
|
<string name="autolock_1m">1m</string>
|
||||||
|
<string name="autolock_3m">3m</string>
|
||||||
|
<string name="autolock_5m">5m</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="theme">Theme</string>
|
||||||
<string name="theme_system">System</string>
|
<string name="theme_system">System</string>
|
||||||
<string name="theme_light">Light</string>
|
<string name="theme_light">Light</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user