Storage-Info hinzugefügt
This commit is contained in:
@@ -535,6 +535,44 @@ InitPromise.addPromise(() => {
|
||||
// window["soundManagerInstance"]["resumeAllIfNotMuted"] = window["soundManagerInstance"].resumeAllIfNotMuted;
|
||||
// });
|
||||
|
||||
class StorageManager {
|
||||
static getInstance() {
|
||||
if (Helper.isNull(StorageManager.instance)) {
|
||||
StorageManager.instance = new StorageManager();
|
||||
}
|
||||
return StorageManager.instance;
|
||||
}
|
||||
|
||||
async estimate() {
|
||||
if ('storage' in navigator && 'estimate' in navigator.storage) {
|
||||
// We've got the real thing! Return its response.
|
||||
return navigator.storage.estimate();
|
||||
}
|
||||
|
||||
if ('webkitTemporaryStorage' in navigator &&
|
||||
'queryUsageAndQuota' in navigator.webkitTemporaryStorage) {
|
||||
// Return a promise-based wrapper that will follow the expected interface.
|
||||
return new Promise(function (resolve, reject) {
|
||||
navigator.webkitTemporaryStorage.queryUsageAndQuota(
|
||||
function (usage, quota) {
|
||||
resolve({usage: usage, quota: quota});
|
||||
},
|
||||
reject
|
||||
);
|
||||
});
|
||||
}
|
||||
// If we can't estimate the values, return a Promise that resolves with NaN.
|
||||
return Promise.resolve({usage: NaN, quota: NaN});
|
||||
}
|
||||
|
||||
canEstimateStorage() {
|
||||
return ('storage' in navigator && 'estimate' in navigator.storage || 'webkitTemporaryStorage' in navigator &&
|
||||
'queryUsageAndQuota' in navigator.webkitTemporaryStorage);
|
||||
}
|
||||
}
|
||||
|
||||
StorageManager.instance = null;
|
||||
|
||||
class TabbedFragment extends Fragment {
|
||||
constructor(site) {
|
||||
super(site, 'pwaAssets/html/fragment/tabbedFragment.html');
|
||||
@@ -600,4 +638,4 @@ class TabbedFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
export { DelayPromise, InstallManager, Matomo, MatomoShareButton, RotateHelper, ScaleHelper, AudioChain, SoundManager, TabbedFragment };
|
||||
export { DelayPromise, InstallManager, Matomo, MatomoShareButton, RotateHelper, ScaleHelper, AudioChain, SoundManager, StorageManager, TabbedFragment };
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {LocalStorageSettingsFragment, SettingsManager, SettingsSite} from "../../../../../js/lib/pwa-core";
|
||||
import {Helper, InitPromise, ThemeManager, Translator} from "../../../../../js/lib/pwa-lib";
|
||||
import {WordRotatorDb} from "../WordRotatorDb";
|
||||
import {InstallManager, Matomo, SoundManager} from "../../../../../js/lib/pwa-assets";
|
||||
import {InstallManager, Matomo, SoundManager, StorageManager} from "../../../../../js/lib/pwa-assets";
|
||||
import {CreditsSite} from "../site/CreditsSite";
|
||||
import {PrivacyPolicySite} from "../site/PrivacyPolicySite";
|
||||
import {ChooseThemeDialog} from "../dialog/ChooseThemeDialog";
|
||||
@@ -74,7 +74,7 @@ export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
installButton.classList.add("hidden");
|
||||
InstallManager.prompt().then((e) => {
|
||||
console.log("clicked", e);
|
||||
if (e["outcome"] === "accepted"){
|
||||
if (e["outcome"] === "accepted") {
|
||||
Matomo.trackEvent("installed", "installed")
|
||||
}
|
||||
});
|
||||
@@ -82,6 +82,19 @@ export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
installButton.classList.remove("hidden");
|
||||
});
|
||||
|
||||
let storageManager = StorageManager.getInstance();
|
||||
if (storageManager.canEstimateStorage()) {
|
||||
console.log("can estimate storage!");
|
||||
storageManager.estimate().then(storage => {
|
||||
let storageObject = this.findBy("#storage-info");
|
||||
console.log("estimating storage 2", storageObject);
|
||||
storageObject.appendChild(Translator.makePersistentTranslation("storage-info", [Math.round(storage.usage/(1024*1024)*100)/100, Math.round(storage.quota/(1024*1024)*100)/100, Math.round(storage.usage/storage.quota*10000)/100]));
|
||||
console.log("estimating storage 3", storage);
|
||||
storageObject.classList.remove("hidden");
|
||||
console.log("estimating storage 4", storage);
|
||||
});
|
||||
}
|
||||
|
||||
return super.onFirstStart();
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,9 @@
|
||||
<span class="slider"></span>
|
||||
</span>
|
||||
</label>
|
||||
<div class='row setting-row' >
|
||||
<div class = "column hidden" id='storage-info'></div>
|
||||
</div>
|
||||
|
||||
<!--<iframe-->
|
||||
<!--style="border: 0; height: 200px; width: 600px;"-->
|
||||
|
||||
@@ -31,5 +31,6 @@
|
||||
|
||||
"credits-sister-text":"Ich danke meiner Lieblingsschwester, denn ohne Sie würde diese App nicht so aussehen, wie sie aussieht (wahrscheinlich eher schlechter :p)",
|
||||
"credits-coin-text":"Sound:<br/>Der Münz-Sound ist von der Webseite <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a>. Alle Rechte für diesen Münz-Sound gehören <a target='_blank' rel='noopener' href = '{0}' class = 'link'>{0}</a>.",
|
||||
"credits-music-text":"Musik:<br/>Bright And Beautiful - GEMAfreie Musik von <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a><br/>Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)<br/><a href = '{1}' target='_blank' rel='noopener' class = 'link'>{1}</a><br/>Angepasst (geschnitten) für diese App"
|
||||
"credits-music-text":"Musik:<br/>Bright And Beautiful - GEMAfreie Musik von <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a><br/>Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)<br/><a href = '{1}' target='_blank' rel='noopener' class = 'link'>{1}</a><br/>Angepasst (geschnitten) für diese App",
|
||||
"storage-info":"Ungefähr {0}/{1}MB genutzt ({2}%)"
|
||||
}
|
||||
Reference in New Issue
Block a user