From 9726a414e9cffc78c98e51d1938a0f6ce3e8aaa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Wed, 12 Jul 2023 15:29:22 +0000 Subject: [PATCH] [FIX] mail: do not show Odoobot has a request in mobile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Odoo mobile app manages push notifications by the app itself, not the web app. Therefore there's no need to enable web push notifications. This commit fixes the issue by considering web push notification being denied in the mobile app. closes odoo/odoo#128344 X-original-commit: 045aeaace279d585a7ebefcd5cba7d32207ba9ba Signed-off-by: Sébastien Theys (seb) Signed-off-by: Alexandre Kühn (aku) --- .../core/common/notification_permission_service.js | 10 +++++++--- .../tests/messaging_menu/messaging_menu_tests.js | 12 ++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/addons/mail/static/src/core/common/notification_permission_service.js b/addons/mail/static/src/core/common/notification_permission_service.js index 4dee20a7bf7..6a5801303fd 100644 --- a/addons/mail/static/src/core/common/notification_permission_service.js +++ b/addons/mail/static/src/core/common/notification_permission_service.js @@ -3,6 +3,7 @@ import { reactive } from "@odoo/owl"; import { browser } from "@web/core/browser/browser"; +import { isAndroidApp, isIosApp } from "@web/core/browser/feature_detection"; import { _t } from "@web/core/l10n/translation"; import { registry } from "@web/core/registry"; @@ -31,9 +32,12 @@ export const notificationPermissionService = { } const state = reactive({ /** @type {"prompt" | "granted" | "denied"} */ - permission: this._normalizePermission( - permission?.state ?? browser.Notification?.permission - ), + permission: + isIosApp() || isAndroidApp() + ? "denied" + : this._normalizePermission( + permission?.state ?? browser.Notification?.permission + ), requestPermission: async () => { if (browser.Notification && state.permission === "prompt") { state.permission = this._normalizePermission( diff --git a/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js b/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js index 7b7bccd6fa1..cfe4dad7bd1 100644 --- a/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js +++ b/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js @@ -125,6 +125,18 @@ QUnit.test("respond to notification prompt (granted)", async (assert) => { assert.verifySteps(["confirmation_granted_toast"]); }); +QUnit.test("no 'OdooBot has a request' in mobile app", async (assert) => { + patchBrowserNotification("default"); + // simulate Android Odoo App + patchWithCleanup(browser.navigator, { + userAgent: "Chrome/0.0.0 Android (OdooMobile; Linux; Android 13; Odoo TestSuite)", + }); + await start(); + assert.containsNone($, ".o-mail-MessagingMenu-counter"); + await click(".o_menu_systray i[aria-label='Messages']"); + assert.containsNone($, ".o-mail-NotificationItem"); +}); + QUnit.test("Is closed after clicking on new message", async (assert) => { await start(); await click(".o_menu_systray i[aria-label='Messages']");