From e7a09d901864790b0bfec6c984f49f034ca4dc7f Mon Sep 17 00:00:00 2001 From: Ibrahim Hadeed Date: Thu, 10 Mar 2016 15:24:04 -0500 Subject: [PATCH] feat(batterystatus): complete functionality --- src/plugins/batterystatus.ts | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/plugins/batterystatus.ts b/src/plugins/batterystatus.ts index 81c393977d..9912ed58ef 100644 --- a/src/plugins/batterystatus.ts +++ b/src/plugins/batterystatus.ts @@ -15,7 +15,7 @@ import {Observable} from "rxjs/Observable"; * // watch change in battery status * let subscription = BatteryStatus.onChange().subscribe( * 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 */ static onChange () : Observable { + return BatteryStatus.getObservable("batterylevel"); + } + + /** + * Watch when the battery level goes low + * @returns {Observable} Returns an observable that pushes a status object + */ + static onLow () : Observable { + return BatteryStatus.getObservable("batterylow"); + } + + /** + * Watch when the battery level goes to critial + * @returns {Observable} Returns an observable that pushes a status object + */ + static onCritical () : Observable { + return BatteryStatus.getObservable("batterycritical"); + } + + /** + * Wrap the event with an observable + * @param event + * @returns {Observable} + */ + static getObservable (event : string) : Observable { return new Observable(observer => { let callback = (status : any) => observer.next(status); - window.addEventListener("batterystatus", callback, false); - return () => window.removeEventListener("batterystatus", callback, false); + window.addEventListener(event, callback, false); + return () => window.removeEventListener(event, callback, false); }); }