From 2c8c99b8f0df409d7f905a86bbbe7280c1365a01 Mon Sep 17 00:00:00 2001 From: ostertun Date: Wed, 9 Dec 2020 13:53:17 +0100 Subject: [PATCH] v_1.11.4h1 notify_android_lost_subscription --- client/scripts/regatten.js.php | 21 ++++++++++++++++++++- server/version.php | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/client/scripts/regatten.js.php b/client/scripts/regatten.js.php index 7c1e856..01d0484 100644 --- a/client/scripts/regatten.js.php +++ b/client/scripts/regatten.js.php @@ -362,6 +362,7 @@ function pushesSubscribe() { log('[app] Subscription:', subscription); if (await pushesUpdateServerSubscription(subscription, true)) { log('[app] Subscription: Sent to server, updating UI'); + dbSettingsSet('notify_endpoint_' + BOATCLASS, subscription.endpoint); updatePushSwitches(); updatePushBadge(); } else { @@ -395,6 +396,7 @@ function pushesUnSubscribe(silent = false) { subscription.unsubscribe(); log('[app] Subscription: Updating UI'); $('#menu-pushes').hideMenu(); + dbSettingsSet('notify_endpoint_' + BOATCLASS, false); updatePushBadge(); hideLoader(); if (!silent) toastOk('Du erhältst ab sofort keine Benachrichtigungen mehr von uns.'); @@ -510,12 +512,29 @@ function updatePushBadge() { $('#badge-pushes').removeClass('bg-green2-dark').addClass('bg-red2-dark').text('BLOCKED'); return; } - swRegistration.pushManager.getSubscription().then(function(subscription) { + swRegistration.pushManager.getSubscription().then(async function(subscription) { + var dbSub = await dbSettingsGet('notify_endpoint_' + BOATCLASS); var isSub = (subscription !== null); + log('[app] DB Subscription:', dbSub); + log('[app] Real Subscription:', subscription); if (isSub) { $('#badge-pushes').removeClass('bg-red2-dark').addClass('bg-green2-dark').text('AN'); + if (dbSub === null) dbSettingsSet('notify_endpoint_' + BOATCLASS, subscription.endpoint); + else if (dbSub !== subscription.endpoint) { + if (navigator.onLine) { + log('[app] Updating subscription'); + pushesSubscribe(); + } + } } else { $('#badge-pushes').removeClass('bg-green2-dark').addClass('bg-red2-dark').text('AUS'); + if (dbSub === null) dbSettingsSet('notify_endpoint_' + BOATCLASS, false); + else if (dbSub !== false) { + if (navigator.onLine) { + log('[app] Re subscribe'); + pushesSubscribe(); + } + } } }); } diff --git a/server/version.php b/server/version.php index 4f6688f..5ede751 100644 --- a/server/version.php +++ b/server/version.php @@ -1,5 +1,5 @@