This commit is contained in:
problematicconsumer
2023-12-01 12:56:24 +03:30
parent 9c165e178b
commit ed614988a2
181 changed files with 3092 additions and 2341 deletions

View File

@@ -0,0 +1,9 @@
import 'package:hiddify/features/settings/data/settings_repository.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'settings_data_providers.g.dart';
@Riverpod(keepAlive: true)
SettingsRepository settingsRepository(SettingsRepositoryRef ref) {
return SettingsRepositoryImpl();
}

View File

@@ -0,0 +1,44 @@
import 'package:flutter/services.dart';
import 'package:fpdart/fpdart.dart';
import 'package:hiddify/core/utils/exception_handler.dart';
import 'package:hiddify/features/settings/model/settings_failure.dart';
import 'package:hiddify/utils/custom_loggers.dart';
abstract interface class SettingsRepository {
TaskEither<SettingsFailure, bool> isIgnoringBatteryOptimizations();
TaskEither<SettingsFailure, bool> requestIgnoreBatteryOptimizations();
}
class SettingsRepositoryImpl
with ExceptionHandler, InfraLogger
implements SettingsRepository {
final _methodChannel = const MethodChannel("app.hiddify.com/platform");
@override
TaskEither<SettingsFailure, bool> isIgnoringBatteryOptimizations() {
return exceptionHandler(
() async {
loggy.debug("checking battery optimization status");
final result = await _methodChannel
.invokeMethod<bool>("is_ignoring_battery_optimizations");
loggy.debug("is ignoring battery optimizations? [$result]");
return right(result!);
},
SettingsUnexpectedFailure.new,
);
}
@override
TaskEither<SettingsFailure, bool> requestIgnoreBatteryOptimizations() {
return exceptionHandler(
() async {
loggy.debug("requesting ignore battery optimization");
final result = await _methodChannel
.invokeMethod<bool>("request_ignore_battery_optimizations");
loggy.debug("ignore battery optimization result: [$result]");
return right(result!);
},
SettingsUnexpectedFailure.new,
);
}
}