Refactor
This commit is contained in:
9
lib/features/settings/data/settings_data_providers.dart
Normal file
9
lib/features/settings/data/settings_data_providers.dart
Normal 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();
|
||||
}
|
||||
44
lib/features/settings/data/settings_repository.dart
Normal file
44
lib/features/settings/data/settings_repository.dart
Normal 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,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user