mirror of
https://github.com/ente-io/ente.git
synced 2025-05-29 22:09:43 +00:00
48 lines
2.1 KiB
Dart
48 lines
2.1 KiB
Dart
import "package:flutter/widgets.dart";
|
|
import 'package:local_auth/local_auth.dart';
|
|
import 'package:local_auth_android/local_auth_android.dart';
|
|
import 'package:local_auth_ios/local_auth_ios.dart';
|
|
import 'package:logging/logging.dart';
|
|
import "package:photos/core/configuration.dart";
|
|
import "package:photos/generated/l10n.dart";
|
|
import "package:photos/services/local_authentication_service.dart";
|
|
|
|
Future<bool> requestAuthentication(BuildContext context, String reason) async {
|
|
Logger("AuthUtil").info("Requesting authentication");
|
|
await LocalAuthentication().stopAuthentication();
|
|
final Configuration configuration = Configuration.instance;
|
|
final String? savedPin = await configuration.loadSavedPin();
|
|
final String? savedPassword = await configuration.loadSavedPassword();
|
|
if (savedPassword != null || savedPin != null) {
|
|
return await LocalAuthenticationService.instance
|
|
.requestEnteAuthForLockScreen(context);
|
|
} else {
|
|
return await LocalAuthentication().authenticate(
|
|
localizedReason: reason,
|
|
authMessages: [
|
|
AndroidAuthMessages(
|
|
biometricHint: S.of(context).androidBiometricHint,
|
|
biometricNotRecognized: S.of(context).androidBiometricNotRecognized,
|
|
biometricRequiredTitle: S.of(context).androidBiometricRequiredTitle,
|
|
biometricSuccess: S.of(context).androidBiometricSuccess,
|
|
cancelButton: S.of(context).androidCancelButton,
|
|
deviceCredentialsRequiredTitle:
|
|
S.of(context).androidDeviceCredentialsRequiredTitle,
|
|
deviceCredentialsSetupDescription:
|
|
S.of(context).androidDeviceCredentialsSetupDescription,
|
|
goToSettingsButton: S.of(context).goToSettings,
|
|
goToSettingsDescription: S.of(context).androidGoToSettingsDescription,
|
|
signInTitle: S.of(context).androidSignInTitle,
|
|
),
|
|
IOSAuthMessages(
|
|
goToSettingsButton: S.of(context).goToSettings,
|
|
goToSettingsDescription: S.of(context).goToSettings,
|
|
lockOut: S.of(context).iOSLockOut,
|
|
// cancelButton default value is "Ok"
|
|
cancelButton: S.of(context).iOSOkButton,
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|