Settings werden durch den Button wieder verlassen, hilfe-segmente werden richtig dargestellt

This commit is contained in:
silas
2018-10-22 10:41:04 +02:00
parent 98fc403e9e
commit 9dce968eec
8 changed files with 88 additions and 21 deletions

File diff suppressed because one or more lines are too long

View File

@@ -2005,6 +2005,22 @@ class SiteManager {
return this.defaultActions;
}
getCurrentSite(){
if (Helper.isNotNull(this.currentSiteContainerToShow)){
return this.currentSiteContainerToShow.getSite();
}
return null;
}
async findSite(filter){
for (let i = this.siteContainerStack.length-1; i >= 0; i--) {
if (await filter(this.siteContainerStack[i].getSite())){
return this.siteContainerStack[i].getSite();
}
}
return null;
}
async startSite(siteConstructor, paramsPromise) {
if (!(siteConstructor.prototype instanceof AbstractSite)) {
throw {
@@ -2355,6 +2371,14 @@ class App {
}
}
getCurrentSite(){
return this._siteManager.getCurrentSite();
}
async findSite(filter){
return this._siteManager.findSite(filter);
}
static _extractParams(paramString) {
if (Helper.isNull(paramString)) {
return null;
@@ -4165,8 +4189,22 @@ InitPromise.addPromise(function (app) {
app.addDeepLink("settings", SettingsSite);
if (Helper.isNull(SettingsSite.settingsAction)) {
let settingsAction = new MenuAction("settings", function () {
app.startSite(SettingsSite);
let settingsAction = new MenuAction("settings", async () => {
let currentSite = app.getCurrentSite();
if (currentSite instanceof SettingsSite) {
currentSite.finish();
}
else {
let settingsSite = await app.findSite((site) => {
return (site instanceof SettingsSite);
});
if (Helper.isNotNull(settingsSite)) {
settingsSite.toForeground();
}
else {
app.startSite(SettingsSite);
}
}
}, MenuAction.SHOW_FOR_LARGE, 10000);
settingsAction.setIcon("img/settings.png");
SettingsSite.settingsAction = settingsAction;
@@ -6264,7 +6302,6 @@ class LevelSite extends WordRotatorBaseSite {
let currentLevelInfo = localStorage.getItem("currentLevel");
if (currentLevelInfo !== null) {
currentLevelInfo = JSON.parse(currentLevelInfo);
// console.log("LevelID: ", currentLevelInfo["id"]);
const db = WordRotatorDb.getInstance();
const levelJson = await db.loadLevel(currentLevelInfo["id"]);
@@ -6426,7 +6463,6 @@ class LevelSite extends WordRotatorBaseSite {
this.coinPromise = this.coinPromise.then(() => {
return new Promise(r => {
let timeout = 350;
// console.log("coinPromise - won", this.wonParams);
if (!this.wonParams.aborted) {
coinElem.fadeIn(timeout / 1000);
soundManager.play(SoundManager.CHANNELS.SOUND);
@@ -6478,7 +6514,6 @@ class LevelSite extends WordRotatorBaseSite {
rotatables = rotatables.filter((segment) => {
return (!segment.isSolved(false));
});
console.log(rotatables);
let index = Math.floor(Math.random() * rotatables.length);
@@ -6528,8 +6563,6 @@ class LevelSite extends WordRotatorBaseSite {
this._siteContent.classList.remove("step-2");
localStorage.removeItem("tutorial-step");
this.coinPromise = this.coinPromise.then(() => {
console.log("coinPromise - tutorial", this.wonParams);
FlashMessenger.addMessage("extra-coins-after-first-level");
localStorage.setItem("coins", parseInt(Helper.nonNull(localStorage.getItem("coins"), "0")) + 50);
this.coinAction.setTitle(Helper.nonNull(localStorage.getItem("coins"), "0"));