lock_screen.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import 'package:flutter/material.dart';
  2. import 'package:logging/logging.dart';
  3. import 'package:photos/ui/common/gradient_button.dart';
  4. import 'package:photos/ui/tools/app_lock.dart';
  5. import 'package:photos/utils/auth_util.dart';
  6. class LockScreen extends StatefulWidget {
  7. const LockScreen({Key key}) : super(key: key);
  8. @override
  9. State<LockScreen> createState() => _LockScreenState();
  10. }
  11. class _LockScreenState extends State<LockScreen> {
  12. final _logger = Logger("LockScreen");
  13. @override
  14. void initState() {
  15. _showLockScreen();
  16. super.initState();
  17. }
  18. @override
  19. Widget build(BuildContext context) {
  20. return Scaffold(
  21. body: Center(
  22. child: Column(
  23. crossAxisAlignment: CrossAxisAlignment.center,
  24. mainAxisAlignment: MainAxisAlignment.spaceEvenly,
  25. children: [
  26. Stack(
  27. alignment: Alignment.center,
  28. children: [
  29. Opacity(
  30. opacity: 0.2,
  31. child: Image.asset('assets/loading_photos_background.png'),
  32. ),
  33. SizedBox(
  34. width: 142,
  35. child: GradientButton(
  36. text: "Unlock",
  37. iconData: Icons.lock_open_outlined,
  38. paddingValue: 6,
  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. }