Guest User

Untitled

a guest
Mar 24th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. import { Component } from '@angular/core';
  2. import { AlertController, NavController, NavParams, ToastController } from 'ionic-angular';
  3. import { QrScannerProvider } from '../../providers/qr-scanner/qr-scanner';
  4. import 'rxjs/add/operator/mergeMap';
  5. import { QRScanner, QRScannerStatus } from '@ionic-native/qr-scanner';
  6. import { Observable } from 'rxjs/Observable';
  7. import { SuperTabsController } from 'ionic2-super-tabs';
  8. import { ToastProvider } from '../../providers/toast/toast';
  9. import { fromPromise } from 'rxjs/observable/fromPromise';
  10. import { Observer } from 'rxjs/Observer';
  11.  
  12. @Component({
  13. selector: 'page-qr-scanner',
  14. templateUrl: 'qr-scanner.html',
  15. })
  16. export class QrScannerPage {
  17. private isScanning: boolean = false;
  18.  
  19. constructor(public navCtrl: NavController,
  20. public navParams: NavParams,
  21. private qrScanner: QrScannerProvider,
  22. private toastProvider: ToastProvider,
  23. private alertCtrl: AlertController) {
  24. }
  25.  
  26. ionViewDidEnter() {
  27. this.showPermissionAlert().flatMap(_ => {
  28. return this.qrScanner.prepare();
  29. }).flatMap((status: QRScannerStatus) => {
  30. if (status.denied) {
  31. return Observable.throw("unauthorized")
  32. }
  33. if (status.authorized) {
  34. this.isScanning = true;
  35. return this.qrScanner.startScanning();
  36. }
  37. }).subscribe(this.handleSuccess.bind(this), this.handleError.bind(this));
  38. }
  39.  
  40. private handleError(error: string) {
  41. switch (error) {
  42. case 'cordova_not_available':
  43. this.toastProvider.showToast("NOT_ON_MOBILE_ERROR");
  44. break;
  45. }
  46. if (error == "cordova_not_available") {
  47.  
  48. }
  49. }
  50.  
  51. private handleSuccess(data: string) {
  52. alert(data);
  53. }
  54.  
  55. private showPermissionAlert(): Observable<any> {
  56. return Observable.create((observer: Observer<boolean>) => {
  57. let alert = this.alertCtrl.create({
  58. title: 'Camera permission',
  59. subTitle: 'Please press allow at the upcoming popup to allow Shorty to use your camera',
  60. buttons: [
  61. {
  62. text: "Got it!",
  63. handler: _ => {
  64. observer.next(true);
  65. observer.complete();
  66. }
  67. }
  68. ]
  69. });
  70. alert.present();
  71. });
  72. }
  73. }
Add Comment
Please, Sign In to add comment