From 7ef93a2aff1e512f8fbbee15be4bb683d6268ee3 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Thu, 24 Mar 2022 17:40:14 +0100 Subject: [PATCH] fix chat rooms list --- .../group-messages/group-messages.page.ts | 69 ++++++++++--------- src/app/pages/chat/messages/messages.page.ts | 12 ++-- src/app/services/auth.service.ts | 2 + src/app/services/chat/message.service.ts | 1 + src/app/services/chat/room.service.ts | 14 ++-- .../group-messages/group-messages.page.ts | 12 ++-- src/app/shared/chat/messages/messages.page.ts | 12 ++-- 7 files changed, 65 insertions(+), 57 deletions(-) diff --git a/src/app/pages/chat/group-messages/group-messages.page.ts b/src/app/pages/chat/group-messages/group-messages.page.ts index 0fb93ec00..c2dd76e6e 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -254,11 +254,11 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { try { this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } else{ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); } catch (error) {} @@ -266,6 +266,36 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { } + stopRecording() { + this.deleteRecording(); + this.allowTyping = false; + console.log('Stop'); + if (!this.recording) { + return; + } + this.recording = false; + VoiceRecorder.stopRecording().then(async (result: RecordingData) => { + console.log('==================================',result); + + this.recording = false; + if (result.value && result.value.recordDataBase64) { + const recordData = result.value.recordDataBase64; + //console.log(recordData); + const fileName = new Date().getTime() + ".mp3"; + //Save file + await this.storage.set('fileName',fileName) + this.storage.set('recordData',result).then(() => { + console.log('Audio recorded saved', result); + + setTimeout(async () => { + this.loadFiles(); + }, 1000); + }) + } + }) + + } + startRecording() { console.log('Recording'); @@ -277,32 +307,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.calculateDuration(); } - stopRecording() { - this.deleteRecording(); - this.allowTyping = false; - console.log('Stop'); - if (!this.recording) { - return; - } - this.recording = false; - VoiceRecorder.stopRecording().then(async (result: RecordingData) => { - console.log(result); - this.recording = false; - if (result.value && result.value.recordDataBase64) { - const recordData = result.value.recordDataBase64; - //console.log(recordData); - const fileName = new Date().getTime() + ".mp3"; - //Save file - this.storage.set('fileName',fileName); - this.storage.set('recordData',result).then(() => { - console.log('Audio recorded saved'); - }) - } - }) - setTimeout(async () => { - this.loadFiles(); - }, 1000); - } + async deleteRecording(){ this.storage.remove('fileName'); @@ -458,11 +463,11 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.storage.get('recordData').then((recordData) => { console.log(recordData); audioFile = recordData; - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = recordData.value.recordDataBase64; + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = recordData?.value?.recordDataBase64; } else{ - this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; + this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } //Converting base64 to blob diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 110e45d2c..236932ab4 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -208,11 +208,11 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { try { this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } else{ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); } catch (error) {} @@ -397,11 +397,11 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.storage.get('recordData').then((recordData) => { console.log(recordData); audioFile = recordData; - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = recordData.value.recordDataBase64; + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = recordData?.value?.recordDataBase64; } else{ - this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; + this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } //Converting base64 to blob diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index a9c989a6c..779457497 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -169,6 +169,8 @@ export class AuthService { try { let guid: any = await this.AttachmentsService.uploadFile(formData).toPromise() message.file.guid = guid.path + + console.log('========================================',guid) // await this.storage.set(guid.path, message.file.image_url).then(() => { // console.log('add picture to chat IMAGE SAVED') // // message.getFileFromDb() diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index eb57debc5..3c5e5e934 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -245,6 +245,7 @@ export class MessageService { ts: this.attachments[0].ts } + console.log(this.attachments) // save the changes to the storage this.save() } diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index bbed55b36..3d0ebedef 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -371,6 +371,13 @@ export class RoomService { console.log(_id,'==',this.messages[i]?._id, true) this.messages.splice(i, 1) + + //Get previous last message from room + const previousLastMessage = this.messages.slice(-1)[0]; + this.lastMessage = previousLastMessage; + + this.calDateDuration(previousLastMessage._updatedAt) + this.sortRoomList() if (SessionStore.user.RochetChatUser == this.messages[i].u.username) { const allMemberThatIsOffline = this.getAllMemberThatIsOffline() @@ -386,13 +393,6 @@ export class RoomService { await this.messages[i].delateDB() - //Get previous last message from room - const previousLastMessage = this.messages.slice(-1)[0]; - - this.lastMessage = previousLastMessage; - this.calDateDuration(previousLastMessage._updatedAt) - this.sortRoomList() - return true } else { diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index 7687b6519..8c340283a 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -281,11 +281,11 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } else{ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); } catch (error) {} @@ -447,11 +447,11 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.storage.get('recordData').then((recordData) => { console.log(recordData); audioFile = recordData; - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = recordData.value.recordDataBase64; + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = recordData?.value?.recordDataBase64; } else{ - this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; + this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index c7ebdc2db..3e3b4afd3 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -256,11 +256,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData?.value?.recordDataBase64); } else{ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`); } }); } catch (error) {} @@ -382,11 +382,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.storage.get('recordData').then((recordData) => { console.log(recordData); audioFile = recordData; - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = recordData.value.recordDataBase64; + if(recordData?.value?.recordDataBase64.includes('data:audio')){ + this.audioRecorded = recordData?.value?.recordDataBase64; } else{ - this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; + this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData?.value?.recordDataBase64}`; } //Converting base64 to blob