Fixed auth on iOS, improved iSPEX and PlantNet Plugins

This commit is contained in:
Norbert Schmidt
2023-02-07 15:35:40 +01:00
parent 96734e4f60
commit ac973b7288
73 changed files with 1959 additions and 1524 deletions

View File

@@ -1,75 +1,100 @@
import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
/* eslint-disable @typescript-eslint/naming-convention */
import * as Parse from 'parse';
import { ENV } from '../../app.constant';
import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { PreviewPage } from './preview/preview.page';
declare var cv: any;
import { TranslateService } from '@ngx-translate/core';
import { AuthService } from '../../services/auth.service';
import { Auth, user } from '@angular/fire/auth';
import { Storage } from '@ionic/storage-angular';
import { Router } from '@angular/router';
Parse.initialize(ENV.parseAppId, ENV.parseJSKey);
(Parse as any).serverURL = ENV.parseServerUrl; // use your server url
let uploadSuccess = false;
@Component({
selector: 'app-ispex',
templateUrl: './ispex.page.html',
styleUrls: ['./ispex.page.scss'],
})
export class IspexPage implements OnInit {
uploadSuccess = false; // Add this line
image = '';
user = null;
language = '';
export class IspexPage implements AfterViewInit {
@ViewChild('imageCanvas', { static: false }) canvasEl : ElementRef;
@ViewChild('image', { static: false }) imageEl : ElementRef;
image = null;
constructor(private modal: ModalController) {}
ngAfterViewInit() {
// this._CANVAS = this.canvasEl.nativeElement;
// this._IMAGE = this.imageEl.nativeElement;
console.log ("ngAfterViewInit");
constructor(
private modal: ModalController,
private translateService: TranslateService,
private authService: AuthService,
private afAuth: Auth,
private storage: Storage,
private router: Router
) {
user(this.afAuth).subscribe((response) => {
//fill the user to verify if someone is logged in
this.user = response;
console.log(this.user.uid);
});
}
ngOnInit() {}
async openCamera() {
const modal = await this.modal.create({
component: PreviewPage,
cssClass: 'fullscreen',
animated: true
animated: true,
});
modal.onDidDismiss().then((data) => {
if (data !== null) {
this.image = data.data;
if (data !== null) {
this.image = data.data;
this.uploadSuccess = true;
// create parse class
let imgElement = document.getElementById('img');
let src = cv.imread(imgElement);
let dst = new cv.Mat();
let dsize = new cv.Size(src.rows, src.cols);
let center = new cv.Point(src.cols / 2, src.rows / 2);
let M = cv.getRotationMatrix2D(center, -90, 1);
cv.warpAffine(src, dst, M, dsize, cv.INTER_LINEAR, cv.BORDER_CONSTANT, new cv.Scalar());
cv.imshow('canvasOutput', dst);
src.delete(); dst.delete(); M.delete();
const myspex_data_store = Parse.Object.extend('myspex_data');
// create new instance of parse class
cv.imshow('canvasOutput', dst);
src.delete(); dst.delete();
const myspex_data = new myspex_data_store();
// set value for parse clas
const file = new Parse.File('image.jpg', { base64: this.image });
file.save().then(
(file) => {
console.log(file);
},
(error) => {
console.log(error);
}
);
myspex_data.set('user_uid', this.user.uid);
myspex_data.set('name', this.user.displayName);
myspex_data.set('email', this.user.email);
myspex_data.set('image', file);
}
myspex_data.save().then(
(result: any) => {
console.log(result);
},
(error: any) => {
console.log(error);
}
);
} else {
console.log('no data');
}
});
return await modal.present();
}
}
// navigate to the classify page
}