diff --git a/changelog.d/double-notifications.fix b/changelog.d/double-notifications.fix
new file mode 100644
index 000000000..24e08c0ff
--- /dev/null
+++ b/changelog.d/double-notifications.fix
@@ -0,0 +1 @@
+Fix native notifications appearing as many times as there are open tabs. Clicking on notification will focus last focused tab.
diff --git a/changelog.d/focus-clear.add b/changelog.d/focus-clear.add
new file mode 100644
index 000000000..70f54ab69
--- /dev/null
+++ b/changelog.d/focus-clear.add
@@ -0,0 +1 @@
+Focusing into a tab clears all current desktop notifications
diff --git a/changelog.d/mobile-chrome-notifs.fix b/changelog.d/mobile-chrome-notifs.fix
new file mode 100644
index 000000000..7db10c56a
--- /dev/null
+++ b/changelog.d/mobile-chrome-notifs.fix
@@ -0,0 +1 @@
+Fixed error that appeared on mobile Chrome(ium) (and derivatives) when native notifications are allowed
diff --git a/changelog.d/mobile-drawer-notifications.change b/changelog.d/mobile-drawer-notifications.change
new file mode 100644
index 000000000..9353c709d
--- /dev/null
+++ b/changelog.d/mobile-drawer-notifications.change
@@ -0,0 +1 @@
+Added option to not mark all notifications when closing notifications drawer on mobile, this creates a new button to mark all as seen.
diff --git a/changelog.d/more-notification-types-setting.fix b/changelog.d/more-notification-types-setting.fix
new file mode 100644
index 000000000..2d71b5993
--- /dev/null
+++ b/changelog.d/more-notification-types-setting.fix
@@ -0,0 +1 @@
+Fixed being unable to set notification visibility for reports and follow requests
diff --git a/changelog.d/native-filtering.add b/changelog.d/native-filtering.add
new file mode 100644
index 000000000..82ab9a23a
--- /dev/null
+++ b/changelog.d/native-filtering.add
@@ -0,0 +1 @@
+Added option to toggle what notification types appear in native notifications, by default less important ones (likes, repeats, etc) will no longer show up in native notifications.
diff --git a/changelog.d/native-notifications.add b/changelog.d/native-notifications.add
new file mode 100644
index 000000000..d896e7c04
--- /dev/null
+++ b/changelog.d/native-notifications.add
@@ -0,0 +1 @@
+Native notifications now also have "badge" property that matches instance's favicon (visible in Android Chromium at least)
diff --git a/changelog.d/noninteractive-ignore-read.add b/changelog.d/noninteractive-ignore-read.add
new file mode 100644
index 000000000..5e8710cf0
--- /dev/null
+++ b/changelog.d/noninteractive-ignore-read.add
@@ -0,0 +1 @@
+Added option to treat non-interactive notifications (likes, repeats et all) as seen for visual purposes (no read mark, ignored in counters, still can show in native notifications)
diff --git a/changelog.d/notification-read.add b/changelog.d/notification-read.add
new file mode 100644
index 000000000..e5027a954
--- /dev/null
+++ b/changelog.d/notification-read.add
@@ -0,0 +1 @@
+Interacting (opening reply box etc) or simply clicking on non-interactive notifications now marks them as read. Clicking on native notifications for non-interactive ones also marks them as seen.
diff --git a/changelog.d/notifications-sorting.change b/changelog.d/notifications-sorting.change
new file mode 100644
index 000000000..3a6162441
--- /dev/null
+++ b/changelog.d/notifications-sorting.change
@@ -0,0 +1 @@
+Notifications are no longer sorted by "seen" status since interacting with them can change their read status and makes UI jumpy. Old behavior can be restored in settings.
diff --git a/changelog.d/serviceworkers.change b/changelog.d/serviceworkers.change
new file mode 100644
index 000000000..b3b64f6d8
--- /dev/null
+++ b/changelog.d/serviceworkers.change
@@ -0,0 +1 @@
+Notifications are now shown through a serviceworker (since mobile chrome does not allow them otherwise), it's always enabled, even if previously we only enabled it for WebPush notifications only. If you don't like websites "running" while closed, check how to disable them in your browser. Old way to show notifications will be used as a fallback but might not have all the new features.
diff --git a/src/components/mobile_nav/mobile_nav.js b/src/components/mobile_nav/mobile_nav.js
index b53251160..0cd679904 100644
--- a/src/components/mobile_nav/mobile_nav.js
+++ b/src/components/mobile_nav/mobile_nav.js
@@ -14,7 +14,8 @@ import {
faBell,
faBars,
faArrowUp,
- faMinus
+ faMinus,
+ faCheckDouble
} from '@fortawesome/free-solid-svg-icons'
library.add(
@@ -22,7 +23,8 @@ library.add(
faBell,
faBars,
faArrowUp,
- faMinus
+ faMinus,
+ faCheckDouble
)
const MobileNav = {
@@ -67,6 +69,9 @@ const MobileNav = {
shouldConfirmLogout () {
return this.$store.getters.mergedConfig.modalOnLogout
},
+ closingDrawerMarksAsSeen () {
+ return this.$store.getters.mergedConfig.closingDrawerMarksAsSeen
+ },
...mapGetters(['unreadChatCount'])
},
methods: {
@@ -81,7 +86,7 @@ const MobileNav = {
// make sure to mark notifs seen only when the notifs were open and not
// from close-calls.
this.notificationsOpen = false
- if (markRead) {
+ if (markRead && this.closingDrawerMarksAsSeen) {
this.markNotificationsAsSeen()
}
}
@@ -117,7 +122,6 @@ const MobileNav = {
this.hideConfirmLogout()
},
markNotificationsAsSeen () {
- // this.$refs.notifications.markAsSeen()
this.$store.dispatch('markNotificationsAsSeen')
},
onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {
diff --git a/src/components/mobile_nav/mobile_nav.vue b/src/components/mobile_nav/mobile_nav.vue
index c2746abee..ecd8290a0 100644
--- a/src/components/mobile_nav/mobile_nav.vue
+++ b/src/components/mobile_nav/mobile_nav.vue
@@ -66,6 +66,17 @@
/>
+