From 67e8fbc480de6934de3ad45d05f52057beeefbab Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Tue, 1 Oct 2019 11:59:56 +1000 Subject: [PATCH] FIX: change focus when application resumes in android Per new lifecycle https://developers.google.com/web/updates/2018/07/page-lifecycle-api On Android and latest Chrome when an app transitions from "frozen" to active the new "resume" event fires with no accompanying "visibilitychange" event. This means that often background tabs may be stuck thinking that discourse has no focus when, indeed, it has. This leads to cases where no posts are marked read anymore. --- .../javascripts/discourse-common/mixins/focus-event.js.es6 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/assets/javascripts/discourse-common/mixins/focus-event.js.es6 b/app/assets/javascripts/discourse-common/mixins/focus-event.js.es6 index e9e5690c5b..7aafebdcce 100644 --- a/app/assets/javascripts/discourse-common/mixins/focus-event.js.es6 +++ b/app/assets/javascripts/discourse-common/mixins/focus-event.js.es6 @@ -24,12 +24,16 @@ export default Ember.Mixin.create({ Discourse.set("hasFocus", true); document.addEventListener("visibilitychange", onchange); + document.addEventListener("resume", onchange); + document.addEventListener("freeze", onchange); }, reset() { this._super(...arguments); document.removeEventListener("visibilitychange", onchange); + document.removeEventListener("resume", onchange); + document.removeEventListener("freeze", onchange); onchange = undefined; }