lock_screen.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. Image.asset(
  30. MediaQuery.of(context).platformBrightness == Brightness.light
  31. ? 'assets/loading_photos_background.png'
  32. : 'assets/loading_photos_background_dark.png',
  33. ),
  34. SizedBox(
  35. width: 172,
  36. child: GradientButton(
  37. onTap: () async {
  38. _showLockScreen();
  39. },
  40. text: 'Unlock',
  41. ),
  42. ),
  43. ],
  44. ),
  45. ],
  46. ),
  47. ),
  48. );
  49. }
  50. Future<void> _showLockScreen() async {
  51. _logger.info("Showing lockscreen");
  52. try {
  53. final result = await requestAuthentication(
  54. "Please authenticate to view your memories",
  55. );
  56. if (result) {
  57. AppLock.of(context).didUnlock();
  58. }
  59. } catch (e, s) {
  60. _logger.severe(e, s);
  61. }
  62. }
  63. }