diff --git a/package-lock.json b/package-lock.json
index f9eacf4e2..6584646ed 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2202,21 +2202,6 @@
"integrity": "sha512-HCFwOxmK7igEgNm20y+zYi+XQ0OlZYnE4oCaI82TGmA7sehlDpBBKbjmI2Bd8aM09+BXFbAAtq7JCxkEfY8nIg=="
},
"@capacitor/filesystem": {
-<<<<<<< HEAD
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.0.6.tgz",
- "integrity": "sha512-8xqUbDZFGBMhgqoBSn9wEd9OBPdHIRegQ9zCCZcpHNf3FFAIby1ck+aDFnoq+Da49xhD6ks1SKCBSxz/26qWTw=="
- },
- "@capacitor/haptics": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@capacitor/haptics/-/haptics-1.1.3.tgz",
- "integrity": "sha512-ui2mY/riK1Y4bxnJKJfclWO61obZ0RHmtErPhpmt4wIEVjG1segYdFop45R2PxyEwoUJgzEsAxnviM/T6k8seQ=="
- },
- "@capacitor/ios": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.3.0.tgz",
- "integrity": "sha512-KImT4hVoQJuAfe01wUYiMLnutMu7PxVCv4c8HVWiW+OuyyOua3lC8wQ5gAauGDugAo6mdM7fVva5a0Vtyhnbdg=="
-=======
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.1.0.tgz",
"integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg=="
@@ -2230,7 +2215,6 @@
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.4.1.tgz",
"integrity": "sha512-ycFCyKI8DsgedVg7PW5MpCVgqFuD0PMHQGVfC5ichXc2C/jAATX32EVdEMCB0N3guKoH2k6T3Efwg59+Fcdx2w=="
->>>>>>> 0b14c4c0c63a6d55c9945163d7afb971a7375994
},
"@capacitor/keyboard": {
"version": "1.1.3",
@@ -3013,16 +2997,6 @@
"integrity": "sha512-68hdPn0hA7yn4YNTgmLF32x/l7arFulboGhNiyFQ35/QxqrOmppf77p4xaPOyJtNyICKHLaiStC6w1eEAtl9MA==",
"requires": {
"@types/cordova": "^0.0.34"
-<<<<<<< HEAD
- },
- "dependencies": {
- "@types/cordova": {
- "version": "0.0.34",
- "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz",
- "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ="
- }
-=======
->>>>>>> 0b14c4c0c63a6d55c9945163d7afb971a7375994
}
},
"@ionic-native/core": {
@@ -4943,6 +4917,11 @@
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
"dev": true
},
+ "@types/cordova": {
+ "version": "0.0.34",
+ "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz",
+ "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ="
+ },
"@types/cors": {
"version": "2.8.12",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
@@ -16568,29 +16547,6 @@
"tslib": "^2.3.0"
}
},
-<<<<<<< HEAD
- "ng2-pdf-viewer": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-3.0.8.tgz",
- "integrity": "sha512-p2qndFu1wQW4y+xXXw7yk1BhpRo5PGHKWD3PTc7pUULujx9d2vT26lhXR3p9WHitySadGqdCQpkA7W3v1dBlSg==",
- "requires": {
- "@types/pdfjs-dist": "^0.1.1",
- "pdfjs-dist": "1.9.489"
- },
- "dependencies": {
- "pdfjs-dist": {
- "version": "1.9.489",
- "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-1.9.489.tgz",
- "integrity": "sha1-yuWf7d0WouXRlappUnlVz+QALB0=",
- "requires": {
- "node-ensure": "^0.0.0",
- "worker-loader": "^0.8.0"
- }
- }
- }
- },
-=======
->>>>>>> 0b14c4c0c63a6d55c9945163d7afb971a7375994
"ngx-cookie-service": {
"version": "12.0.3",
"resolved": "https://registry.npmjs.org/ngx-cookie-service/-/ngx-cookie-service-12.0.3.tgz",
diff --git a/src/app/pages/chat/group-messages/group-messages.page.html b/src/app/pages/chat/group-messages/group-messages.page.html
index 62dc32da5..4f1862878 100644
--- a/src/app/pages/chat/group-messages/group-messages.page.html
+++ b/src/app/pages/chat/group-messages/group-messages.page.html
@@ -117,7 +117,15 @@
{{file.title}}
-
+
+
+
+ {{file.title}}
+
+
+
+
+
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 245533836..d55190f61 100644
--- a/src/app/shared/chat/group-messages/group-messages.page.ts
+++ b/src/app/shared/chat/group-messages/group-messages.page.ts
@@ -417,41 +417,64 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
this.wsChatMethodsService.getGroupRoom(this.roomId).send({})
}
+ base64toBlob(base64Data, contentType) {
+ contentType = contentType || '';
+ var sliceSize = 1024;
+ var byteCharacters = atob(base64Data);
+ var bytesLength = byteCharacters.length;
+ var slicesCount = Math.ceil(bytesLength / sliceSize);
+ var byteArrays = new Array(slicesCount);
+
+ for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
+ var begin = sliceIndex * sliceSize;
+ var end = Math.min(begin + sliceSize, bytesLength);
+
+ var bytes = new Array(end - begin);
+ for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
+ bytes[i] = byteCharacters[offset].charCodeAt(0);
+ }
+ byteArrays[sliceIndex] = new Uint8Array(bytes);
+ }
+ return new Blob(byteArrays, { type: contentType });
+}
+
async sendAudio(fileName) {
const roomId = this.roomId
+ let audioFile;
this.storage.get('recordData').then((recordData) => {
console.log(recordData);
+ audioFile = recordData;
if(recordData.value.recordDataBase64.includes('data:audio')){
this.audioRecorded = recordData.value.recordDataBase64;
}
else{
this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`;
}
- });
//Converting base64 to blob
- const base64Response = await fetch(this.audioRecorded);
- const blob = await base64Response.blob();
-
+ const encodedData = btoa(this.audioRecorded);
+ const blob = this.base64toBlob(encodedData, recordData.value.mimeType)
+ console.log(blob)
const formData = new FormData();
formData.append("blobFile", blob);
this.wsChatMethodsService.getGroupRoom(roomId).send({
file: {
"type": "application/audio",
- /* "guid": '', */
+ "msDuration":audioFile.value.msDuration,
+ "mimeType":audioFile.value.mimeType,
},
attachments: [{
"title": fileName ,
- "title_link": this.audioRecorded,
"title_link_download": true,
- "type": "file"
+ "type": "audio"
}],
temporaryData: formData
})
- this.deleteRecording();
+ });
+ this.deleteRecording();
}
deleteMessage(msgId: string) {
@@ -973,38 +996,34 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
downloadFileMsg(msg: MessageService) {
console.log('FILE TYPE', msg.file.type)
this.downloadFile = "";
- if (msg.file.type == "application/img") {
- this.AttachmentsService.downloadFile(msg.file.guid).subscribe(async (event) => {
- console.log('FILE TYPE 22', msg.file.guid)
- var name = msg.file.guid;
+ this.AttachmentsService.downloadFile(msg.file.guid).subscribe(async (event) => {
+ console.log('FILE TYPE 22', msg.file.guid)
+ var name = msg.file.guid;
- if (event.type === HttpEventType.DownloadProgress) {
- //this.downloadProgess = Math.round((100 * event.loaded) / event.total);
- console.log('FILE TYPE 33', msg.file.type)
- } else if (event.type === HttpEventType.Response) {
- if (msg.file.type == "application/img") {
- this.downloadFile = 'data:image/jpeg;base64,' + btoa(new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), ''));
- } else if (msg.file.type === 'application/pdf') {
+ if (event.type === HttpEventType.DownloadProgress) {
+ //this.downloadProgess = Math.round((100 * event.loaded) / event.total);
+ console.log('FILE TYPE 33', msg.file.type)
+ } else if (event.type === HttpEventType.Response) {
+ if (msg.file.type == "application/img") {
+ this.downloadFile = 'data:image/jpeg;base64,' + btoa(new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), ''));
+ } else if (msg.file.type === 'application/pdf') {
- this.downloadFile = event.body;
- }
-
- msg.attachments[0] = {
- image_url: this.downloadFile,
- name: msg.attachments[0].name,
- title: msg.attachments[0].title,
- title_link_download: msg.attachments[0].title_link_download,
- ts: msg.attachments[0].ts
- }
-
- await this.storage.set(msg.file.guid, this.downloadFile).then(() => {
- console.log('IMAGE SAVED')
- });
+ this.downloadFile = event.body;
+ } else if (msg.file.type == 'application/audio') {
+ this.downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '');
}
-
- });
-
- }
+ msg.attachments[0] = {
+ image_url: this.downloadFile,
+ name: msg.attachments[0].name,
+ title: msg.attachments[0].title,
+ title_link: this.downloadFile,
+ title_link_download: msg.attachments[0].title_link_download,
+ ts: msg.attachments[0].ts
+ }
+ // save the changes to the storage
+ msg.save()
+ }
+ });
}
@@ -1029,5 +1048,12 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe
}
+ async audioPreview(msg) {
+ console.log(msg);
+ if (!msg.attachments[0].title_link || msg.attachments[0].title_link === null || msg.attachments[0].title_link === '') {
+ this.downloadFileMsg(msg)
+ } else {}
+ }
+
}
diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts
index 6d3a4c68d..34fcd92ec 100644
--- a/src/app/shared/chat/messages/messages.page.ts
+++ b/src/app/shared/chat/messages/messages.page.ts
@@ -389,12 +389,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`;
}
-
- console.log(this.audioRecorded)
-
//Converting base64 to blob
- //const base64Response = await fetch(this.audioRecorded);
- //console.log(base64Response)
const encodedData = btoa(this.audioRecorded);
const blob = this.base64toBlob(encodedData, recordData.value.mimeType)
console.log(blob)
@@ -404,13 +399,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
this.wsChatMethodsService.getDmRoom(roomId).send({
file: {
"type": "application/audio",
- /* "guid": '', */
"msDuration":audioFile.value.msDuration,
"mimeType":audioFile.value.mimeType,
},
attachments: [{
"title": fileName ,
- //"title_link": this.audioRecorded,
"title_link_download": true,
"type": "audio"
}],
@@ -419,14 +412,12 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
});
this.deleteRecording();
-
}
- deleteMessage(msgId: string, msg:MessageService) {
+ deleteMessage(msgId: string, msg:MessageService) {
msg.delateStatusFalse()
this.wsChatMethodsService.getDmRoom(this.roomId).sendDeleteRequest(msgId)
-
}
async viewDocument(msg: any, url?: string) {
@@ -773,7 +764,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
const roomId = this.roomId
const file: any = await this.fileService.getFileFromDevice(types);
-
+
console.log('Add file', file)
/* const imageData = await this.fileToBase64Service.convert(file).then((filee) => {
console.log('Add file', filee)
@@ -911,7 +902,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
downloadFileMsg(msg: MessageService) {
console.log('FILE TYPE', msg.file.type)
this.downloadFile = "";
- //if (msg.file.type == "application/img") {
this.AttachmentsService.downloadFile(msg.file.guid).subscribe(async (event) => {
console.log('FILE TYPE 22', msg.file.guid)
var name = msg.file.guid;
@@ -928,7 +918,6 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
} else if (msg.file.type == 'application/audio') {
this.downloadFile = new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '');
}
-
msg.attachments[0] = {
image_url: this.downloadFile,
name: msg.attachments[0].name,
@@ -937,17 +926,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
title_link_download: msg.attachments[0].title_link_download,
ts: msg.attachments[0].ts
}
-
// save the changes to the storage
msg.save()
-
-
}
-
});
- // }
-
}
_arrayBufferToBase64( buffer ) {
@@ -971,11 +954,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy
console.log(msg);
if (!msg.attachments[0].title_link || msg.attachments[0].title_link === null || msg.attachments[0].title_link === '') {
this.downloadFileMsg(msg)
-
- } else {
-
- }
-
+ } else {}
}
async openPreview(msg) {