local_authentication_service.dart 989 B

1234567891011121314151617181920212223242526272829303132
  1. import 'package:flutter/material.dart';
  2. import 'package:local_auth/local_auth.dart';
  3. import 'package:photos/core/configuration.dart';
  4. import 'package:photos/ui/tools/app_lock.dart';
  5. import 'package:photos/utils/auth_util.dart';
  6. import 'package:photos/utils/toast_util.dart';
  7. class LocalAuthenticationService {
  8. LocalAuthenticationService._privateConstructor();
  9. static final LocalAuthenticationService instance =
  10. LocalAuthenticationService._privateConstructor();
  11. Future<bool> requestLocalAuthentication(
  12. BuildContext context,
  13. String reason,
  14. ) async {
  15. if (await LocalAuthentication().isDeviceSupported()) {
  16. AppLock.of(context).setEnabled(false);
  17. final result = await requestAuthentication(reason);
  18. AppLock.of(context).setEnabled(
  19. Configuration.instance.shouldShowLockScreen(),
  20. );
  21. if (!result) {
  22. showToast(context, reason);
  23. return false;
  24. } else {
  25. return true;
  26. }
  27. }
  28. return true;
  29. }
  30. }