diff --git a/app/src/main/java/se/ajpanton/notificationlog/MainActivity.kt b/app/src/main/java/se/ajpanton/notificationlog/MainActivity.kt index 8b83fbe..8cf07e4 100644 --- a/app/src/main/java/se/ajpanton/notificationlog/MainActivity.kt +++ b/app/src/main/java/se/ajpanton/notificationlog/MainActivity.kt @@ -39,6 +39,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte WindowCompat.setDecorFitsSystemWindows(window, true) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) + showLockedOverlay(AppLockStore(this).enabled) val isNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES WindowInsetsControllerCompat(window, binding.root).isAppearanceLightNavigationBars = !isNightMode @@ -84,12 +85,20 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte override fun onResume() { super.onResume() - if (needsUnlock && AppLockStore(this).enabled) requestUnlock() + if (needsUnlock && AppLockStore(this).enabled) { + showLockedOverlay(true) + requestUnlock() + } else { + showLockedOverlay(false) + } } override fun onStop() { super.onStop() - if (!isChangingConfigurations) needsUnlock = true + if (!isChangingConfigurations) { + needsUnlock = true + if (AppLockStore(this).enabled) showLockedOverlay(true) + } } private fun requestUnlock() { @@ -98,11 +107,18 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte .setAllowedAuthenticators(Authenticators.BIOMETRIC_STRONG or Authenticators.DEVICE_CREDENTIAL) .build() .authenticate(CancellationSignal(), mainExecutor, object : BiometricPrompt.AuthenticationCallback() { - override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult?) { needsUnlock = false } + override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult?) { + needsUnlock = false + showLockedOverlay(false) + } override fun onAuthenticationError(errorCode: Int, errString: CharSequence?) { finishAndRemoveTask() } }) } + private fun showLockedOverlay(visible: Boolean) { + binding.lockOverlay.visibility = if (visible) View.VISIBLE else View.GONE + } + override fun onNavigationItemSelected(item: MenuItem): Boolean { navigateTo(item.itemId) if (!permanentSidebar) { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e621f92..0432a0f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,9 @@ - + + + + + + + +