Chromium Code Reviews| Index: chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js |
| diff --git a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js |
| index 97a12730001de3168e046345628f476e393a527e..a49d23d73a87893c11cc7d95432333f048ad8706 100644 |
| --- a/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js |
| +++ b/chrome/browser/resources/media_router/elements/media_router_container/media_router_container.js |
| @@ -194,11 +194,25 @@ Polymer({ |
| type: Array, |
| value: [], |
| }, |
| + |
| + /** |
| + * List of active timer IDs. Used to retrieve active timer IDs when |
| + * clearing timers. |
| + * @private {!Array<number>} |
| + */ |
| + timerIdList_: { |
| + type: Array, |
| + value: [], |
| + }, |
| + }, |
| + |
| + listeners: { |
| + 'tap': 'onTap_', |
| }, |
| ready: function() { |
| this.addEventListener('arrow-drop-click', this.toggleCastModeHidden_); |
| - this.addEventListener('close-route-click', this.removeRoute); |
| + this.addEventListener('close-route-click', this.startTapTimer_); |
|
imcheng
2015/10/22 18:44:14
I see that there is also an event handler for clos
apacible
2015/10/23 18:03:11
Done.
|
| this.showSinkList_(); |
| }, |
| @@ -558,6 +572,8 @@ Polymer({ |
| // which results in the correct sink to route mapping. |
| this.routeList.push(route); |
| this.showRouteDetails_(route); |
| + |
| + this.startTapTimer_(); |
| }, |
| onNotifyRouteCreationTimeout: function() { |
| @@ -575,6 +591,24 @@ Polymer({ |
| }, |
| /** |
| + * Called when a tap event is triggered. Clears any active timers. onTap_ |
| + * is called before a new timer is started for taps that trigger a new active |
| + * timer. |
| + * |
| + * @private |
| + */ |
| + onTap_: function(e) { |
| + if (this.timerIdList_.length == 0) |
| + return; |
| + |
| + this.timerIdList_.forEach(function(id) { |
| + clearTimeout(id); |
| + }, this); |
| + |
| + this.timerIdList_ = []; |
| + }, |
| + |
| + /** |
| * Called when |routeList| is updated. Rebuilds |routeMap_| and |
| * |sinkToRouteMap_|. |
| * |
| @@ -719,6 +753,20 @@ Polymer({ |
| }, |
| /** |
| + * Starts a timer which fires a close-dialog event if the timer has not been |
| + * cleared within three seconds. |
| + * |
| + * @private |
| + */ |
| + startTapTimer_: function() { |
| + var id = setTimeout(function() { |
| + this.fire('close-dialog'); |
| + }.bind(this), 3000 /* 3 seconds */); |
| + |
| + this.timerIdList_.push(id); |
| + }, |
| + |
| + /** |
| * Toggles |currentView_| between CAST_MODE_LIST and SINK_LIST. |
| * |
| * @private |