feat(batterystatus): complete functionality

This commit is contained in:
Ibrahim Hadeed 2016-03-10 15:24:04 -05:00
parent e776541ca0
commit e7a09d9018

View File

@ -15,7 +15,7 @@ import {Observable} from "rxjs/Observable";
* // watch change in battery status * // watch change in battery status
* let subscription = BatteryStatus.onChange().subscribe( * let subscription = BatteryStatus.onChange().subscribe(
* status => { * status => {
* console.log(status); * console.log(status.level, status.isPlugged);
* } * }
* ); * );
* *
@ -34,10 +34,35 @@ export class BatteryStatus {
* @returns {Observable} Returns an observable that pushes a status object * @returns {Observable} Returns an observable that pushes a status object
*/ */
static onChange () : Observable<StatusObject> { static onChange () : Observable<StatusObject> {
return BatteryStatus.getObservable("batterylevel");
}
/**
* Watch when the battery level goes low
* @returns {Observable<StatusObject>} Returns an observable that pushes a status object
*/
static onLow () : Observable<StatusObject> {
return BatteryStatus.getObservable("batterylow");
}
/**
* Watch when the battery level goes to critial
* @returns {Observable<StatusObject>} Returns an observable that pushes a status object
*/
static onCritical () : Observable<StatusObject> {
return BatteryStatus.getObservable("batterycritical");
}
/**
* Wrap the event with an observable
* @param event
* @returns {Observable}
*/
static getObservable (event : string) : Observable<StatusObject> {
return new Observable(observer => { return new Observable(observer => {
let callback = (status : any) => observer.next(status); let callback = (status : any) => observer.next(status);
window.addEventListener("batterystatus", callback, false); window.addEventListener(event, callback, false);
return () => window.removeEventListener("batterystatus", callback, false); return () => window.removeEventListener(event, callback, false);
}); });
} }