forked from mystiq/hydrogen-web
fixup: notif service
This commit is contained in:
parent
d4fc08c06b
commit
f764323c80
1 changed files with 12 additions and 10 deletions
|
@ -26,6 +26,7 @@ import {ConsoleLogger} from "../../logging/ConsoleLogger.js";
|
||||||
import {RootView} from "./ui/RootView.js";
|
import {RootView} from "./ui/RootView.js";
|
||||||
import {Clock} from "./dom/Clock.js";
|
import {Clock} from "./dom/Clock.js";
|
||||||
import {ServiceWorkerHandler} from "./dom/ServiceWorkerHandler.js";
|
import {ServiceWorkerHandler} from "./dom/ServiceWorkerHandler.js";
|
||||||
|
import {NotificationService} from "./dom/NotificationService.js";
|
||||||
import {History} from "./dom/History.js";
|
import {History} from "./dom/History.js";
|
||||||
import {OnlineStatus} from "./dom/OnlineStatus.js";
|
import {OnlineStatus} from "./dom/OnlineStatus.js";
|
||||||
import {Crypto} from "./dom/Crypto.js";
|
import {Crypto} from "./dom/Crypto.js";
|
||||||
|
@ -73,18 +74,18 @@ function relPath(path, basePath) {
|
||||||
return "../".repeat(dirCount) + path;
|
return "../".repeat(dirCount) + path;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadOlmWorker(paths) {
|
async function loadOlmWorker(config) {
|
||||||
const workerPool = new WorkerPool(paths.worker, 4);
|
const workerPool = new WorkerPool(config.worker, 4);
|
||||||
await workerPool.init();
|
await workerPool.init();
|
||||||
const path = relPath(paths.olm.legacyBundle, paths.worker);
|
const path = relPath(config.olm.legacyBundle, config.worker);
|
||||||
await workerPool.sendAll({type: "load_olm", path});
|
await workerPool.sendAll({type: "load_olm", path});
|
||||||
const olmWorker = new OlmWorker(workerPool);
|
const olmWorker = new OlmWorker(workerPool);
|
||||||
return olmWorker;
|
return olmWorker;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Platform {
|
export class Platform {
|
||||||
constructor(container, paths, cryptoExtras = null, options = null) {
|
constructor(container, config, cryptoExtras = null, options = null) {
|
||||||
this._paths = paths;
|
this._config = config;
|
||||||
this._container = container;
|
this._container = container;
|
||||||
this.settingsStorage = new SettingsStorage("hydrogen_setting_v1_");
|
this.settingsStorage = new SettingsStorage("hydrogen_setting_v1_");
|
||||||
this.clock = new Clock();
|
this.clock = new Clock();
|
||||||
|
@ -98,10 +99,11 @@ export class Platform {
|
||||||
this.history = new History();
|
this.history = new History();
|
||||||
this.onlineStatus = new OnlineStatus();
|
this.onlineStatus = new OnlineStatus();
|
||||||
this._serviceWorkerHandler = null;
|
this._serviceWorkerHandler = null;
|
||||||
if (paths.serviceWorker && "serviceWorker" in navigator) {
|
if (config.serviceWorker && "serviceWorker" in navigator) {
|
||||||
this._serviceWorkerHandler = new ServiceWorkerHandler();
|
this._serviceWorkerHandler = new ServiceWorkerHandler();
|
||||||
this._serviceWorkerHandler.registerAndStart(paths.serviceWorker);
|
this._serviceWorkerHandler.registerAndStart(config.serviceWorker);
|
||||||
}
|
}
|
||||||
|
this.notificationService = new NotificationService(this._serviceWorkerHandler, config.push);
|
||||||
this.crypto = new Crypto(cryptoExtras);
|
this.crypto = new Crypto(cryptoExtras);
|
||||||
this.storageFactory = new StorageFactory(this._serviceWorkerHandler);
|
this.storageFactory = new StorageFactory(this._serviceWorkerHandler);
|
||||||
this.sessionInfoStorage = new SessionInfoStorage("hydrogen_sessions_v1");
|
this.sessionInfoStorage = new SessionInfoStorage("hydrogen_sessions_v1");
|
||||||
|
@ -120,12 +122,12 @@ export class Platform {
|
||||||
}
|
}
|
||||||
|
|
||||||
loadOlm() {
|
loadOlm() {
|
||||||
return loadOlm(this._paths.olm);
|
return loadOlm(this._config.olm);
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadOlmWorker() {
|
async loadOlmWorker() {
|
||||||
if (!window.WebAssembly) {
|
if (!window.WebAssembly) {
|
||||||
return await loadOlmWorker(this._paths);
|
return await loadOlmWorker(this._config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,7 +152,7 @@ export class Platform {
|
||||||
if (navigator.msSaveBlob) {
|
if (navigator.msSaveBlob) {
|
||||||
navigator.msSaveBlob(blobHandle.nativeBlob, filename);
|
navigator.msSaveBlob(blobHandle.nativeBlob, filename);
|
||||||
} else {
|
} else {
|
||||||
downloadInIframe(this._container, this._paths.downloadSandbox, blobHandle, filename);
|
downloadInIframe(this._container, this._config.downloadSandbox, blobHandle, filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue