lock_screen.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // @dart=2.9
  2. import 'package:flutter/material.dart';
  3. import 'package:logging/logging.dart';
  4. import 'package:photos/ui/common/gradient_button.dart';
  5. import 'package:photos/ui/tools/app_lock.dart';
  6. import 'package:photos/utils/auth_util.dart';
  7. class LockScreen extends StatefulWidget {
  8. const LockScreen({Key key}) : super(key: key);
  9. @override
  10. State<LockScreen> createState() => _LockScreenState();
  11. }
  12. class _LockScreenState extends State<LockScreen> {
  13. final _logger = Logger("LockScreen");
  14. @override
  15. void initState() {
  16. _showLockScreen();
  17. super.initState();
  18. }
  19. @override
  20. Widget build(BuildContext context) {
  21. return Scaffold(
  22. body: Center(
  23. child: Column(
  24. crossAxisAlignment: CrossAxisAlignment.center,
  25. mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  26. children: [
  27. Stack(
  28. alignment: Alignment.center,
  29. children: [
  30. Opacity(
  31. opacity: 0.2,
  32. child: Image.asset('assets/loading_photos_background.png'),
  33. ),
  34. SizedBox(
  35. width: 142,
  36. child: GradientButton(
  37. text: "Unlock",
  38. iconData: Icons.lock_open_outlined,
  39. onTap: () async {
  40. _showLockScreen();
  41. },
  42. ),
  43. ),
  44. ],
  45. ),
  46. ],
  47. ),
  48. ),
  49. );
  50. }
  51. Future<void> _showLockScreen() async {
  52. _logger.info("Showing lockscreen");
  53. try {
  54. final result = await requestAuthentication(
  55. "Please authenticate to view your memories",
  56. );
  57. if (result) {
  58. AppLock.of(context).didUnlock();
  59. }
  60. } catch (e, s) {
  61. _logger.severe(e, s);
  62. }
  63. }
  64. }