fix chat camera

This commit is contained in:
Peter Maquiran
2023-03-14 09:50:40 +01:00
parent 2b4b879970
commit c825fb2d3c
4 changed files with 48 additions and 14 deletions
+39 -8
View File
@@ -108,6 +108,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
audioPermissionStatus: 'granted' | 'denied' | 'prompt' | null = null audioPermissionStatus: 'granted' | 'denied' | 'prompt' | null = null
sessionStore = SessionStore sessionStore = SessionStore
convertBlobToBase64Worker;
constructor( constructor(
public popoverController: PopoverController, public popoverController: PopoverController,
private modalController: ModalController, private modalController: ModalController,
@@ -130,6 +132,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
private notificationService: NotificationsService, private notificationService: NotificationsService,
private router: Router private router: Router
) { ) {
this.convertBlobToBase64Worker = new Worker(new URL('./convertBlobToBase64.worker.js', import.meta.url));
this.loggedUser = SessionStore.user.ChatData['data']; this.loggedUser = SessionStore.user.ChatData['data'];
this.roomId = this.navParams.get('roomId'); this.roomId = this.navParams.get('roomId');
@@ -648,18 +652,20 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
const roomId = this.roomId const roomId = this.roomId
const image = await this.CameraService.takePicture(); const file = await Camera.getPhoto({
await this.fileService.saveImage(image) quality: 90,
const lastphoto: any = await this.fileService.loadFiles(); // allowEditing: true,
const { capturedImage, capturedImageTitle } = await this.fileService.loadFileData(lastphoto); resultType: CameraResultType.Base64,
source: CameraSource.Camera
});
const blob = this.dataURItoBlob('data:image/jpeg;base64,' + file.base64String)
console.log('data:image/jpeg;base64,' + file.base64String)
const base64 = await fetch(capturedImage);
const blob = await base64.blob();
const formData = new FormData(); const formData = new FormData();
formData.append("blobFile", blob); formData.append("blobFile", blob);
console.log(capturedImage); // console.log('capturedImage', capturedImage);
this.ChatSystemService.getDmRoom(roomId).send({ this.ChatSystemService.getDmRoom(roomId).send({
file: { file: {
@@ -667,13 +673,38 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
"guid": '' "guid": ''
}, },
attachments: [{ attachments: [{
"title": capturedImageTitle, "title": "file.jpg",
"text": "description", "text": "description",
"title_link_download": false, "title_link_download": false,
}], }],
temporaryData: formData temporaryData: formData
}) })
}
dataURItoBlob(dataURI) {
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
var byteString = atob(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
// create a view into the buffer
var ia = new Uint8Array(ab);
// set the bytes of the buffer to the correct values
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
var blob = new Blob([ab], {type: mimeString});
return blob;
} }
async addImageMobile() { async addImageMobile() {
@@ -151,6 +151,8 @@ export class PublicationsPage implements OnInit {
this.publicationsEventFolderList = folders.filter((e)=>e.ActionType == 'Evento') this.publicationsEventFolderList = folders.filter((e)=>e.ActionType == 'Evento')
this.publicationsTravelFolderList = folders.filter((e)=>e.ActionType != 'Evento') this.publicationsTravelFolderList = folders.filter((e)=>e.ActionType != 'Evento')
// ActionModel.create(folders)
await this.storage.set('actionsEvents', this.publicationsEventFolderList); await this.storage.set('actionsEvents', this.publicationsEventFolderList);
await this.storage.set('actionsViagens', this.publicationsTravelFolderList); await this.storage.set('actionsViagens', this.publicationsTravelFolderList);
@@ -167,6 +167,7 @@ export class ViewPublicationsPage implements OnInit {
const found = this.publicationIsPresent(publicationId, folderId) const found = this.publicationIsPresent(publicationId, folderId)
if(!found) { if(!found) {
this.publicationList[folderId].push(publicationDetails) this.publicationList[folderId].push(publicationDetails)
// PublicationModel.create(publicationDetails)
} else { } else {
this.publicationList[folderId][findIndex] = publicationDetails this.publicationList[folderId][findIndex] = publicationDetails
} }
+6 -6
View File
@@ -1,12 +1,12 @@
export let versionData = { export let versionData = {
"shortSHA": "57b4f0880", "shortSHA": "2b4b87997",
"SHA": "57b4f0880084a1ab1005660d19cb603fa7b279ad", "SHA": "2b4b879970ce902dee81bc6046d08b6e5fe29bc8",
"branch": "no_bug_movemente", "branch": "no_bug_movemente",
"lastCommitAuthor": "'Peter Maquiran'", "lastCommitAuthor": "'Peter Maquiran'",
"lastCommitTime": "'Fri Mar 10 15:10:37 2023 +0100'", "lastCommitTime": "'Fri Mar 10 15:46:37 2023 +0100'",
"lastCommitMessage": "improve publication", "lastCommitMessage": "remove duplication from publication",
"lastCommitNumber": "4867", "lastCommitNumber": "4868",
"change": "", "change": "",
"changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/pages/publications/publications.page.ts", "changeStatus": "On branch no_bug_movemente\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/pages/chat/messages/messages.page.ts\n\tmodified: src/app/pages/publications/publications.page.ts\n\tmodified: src/app/shared/publication/view-publications/view-publications.page.ts",
"changeAuthor": "peter.maquiran" "changeAuthor": "peter.maquiran"
} }