Files
sevenhill f74057ce9b
Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
Rebrand application as Qlyra
2026-08-30 13:16:17 +03:00

42 lines
963 B
Dart

import 'dart:io' show Platform;
import 'package:flutter/services.dart';
import 'logger.dart';
class ScreenWake {
ScreenWake._();
static final ScreenWake instance = ScreenWake._();
static const _channel = MethodChannel('ru.qlyra.app/screen');
final Set<Object> _holders = <Object>{};
bool get _supported {
try {
return Platform.isAndroid || Platform.isIOS;
} catch (_) {
return false;
}
}
Future<void> acquire(Object holder) async {
if (!_supported || !_holders.add(holder)) return;
if (_holders.length == 1) await _apply(true);
}
Future<void> release(Object holder) async {
if (!_supported || !_holders.remove(holder)) return;
if (_holders.isEmpty) await _apply(false);
}
Future<void> _apply(bool enabled) async {
try {
await _channel.invokeMethod<void>('setKeepAwake', {'enabled': enabled});
} catch (e) {
logger.w('ScreenWake._apply: enabled=$enabled $e');
}
}
}