From 394dd6e24d8fe1bfddc00657ebc1be17587671fa Mon Sep 17 00:00:00 2001 From: Dani Palou <dani@moodle.com> Date: Fri, 11 Oct 2019 12:44:33 +0200 Subject: [PATCH] MOBILE-2995 qr: Add scan QR button in login --- src/core/login/pages/site/site.html | 5 +++++ src/core/login/pages/site/site.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/core/login/pages/site/site.html b/src/core/login/pages/site/site.html index 9a4fe01bc..637c8c90e 100644 --- a/src/core/login/pages/site/site.html +++ b/src/core/login/pages/site/site.html @@ -47,6 +47,11 @@ <ion-option *ngFor="let site of fixedSites" [value]="site.url">{{site.name}}</ion-option> </ion-select> </ion-item> + + <a *ngIf="showScanQR" ion-button block color="light" margin-top icon-start (click)="scanQR()"> + <core-icon name="fa-qrcode" aria-hidden="true"></core-icon> + {{ 'core.scanqr' | translate }} + </a> </form> <!-- Pick the site from a list of fixed sites. --> diff --git a/src/core/login/pages/site/site.ts b/src/core/login/pages/site/site.ts index 180e0ed47..4546cf012 100644 --- a/src/core/login/pages/site/site.ts +++ b/src/core/login/pages/site/site.ts @@ -58,6 +58,7 @@ export class CoreLoginSitePage { loadingSites = false; onlyWrittenSite = false; searchFnc: Function; + showScanQR: boolean; constructor(navParams: NavParams, protected navCtrl: NavController, @@ -74,6 +75,7 @@ export class CoreLoginSitePage { protected utils: CoreUtilsProvider) { this.showKeyboard = !!navParams.get('showKeyboard'); + this.showScanQR = this.utils.canScanQR(); let url = ''; @@ -356,4 +358,17 @@ export class CoreLoginSitePage { }; } + /** + * Scan a QR code and put its text in the URL input. + */ + scanQR(): void { + // Scan for a QR code. + this.utils.scanQR().then((text) => { + if (text) { + this.siteForm.controls.siteUrl.setValue(text); + + this.connect(new Event('click'), text); + } + }); + } }