Files
umbrix/lib/features/settings/notifier/platform_settings_notifier.dart
Umbrix Developer 76a374950f feat: mobile-like window size and always-visible stats
- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
2026-01-17 13:09:20 +03:00

46 lines
1.2 KiB
Dart

import 'package:umbrix/features/settings/data/settings_data_providers.dart';
import 'package:umbrix/singbox/service/singbox_service_provider.dart';
import 'package:umbrix/utils/custom_loggers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'platform_settings_notifier.g.dart';
@riverpod
class IgnoreBatteryOptimizations extends _$IgnoreBatteryOptimizations {
@override
Future<bool> build() async {
return ref
.watch(settingsRepositoryProvider)
.isIgnoringBatteryOptimizations()
.getOrElse((l) => false)
.run();
}
Future<void> request() async {
await ref
.read(settingsRepositoryProvider)
.requestIgnoreBatteryOptimizations()
.run();
await Future.delayed(const Duration(seconds: 1));
ref.invalidateSelf();
}
}
@riverpod
class ResetTunnel extends _$ResetTunnel with AppLogger {
@override
Future<void> build() async {}
Future<void> run() async {
state = const AsyncLoading();
state = await AsyncValue.guard(
() => ref.read(singboxServiceProvider).resetTunnel().getOrElse(
(err) {
loggy.warning("error resetting tunnel", err);
throw err;
},
).run(),
);
}
}