Quellcode durchsuchen

Move backup settings to separate widget

Vishnu vor 4 Jahren
Ursprung
Commit
154b8dd7a0

+ 0 - 50
lib/ui/settings/account_section_widget.dart

@@ -3,7 +3,6 @@ import 'dart:io';
 import 'package:flutter/material.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/services/billing_service.dart';
-import 'package:photos/ui/backup_folder_selection_widget.dart';
 import 'package:photos/ui/loading_widget.dart';
 import 'package:photos/ui/settings/settings_section_title.dart';
 import 'package:photos/ui/settings/settings_text_item.dart';
@@ -57,55 +56,6 @@ class AccountSectionWidgetState extends State<AccountSectionWidget> {
           Platform.isIOS
               ? Padding(padding: EdgeInsets.all(2))
               : Padding(padding: EdgeInsets.all(4)),
-          GestureDetector(
-            behavior: HitTestBehavior.translucent,
-            onTap: () async {
-              showDialog(
-                context: context,
-                builder: (context) {
-                  return AlertDialog(
-                    content: const BackupFolderSelectionWidget("backup"),
-                    backgroundColor: Color.fromRGBO(8, 18, 18, 1),
-                    insetPadding: const EdgeInsets.all(24),
-                    contentPadding: const EdgeInsets.all(24),
-                  );
-                },
-                barrierColor: Colors.black.withOpacity(0.85),
-              );
-            },
-            child: SettingsTextItem(
-                text: "backed up folders", icon: Icons.navigate_next),
-          ),
-          Platform.isIOS
-              ? Padding(padding: EdgeInsets.all(2))
-              : Padding(padding: EdgeInsets.all(2)),
-          Divider(height: 4),
-          Platform.isIOS
-              ? Padding(padding: EdgeInsets.all(2))
-              : Padding(padding: EdgeInsets.all(4)),
-          Container(
-            height: 36,
-            child: Row(
-              mainAxisAlignment: MainAxisAlignment.spaceBetween,
-              children: [
-                Text("backup over mobile data"),
-                Switch(
-                  value: Configuration.instance.shouldBackupOverMobileData(),
-                  onChanged: (value) async {
-                    Configuration.instance.setBackupOverMobileData(value);
-                    setState(() {});
-                  },
-                ),
-              ],
-            ),
-          ),
-          Platform.isIOS
-              ? Padding(padding: EdgeInsets.all(2))
-              : Padding(padding: EdgeInsets.all(4)),
-          Divider(height: 4),
-          Platform.isIOS
-              ? Padding(padding: EdgeInsets.all(6))
-              : Padding(padding: EdgeInsets.all(8)),
           Row(
             mainAxisAlignment: MainAxisAlignment.spaceBetween,
             children: [

+ 72 - 0
lib/ui/settings/backup_section_widget.dart

@@ -0,0 +1,72 @@
+import 'dart:io';
+
+import 'package:flutter/material.dart';
+import 'package:photos/core/configuration.dart';
+import 'package:photos/ui/backup_folder_selection_widget.dart';
+import 'package:photos/ui/settings/settings_section_title.dart';
+import 'package:photos/ui/settings/settings_text_item.dart';
+
+class BackupSectionWidget extends StatefulWidget {
+  BackupSectionWidget({Key key}) : super(key: key);
+
+  @override
+  BackupSectionWidgetState createState() => BackupSectionWidgetState();
+}
+
+class BackupSectionWidgetState extends State<BackupSectionWidget> {
+  @override
+  Widget build(BuildContext context) {
+    return Container(
+      child: Column(
+        children: [
+          SettingsSectionTitle("backup"),
+          Padding(
+            padding: EdgeInsets.all(4),
+          ),
+          GestureDetector(
+            behavior: HitTestBehavior.translucent,
+            onTap: () async {
+              showDialog(
+                context: context,
+                builder: (context) {
+                  return AlertDialog(
+                    content: const BackupFolderSelectionWidget("backup"),
+                    backgroundColor: Color.fromRGBO(8, 18, 18, 1),
+                    insetPadding: const EdgeInsets.all(24),
+                    contentPadding: const EdgeInsets.all(24),
+                  );
+                },
+                barrierColor: Colors.black.withOpacity(0.85),
+              );
+            },
+            child: SettingsTextItem(
+                text: "backed up folders", icon: Icons.navigate_next),
+          ),
+          Platform.isIOS
+              ? Padding(padding: EdgeInsets.all(2))
+              : Padding(padding: EdgeInsets.all(2)),
+          Divider(height: 4),
+          Platform.isIOS
+              ? Padding(padding: EdgeInsets.all(2))
+              : Padding(padding: EdgeInsets.all(4)),
+          Container(
+            height: 36,
+            child: Row(
+              mainAxisAlignment: MainAxisAlignment.spaceBetween,
+              children: [
+                Text("backup over mobile data"),
+                Switch(
+                  value: Configuration.instance.shouldBackupOverMobileData(),
+                  onChanged: (value) async {
+                    Configuration.instance.setBackupOverMobileData(value);
+                    setState(() {});
+                  },
+                ),
+              ],
+            ),
+          ),
+        ],
+      ),
+    );
+  }
+}

+ 3 - 1
lib/ui/settings_page.dart

@@ -1,9 +1,9 @@
-
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 import 'package:package_info_plus/package_info_plus.dart';
 import 'package:photos/ui/settings/account_section_widget.dart';
+import 'package:photos/ui/settings/backup_section_widget.dart';
 import 'package:photos/ui/settings/debug_section_widget.dart';
 import 'package:photos/ui/settings/info_section_widget.dart';
 import 'package:photos/ui/settings/security_section_widget.dart';
@@ -28,6 +28,8 @@ class SettingsPage extends StatelessWidget {
     final List<Widget> contents = [];
     if (hasLoggedIn) {
       contents.addAll([
+        BackupSectionWidget(),
+        Padding(padding: EdgeInsets.all(12)),
         AccountSectionWidget(),
         Padding(padding: EdgeInsets.all(12)),
       ]);