aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2019-10-02 11:00:45 +0530
committerGitHub <noreply@github.com>2019-10-02 11:00:45 +0530
commit9a1a54a6fcfa6fd6cf142f2af9804375255d14cf (patch)
tree5535d9be1196a6a1f98719e2f92e0e26cd92cc5d /app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt
parent27592dde1087804442ea37e17c2e13aad5c72b01 (diff)
downloadHardenedPass-9a1a54a6fcfa6fd6cf142f2af9804375255d14cf.tar.gz
HardenedPass-9a1a54a6fcfa6fd6cf142f2af9804375255d14cf.zip
Initial biometric authentication support (#541)
* [WIP] Initial biometric authentication support * Redirect decryption app shortcut to go through LaunchActivity * UserPreference: Clear existing shortcuts when toggling password auth Clears out any auth-bypassed entries that exist * Fix hilarious copypasta derp Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt49
1 files changed, 49 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt b/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt
new file mode 100644
index 00000000..8f607ee0
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/LaunchActivity.kt
@@ -0,0 +1,49 @@
+package com.zeapo.pwdstore
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.preference.PreferenceManager
+import com.zeapo.pwdstore.crypto.PgpActivity
+import com.zeapo.pwdstore.utils.auth.AuthenticationResult
+import com.zeapo.pwdstore.utils.auth.Authenticator
+
+class LaunchActivity : AppCompatActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ val prefs = PreferenceManager.getDefaultSharedPreferences(this)
+ if (prefs.getBoolean("biometric_auth", false)) {
+ Authenticator(this) {
+ when (it) {
+ is AuthenticationResult.Success -> {
+ startTargetActivity()
+ }
+ is AuthenticationResult.UnrecoverableError -> {
+ finish()
+ }
+ else -> {
+ }
+ }
+ }.authenticate()
+ } else {
+ startTargetActivity()
+ }
+ }
+
+ private fun startTargetActivity() {
+ if (intent?.getStringExtra("OPERATION") == "DECRYPT") {
+ val decryptIntent = Intent(this, PgpActivity::class.java)
+ decryptIntent.putExtra("NAME", intent.getStringExtra("NAME"))
+ decryptIntent.putExtra("FILE_PATH", intent.getStringExtra("FILE_PATH"))
+ decryptIntent.putExtra("REPO_PATH", intent.getStringExtra("REPO_PATH"))
+ decryptIntent.putExtra("LAST_CHANGED_TIMESTAMP", intent.getLongExtra("LAST_CHANGED_TIMESTAMP", 0L))
+ decryptIntent.putExtra("OPERATION", "DECRYPT")
+ startActivity(decryptIntent)
+ }else {
+ startActivity(Intent(this, PasswordStore::class.java))
+ }
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
+ finish()
+ }
+}