From bbd2d575fee22d56af764e6b92c4b6134dfbdc19 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Sun, 15 Jun 2025 16:36:54 +0330 Subject: [PATCH] rename settings_repository to battery_optimization_repository --- .../battery_optimization_provider.dart | 10 ----- .../battery_optimization_repository.dart | 0 .../battery_optimizations_notifier.dart | 19 ++++++++++ .../overview/platform_settings_tiles.dart | 38 ------------------- 4 files changed, 19 insertions(+), 48 deletions(-) delete mode 100644 lib/features/settings/data/battery_optimization.dart/battery_optimization_provider.dart rename lib/features/settings/data/{battery_optimization.dart => }/battery_optimization_repository.dart (100%) create mode 100644 lib/features/settings/notifier/battery_optimization/battery_optimizations_notifier.dart delete mode 100644 lib/features/settings/overview/platform_settings_tiles.dart 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(), - ), - ), - ), - ); - } -}