diff --git a/config.xml b/config.xml
index 1392e093e..b2055031e 100644
--- a/config.xml
+++ b/config.xml
@@ -112,33 +112,33 @@
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index dff2e0e2c..a9576807d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -519,14 +519,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -541,20 +539,17 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"core-util-is": {
"version": "1.0.2",
@@ -671,8 +666,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"ini": {
"version": "1.3.5",
@@ -684,7 +678,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -699,7 +692,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -707,14 +699,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -733,7 +723,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -814,8 +803,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"object-assign": {
"version": "4.1.1",
@@ -827,7 +815,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"wrappy": "1"
}
@@ -949,7 +936,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -4829,8 +4815,7 @@
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"aproba": {
"version": "1.2.0",
@@ -4848,13 +4833,11 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
- "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -4867,18 +4850,15 @@
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"concat-map": {
"version": "0.0.1",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"core-util-is": {
"version": "1.0.2",
@@ -4981,8 +4961,7 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"ini": {
"version": "1.3.5",
@@ -4992,7 +4971,6 @@
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
- "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -5005,20 +4983,17 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
- "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
- "optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@@ -5035,7 +5010,6 @@
"mkdirp": {
"version": "0.5.1",
"bundled": true,
- "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -5108,8 +5082,7 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"object-assign": {
"version": "4.1.1",
@@ -5119,7 +5092,6 @@
"once": {
"version": "1.4.0",
"bundled": true,
- "optional": true,
"requires": {
"wrappy": "1"
}
@@ -5195,8 +5167,7 @@
},
"safe-buffer": {
"version": "5.1.1",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -5226,7 +5197,6 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
- "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -5244,7 +5214,6 @@
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
- "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -5283,13 +5252,11 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true,
- "optional": true
+ "bundled": true
},
"yallist": {
"version": "3.0.2",
- "bundled": true,
- "optional": true
+ "bundled": true
}
}
},
@@ -11275,14 +11242,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -11302,8 +11267,7 @@
"concat-map": {
"version": "0.0.1",
"bundled": true,
- "dev": true,
- "optional": true
+ "dev": true
},
"console-control-strings": {
"version": "1.1.0",
@@ -11451,7 +11415,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
- "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
diff --git a/package.json b/package.json
index 9ac42bcc7..91b804947 100644
--- a/package.json
+++ b/package.json
@@ -40,101 +40,101 @@
"windows.store": "electron-windows-store --input-directory .\\desktop\\dist\\win-unpacked --output-directory .\\desktop\\store --flatten true -a .\\resources\\desktop -m .\\desktop\\assets\\windows\\AppXManifest.xml --package-version 0.0.0.0 --package-name MoodleDesktop"
},
"dependencies": {
- "@angular/animations": "^5.2.10",
- "@angular/common": "^5.2.10",
- "@angular/compiler": "^5.2.10",
- "@angular/compiler-cli": "^5.2.10",
- "@angular/core": "^5.2.10",
- "@angular/forms": "^5.2.10",
- "@angular/http": "^5.2.10",
- "@angular/platform-browser": "^5.2.10",
- "@angular/platform-browser-dynamic": "^5.2.10",
- "@ionic-native/badge": "^4.17.0",
- "@ionic-native/camera": "^4.17.0",
- "@ionic-native/clipboard": "^4.17.0",
- "@ionic-native/core": "^4.11.0",
- "@ionic-native/device": "^4.17.0",
- "@ionic-native/file": "^4.17.0",
- "@ionic-native/file-opener": "^4.17.0",
- "@ionic-native/file-transfer": "^4.17.0",
- "@ionic-native/globalization": "^4.17.0",
- "@ionic-native/in-app-browser": "^4.17.0",
- "@ionic-native/keyboard": "^4.17.0",
- "@ionic-native/local-notifications": "^4.17.0",
- "@ionic-native/media-capture": "^4.17.0",
- "@ionic-native/network": "^4.17.0",
- "@ionic-native/push": "^4.17.0",
- "@ionic-native/screen-orientation": "^4.17.0",
- "@ionic-native/splash-screen": "^4.17.0",
- "@ionic-native/sqlite": "^4.17.0",
- "@ionic-native/status-bar": "^4.17.0",
- "@ionic-native/web-intent": "^4.17.0",
- "@ionic-native/zip": "^4.17.0",
- "@ngx-translate/core": "^8.0.0",
- "@ngx-translate/http-loader": "^2.0.1",
- "@types/cordova": "^0.0.34",
- "@types/cordova-plugin-file-transfer": "^0.0.3",
- "@types/cordova-plugin-globalization": "^0.0.3",
- "@types/cordova-plugin-network-information": "^0.0.3",
- "@types/node": "^8.10.19",
- "@types/promise.prototype.finally": "^2.0.2",
- "chart.js": "^2.7.2",
- "com-darryncampbell-cordova-plugin-intent": "^1.1.1",
+ "@angular/animations": "5.2.10",
+ "@angular/common": "5.2.10",
+ "@angular/compiler": "5.2.10",
+ "@angular/compiler-cli": "5.2.10",
+ "@angular/core": "5.2.10",
+ "@angular/forms": "5.2.10",
+ "@angular/http": "5.2.10",
+ "@angular/platform-browser": "5.2.10",
+ "@angular/platform-browser-dynamic": "5.2.10",
+ "@ionic-native/badge": "4.17.0",
+ "@ionic-native/camera": "4.17.0",
+ "@ionic-native/clipboard": "4.17.0",
+ "@ionic-native/core": "4.11.0",
+ "@ionic-native/device": "4.17.0",
+ "@ionic-native/file": "4.17.0",
+ "@ionic-native/file-opener": "4.17.0",
+ "@ionic-native/file-transfer": "4.17.0",
+ "@ionic-native/globalization": "4.17.0",
+ "@ionic-native/in-app-browser": "4.17.0",
+ "@ionic-native/keyboard": "4.17.0",
+ "@ionic-native/local-notifications": "4.17.0",
+ "@ionic-native/media-capture": "4.17.0",
+ "@ionic-native/network": "4.17.0",
+ "@ionic-native/push": "4.17.0",
+ "@ionic-native/screen-orientation": "4.17.0",
+ "@ionic-native/splash-screen": "4.17.0",
+ "@ionic-native/sqlite": "4.17.0",
+ "@ionic-native/status-bar": "4.17.0",
+ "@ionic-native/web-intent": "4.17.0",
+ "@ionic-native/zip": "4.17.0",
+ "@ngx-translate/core": "8.0.0",
+ "@ngx-translate/http-loader": "2.0.1",
+ "@types/cordova": "0.0.34",
+ "@types/cordova-plugin-file-transfer": "0.0.3",
+ "@types/cordova-plugin-globalization": "0.0.3",
+ "@types/cordova-plugin-network-information": "0.0.3",
+ "@types/node": "8.10.19",
+ "@types/promise.prototype.finally": "2.0.2",
+ "chart.js": "2.7.2",
+ "com-darryncampbell-cordova-plugin-intent": "1.1.7",
"cordova-android": "7.1.2",
- "cordova-android-support-gradle-release": "^2.0.1",
- "cordova-clipboard": "^1.2.1",
+ "cordova-android-support-gradle-release": "3.0.0",
+ "cordova-clipboard": "1.2.1",
"cordova-ios": "4.5.5",
- "cordova-plugin-badge": "^0.8.8",
- "cordova-plugin-camera": "^4.0.3",
- "cordova-plugin-customurlscheme": "^4.3.0",
- "cordova-plugin-device": "^2.0.2",
- "cordova-plugin-file": "^6.0.1",
+ "cordova-plugin-badge": "0.8.8",
+ "cordova-plugin-camera": "4.0.3",
+ "cordova-plugin-customurlscheme": "4.3.0",
+ "cordova-plugin-device": "2.0.2",
+ "cordova-plugin-file": "6.0.1",
"cordova-plugin-file-opener2": "2.0.19",
- "cordova-plugin-file-transfer": "^1.7.1",
- "cordova-plugin-globalization": "^1.11.0",
- "cordova-plugin-inappbrowser": "^3.0.0",
- "cordova-plugin-ionic-keyboard": "^2.1.3",
+ "cordova-plugin-file-transfer": "1.7.1",
+ "cordova-plugin-globalization": "1.11.0",
+ "cordova-plugin-inappbrowser": "3.0.0",
+ "cordova-plugin-ionic-keyboard": "2.1.3",
"cordova-plugin-local-notification": "git+https://github.com/moodlemobile/cordova-plugin-local-notification.git#moodle",
- "cordova-plugin-media-capture": "^3.0.2",
- "cordova-plugin-network-information": "^2.0.1",
- "cordova-plugin-screen-orientation": "^3.0.1",
- "cordova-plugin-splashscreen": "^5.0.2",
- "cordova-plugin-statusbar": "^2.4.2",
- "cordova-plugin-whitelist": "^1.3.3",
- "cordova-plugin-zip": "^3.1.0",
- "cordova-sqlite-storage": "^2.6.0",
- "cordova-support-google-services": "^1.2.1",
- "es6-promise-plugin": "^4.2.2",
- "font-awesome": "^4.7.0",
+ "cordova-plugin-media-capture": "3.0.2",
+ "cordova-plugin-network-information": "2.0.1",
+ "cordova-plugin-screen-orientation": "3.0.1",
+ "cordova-plugin-splashscreen": "5.0.2",
+ "cordova-plugin-statusbar": "2.4.2",
+ "cordova-plugin-whitelist": "1.3.3",
+ "cordova-plugin-zip": "3.1.0",
+ "cordova-sqlite-storage": "2.6.0",
+ "cordova-support-google-services": "1.2.1",
+ "es6-promise-plugin": "4.2.2",
+ "font-awesome": "4.7.0",
"ionic-angular": "3.9.3",
- "ionicons": "^3.0.0",
- "jszip": "^3.1.5",
- "moment": "^2.22.2",
- "nl.kingsquare.cordova.background-audio": "^1.0.1",
- "phonegap-plugin-multidex": "^1.0.0",
+ "ionicons": "3.0.0",
+ "jszip": "3.1.5",
+ "moment": "2.22.2",
+ "nl.kingsquare.cordova.background-audio": "1.0.1",
+ "phonegap-plugin-multidex": "1.0.0",
"phonegap-plugin-push": "git+https://github.com/moodlemobile/phonegap-plugin-push.git#moodle-v3",
- "promise.prototype.finally": "^3.1.0",
- "rxjs": "^5.5.11",
- "sw-toolbox": "^3.6.0",
- "ts-md5": "^1.2.4",
- "web-animations-js": "^2.3.1",
- "zone.js": "^0.8.26"
+ "promise.prototype.finally": "3.1.0",
+ "rxjs": "5.5.11",
+ "sw-toolbox": "3.6.0",
+ "ts-md5": "1.2.4",
+ "web-animations-js": "2.3.1",
+ "zone.js": "0.8.26"
},
"devDependencies": {
- "@ionic/app-scripts": "^3.2.2",
- "electron-builder-lib": "^20.23.1",
- "electron-rebuild": "^1.8.1",
- "gulp": "^4.0.0",
- "gulp-clip-empty-files": "^0.1.2",
- "gulp-concat": "^2.6.1",
- "gulp-flatten": "^0.4.0",
- "gulp-rename": "^1.3.0",
- "gulp-slash": "^1.1.3",
- "gulp-util": "^3.0.8",
- "node-loader": "^0.6.0",
- "through": "^2.3.8",
- "typescript": "^2.6.2",
- "webpack-merge": "^4.1.2"
+ "@ionic/app-scripts": "3.2.2",
+ "electron-builder-lib": "20.23.1",
+ "electron-rebuild": "1.8.1",
+ "gulp": "4.0.0",
+ "gulp-clip-empty-files": "0.1.2",
+ "gulp-concat": "2.6.1",
+ "gulp-flatten": "0.4.0",
+ "gulp-rename": "1.3.0",
+ "gulp-slash": "1.1.3",
+ "gulp-util": "3.0.8",
+ "node-loader": "0.6.0",
+ "through": "2.3.8",
+ "typescript": "2.6.2",
+ "webpack-merge": "4.1.2"
},
"browser": {
"electron": false
diff --git a/src/addon/mod/scorm/providers/prefetch-handler.ts b/src/addon/mod/scorm/providers/prefetch-handler.ts
index ceb157f56..4b4dd8038 100644
--- a/src/addon/mod/scorm/providers/prefetch-handler.ts
+++ b/src/addon/mod/scorm/providers/prefetch-handler.ts
@@ -443,6 +443,8 @@ export class AddonModScormPrefetchHandler extends CoreCourseActivityPrefetchHand
this.syncProvider = this.injector.get(AddonModScormSyncProvider);
}
- return this.syncProvider.syncScorm(module.instance, siteId);
+ return this.scormProvider.getScorm(courseId, module.id, module.url, false, siteId).then((scorm) => {
+ return this.syncProvider.syncScorm(scorm, siteId);
+ });
}
}
diff --git a/src/classes/site.ts b/src/classes/site.ts
index 6db77a1f8..afafeada4 100644
--- a/src/classes/site.ts
+++ b/src/classes/site.ts
@@ -191,8 +191,7 @@ interface RequestQueueItem {
export class CoreSite {
static REQUEST_QUEUE_DELAY = 50; // Maximum number of miliseconds to wait before processing the queue.
static REQUEST_QUEUE_LIMIT = 10; // Maximum number of requests allowed in the queue.
- // @todo Set REQUEST_QUEUE_FORCE_WS to false before the release.
- static REQUEST_QUEUE_FORCE_WS = true; // Use "tool_mobile_call_external_functions" even for calling a single function.
+ static REQUEST_QUEUE_FORCE_WS = false; // Use "tool_mobile_call_external_functions" even for calling a single function.
// Constants for cache update frequency.
static FREQUENCY_USUALLY = 0;
diff --git a/src/core/course/providers/module-prefetch-delegate.ts b/src/core/course/providers/module-prefetch-delegate.ts
index 7bad6fa23..efb256400 100644
--- a/src/core/course/providers/module-prefetch-delegate.ts
+++ b/src/core/course/providers/module-prefetch-delegate.ts
@@ -1168,7 +1168,12 @@ export class CoreCourseModulePrefetchDelegate extends CoreDelegate {
*/
syncModules(modules: any[], courseId: number): Promise {
return Promise.all(modules.map((module) => {
- return this.syncModule(module, courseId);
+ return this.syncModule(module, courseId).then(() => {
+ // Invalidate course updates.
+ return this.invalidateCourseUpdates(courseId).catch(() => {
+ // Ignore errors.
+ });
+ });
}));
}
@@ -1182,11 +1187,18 @@ export class CoreCourseModulePrefetchDelegate extends CoreDelegate {
syncModule(module: any, courseId: number): Promise {
const handler = this.getPrefetchHandlerFor(module);
- const promise = handler && handler.sync ? handler.sync(module, courseId) : Promise.resolve();
+ if (handler && handler.sync) {
+ return handler.sync(module, courseId).then((result) => {
+ // Always invalidate status cache for this module. We cannot know if data was sent to server or not.
+ this.invalidateModuleStatusCache(module);
- return promise.catch(() => {
- // Ignore errors.
- });
+ return result;
+ }).catch(() => {
+ // Ignore errors.
+ });
+ }
+
+ return Promise.resolve();
}
/**