2024-05-11 10:51:20 +00:00
|
|
|
import * as plugins from './plugins.js';
|
|
|
|
import { LosslessServiceWorker } from './serviceworker.classes.serviceworker.js';
|
|
|
|
|
|
|
|
export class NetworkManager {
|
|
|
|
public serviceWorkerRef: LosslessServiceWorker;
|
|
|
|
public webRequest: plugins.webrequest.WebRequest;
|
|
|
|
|
|
|
|
public previousState: string;
|
|
|
|
|
|
|
|
constructor(serviceWorkerRefArg: LosslessServiceWorker) {
|
|
|
|
this.serviceWorkerRef = serviceWorkerRefArg;
|
|
|
|
this.webRequest = new plugins.webrequest.WebRequest();
|
|
|
|
this.getConnection()?.addEventListener('change', () => {
|
|
|
|
this.updateConnectionStatus();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* gets the connection
|
|
|
|
*/
|
|
|
|
public getConnection() {
|
|
|
|
const navigatorLocal: any = self.navigator;
|
|
|
|
return navigatorLocal?.connection;
|
|
|
|
}
|
|
|
|
|
|
|
|
public getEffectiveType() {
|
2024-05-11 10:52:42 +00:00
|
|
|
return this.getConnection()?.effectiveType || '4g';
|
2024-05-11 10:51:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public updateConnectionStatus() {
|
|
|
|
console.log(`Connection type changed from ${this.previousState} to ${this.getEffectiveType()}`);
|
|
|
|
}
|
|
|
|
}
|