wakelock_util.dart 975 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import "dart:async" show unawaited;
  2. import "package:wakelock_plus/wakelock_plus.dart";
  3. class EnteWakeLock {
  4. bool _wakeLockEnabledHere = false;
  5. void enable() {
  6. WakelockPlus.enabled.then((value) {
  7. if (value == false) {
  8. WakelockPlus.enable();
  9. //wakeLockEnabledHere will not be set to true if wakeLock is already enabled from settings on iOS.
  10. //We shouldn't disable when video is not playing if it was enabled manually by the user from ente settings by user.
  11. _wakeLockEnabledHere = true;
  12. }
  13. });
  14. }
  15. void disable() {
  16. if (_wakeLockEnabledHere) {
  17. WakelockPlus.disable();
  18. }
  19. }
  20. void dispose() {
  21. if (_wakeLockEnabledHere) {
  22. unawaited(
  23. WakelockPlus.enabled.then((isEnabled) {
  24. isEnabled ? WakelockPlus.disable() : null;
  25. }),
  26. );
  27. }
  28. }
  29. static Future<void> toggle({required bool enable}) async {
  30. await WakelockPlus.toggle(enable: enable);
  31. }
  32. }