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']");