Skip to content

Commit 30a7bb3

Browse files
committed
feat: show snackbar in passcode/pattern unlock when biometrics are not available
1 parent 11bed4b commit 30a7bb3

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

owncloudApp/src/main/java/com/owncloud/android/presentation/security/passcode/PassCodeActivity.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
* @author Juan Carlos Garrote Gascón
1111
* @author David Crespo Ríos
1212
* @author Aitor Ballesteros Pavón
13+
* @author Jorge Aguado Recio
1314
*
1415
* Copyright (C) 2011 Bartek Przybylski
15-
* Copyright (C) 2024 ownCloud GmbH.
16+
* Copyright (C) 2025 ownCloud GmbH.
1617
* <p>
1718
* This program is free software: you can redistribute it and/or modify
1819
* it under the terms of the GNU General Public License version 2,
@@ -44,6 +45,7 @@ import com.owncloud.android.R
4445
import com.owncloud.android.databinding.PasscodelockBinding
4546
import com.owncloud.android.domain.utils.Event
4647
import com.owncloud.android.extensions.showBiometricDialog
48+
import com.owncloud.android.extensions.showMessageInSnackbar
4749
import com.owncloud.android.presentation.documentsprovider.DocumentsProviderUtils.notifyDocumentsProviderRoots
4850
import com.owncloud.android.presentation.security.biometric.BiometricStatus
4951
import com.owncloud.android.presentation.security.biometric.BiometricViewModel
@@ -94,6 +96,10 @@ class PassCodeActivity : AppCompatActivity(), NumberKeyboardListener, EnableBiom
9496

9597
setContentView(binding.root)
9698

99+
if (intent.getBooleanExtra(BIOMETRIC_HAS_FAILED, false)) {
100+
showMessageInSnackbar(message = getString(R.string.biometric_not_available))
101+
}
102+
97103
numberOfPasscodeDigits = passCodeViewModel.getPassCode()?.length ?: passCodeViewModel.getNumberOfPassCodeDigits()
98104
passCodeEditTexts = arrayOfNulls(numberOfPasscodeDigits)
99105

@@ -474,5 +480,7 @@ class PassCodeActivity : AppCompatActivity(), NumberKeyboardListener, EnableBiom
474480

475481
private const val NUM_ATTEMPTS_WITHOUT_TIMER = 3
476482

483+
private const val BIOMETRIC_HAS_FAILED = "BIOMETRIC_HAS_FAILED"
484+
477485
}
478486
}

owncloudApp/src/main/java/com/owncloud/android/presentation/security/pattern/PatternActivity.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
* @author David González Verdugo
77
* @author Abel García de Prada
88
* @author Juan Carlos Garrote Gascón
9-
* Copyright (C) 2021 ownCloud GmbH.
9+
* @author Jorge Aguado Recio
10+
*
11+
* Copyright (C) 2025 ownCloud GmbH.
1012
* <p>
1113
* This program is free software: you can redistribute it and/or modify
1214
* it under the terms of the GNU General Public License version 2,
@@ -40,6 +42,7 @@ import com.owncloud.android.R
4042
import com.owncloud.android.data.providers.implementation.OCSharedPreferencesProvider
4143
import com.owncloud.android.databinding.ActivityPatternLockBinding
4244
import com.owncloud.android.extensions.showBiometricDialog
45+
import com.owncloud.android.extensions.showMessageInSnackbar
4346
import com.owncloud.android.presentation.documentsprovider.DocumentsProviderUtils.notifyDocumentsProviderRoots
4447
import com.owncloud.android.presentation.security.PREFERENCE_LAST_UNLOCK_TIMESTAMP
4548
import com.owncloud.android.presentation.security.biometric.BiometricStatus
@@ -76,6 +79,10 @@ class PatternActivity : AppCompatActivity(), EnableBiometrics {
7679

7780
setContentView(binding.root)
7881

82+
if (intent.getBooleanExtra(BIOMETRIC_HAS_FAILED, false)) {
83+
showMessageInSnackbar(message = getString(R.string.biometric_not_available))
84+
}
85+
7986
binding.patternLockView.clearPattern()
8087

8188
// Allow or disallow touches with other visible windows
@@ -354,5 +361,6 @@ class PatternActivity : AppCompatActivity(), EnableBiometrics {
354361
private const val KEY_PATTERN_STRING = "PATTERN_STRING"
355362
private const val PATTERN_HEADER_VIEW_TEXT = "PATTERN_HEADER_VIEW_TEXT"
356363
private const val PATTERN_EXP_VIEW_STATE = "PATTERN_EXP_VIEW_STATE"
364+
private const val BIOMETRIC_HAS_FAILED = "BIOMETRIC_HAS_FAILED"
357365
}
358366
}

owncloudApp/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@
321321
<string name="biometric_prompt_title">Biometric log in</string>
322322
<string name="biometric_prompt_subtitle">Log in using your biometric credential.</string>
323323
<string name="biometric_dialog_title">Do you want to additionally activate biometric security?</string>
324+
<string name="biometric_not_available">Biometric unlock is not available</string>
324325

325326
<string name="media_notif_ticker">%1$s music player</string>
326327
<string name="media_state_playing">%1$s (playing)</string>

0 commit comments

Comments
 (0)