mirror of
https://github.com/hiddify/hiddify-app.git
synced 2026-06-03 11:27:32 +00:00
rename settings_repository to battery_optimization_repository
This commit is contained in:
-10
@@ -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();
|
||||
}
|
||||
+19
@@ -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<bool> build() async {
|
||||
return await BatteryOptimizationRepositoryImpl().isIgnoringBatteryOptimizations() ?? false;
|
||||
}
|
||||
|
||||
Future<void> requestToIgnore() async {
|
||||
state = const AsyncLoading();
|
||||
await BatteryOptimizationRepositoryImpl().requestIgnoreBatteryOptimizations();
|
||||
Future.delayed(const Duration(seconds: 1));
|
||||
ref.invalidateSelf();
|
||||
}
|
||||
}
|
||||
@@ -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(),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user