diff --git a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 index c68349805..d728c93f3 100644 --- a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 +++ b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 @@ -1,23 +1,24 @@ /*global Modernizr:true*/ -/** - Initializes an object that lets us know about our capabilities. -**/ +// Initializes an object that lets us know about our capabilities. export default { name: "sniff-capabilities", - initialize: function(container, application) { - var $html = $('html'), - touch = $html.hasClass('touch') || (Modernizr.prefixed("MaxTouchPoints", navigator) > 1), - caps = Ember.Object.create(); + initialize(container, application) { + const $html = $('html'), + touch = $html.hasClass('touch') || (Modernizr.prefixed("MaxTouchPoints", navigator) > 1), + caps = Ember.Object.create(); // Store the touch ability in our capabilities object caps.set('touch', touch); $html.addClass(touch ? 'discourse-touch' : 'discourse-no-touch'); - // Detect Android + // Detect Devices if (navigator) { - var ua = navigator.userAgent; - caps.set('android', ua && ua.indexOf('Android') !== -1); + const ua = navigator.userAgent; + if (ua) { + caps.set('android', ua.indexOf('Android') !== -1); + caps.set('winphone', ua.indexOf('Windows Phone') !== -1); + } } // We consider high res a device with 1280 horizontal pixels. High DPI tablets like diff --git a/app/assets/javascripts/discourse/views/quote-button.js.es6 b/app/assets/javascripts/discourse/views/quote-button.js.es6 index 60cb2463a..8f4c5ab66 100644 --- a/app/assets/javascripts/discourse/views/quote-button.js.es6 +++ b/app/assets/javascripts/discourse/views/quote-button.js.es6 @@ -36,7 +36,9 @@ export default Ember.View.extend({ // the quote reply widget // // Same hack applied to Android cause it has unreliable touchend - if (navigator.userAgent.match(/Windows Phone/) || navigator.userAgent.match(/Android/)) { + const caps = this.capabilities; + const android = caps.get('android'); + if (caps.get('winphone') || android) { onSelectionChanged = _.debounce(onSelectionChanged, 500); } @@ -70,7 +72,7 @@ export default Ember.View.extend({ // Android is dodgy, touchend often will not fire // https://code.google.com/p/android/issues/detail?id=19827 - if (!navigator.userAgent.match(/Android/)) { + if (!android) { $(document) .on('touchstart.quote-button', function(){ view.set('isTouchInProgress', true);