update für die Vorlesung
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import {
|
||||
AndroidBridge,
|
||||
App, applyPolyfills,
|
||||
InitPromise, MenuAction,
|
||||
ShareManager,
|
||||
@@ -46,17 +47,17 @@ ShareManager.addShareButton(new MatomoShareButton(new TelegramShareButton('img/t
|
||||
// ShareManager.addShareButton(new CopyShareButton('img/copy.svg'));
|
||||
|
||||
let app = new App();
|
||||
// app.addDeepLink("policy", PrivatePolicySite.name);
|
||||
|
||||
AndroidBridge.addDefinition(() => {
|
||||
window["app"] = app;
|
||||
window["app"]["pause"] = app.pause;
|
||||
window["app"]["resume"] = app.resume;
|
||||
// window["app"]["refreshCurrentSite"] = app.refreshCurrentSite;
|
||||
});
|
||||
|
||||
// bridge für Android
|
||||
// window["ThemeManager"] = ThemeManager;
|
||||
// window["ThemeManager"]["addChangeListener"] = ThemeManager.addChangeListener;
|
||||
// window["app"] = app;
|
||||
// window["app"]["refreshCurrentSite"] = app.refreshCurrentSite;
|
||||
// window["Translator"] = Translator;
|
||||
// window["Translator"]["setLanguage"] = Translator.setLanguage;
|
||||
// window["InitPromise"] = InitPromise;
|
||||
// window["InitPromise"]["addPromise"] = InitPromise.addPromise;
|
||||
|
||||
|
||||
SettingsSite.setTemplate("html/application/setting-template.html");
|
||||
@@ -79,4 +80,6 @@ InitPromise.resolve(app).then(async function(){
|
||||
InstallManager.setCanInstallListener(e => {
|
||||
console.log("can install!", e);
|
||||
});
|
||||
|
||||
window["applyAndroidBridge"] = AndroidBridge.applyDefinitions;
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Helper, InitPromise, MultipleShareButton, Fragment, Translator } from './pwa-lib.js';
|
||||
import { Helper, InitPromise, MultipleShareButton, AndroidBridge, Fragment, Translator } from './pwa-lib.js';
|
||||
|
||||
class DelayPromise extends Promise {
|
||||
static async delay(delay) {
|
||||
@@ -174,6 +174,8 @@ class MatomoShareButton extends MultipleShareButton{
|
||||
}
|
||||
}
|
||||
|
||||
AndroidBridge.addDefinition("MatomoShareButton", MatomoShareButton);
|
||||
|
||||
class RotateHelper {
|
||||
rotate(element, degrees){
|
||||
let rotateText = element.innerText;
|
||||
|
||||
@@ -1,3 +1,65 @@
|
||||
class InitPromise
|
||||
{
|
||||
static addPromise(promise)
|
||||
{
|
||||
if (typeof promise === 'function')
|
||||
{
|
||||
let func = promise;
|
||||
promise = InitPromise.mainPromise.then(function(app){
|
||||
return (func(app));
|
||||
});
|
||||
}
|
||||
InitPromise.promises.push(promise);
|
||||
}
|
||||
|
||||
static resolve(app)
|
||||
{
|
||||
InitPromise.mainResolver(app);
|
||||
return InitPromise.mainPromise.then(function(){
|
||||
return Promise.all(InitPromise.promises);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
InitPromise.promises = [];
|
||||
InitPromise.mainPromise = new Promise(function(resolver){
|
||||
InitPromise.mainResolver = resolver;
|
||||
});
|
||||
|
||||
class AndroidBridge {
|
||||
|
||||
static addDefinition(definition, object) {
|
||||
if (typeof definition !== "function") {
|
||||
if (typeof definition === "string"){
|
||||
let parts = definition.split(".");
|
||||
for (let i = parts.length-1; i >= 1; i--) {
|
||||
let newObject = {};
|
||||
newObject[parts[i]] = object;
|
||||
object = newObject;
|
||||
}
|
||||
definition = parts[0];
|
||||
console.log("parts for", definition, parts, object);
|
||||
}
|
||||
let textDefinition = definition;
|
||||
definition = () => {
|
||||
console.log("defining", textDefinition, object);
|
||||
window[textDefinition] = object;
|
||||
};
|
||||
}
|
||||
AndroidBridge.definitions.push(definition);
|
||||
}
|
||||
|
||||
static applyDefinitions() {
|
||||
for (let i = 0; i < AndroidBridge.definitions.length; i++) {
|
||||
AndroidBridge.definitions[i]();
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
}
|
||||
|
||||
AndroidBridge.definitions = [];
|
||||
AndroidBridge.addDefinition("InitPromise.addPromise", InitPromise.addPromise);
|
||||
|
||||
class MenuAction {
|
||||
constructor(title, callback, showFor, order) {
|
||||
this.title = Helper.nonNull(title, null);
|
||||
@@ -840,6 +902,9 @@ Translator.languageBasePath = "js/lang/";
|
||||
Translator.currentLanguage = null;
|
||||
Translator.translations = {};
|
||||
|
||||
|
||||
AndroidBridge.addDefinition("Translator.setLanguage", Translator.setLanguage);
|
||||
|
||||
class Helper {
|
||||
static init() {
|
||||
Helper.heightMmToPxFactor = null;
|
||||
@@ -1367,11 +1432,21 @@ class ThemeManager {
|
||||
static addChangeListener(listener) {
|
||||
ThemeManager.changeListeners.push(listener);
|
||||
}
|
||||
|
||||
static getCurrentTheme(){
|
||||
return ThemeManager.currentTheme;
|
||||
}
|
||||
}
|
||||
|
||||
ThemeManager.currentTheme = null;
|
||||
ThemeManager.themes = [];
|
||||
ThemeManager.changeListeners = [];
|
||||
|
||||
AndroidBridge.addDefinition("ThemeManager", {
|
||||
"addChangeListener": ThemeManager.addChangeListener,
|
||||
"getCurrentTheme": ThemeManager.getCurrentTheme,
|
||||
});
|
||||
|
||||
class CookieCompliance {
|
||||
|
||||
static async showIfNeeded(cookieContainer) {
|
||||
@@ -3291,33 +3366,6 @@ class GapiHandler {
|
||||
}
|
||||
}
|
||||
|
||||
class InitPromise
|
||||
{
|
||||
static addPromise(promise)
|
||||
{
|
||||
if (typeof promise === 'function')
|
||||
{
|
||||
let func = promise;
|
||||
promise = InitPromise.mainPromise.then(function(app){
|
||||
return (func(app));
|
||||
});
|
||||
}
|
||||
InitPromise.promises.push(promise);
|
||||
}
|
||||
|
||||
static resolve(app)
|
||||
{
|
||||
InitPromise.mainResolver(app);
|
||||
return InitPromise.mainPromise.then(function(){
|
||||
return Promise.all(InitPromise.promises);
|
||||
});
|
||||
}
|
||||
}
|
||||
InitPromise.promises = [];
|
||||
InitPromise.mainPromise = new Promise(function(resolver){
|
||||
InitPromise.mainResolver = resolver;
|
||||
});
|
||||
|
||||
class MyDb {
|
||||
constructor(dbName, version) {
|
||||
let indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
|
||||
@@ -3716,6 +3764,12 @@ ShareButton.TYPE_MOBILE_LEFTOVER = 4;
|
||||
ShareButton.TYPE_MOBILE = ShareButton.TYPE_MOBILE_APPLE+ShareButton.TYPE_MOBILE_LEFTOVER;
|
||||
ShareButton.TYPE_ALL = ShareButton.TYPE_DESKTOP+ShareButton.TYPE_MOBILE;
|
||||
|
||||
AndroidBridge.addDefinition(() => {
|
||||
window["ShareButton"] = ShareButton;
|
||||
window["ShareButton"]["TYPE_ALL"] = ShareButton.TYPE_ALL;
|
||||
|
||||
});
|
||||
|
||||
class CopyShareButton extends ShareButton
|
||||
{
|
||||
constructor(icon, shouldLoadImg) {
|
||||
@@ -3847,6 +3901,8 @@ class ShareManager {
|
||||
|
||||
ShareManager.init();
|
||||
|
||||
AndroidBridge.addDefinition("ShareManager.addShareButton", ShareManager.addShareButton);
|
||||
|
||||
class SmsShareButton extends ShareButton
|
||||
{
|
||||
constructor(icon, shouldLoadImg) {
|
||||
@@ -4379,4 +4435,4 @@ function applyPolyfills() {
|
||||
});
|
||||
}
|
||||
|
||||
export { App, ChainAble, CookieCompliance, ConfirmDialog, Dialog, FlashMessenger, AbstractService, AbstractGapiResponse, Achievement, AchievementList, GameService, GapiPlayer, Leaderboard, Score, GapiHandler, Helper, InitPromise, ActionBarMenu, Menu, MenuAction, OpenSubmenuAction, Submenu, MyDb, Prioritised, ScriptLoader, CopyShareButton, MultipleShareButton, ShareButton, ShareManager, SmsShareButton, TelegramShareButton, WhatsappShareButton, SimpleWS, AbstractSite, Context, Fragment, PauseSite, SiteContainer, SiteManager, SystemSettings, Theme, ThemeManager, DBTranslator, Translator, TranslatorDB, ViewInflater, applyPolyfills };
|
||||
export { AndroidBridge, App, ChainAble, CookieCompliance, ConfirmDialog, Dialog, FlashMessenger, AbstractService, AbstractGapiResponse, Achievement, AchievementList, GameService, GapiPlayer, Leaderboard, Score, GapiHandler, Helper, InitPromise, ActionBarMenu, Menu, MenuAction, OpenSubmenuAction, Submenu, MyDb, Prioritised, ScriptLoader, CopyShareButton, MultipleShareButton, ShareButton, ShareManager, SmsShareButton, TelegramShareButton, WhatsappShareButton, SimpleWS, AbstractSite, Context, Fragment, PauseSite, SiteContainer, SiteManager, SystemSettings, Theme, ThemeManager, DBTranslator, Translator, TranslatorDB, ViewInflater, applyPolyfills };
|
||||
|
||||
Reference in New Issue
Block a user