diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt
index 48eac48a2..e6437b167 100644
--- a/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt
+++ b/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt
@@ -133,6 +133,12 @@ class PreferencesRepository @Inject constructor(
R.bool.pref_default_notification_piggyback
)
+ val isNotificationPiggybackRemoveOriginalEnabled: Boolean
+ get() = getBoolean(
+ R.string.pref_key_notifications_piggyback_cancel_original,
+ R.bool.pref_default_notification_piggyback_cancel_original
+ )
+
val isDebugNotificationEnableKey = context.getString(R.string.pref_key_notification_debug)
val isDebugNotificationEnable: Boolean
get() = getBoolean(isDebugNotificationEnableKey, R.bool.pref_default_notification_debug)
diff --git a/app/src/main/java/io/github/wulkanowy/services/piggyback/VulcanNotificationListenerService.kt b/app/src/main/java/io/github/wulkanowy/services/piggyback/VulcanNotificationListenerService.kt
index c7df2dbc1..3c173495a 100644
--- a/app/src/main/java/io/github/wulkanowy/services/piggyback/VulcanNotificationListenerService.kt
+++ b/app/src/main/java/io/github/wulkanowy/services/piggyback/VulcanNotificationListenerService.kt
@@ -19,6 +19,9 @@ class VulcanNotificationListenerService : NotificationListenerService() {
override fun onNotificationPosted(statusBarNotification: StatusBarNotification?) {
if (statusBarNotification?.packageName == "pl.edu.vulcan.hebe" && preferenceRepository.isNotificationPiggybackEnabled) {
syncManager.startOneTimeSyncWorker()
+ if (preferenceRepository.isNotificationPiggybackRemoveOriginalEnabled) {
+ cancelNotification(statusBarNotification.key)
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/res/values/preferences_defaults.xml b/app/src/main/res/values/preferences_defaults.xml
index 7fb3d5c05..deeb36961 100644
--- a/app/src/main/res/values/preferences_defaults.xml
+++ b/app/src/main/res/values/preferences_defaults.xml
@@ -28,6 +28,7 @@
false
0
false
+ false
- LUCKY_NUMBER
- MESSAGES
diff --git a/app/src/main/res/values/preferences_keys.xml b/app/src/main/res/values/preferences_keys.xml
index fef062dd1..849d989ee 100644
--- a/app/src/main/res/values/preferences_keys.xml
+++ b/app/src/main/res/values/preferences_keys.xml
@@ -35,5 +35,6 @@
message_send_recipients
last_sync_date
notifications_piggyback
+ notifications_piggyback_cancel_original
single_ad_support
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dff5babfd..bdf2935bd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -672,7 +672,9 @@
Your device may have data synchronization issues and with notifications.\n\nTo fix them, you need to add Wulkanowy to the autostart and turn off battery optimization/saving in the phone settings.
Show debug notifications
Synchronization is disabled
+ Official app notifications
Capture official app notifications
+ Remove official app notifications after capture
Capture notifications
With this feature you can gain a substitute of push notifications like in the official app. All you need to do is allow Wulkanowy to receive all notifications in your system settings.\n\nHow it works?\nWhen you get a notification in Dziennik VULCAN, Wulkanowy will be notified (that\'s what these extra permissions are for) and will trigger a sync so that can send its own notification.\n\nFOR ADVANCED USERS ONLY
Upcoming lesson notifications
diff --git a/app/src/main/res/xml/scheme_preferences_notifications.xml b/app/src/main/res/xml/scheme_preferences_notifications.xml
index 442581bfd..0366914ac 100644
--- a/app/src/main/res/xml/scheme_preferences_notifications.xml
+++ b/app/src/main/res/xml/scheme_preferences_notifications.xml
@@ -16,9 +16,9 @@
app:title="@string/pref_notify_upcoming_lessons_switch" />
@@ -31,13 +31,24 @@
+ app:title="@string/pref_notify_notifications_piggyback_header">
+
+
+