ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
80 lines (73 loc) • 2.11 kB
JavaScript
/**
* @ngdoc service
* @name ngCordovaMocks.cordovaVibration
*
* @description
* A service for testing vibration
* in an app build with ngCordova.
*/
ngCordovaMocks.factory('$cordovaVibration', ['$timeout', function ($timeout) {
var isVibrating = false;
var vibrateTimer = null;
return {
/**
* @ngdoc property
* @name vibrateTimer
* @propertyOf ngCordovaMocks.cordovaVibration
*
* @description
* Access to the timer associated with vibration.
* This property should only be used in automated tests.
**/
vibrateTimer: vibrateTimer,
/**
* @ngdoc property
* @name isVibrating
* @propertyOf ngCordovaMocks.cordovaVibration
*
* @description
* A flag that signals whether vibration is active.
* This property should only be used in automated tests.
**/
isVibrating: isVibrating,
vibrate: function (time) {
if (time > 0) {
this.isVibrating = true;
self = this;
if (time instanceof Array) {
// TODO: Implement pattern here.
// The following is a temporary timer that just looks at the first value
this.vibrateTimer = $timeout(
function () {
self.isVibrating = false;
self.vibrateTimer = null;
},
time[0]
);
} else {
this.vibrateTimer = $timeout(
function () {
self.isVibrating = false;
self.vibrateTimer = null;
},
time
);
}
}
},
/* jshint ignore:start */
vibrateWithPattern: function (pattern, repeat) {
// Based on the documentation (https://github.com/apache/cordova-plugin-vibration)
// This method is deprecated. For that reason, this isn't implemented at this time.
},
/* jshint ignore:end */
cancelVibration: function () {
if (this.vibrateTimer !== null) {
if (this.isVibrating === true) {
$timeout.cancel(this.vibrateTimer);
this.isVibrating = false;
}
}
}
};
}]);