Refactor
This commit is contained in:
@@ -2,11 +2,11 @@ import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hiddify/core/core_providers.dart';
|
||||
import 'package:hiddify/core/prefs/prefs.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/core/preferences/general_preferences.dart';
|
||||
import 'package:hiddify/core/router/router.dart';
|
||||
import 'package:hiddify/domain/singbox/singbox.dart';
|
||||
import 'package:hiddify/features/common/general_pref_tiles.dart';
|
||||
import 'package:hiddify/features/per_app_proxy/model/per_app_proxy_mode.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
class AdvancedSettingTiles extends HookConsumerWidget {
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hiddify/core/core_providers.dart';
|
||||
import 'package:hiddify/core/prefs/prefs.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/core/preferences/general_preferences.dart';
|
||||
import 'package:hiddify/core/theme/app_theme_mode.dart';
|
||||
import 'package:hiddify/core/theme/theme_preferences.dart';
|
||||
import 'package:hiddify/features/common/general_pref_tiles.dart';
|
||||
import 'package:hiddify/services/auto_start_service.dart';
|
||||
import 'package:hiddify/utils/utils.dart';
|
||||
@@ -14,7 +16,7 @@ class GeneralSettingTiles extends HookConsumerWidget {
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final t = ref.watch(translationsProvider);
|
||||
|
||||
final theme = ref.watch(themeProvider);
|
||||
final themeMode = ref.watch(themePreferencesProvider);
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
@@ -43,7 +45,7 @@ class GeneralSettingTiles extends HookConsumerWidget {
|
||||
),
|
||||
ListTile(
|
||||
title: Text(t.settings.general.themeMode),
|
||||
subtitle: Text(theme.mode.present(t)),
|
||||
subtitle: Text(themeMode.present(t)),
|
||||
leading: const Icon(Icons.light_mode),
|
||||
onTap: () async {
|
||||
final selectedThemeMode = await showDialog<AppThemeMode>(
|
||||
@@ -56,7 +58,7 @@ class GeneralSettingTiles extends HookConsumerWidget {
|
||||
(e) => RadioListTile(
|
||||
title: Text(e.present(t)),
|
||||
value: e,
|
||||
groupValue: theme.mode,
|
||||
groupValue: themeMode,
|
||||
onChanged: (e) => context.pop(e),
|
||||
),
|
||||
)
|
||||
@@ -66,8 +68,8 @@ class GeneralSettingTiles extends HookConsumerWidget {
|
||||
);
|
||||
if (selectedThemeMode != null) {
|
||||
await ref
|
||||
.read(themeModeNotifierProvider.notifier)
|
||||
.update(selectedThemeMode);
|
||||
.read(themePreferencesProvider.notifier)
|
||||
.changeThemeMode(selectedThemeMode);
|
||||
}
|
||||
},
|
||||
),
|
||||
|
||||
@@ -1,22 +1,9 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hiddify/core/core_providers.dart';
|
||||
import 'package:hiddify/services/service_providers.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/features/settings/notifier/platform_settings_notifier.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'platform_settings_tiles.g.dart';
|
||||
|
||||
@riverpod
|
||||
Future<bool> isIgnoringBatteryOptimizations(
|
||||
IsIgnoringBatteryOptimizationsRef ref,
|
||||
) async =>
|
||||
ref
|
||||
.watch(platformServicesProvider)
|
||||
.isIgnoringBatteryOptimizations()
|
||||
.getOrElse((l) => false)
|
||||
.run();
|
||||
|
||||
class PlatformSettingsTiles extends HookConsumerWidget {
|
||||
const PlatformSettingsTiles({super.key});
|
||||
@@ -26,7 +13,7 @@ class PlatformSettingsTiles extends HookConsumerWidget {
|
||||
final t = ref.watch(translationsProvider);
|
||||
|
||||
final isIgnoringBatteryOptimizations =
|
||||
ref.watch(isIgnoringBatteryOptimizationsProvider);
|
||||
ref.watch(ignoreBatteryOptimizationsProvider);
|
||||
|
||||
ListTile buildIgnoreTile(bool enabled) => ListTile(
|
||||
title: Text(t.settings.general.ignoreBatteryOptimizations),
|
||||
@@ -35,11 +22,8 @@ class PlatformSettingsTiles extends HookConsumerWidget {
|
||||
enabled: enabled,
|
||||
onTap: () async {
|
||||
await ref
|
||||
.read(platformServicesProvider)
|
||||
.requestIgnoreBatteryOptimizations()
|
||||
.run();
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
ref.invalidate(isIgnoringBatteryOptimizationsProvider);
|
||||
.read(ignoreBatteryOptimizationsProvider.notifier)
|
||||
.request();
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hiddify/core/core_providers.dart';
|
||||
import 'package:hiddify/core/localization/translations.dart';
|
||||
import 'package:hiddify/utils/utils.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user