Bugfixes
This commit is contained in:
@@ -457,7 +457,7 @@ class SoundManager {
|
||||
};
|
||||
|
||||
window.addEventListener("visibilitychange", (e) => {
|
||||
console.log("visibility Change event", e);
|
||||
// console.log("visibility Change event", e);
|
||||
this.handleVisibilityChange();
|
||||
});
|
||||
//For safari
|
||||
@@ -582,7 +582,6 @@ class SoundManager {
|
||||
}
|
||||
|
||||
handleVisibilityChange() {
|
||||
console.log("handling visibillity change...");
|
||||
if (document.hidden) {
|
||||
this.stopAll();
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { MenuAction, Helper, Dialog, Translator, Fragment, AbstractSite, InitPromise } from './pwa-lib.js';
|
||||
import { MenuAction, Helper, Dialog, Translator, Fragment, ViewInflater, AbstractSite, InitPromise, ThemeManager as ThemeManager$1 } from './pwa-lib.js';
|
||||
|
||||
class ConditionAction extends MenuAction
|
||||
{
|
||||
@@ -343,6 +343,7 @@ class SettingsManager {
|
||||
|
||||
_loadSettings() {
|
||||
this._settings = localStorage.getItem(this._localStorageKey);
|
||||
console.log("settings", this._settings);
|
||||
if (this._settings === null) {
|
||||
this._settings = {};
|
||||
}
|
||||
@@ -775,6 +776,37 @@ class ListHelper {
|
||||
}
|
||||
}
|
||||
|
||||
class ChooseThemeDialog extends Dialog {
|
||||
|
||||
constructor() {
|
||||
let viewPromise = ViewInflater.inflate("core/html/dialog/chooseTheme.html").then(view => {
|
||||
|
||||
let template = view.querySelector("#choose-theme-template");
|
||||
template.remove();
|
||||
template.id = null;
|
||||
|
||||
let themeTemplateContainer = view.querySelector("#theme-choose-container");
|
||||
|
||||
for (let i = 0; i < ThemeManager.themes.length; i++) {
|
||||
let themeElem = Helper.cloneNode(template);
|
||||
let theme = ThemeManager.themes[i];
|
||||
themeElem.querySelector(".name").appendChild(Translator.makePersistentTranslation(theme._name));
|
||||
themeElem["dataset"]["theme"] = theme._name;
|
||||
|
||||
themeElem.addEventListener("click", () => {
|
||||
this.result = themeElem["dataset"]["theme"];
|
||||
this.close();
|
||||
});
|
||||
themeTemplateContainer.appendChild(themeElem);
|
||||
}
|
||||
|
||||
return view;
|
||||
});
|
||||
|
||||
super(viewPromise, "choose-theme-dialog-title");
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsSite extends AbstractSite {
|
||||
constructor(siteManager) {
|
||||
super(siteManager, SettingsSite.template, "settings");
|
||||
@@ -889,4 +921,39 @@ InitPromise.addPromise(function (app) {
|
||||
}
|
||||
});
|
||||
|
||||
export { ConditionAction, Constants, DataManager, Form, LocalStorageSettingsFragment, SettingsManager, AliasImgSmartColumn, ConstSmartColumn, DataSmartColumn, ImgConstSmartColumn, ImgSmartColumn, ListHelper, SmartColumn, SettingsSite };
|
||||
class GeneralSettingsFragment extends LocalStorageSettingsFragment {
|
||||
|
||||
constructor(site) {
|
||||
super(site, "core/html/fragment/generalSettingsFragment.html");
|
||||
}
|
||||
|
||||
onFirstStart() {
|
||||
this.addThemeListener();
|
||||
return super.onFirstStart();
|
||||
}
|
||||
|
||||
addThemeListener(){
|
||||
let currentThemeName = ThemeManager$1.currentTheme._name;
|
||||
SettingsManager.getInstance().setSetting("theme", currentThemeName);
|
||||
|
||||
let themeNameElem = this.findBy("#theme-name");
|
||||
themeNameElem.removeAllChildren().appendChild(Translator.makePersistentTranslation(currentThemeName));
|
||||
this.findBy("#theme-chooser").addEventListener("click", async () => {
|
||||
let newTheme = await (new ChooseThemeDialog()).show();
|
||||
if (Helper.isNotNull(newTheme)) {
|
||||
SettingsManager.getInstance().setSetting("theme", newTheme);
|
||||
ThemeManager$1.changeCurrentTheme(newTheme);
|
||||
themeNameElem.removeAllChildren().appendChild(Translator.makePersistentTranslation(newTheme));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
GeneralSettingsFragment.addFragment = false;
|
||||
InitPromise.addPromise(function () {
|
||||
if (GeneralSettingsFragment.addFragment) {
|
||||
SettingsSite.addSettingsFragment("general-settings-fragment", GeneralSettingsFragment);
|
||||
}
|
||||
});
|
||||
|
||||
export { ConditionAction, Constants, DataManager, Form, LocalStorageSettingsFragment, SettingsManager, AliasImgSmartColumn, ConstSmartColumn, DataSmartColumn, ImgConstSmartColumn, ImgSmartColumn, ListHelper, SmartColumn, ChooseThemeDialog, GeneralSettingsFragment, SettingsSite };
|
||||
|
||||
@@ -140,8 +140,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this.level.checkHasWon();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
return this.nextLevel();
|
||||
@@ -152,11 +151,11 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this.finish();
|
||||
}
|
||||
|
||||
async nextLevel() {
|
||||
try {
|
||||
this._siteContent.classList.remove('won');
|
||||
this.wonText.style.fontSize = "0";
|
||||
async nextLevel(loadingElement) {
|
||||
loadingElement = Helper.nonNull(loadingElement, Helper.createLoadingSymbol());
|
||||
this._siteContent.replaceWith(loadingElement);
|
||||
|
||||
try {
|
||||
const db = await WordRotatorDb.getInstance();
|
||||
const nextLevelJson = await db.loadNextLevel(LevelSite.RENDERER_TYPES);
|
||||
|
||||
@@ -166,9 +165,17 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
return;
|
||||
}
|
||||
const level = LevelHelper.inflateLevel(nextLevelJson, this.templateContainer);
|
||||
const self = this;
|
||||
|
||||
//Waiting for Level to be done
|
||||
if (this.level && level.id === this.level.id) {
|
||||
console.log("Level is the same as before! reload!");
|
||||
await new Promise((resolve) => setTimeout(resolve, 50));
|
||||
// return;
|
||||
return this.nextLevel(loadingElement);
|
||||
}
|
||||
|
||||
level.getWonPromise().then(() => {
|
||||
self.levelWon(level);
|
||||
this.levelWon(level);
|
||||
});
|
||||
|
||||
level.createSegments();
|
||||
@@ -178,14 +185,14 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
|
||||
let levelSegment = this.findBy("#level");
|
||||
levelSegment.removeAllChildren().appendChild(level.getRootSegment().getElement());
|
||||
|
||||
this._siteContent.classList.remove('won');
|
||||
this.wonText.style.fontSize = "0";
|
||||
loadingElement.replaceWith(this._siteContent);
|
||||
|
||||
let scaleHelper = new ScaleHelper();
|
||||
this.levelScaler = await scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 1, level.words[0].length * 1.5, null, 0);
|
||||
|
||||
//Waiting for Level to be done
|
||||
if (level.id === this.level.id){
|
||||
return new Promise((resolve) => setTimeout(resolve, 50));
|
||||
}
|
||||
|
||||
this.level = level;
|
||||
this.levelCounterAction.innerText = this.levelCounter;
|
||||
this.levelNumberScaler();
|
||||
@@ -201,8 +208,8 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this.level.checkHasWon();
|
||||
|
||||
return this.tutorial();
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
// loadingElement.replaceWith(this._siteContent);
|
||||
console.log("Fehler!");
|
||||
console.error(e);
|
||||
this.startEndSite();
|
||||
@@ -241,6 +248,10 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
const db = await WordRotatorDb.getInstance();
|
||||
const savePromise = db.saveLevelPlayed(level.getId());
|
||||
|
||||
savePromise.then((r) => console.log("levelSaved!", r)).then(() => {
|
||||
return db.loadLevel(level.id);
|
||||
}).then(level => console.log("saved level", level));
|
||||
|
||||
this.levelCounter++;
|
||||
localStorage.setItem("levelCounter", this.levelCounter);
|
||||
|
||||
@@ -290,8 +301,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this.coinAction.redraw();
|
||||
}
|
||||
}, timeout / 2);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
r();
|
||||
}
|
||||
//Always do the next promise for garbage collection
|
||||
@@ -311,8 +321,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
Matomo.push(["trackEvent", "LevelSite", "LevelWon", "Coins", parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"))]);
|
||||
|
||||
await savePromise;
|
||||
}
|
||||
catch (e) {
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
@@ -342,8 +351,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this.level.saveAsCurrentLevel();
|
||||
|
||||
Matomo.push(["trackEvent", "LevelSite", "Help", "Coins", parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"))]);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
FlashMessenger.addMessage("not-enough-coins");
|
||||
Matomo.push(["trackEvent", "LevelSite", "Help", "Not enough Coins", parseInt(Helper.nonNull(localStorage.getItem("coins"), "0"))]);
|
||||
}
|
||||
@@ -399,8 +407,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this._siteContent.classList.remove("tutorial");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this.level.id === LevelSite.TUTORIAL.SECOND_LEVEL) {
|
||||
} else if (this.level.id === LevelSite.TUTORIAL.SECOND_LEVEL) {
|
||||
let currentStep = Helper.nonNull(localStorage.getItem("tutorial-step"), "3");
|
||||
|
||||
switch (currentStep) {
|
||||
@@ -429,8 +436,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
this._siteContent.classList.remove("tutorial");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this.level.id === LevelSite.TUTORIAL.BIG_SEGMENT_LEVEL) {
|
||||
} else if (this.level.id === LevelSite.TUTORIAL.BIG_SEGMENT_LEVEL) {
|
||||
let currentStep = Helper.nonNull(localStorage.getItem("tutorial-step"), "4");
|
||||
|
||||
switch (currentStep) {
|
||||
|
||||
Reference in New Issue
Block a user