backup_settings_screen.dart 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import 'package:flutter/material.dart';
  2. import 'package:photos/theme/ente_theme.dart';
  3. import 'package:photos/ui/components/captioned_text_widget.dart';
  4. import 'package:photos/ui/components/icon_button_widget.dart';
  5. import 'package:photos/ui/components/menu_item_widget.dart';
  6. import 'package:photos/ui/components/menu_section_description_widget.dart';
  7. import 'package:photos/ui/components/title_bar_title_widget.dart';
  8. import 'package:photos/ui/components/title_bar_widget.dart';
  9. import 'package:photos/ui/components/toggle_switch_widget.dart';
  10. class BackupSettingsScreen extends StatelessWidget {
  11. const BackupSettingsScreen({super.key});
  12. @override
  13. Widget build(BuildContext context) {
  14. final colorScheme = getEnteColorScheme(context);
  15. return Scaffold(
  16. body: CustomScrollView(
  17. slivers: <Widget>[
  18. const TitleBarWidget(
  19. flexibleSpaceTitle: TitleBarTitleWidget(
  20. title: "Backup settings",
  21. ),
  22. actionIcons: [
  23. IconButtonWidget(
  24. icon: Icons.close_outlined,
  25. isSecondary: true,
  26. ),
  27. ],
  28. ),
  29. SliverList(
  30. delegate: SliverChildBuilderDelegate(
  31. (context, index) {
  32. return Padding(
  33. padding: const EdgeInsets.symmetric(horizontal: 16),
  34. child: Padding(
  35. padding: const EdgeInsets.symmetric(vertical: 20),
  36. child: Column(
  37. mainAxisSize: MainAxisSize.min,
  38. children: [
  39. Column(
  40. children: [
  41. MenuItemWidget(
  42. captionedTextWidget: const CaptionedTextWidget(
  43. title: "Backup over mobile data",
  44. ),
  45. menuItemColor: colorScheme.fillFaint,
  46. trailingSwitch: ToggleSwitchWidget(
  47. value: true,
  48. onChanged: (value) {},
  49. ),
  50. borderRadius: 8,
  51. alignCaptionedTextToLeft: true,
  52. isBottomBorderRadiusRemoved: true,
  53. isGestureDetectorDisabled: true,
  54. ),
  55. const SizedBox(height: 1),
  56. MenuItemWidget(
  57. captionedTextWidget: const CaptionedTextWidget(
  58. title: "Backup videos",
  59. ),
  60. menuItemColor: colorScheme.fillFaint,
  61. trailingSwitch: ToggleSwitchWidget(
  62. value: true,
  63. onChanged: (value) {},
  64. ),
  65. borderRadius: 8,
  66. alignCaptionedTextToLeft: true,
  67. isTopBorderRadiusRemoved: true,
  68. isGestureDetectorDisabled: true,
  69. ),
  70. ],
  71. ),
  72. const SizedBox(height: 24),
  73. Column(
  74. children: [
  75. MenuItemWidget(
  76. captionedTextWidget: const CaptionedTextWidget(
  77. title: "Disable auto lock",
  78. ),
  79. menuItemColor: colorScheme.fillFaint,
  80. trailingSwitch: ToggleSwitchWidget(
  81. value: false,
  82. onChanged: (value) {},
  83. ),
  84. borderRadius: 8,
  85. alignCaptionedTextToLeft: true,
  86. isGestureDetectorDisabled: true,
  87. ),
  88. const MenuSectionDescriptionWidget(
  89. content:
  90. "Disable the device screen lock when ente is in the foreground and there is a backup in progress. This is normally not needed, but may help big uploads and initial imports of large libraries complete faster.",
  91. )
  92. ],
  93. ),
  94. ],
  95. ),
  96. ),
  97. );
  98. },
  99. childCount: 1,
  100. ),
  101. ),
  102. ],
  103. ),
  104. );
  105. }
  106. }