chore(gestures): add isListening to gestures

This commit is contained in:
Adam Bradley
2016-02-16 22:20:14 -06:00
parent 80fa94bd41
commit 93b456145c
2 changed files with 8 additions and 7 deletions

View File

@ -32,7 +32,6 @@ export class Menu extends Ion {
private _resizeUnreg: Function; private _resizeUnreg: Function;
private _isEnabled: boolean = true; private _isEnabled: boolean = true;
private _isSwipeEnabled: boolean = true; private _isSwipeEnabled: boolean = true;
private _isListening: boolean = false;
private _isPers: boolean = false; private _isPers: boolean = false;
private _init: boolean = false; private _init: boolean = false;
@ -198,21 +197,19 @@ export class Menu extends Ion {
if (self._init) { if (self._init) {
// only listen/unlisten if the menu has initialized // only listen/unlisten if the menu has initialized
if (self._isEnabled && self._isSwipeEnabled && !self._isListening) { if (self._isEnabled && self._isSwipeEnabled && !self._cntGesture.isListening) {
// should listen, but is not currently listening // should listen, but is not currently listening
console.debug('menu, gesture listen', self.side); console.debug('menu, gesture listen', self.side);
self._zone.runOutsideAngular(function() { self._zone.runOutsideAngular(function() {
self._cntGesture.listen(); self._cntGesture.listen();
self._menuGesture.listen(); self._menuGesture.listen();
}); });
self._isListening = true;
} else if (self._isListening && (!self._isEnabled || !self._isSwipeEnabled)) { } else if (self._cntGesture.isListening && (!self._isEnabled || !self._isSwipeEnabled)) {
// should not listen, but is currently listening // should not listen, but is currently listening
console.debug('menu, gesture unlisten', self.side); console.debug('menu, gesture unlisten', self.side);
self._cntGesture.unlisten(); self._cntGesture.unlisten();
self._menuGesture.unlisten(); self._menuGesture.unlisten();
self._isListening = false;
} }
} }
} }

View File

@ -8,12 +8,14 @@ import {Hammer, DIRECTION_HORIZONTAL, DIRECTION_VERTICAL} from './hammer';
*/ */
export class Gesture { export class Gesture {
public element: HTMLElement;
public direction: any;
private _hammer: any; private _hammer: any;
private _options: any; private _options: any;
private _callbacks: any = {}; private _callbacks: any = {};
public element: HTMLElement;
public direction: string;
public isListening: boolean = false;
constructor(element, opts: any = {}) { constructor(element, opts: any = {}) {
defaults(opts, { defaults(opts, {
domEvents: true domEvents: true
@ -47,6 +49,7 @@ export class Gesture {
listen() { listen() {
this._hammer = Hammer(this.element, this._options); this._hammer = Hammer(this.element, this._options);
this.isListening = true;
} }
unlisten() { unlisten() {
@ -60,6 +63,7 @@ export class Gesture {
this._callbacks = {}; this._callbacks = {};
this._hammer.destroy(); this._hammer.destroy();
} }
this.isListening = false;
} }
destroy() { destroy() {