lock_screen.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import 'package:flutter/material.dart';
  2. import 'package:logging/logging.dart';
  3. import 'package:photos/ente_theme_data.dart';
  4. import 'package:photos/ui/app_lock.dart';
  5. import 'package:photos/ui/common/gradientButton.dart';
  6. import 'package:photos/utils/auth_util.dart';
  7. class LockScreen extends StatefulWidget {
  8. LockScreen({Key key}) : super(key: key);
  9. @override
  10. _LockScreenState 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. Image.asset(
  31. MediaQuery.of(context).platformBrightness == Brightness.light
  32. ? 'assets/loading_photos_background.png'
  33. : 'assets/loading_photos_background_dark.png',
  34. ),
  35. SizedBox(
  36. width: 172,
  37. child: GradientButton(
  38. child: Text(
  39. 'Unlock',
  40. style: gradientButtonTextTheme(),
  41. ),
  42. linearGradientColors: const [
  43. Color(0xFF2CD267),
  44. Color(0xFF1DB954),
  45. ],
  46. onTap: () async {
  47. _showLockScreen();
  48. },
  49. ),
  50. ),
  51. ],
  52. ),
  53. ],
  54. ),
  55. ),
  56. );
  57. }
  58. Future<void> _showLockScreen() async {
  59. _logger.info("Showing lockscreen");
  60. try {
  61. final result = await requestAuthentication(
  62. "Please authenticate to view your memories",
  63. );
  64. if (result) {
  65. AppLock.of(context).didUnlock();
  66. }
  67. } catch (e, s) {
  68. _logger.severe(e, s);
  69. }
  70. }
  71. }