recovery_key_page.dart 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import 'package:flutter/foundation.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter/widgets.dart';
  4. import 'package:photos/core/configuration.dart';
  5. import 'package:photos/ui/settings/account_section_widget.dart';
  6. import 'package:photos/ui/settings/app_version_widget.dart';
  7. import 'package:photos/ui/settings/backup_section_widget.dart';
  8. import 'package:photos/ui/settings/danger_section_widget.dart';
  9. import 'package:photos/ui/settings/debug_section_widget.dart';
  10. import 'package:photos/ui/settings/details_section_widget.dart';
  11. import 'package:photos/ui/settings/info_section_widget.dart';
  12. import 'package:photos/ui/settings/security_section_widget.dart';
  13. import 'package:photos/ui/settings/social_section_widget.dart';
  14. import 'package:photos/ui/settings/support_section_widget.dart';
  15. import 'package:photos/ui/settings/theme_switch_widget.dart';
  16. import 'package:photos/utils/dialog_util.dart';
  17. class RecoveryKeyPage extends StatelessWidget {
  18. const RecoveryKeyPage({Key key}) : super(key: key);
  19. @override
  20. Widget build(BuildContext context) {
  21. return Scaffold(
  22. body: _getBody(context),
  23. );
  24. }
  25. Widget _getBody(BuildContext context) {
  26. final hasLoggedIn = Configuration.instance.getToken() != null;
  27. final List<Widget> contents = [];
  28. contents.add(Row(
  29. mainAxisAlignment: MainAxisAlignment.spaceAround,
  30. crossAxisAlignment: CrossAxisAlignment.center,
  31. children: const [ThemeSwitchWidget()]));
  32. final sectionDivider = Divider(
  33. height: 10,
  34. color: Theme.of(context).colorScheme.onSurface.withOpacity(0.4),
  35. );
  36. if (hasLoggedIn) {
  37. contents.addAll([
  38. DetailsSectionWidget(),
  39. sectionDivider,
  40. BackupSectionWidget(),
  41. sectionDivider,
  42. AccountSectionWidget(),
  43. sectionDivider,
  44. ]);
  45. }
  46. contents.addAll([
  47. SecuritySectionWidget(),
  48. sectionDivider,
  49. test(),
  50. sectionDivider,
  51. SupportSectionWidget(),
  52. sectionDivider,
  53. SocialSectionWidget(),
  54. sectionDivider,
  55. InfoSectionWidget(),
  56. ]);
  57. if (hasLoggedIn) {
  58. contents.addAll([
  59. sectionDivider,
  60. DangerSectionWidget(),
  61. ]);
  62. }
  63. contents.add(AppVersionWidget());
  64. if (kDebugMode && hasLoggedIn) {
  65. contents.add(DebugSectionWidget());
  66. }
  67. return SingleChildScrollView(
  68. child: Padding(
  69. padding: const EdgeInsets.all(12.0),
  70. child: Column(
  71. children: contents,
  72. ),
  73. ),
  74. );
  75. }
  76. }