From 4cb5c9b37e028c878a46d3d24d97d97ff1adf9a9 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Wed, 1 Sep 2021 10:30:34 +0200 Subject: [PATCH] MOBILE-3289 h5p: Fix fullscreen for H5P in the app --- config.xml | 1 + package-lock.json | 50 +++++++++---------- package.json | 4 +- src/core/features/h5p/assets/js/h5p.js | 16 +++--- .../features/h5p/assets/readme_moodle.txt | 6 +++ 5 files changed, 44 insertions(+), 33 deletions(-) create mode 100644 src/core/features/h5p/assets/readme_moodle.txt diff --git a/config.xml b/config.xml index be368b0a3..ad367a677 100644 --- a/config.xml +++ b/config.xml @@ -47,6 +47,7 @@ + diff --git a/package-lock.json b/package-lock.json index 3748913af..16767d151 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,6 +45,7 @@ "@ionic/angular": "^5.6.6", "@moodlehq/cordova-plugin-file-transfer": "1.7.1-moodle.2", "@moodlehq/cordova-plugin-inappbrowser": "5.0.0-moodle.2", + "@moodlehq/cordova-plugin-ionic-webview": "5.0.0-moodle.1", "@moodlehq/cordova-plugin-local-notification": "0.9.0-moodle.2", "@moodlehq/cordova-plugin-qrscanner": "3.0.1-moodle.2", "@moodlehq/phonegap-plugin-push": "2.2.3-moodle.1", @@ -72,7 +73,6 @@ "cordova-plugin-geolocation": "^4.1.0", "cordova-plugin-globalization": "^1.11.0", "cordova-plugin-ionic-keyboard": "^2.2.0", - "cordova-plugin-ionic-webview": "^5.0.0", "cordova-plugin-media": "^5.0.3", "cordova-plugin-media-capture": "^3.0.3", "cordova-plugin-network-information": "^2.0.2", @@ -145,7 +145,7 @@ "typescript": "^3.9.9" }, "engines": { - "node": ">=12.x" + "node": ">=14.15.0 <15" }, "optionalDependencies": { "keytar": "^7.2.0" @@ -4970,6 +4970,24 @@ } } }, + "node_modules/@moodlehq/cordova-plugin-ionic-webview": { + "version": "5.0.0-moodle.1", + "resolved": "https://registry.npmjs.org/@moodlehq/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-5.0.0-moodle.1.tgz", + "integrity": "sha512-+6UrPKsEgXl3pcuTyI1hZIUw9y22Li/nvn7nxiphgZdldlhBvkMK/7nn4IAaXYlnrmIOpCkIrU4BbrAjSJGWSQ==", + "engines": { + "cordovaDependencies": { + "2.0.0": { + "cordova-android": ">=6.4.0", + "cordova-ios": ">=4.0.0-dev" + }, + "3.1.0": { + "cordova": ">=7.1.0", + "cordova-android": ">=6.4.0", + "cordova-ios": ">=4.0.0-dev" + } + } + } + }, "node_modules/@moodlehq/cordova-plugin-local-notification": { "version": "0.9.0-moodle.2", "resolved": "https://registry.npmjs.org/@moodlehq/cordova-plugin-local-notification/-/cordova-plugin-local-notification-0.9.0-moodle.2.tgz", @@ -10899,24 +10917,6 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", "integrity": "sha512-yDUG+9ieKVRitq5mGlNxjaZh/MgEhFFIgTIPhqSbUaQ8UuZbawy5mhJAVClqY97q8/rcQtL6dCDa7x2sEtCLcA==" }, - "node_modules/cordova-plugin-ionic-webview": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-5.0.0.tgz", - "integrity": "sha512-Wq0kCanxubK/JroTW4Mp5soayScnRyiY1eCkbwiz1Dyt1xHOiOW/v+1miqtBHtnZhcXw25TulCKAVJzkNBdmyg==", - "engines": { - "cordovaDependencies": { - "2.0.0": { - "cordova-android": ">=6.4.0", - "cordova-ios": ">=4.0.0-dev" - }, - "3.1.0": { - "cordova": ">=7.1.0", - "cordova-android": ">=6.4.0", - "cordova-ios": ">=4.0.0-dev" - } - } - } - }, "node_modules/cordova-plugin-media": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/cordova-plugin-media/-/cordova-plugin-media-5.0.3.tgz", @@ -34720,6 +34720,11 @@ "resolved": "https://registry.npmjs.org/@moodlehq/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-5.0.0-moodle.2.tgz", "integrity": "sha512-0JOLHUFEJC3fv4OQuyr2kwNyrb7oeyjmfFLQ+LcKO41e6UOnNy/du0hU7Yz9Rh8B2zGcebvSwMrN+cRSCqlipQ==" }, + "@moodlehq/cordova-plugin-ionic-webview": { + "version": "5.0.0-moodle.1", + "resolved": "https://registry.npmjs.org/@moodlehq/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-5.0.0-moodle.1.tgz", + "integrity": "sha512-+6UrPKsEgXl3pcuTyI1hZIUw9y22Li/nvn7nxiphgZdldlhBvkMK/7nn4IAaXYlnrmIOpCkIrU4BbrAjSJGWSQ==" + }, "@moodlehq/cordova-plugin-local-notification": { "version": "0.9.0-moodle.2", "resolved": "https://registry.npmjs.org/@moodlehq/cordova-plugin-local-notification/-/cordova-plugin-local-notification-0.9.0-moodle.2.tgz", @@ -39330,11 +39335,6 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", "integrity": "sha512-yDUG+9ieKVRitq5mGlNxjaZh/MgEhFFIgTIPhqSbUaQ8UuZbawy5mhJAVClqY97q8/rcQtL6dCDa7x2sEtCLcA==" }, - "cordova-plugin-ionic-webview": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-5.0.0.tgz", - "integrity": "sha512-Wq0kCanxubK/JroTW4Mp5soayScnRyiY1eCkbwiz1Dyt1xHOiOW/v+1miqtBHtnZhcXw25TulCKAVJzkNBdmyg==" - }, "cordova-plugin-media": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/cordova-plugin-media/-/cordova-plugin-media-5.0.3.tgz", diff --git a/package.json b/package.json index 8331ec89d..410bf7793 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "@ionic/angular": "^5.6.6", "@moodlehq/cordova-plugin-file-transfer": "1.7.1-moodle.2", "@moodlehq/cordova-plugin-inappbrowser": "5.0.0-moodle.2", + "@moodlehq/cordova-plugin-ionic-webview": "5.0.0-moodle.1", "@moodlehq/cordova-plugin-local-notification": "0.9.0-moodle.2", "@moodlehq/cordova-plugin-qrscanner": "3.0.1-moodle.2", "@moodlehq/phonegap-plugin-push": "2.2.3-moodle.1", @@ -100,7 +101,6 @@ "cordova-plugin-geolocation": "^4.1.0", "cordova-plugin-globalization": "^1.11.0", "cordova-plugin-ionic-keyboard": "^2.2.0", - "cordova-plugin-ionic-webview": "^5.0.0", "cordova-plugin-media": "^5.0.3", "cordova-plugin-media-capture": "^3.0.3", "cordova-plugin-network-information": "^2.0.2", @@ -203,7 +203,7 @@ }, "@moodlehq/cordova-plugin-inappbrowser": {}, "cordova-plugin-ionic-keyboard": {}, - "cordova-plugin-ionic-webview": {}, + "@moodlehq/cordova-plugin-ionic-webview": {}, "@moodlehq/cordova-plugin-local-notification": { "ANDROID_SUPPORT_V4_VERSION": "26.+" }, diff --git a/src/core/features/h5p/assets/js/h5p.js b/src/core/features/h5p/assets/js/h5p.js index ee1888a55..424ac842f 100644 --- a/src/core/features/h5p/assets/js/h5p.js +++ b/src/core/features/h5p/assets/js/h5p.js @@ -32,13 +32,17 @@ if (document.documentElement.requestFullScreen) { H5P.fullScreenBrowserPrefix = ''; } else if (document.documentElement.webkitRequestFullScreen) { - H5P.safariBrowser = navigator.userAgent.match(/version\/([.\d]+)/i); - H5P.safariBrowser = (H5P.safariBrowser === null ? 0 : parseInt(H5P.safariBrowser[1])); + // This code has been changed to allow full screen in Moodle app. + H5P.fullScreenBrowserPrefix = 'webkit'; + H5P.safariBrowser = 0; - // Do not allow fullscreen for safari < 7. - if (H5P.safariBrowser === 0 || H5P.safariBrowser > 6) { - H5P.fullScreenBrowserPrefix = 'webkit'; - } + // H5P.safariBrowser = navigator.userAgent.match(/version\/([.\d]+)/i); + // H5P.safariBrowser = (H5P.safariBrowser === null ? 0 : parseInt(H5P.safariBrowser[1])); + + // // Do not allow fullscreen for safari < 7. + // if (H5P.safariBrowser === 0 || H5P.safariBrowser > 6) { + // H5P.fullScreenBrowserPrefix = 'webkit'; + // } } else if (document.documentElement.mozRequestFullScreen) { H5P.fullScreenBrowserPrefix = 'moz'; diff --git a/src/core/features/h5p/assets/readme_moodle.txt b/src/core/features/h5p/assets/readme_moodle.txt new file mode 100644 index 000000000..7a5805bae --- /dev/null +++ b/src/core/features/h5p/assets/readme_moodle.txt @@ -0,0 +1,6 @@ +H5P library +--------------- + +Changes: + +1. The h5p.js file has been modified to make fullscreen work in the Moodle app. In line 34, the code inside the condition document.documentElement.webkitRequestFullScreen has changed, the original code has been commented.