routingmode_controller.dart 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import 'package:get/get.dart';
  2. import 'package:nomo/app/data/sp/ix_sp.dart';
  3. enum RoutingMode { smart, global }
  4. class RoutingmodeController extends GetxController {
  5. // 缓存键
  6. static const String _selectedModeKey = 'routing_mode_selected';
  7. // 当前选中的路由模式,默认为Smart
  8. final selectedMode = RoutingMode.smart.obs;
  9. @override
  10. void onInit() {
  11. super.onInit();
  12. _loadSelectedMode();
  13. }
  14. /// 加载保存的模式
  15. void _loadSelectedMode() {
  16. final modeString = IXSP.getString(_selectedModeKey);
  17. if (modeString != null) {
  18. selectedMode.value = modeString == 'global'
  19. ? RoutingMode.global
  20. : RoutingMode.smart;
  21. }
  22. }
  23. /// 保存选中的模式
  24. void _saveSelectedMode() {
  25. final modeString = selectedMode.value == RoutingMode.global
  26. ? 'global'
  27. : 'smart';
  28. IXSP.setString(_selectedModeKey, modeString);
  29. }
  30. /// 选择路由模式
  31. void selectMode(RoutingMode mode) {
  32. selectedMode.value = mode;
  33. _saveSelectedMode();
  34. }
  35. }