All files / src/hosts cordova.ts

45% Statements 9/20
0% Branches 0/4
28.57% Functions 2/7
41.18% Lines 7/17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                1x 1x   1x   1x       1x                               1x       1x  
import { Host } from './host';
import { Container, inject } from 'aurelia-dependency-injection';
import { DOM, PLATFORM } from 'aurelia-pal';
import { Platform } from '../platforms/platform';
import { IOS } from '../platforms/ios';
import { Android } from '../platforms/android';
 
@inject(Container)
export class Cordova implements Host {
  public type = 'cordova';
 
  constructor(private container: Container) { }
 
  get isAvailable() {
    return !!PLATFORM.global.cordova;
  }
 
  public start(): Promise<Platform> {
    return new Promise((resolve) => {
      DOM.addEventListener('deviceready', () => {
 
        switch (this.getPlatformType()) {
          case 'ios':
            resolve(this.container.get(IOS));
            break;
          default:
            resolve(this.container.get(Android));
            break;
        }
      }, false);
    });
  }
 
  private getPlatformType() {
    const device = PLATFORM.global.device || { platform: 'android' };
    return device.platform.toLowerCase();
  }
}