mirror of
https://github.com/transatoshi-mw/grin-web-wallet.git
synced 2025-10-07 00:02:47 +00:00
contents of zip
This commit is contained in:
137
scripts/wake_lock.js
Executable file
137
scripts/wake_lock.js
Executable file
@@ -0,0 +1,137 @@
|
||||
// Use strict
|
||||
"use strict";
|
||||
|
||||
|
||||
// Classes
|
||||
|
||||
// Wake lock class
|
||||
class WakeLock {
|
||||
|
||||
// Public
|
||||
|
||||
// Constructor
|
||||
constructor() {
|
||||
|
||||
// Set lock
|
||||
this.lock = WakeLock.NO_LOCK;
|
||||
|
||||
// Set self
|
||||
var self = this;
|
||||
|
||||
// Document visibility change event
|
||||
$(document).on("visibilitychange", function() {
|
||||
|
||||
// Check if wake lock already exists and page is now visible
|
||||
if(self.lock !== WakeLock.NO_LOCK && document["visibilityState"] === Common.VISIBILITY_STATE_VISIBLE) {
|
||||
|
||||
// Request wake lock
|
||||
navigator["wakeLock"].request("screen").then(function(lock) {
|
||||
|
||||
// Set lock
|
||||
self.lock = lock;
|
||||
|
||||
// Catch errors
|
||||
}).catch(function(error) {
|
||||
|
||||
// Clear lock
|
||||
self.lock = WakeLock.NO_LOCK;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Prevent lock
|
||||
preventLock() {
|
||||
|
||||
// Set self
|
||||
var self = this;
|
||||
|
||||
// Return promise
|
||||
return new Promise(function(resolve, reject) {
|
||||
|
||||
// Check if wake is already locked
|
||||
if(self.lock !== WakeLock.NO_LOCK)
|
||||
|
||||
// Resolve
|
||||
resolve();
|
||||
|
||||
// Otherwise check if wake lock is supported
|
||||
else if(typeof navigator === "object" && navigator !== null && "wakeLock" in navigator === true) {
|
||||
|
||||
// Request wake lock
|
||||
navigator["wakeLock"].request("screen").then(function(lock) {
|
||||
|
||||
// Set lock
|
||||
self.lock = lock;
|
||||
|
||||
// Resolve
|
||||
resolve();
|
||||
|
||||
// Catch errors
|
||||
}).catch(function(error) {
|
||||
|
||||
// Reject
|
||||
reject();
|
||||
});
|
||||
}
|
||||
|
||||
// Otherwise
|
||||
else
|
||||
|
||||
// Reject
|
||||
reject();
|
||||
});
|
||||
}
|
||||
|
||||
// Allow lock
|
||||
allowLock() {
|
||||
|
||||
// Set self
|
||||
var self = this;
|
||||
|
||||
// Return promise
|
||||
return new Promise(function(resolve, reject) {
|
||||
|
||||
// Check if wake is already unlocked
|
||||
if(self.lock === WakeLock.NO_LOCK)
|
||||
|
||||
// Resolve
|
||||
resolve();
|
||||
|
||||
// Otherwise
|
||||
else {
|
||||
|
||||
// Request wake unlock
|
||||
self.lock.release().then(function() {
|
||||
|
||||
// Clear lock
|
||||
self.lock = WakeLock.NO_LOCK;
|
||||
|
||||
// Resolve
|
||||
resolve();
|
||||
|
||||
// Catch errors
|
||||
}).catch(function(error) {
|
||||
|
||||
// Reject
|
||||
reject();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Private
|
||||
|
||||
// No lock
|
||||
static get NO_LOCK() {
|
||||
|
||||
// Return no lock
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Main function
|
||||
|
||||
// Set global object's wake lock
|
||||
globalThis["WakeLock"] = WakeLock;
|
Reference in New Issue
Block a user