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

View File

@@ -863,8 +863,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;

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;