UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

52 lines 6.86 kB
import { inject, Injectable } from '@angular/core'; import { filter, share, tap } from 'rxjs/operators'; import { CurrentDeviceService } from './current-device.service'; import { TapScannerNfcService } from './tap-scanner/tap-scanner-nfc/tap-scanner-nfc.service'; import * as i0 from "@angular/core"; export class NfcReTapService { nfcTapScanner = inject(TapScannerNfcService); tapService = inject(CurrentDeviceService); /** * Event trigger when user tap the same tap he is already connected to */ reTapEvent = this.nfcTapScanner.tapEvent.pipe(filter((event) => { return this.tapService.isSameTag(event.tag); }), tap((event) => { const tap = this.tapService.tapOrUndefined; if (!tap) { return; } // if encryption is enabled, we need to refresh encryption keys when new nfc tap occures on the same tag if (event.tap?.encryption) { const { encryption, keys, frameCounter, initializationVectorResetPeriod, } = event.tap.encryption; tap.encryption.setEncryptedFrameCounter(frameCounter); tap.encryption.setInitializationVectorRefreshPeriod(initializationVectorResetPeriod); tap.encryption.setEncryptionKeys(keys); if (encryption) { tap.encryption.resume(); } else { tap.encryption.pause(); } } }), share()); _sub; initialize() { if (!this._sub) { this._sub = this.reTapEvent.subscribe(); } return this._sub; } tearDown() { this._sub?.unsubscribe(); } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NfcReTapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NfcReTapService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NfcReTapService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmZjLXJlLXRhcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW90aXplLWlvbmljL3NyYy9saWIvbmZjLXJlLXRhcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQUs3RixNQUFNLE9BQU8sZUFBZTtJQUNsQixhQUFhLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFN0MsVUFBVSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xEOztPQUVHO0lBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDM0MsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNaLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDVCxDQUFDO1FBQ0Qsd0dBQXdHO1FBQ3hHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUMxQixNQUFNLEVBQ0osVUFBVSxFQUNWLElBQUksRUFDSixZQUFZLEVBQ1osK0JBQStCLEdBQ2hDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDekIsR0FBRyxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxHQUFHLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxDQUNqRCwrQkFBK0IsQ0FDaEMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxFQUFFLENBQ1IsQ0FBQztJQUVNLElBQUksQ0FBZ0I7SUFFNUIsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzsySEFsRFUsZUFBZTsrSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzaGFyZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ3VycmVudERldmljZVNlcnZpY2UgfSBmcm9tICcuL2N1cnJlbnQtZGV2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFwU2Nhbm5lck5mY1NlcnZpY2UgfSBmcm9tICcuL3RhcC1zY2FubmVyL3RhcC1zY2FubmVyLW5mYy90YXAtc2Nhbm5lci1uZmMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOZmNSZVRhcFNlcnZpY2Uge1xuICBwcml2YXRlIG5mY1RhcFNjYW5uZXIgPSBpbmplY3QoVGFwU2Nhbm5lck5mY1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgdGFwU2VydmljZSA9IGluamVjdChDdXJyZW50RGV2aWNlU2VydmljZSk7XG4gIC8qKlxuICAgKiBFdmVudCB0cmlnZ2VyIHdoZW4gdXNlciB0YXAgdGhlIHNhbWUgdGFwIGhlIGlzIGFscmVhZHkgY29ubmVjdGVkIHRvXG4gICAqL1xuICByZVRhcEV2ZW50ID0gdGhpcy5uZmNUYXBTY2FubmVyLnRhcEV2ZW50LnBpcGUoXG4gICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudGFwU2VydmljZS5pc1NhbWVUYWcoZXZlbnQudGFnKTtcbiAgICB9KSxcbiAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXAgPSB0aGlzLnRhcFNlcnZpY2UudGFwT3JVbmRlZmluZWQ7XG4gICAgICBpZiAoIXRhcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBpZiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIHdlIG5lZWQgdG8gcmVmcmVzaCBlbmNyeXB0aW9uIGtleXMgd2hlbiBuZXcgbmZjIHRhcCBvY2N1cmVzIG9uIHRoZSBzYW1lIHRhZ1xuICAgICAgaWYgKGV2ZW50LnRhcD8uZW5jcnlwdGlvbikge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgZW5jcnlwdGlvbixcbiAgICAgICAgICBrZXlzLFxuICAgICAgICAgIGZyYW1lQ291bnRlcixcbiAgICAgICAgICBpbml0aWFsaXphdGlvblZlY3RvclJlc2V0UGVyaW9kLFxuICAgICAgICB9ID0gZXZlbnQudGFwLmVuY3J5cHRpb247XG4gICAgICAgIHRhcC5lbmNyeXB0aW9uLnNldEVuY3J5cHRlZEZyYW1lQ291bnRlcihmcmFtZUNvdW50ZXIpO1xuICAgICAgICB0YXAuZW5jcnlwdGlvbi5zZXRJbml0aWFsaXphdGlvblZlY3RvclJlZnJlc2hQZXJpb2QoXG4gICAgICAgICAgaW5pdGlhbGl6YXRpb25WZWN0b3JSZXNldFBlcmlvZFxuICAgICAgICApO1xuICAgICAgICB0YXAuZW5jcnlwdGlvbi5zZXRFbmNyeXB0aW9uS2V5cyhrZXlzKTtcbiAgICAgICAgaWYgKGVuY3J5cHRpb24pIHtcbiAgICAgICAgICB0YXAuZW5jcnlwdGlvbi5yZXN1bWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXAuZW5jcnlwdGlvbi5wYXVzZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmUoKVxuICApO1xuXG4gIHByaXZhdGUgX3N1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBpbml0aWFsaXplKCkge1xuICAgIGlmICghdGhpcy5fc3ViKSB7XG4gICAgICB0aGlzLl9zdWIgPSB0aGlzLnJlVGFwRXZlbnQuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdWI7XG4gIH1cblxuICB0ZWFyRG93bigpIHtcbiAgICB0aGlzLl9zdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==