commit
70a02ba702
|
@ -1,5 +1,5 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<widget android-versionCode="44000" id="com.moodle.moodlemobile" ios-CFBundleVersion="4.4.0.0" version="4.4.0" versionCode="44000" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
<widget android-versionCode="44001" id="com.moodle.moodlemobile" ios-CFBundleVersion="4.4.0.1" version="4.4.0" versionCode="44001" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||||
<name>Moodle</name>
|
<name>Moodle</name>
|
||||||
<description>Moodle official app</description>
|
<description>Moodle official app</description>
|
||||||
<author email="mobile@moodle.com" href="http://moodle.com">Moodle Mobile team</author>
|
<author email="mobile@moodle.com" href="http://moodle.com">Moodle Mobile team</author>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
<preference name="UIWebViewBounce" value="false" />
|
<preference name="UIWebViewBounce" value="false" />
|
||||||
<preference name="DisallowOverscroll" value="true" />
|
<preference name="DisallowOverscroll" value="true" />
|
||||||
<preference name="prerendered-icon" value="true" />
|
<preference name="prerendered-icon" value="true" />
|
||||||
<preference name="AppendUserAgent" value="MoodleMobile 4.4.0 (44000)" />
|
<preference name="AppendUserAgent" value="MoodleMobile 4.4.0 (44001)" />
|
||||||
<preference name="BackupWebStorage" value="none" />
|
<preference name="BackupWebStorage" value="none" />
|
||||||
<preference name="ScrollEnabled" value="false" />
|
<preference name="ScrollEnabled" value="false" />
|
||||||
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
|
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"app_id": "com.moodle.moodlemobile",
|
"app_id": "com.moodle.moodlemobile",
|
||||||
"appname": "Moodle Mobile",
|
"appname": "Moodle Mobile",
|
||||||
"versioncode": 44000,
|
"versioncode": 44001,
|
||||||
"versionname": "4.4.0",
|
"versionname": "4.4.0",
|
||||||
"cache_update_frequency_usually": 420000,
|
"cache_update_frequency_usually": 420000,
|
||||||
"cache_update_frequency_often": 1200000,
|
"cache_update_frequency_often": 1200000,
|
||||||
|
|
|
@ -166,7 +166,7 @@ export class AddonModChatChatPage implements OnInit, OnDestroy, CanLeave {
|
||||||
|
|
||||||
const message = this.messages[index];
|
const message = this.messages[index];
|
||||||
|
|
||||||
if (message.beep && message.beep != String(this.currentUserId)) {
|
if (message.beep && message.beep !== this.currentUserId) {
|
||||||
this.loadMessageBeepWho(message);
|
this.loadMessageBeepWho(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -212,11 +212,11 @@ export class AddonModChatChatPage implements OnInit, OnDestroy, CanLeave {
|
||||||
* @param id User Id before parsing.
|
* @param id User Id before parsing.
|
||||||
* @returns User fullname.
|
* @returns User fullname.
|
||||||
*/
|
*/
|
||||||
protected async getUserFullname(id: string): Promise<string> {
|
protected async getUserFullname(id: string | number): Promise<string> {
|
||||||
const idNumber = parseInt(id, 10);
|
const idNumber = Number(id);
|
||||||
|
|
||||||
if (isNaN(idNumber)) {
|
if (isNaN(idNumber)) {
|
||||||
return id;
|
return String(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
const user = this.users.find((user) => user.id == idNumber);
|
const user = this.users.find((user) => user.id == idNumber);
|
||||||
|
@ -235,10 +235,10 @@ export class AddonModChatChatPage implements OnInit, OnDestroy, CanLeave {
|
||||||
return user.fullname;
|
return user.fullname;
|
||||||
}
|
}
|
||||||
|
|
||||||
return id;
|
return String(id);
|
||||||
} catch {
|
} catch {
|
||||||
// Ignore errors.
|
// Ignore errors.
|
||||||
return id;
|
return String(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ export class AddonModChatSessionMessagesPage implements OnInit {
|
||||||
|
|
||||||
const message = this.messages[index];
|
const message = this.messages[index];
|
||||||
|
|
||||||
if (message.beep && message.beep != String(this.currentUserId)) {
|
if (message.beep && message.beep !== this.currentUserId) {
|
||||||
this.loadMessageBeepWho(message);
|
this.loadMessageBeepWho(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,11 +135,11 @@ export class AddonModChatSessionMessagesPage implements OnInit {
|
||||||
* @param id User Id before parsing.
|
* @param id User Id before parsing.
|
||||||
* @returns User fullname.
|
* @returns User fullname.
|
||||||
*/
|
*/
|
||||||
protected async getUserFullname(id: string): Promise<string> {
|
protected async getUserFullname(id: string | number): Promise<string> {
|
||||||
const idNumber = parseInt(id, 10);
|
const idNumber = Number(id);
|
||||||
|
|
||||||
if (isNaN(idNumber)) {
|
if (isNaN(idNumber)) {
|
||||||
return id;
|
return String(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -148,7 +148,7 @@ export class AddonModChatSessionMessagesPage implements OnInit {
|
||||||
return user.fullname;
|
return user.fullname;
|
||||||
} catch {
|
} catch {
|
||||||
// Error getting profile.
|
// Error getting profile.
|
||||||
return id;
|
return String(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,9 @@ export class AddonModChatHelperProvider {
|
||||||
|
|
||||||
formattedMessage.showDate = this.showDate(message, prevMessage);
|
formattedMessage.showDate = this.showDate(message, prevMessage);
|
||||||
formattedMessage.beep = (message.message.substring(0, 5) == 'beep ' && message.message.substring(5).trim()) || undefined;
|
formattedMessage.beep = (message.message.substring(0, 5) == 'beep ' && message.message.substring(5).trim()) || undefined;
|
||||||
|
if (formattedMessage.beep && !isNaN(Number(formattedMessage.beep))) {
|
||||||
|
formattedMessage.beep = Number(formattedMessage.beep);
|
||||||
|
}
|
||||||
|
|
||||||
formattedMessage.special = !!formattedMessage.beep || (<AddonModChatSessionMessage> message).issystem ||
|
formattedMessage.special = !!formattedMessage.beep || (<AddonModChatSessionMessage> message).issystem ||
|
||||||
(<AddonModChatMessage> message).system;
|
(<AddonModChatMessage> message).system;
|
||||||
|
@ -133,7 +136,7 @@ export const AddonModChatHelper = makeSingleton(AddonModChatHelperProvider);
|
||||||
*/
|
*/
|
||||||
type AddonModChatInfoForView = {
|
type AddonModChatInfoForView = {
|
||||||
showDate?: boolean; // If date should be displayed before the message.
|
showDate?: boolean; // If date should be displayed before the message.
|
||||||
beep?: string; // User id of the beeped user or 'all'.
|
beep?: string | number; // User id of the beeped user or 'all'.
|
||||||
special?: boolean; // True if is an special message (system, beep or command).
|
special?: boolean; // True if is an special message (system, beep or command).
|
||||||
showUserData?: boolean; // If user data should be displayed.
|
showUserData?: boolean; // If user data should be displayed.
|
||||||
showTail?: boolean; // If tail should be displayed (decoration).
|
showTail?: boolean; // If tail should be displayed (decoration).
|
||||||
|
|
|
@ -20,6 +20,8 @@ import { CoreLogger } from '@singletons/logger';
|
||||||
import { AddonQtypeDdMarkerQuestionData } from '../component/ddmarker';
|
import { AddonQtypeDdMarkerQuestionData } from '../component/ddmarker';
|
||||||
import { AddonQtypeDdMarkerGraphicsApi } from './graphics_api';
|
import { AddonQtypeDdMarkerGraphicsApi } from './graphics_api';
|
||||||
import { CoreUtils } from '@services/utils/utils';
|
import { CoreUtils } from '@services/utils/utils';
|
||||||
|
import { CoreDirectivesRegistry } from '@singletons/directives-registry';
|
||||||
|
import { CoreExternalContentDirective } from '@directives/external-content';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to make a question of ddmarker type work.
|
* Class to make a question of ddmarker type work.
|
||||||
|
@ -678,7 +680,7 @@ export class AddonQtypeDdMarkerQuestion {
|
||||||
/**
|
/**
|
||||||
* Wait for the background image to be loaded.
|
* Wait for the background image to be loaded.
|
||||||
*/
|
*/
|
||||||
pollForImageLoad(): void {
|
async pollForImageLoad(): Promise<void> {
|
||||||
if (this.afterImageLoadDone) {
|
if (this.afterImageLoadDone) {
|
||||||
// Already treated.
|
// Already treated.
|
||||||
return;
|
return;
|
||||||
|
@ -689,6 +691,9 @@ export class AddonQtypeDdMarkerQuestion {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Wait for external-content to finish, otherwise the image doesn't have a src and the calculations are wrong.
|
||||||
|
await CoreDirectivesRegistry.waitDirectivesReady(bgImg, undefined, CoreExternalContentDirective);
|
||||||
|
|
||||||
if (!bgImg.src && this.imgSrc) {
|
if (!bgImg.src && this.imgSrc) {
|
||||||
bgImg.src = this.imgSrc;
|
bgImg.src = this.imgSrc;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue