123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- import 'dart:io';
- import 'package:flutter/material.dart';
- import 'package:photos/core/configuration.dart';
- import 'package:photos/theme/ente_theme.dart';
- import 'package:photos/ui/components/captioned_text_widget.dart';
- import 'package:photos/ui/components/divider_widget.dart';
- import 'package:photos/ui/components/icon_button_widget.dart';
- import 'package:photos/ui/components/menu_item_widget/menu_item_widget.dart';
- import 'package:photos/ui/components/menu_section_description_widget.dart';
- import 'package:photos/ui/components/title_bar_title_widget.dart';
- import 'package:photos/ui/components/title_bar_widget.dart';
- import 'package:photos/ui/components/toggle_switch_widget.dart';
- class BackupSettingsScreen extends StatelessWidget {
- const BackupSettingsScreen({super.key});
- @override
- Widget build(BuildContext context) {
- final colorScheme = getEnteColorScheme(context);
- return Scaffold(
- body: CustomScrollView(
- primary: false,
- slivers: <Widget>[
- TitleBarWidget(
- flexibleSpaceTitle: const TitleBarTitleWidget(
- title: "Backup settings",
- ),
- actionIcons: [
- IconButtonWidget(
- icon: Icons.close_outlined,
- iconButtonType: IconButtonType.secondary,
- onTap: () {
- Navigator.pop(context);
- Navigator.pop(context);
- },
- ),
- ],
- ),
- SliverList(
- delegate: SliverChildBuilderDelegate(
- (context, index) {
- return Padding(
- padding: const EdgeInsets.symmetric(horizontal: 16),
- child: Padding(
- padding: const EdgeInsets.symmetric(vertical: 20),
- child: Column(
- mainAxisSize: MainAxisSize.min,
- children: [
- Column(
- children: [
- MenuItemWidget(
- captionedTextWidget: const CaptionedTextWidget(
- title: "Backup over mobile data",
- ),
- menuItemColor: colorScheme.fillFaint,
- trailingWidget: ToggleSwitchWidget(
- value: () => Configuration.instance
- .shouldBackupOverMobileData(),
- onChanged: () async {
- await Configuration.instance
- .setBackupOverMobileData(
- !Configuration.instance
- .shouldBackupOverMobileData(),
- );
- },
- ),
- singleBorderRadius: 8,
- alignCaptionedTextToLeft: true,
- isBottomBorderRadiusRemoved: true,
- isGestureDetectorDisabled: true,
- ),
- DividerWidget(
- dividerType: DividerType.menuNoIcon,
- bgColor: colorScheme.fillFaint,
- ),
- MenuItemWidget(
- captionedTextWidget: const CaptionedTextWidget(
- title: "Backup videos",
- ),
- menuItemColor: colorScheme.fillFaint,
- trailingWidget: ToggleSwitchWidget(
- value: () =>
- Configuration.instance.shouldBackupVideos(),
- onChanged: () => Configuration.instance
- .setShouldBackupVideos(
- !Configuration.instance.shouldBackupVideos(),
- ),
- ),
- singleBorderRadius: 8,
- alignCaptionedTextToLeft: true,
- isTopBorderRadiusRemoved: true,
- isGestureDetectorDisabled: true,
- ),
- ],
- ),
- const SizedBox(height: 24),
- Platform.isIOS
- ? Column(
- children: [
- MenuItemWidget(
- captionedTextWidget:
- const CaptionedTextWidget(
- title: "Disable auto lock",
- ),
- menuItemColor: colorScheme.fillFaint,
- trailingWidget: ToggleSwitchWidget(
- value: () => Configuration.instance
- .shouldKeepDeviceAwake(),
- onChanged: () {
- return Configuration.instance
- .setShouldKeepDeviceAwake(
- !Configuration.instance
- .shouldKeepDeviceAwake(),
- );
- },
- ),
- singleBorderRadius: 8,
- alignCaptionedTextToLeft: true,
- isGestureDetectorDisabled: true,
- ),
- const MenuSectionDescriptionWidget(
- content:
- "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.",
- )
- ],
- )
- : const SizedBox.shrink(),
- ],
- ),
- ),
- );
- },
- childCount: 1,
- ),
- ),
- ],
- ),
- );
- }
- }
|