diff --git a/ui/flutter/lib/app/modules/setting/controllers/setting_controller.dart b/ui/flutter/lib/app/modules/setting/controllers/setting_controller.dart index f9cedd02..fc724c66 100644 --- a/ui/flutter/lib/app/modules/setting/controllers/setting_controller.dart +++ b/ui/flutter/lib/app/modules/setting/controllers/setting_controller.dart @@ -1,15 +1,19 @@ import 'package:get/get.dart'; +import '../../../../database/database.dart'; import '../../../../util/updater.dart'; class SettingController extends GetxController { final tapStatues = {}.obs; final latestVersion = Rxn(); + final networkAutoControl = false.obs; @override void onInit() { super.onInit(); fetchLatestVersion(); + // Initialize network auto control setting + networkAutoControl.value = Database.instance.getNetworkAutoControl(); } // set all tap status to false @@ -27,4 +31,10 @@ class SettingController extends GetxController { void fetchLatestVersion() async { latestVersion.value = await checkUpdate(); } + + // update network auto control setting + void updateNetworkAutoControl(bool value) { + networkAutoControl.value = value; + Database.instance.saveNetworkAutoControl(value); + } } diff --git a/ui/flutter/lib/app/modules/setting/views/setting_view.dart b/ui/flutter/lib/app/modules/setting/views/setting_view.dart index 684d1112..62d4a436 100644 --- a/ui/flutter/lib/app/modules/setting/views/setting_view.dart +++ b/ui/flutter/lib/app/modules/setting/views/setting_view.dart @@ -550,18 +550,16 @@ class SettingView extends GetView { return null; } - return ListTile( + return Obx(() => ListTile( title: Text('networkAutoControl'.tr), subtitle: Text('networkAutoControlTip'.tr), trailing: Switch( - value: Database.instance.getNetworkAutoControl(), + value: controller.networkAutoControl.value, onChanged: (bool value) { - Database.instance.saveNetworkAutoControl(value); - // Trigger rebuild to update the display value - controller.update(); + controller.updateNetworkAutoControl(value); }, ), - ); + )); } // advanced config proxy items start