diff --git a/lib/features/settings/data/battery_optimization.dart/battery_optimization_provider.dart b/lib/features/settings/data/battery_optimization.dart/battery_optimization_provider.dart deleted file mode 100644 index a20b562d..00000000 --- a/lib/features/settings/data/battery_optimization.dart/battery_optimization_provider.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:hiddify/features/settings/data/battery_optimization.dart/battery_optimization_repository.dart'; -import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:riverpod_annotation/riverpod_annotation.dart'; - -part 'battery_optimization_provider.g.dart'; - -@riverpod -BatteryOptimizationRepositoryImpl batteryOptimizationRepository(Ref ref) { - return BatteryOptimizationRepositoryImpl(); -} diff --git a/lib/features/settings/data/battery_optimization.dart/battery_optimization_repository.dart b/lib/features/settings/data/battery_optimization_repository.dart similarity index 100% rename from lib/features/settings/data/battery_optimization.dart/battery_optimization_repository.dart rename to lib/features/settings/data/battery_optimization_repository.dart diff --git a/lib/features/settings/notifier/battery_optimization/battery_optimizations_notifier.dart b/lib/features/settings/notifier/battery_optimization/battery_optimizations_notifier.dart new file mode 100644 index 00000000..6d9374bf --- /dev/null +++ b/lib/features/settings/notifier/battery_optimization/battery_optimizations_notifier.dart @@ -0,0 +1,19 @@ +import 'package:hiddify/features/settings/data/battery_optimization_repository.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; + +part 'battery_optimizations_notifier.g.dart'; + +@riverpod +class BatteryOptimizationNotifier extends _$BatteryOptimizationNotifier { + @override + Future build() async { + return await BatteryOptimizationRepositoryImpl().isIgnoringBatteryOptimizations() ?? false; + } + + Future requestToIgnore() async { + state = const AsyncLoading(); + await BatteryOptimizationRepositoryImpl().requestIgnoreBatteryOptimizations(); + Future.delayed(const Duration(seconds: 1)); + ref.invalidateSelf(); + } +} diff --git a/lib/features/settings/overview/platform_settings_tiles.dart b/lib/features/settings/overview/platform_settings_tiles.dart deleted file mode 100644 index 123b6317..00000000 --- a/lib/features/settings/overview/platform_settings_tiles.dart +++ /dev/null @@ -1,38 +0,0 @@ -import 'package:flutter/material.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'; - -class PlatformSettingsTiles extends HookConsumerWidget { - const PlatformSettingsTiles({super.key}); - - @override - Widget build(BuildContext context, WidgetRef ref) { - final t = ref.watch(translationsProvider).requireValue; - - final isIgnoringBatteryOptimizations = ref.watch(ignoreBatteryOptimizationsProvider); - - return isIgnoringBatteryOptimizations.when( - data: (isIgnored) => isIgnored - ? const SizedBox() - : ListTile( - title: Text(t.settings.general.ignoreBatteryOptimizations), - subtitle: Text(t.settings.general.ignoreBatteryOptimizationsMsg), - leading: const Icon(Icons.battery_saver_rounded), - onTap: () async { - await ref.read(ignoreBatteryOptimizationsProvider.notifier).request(); - }, - ), - error: (_, __) => const SizedBox(), - loading: () => const SizedBox( - height: 48, - child: Center( - child: Padding( - padding: EdgeInsets.symmetric(horizontal: 12), - child: LinearProgressIndicator(), - ), - ), - ), - ); - } -}