aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-10-11 16:36:02 +0000
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-10-11 16:36:02 +0000
commit9666ac2127df25f7b9d761474e72b892e40a6af1 (patch)
tree7047816719c824c79c6d40371d7eb7b944ad6db0 /app/src/main/java/foundation/e/advancedprivacy/Notifications.kt
parent8b85d2b8ee8d5373dd0cd60bcf18290a8c854467 (diff)
parent95e68cbbe748f81af1113753c5b99929e3db9ea2 (diff)
downloadadvanced-privacy-9666ac2127df25f7b9d761474e72b892e40a6af1.tar.gz
Merge branch 'epic18-standalone_trackers_alone' into 'main'
epic18: Trackers control on standalone app (without Ipscrambling). See merge request e/os/advanced-privacy!147
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/Notifications.kt')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/Notifications.kt48
1 files changed, 17 insertions, 31 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt b/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt
index cd85e9a..455b1a7 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt
@@ -20,13 +20,21 @@ package foundation.e.advancedprivacy
import android.app.NotificationChannel
import android.app.NotificationManager
-import android.app.PendingIntent
import android.content.Context
import androidx.annotation.StringRes
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
+import foundation.e.advancedprivacy.core.utils.notificationBuilder
+import foundation.e.advancedprivacy.domain.entities.CHANNEL_FAKE_LOCATION_FLAG
+import foundation.e.advancedprivacy.domain.entities.CHANNEL_FIRST_BOOT
+import foundation.e.advancedprivacy.domain.entities.CHANNEL_IPSCRAMBLING_FLAG
+import foundation.e.advancedprivacy.domain.entities.CHANNEL_TRACKER_FLAG
import foundation.e.advancedprivacy.domain.entities.InternetPrivacyMode
import foundation.e.advancedprivacy.domain.entities.MainFeatures
+import foundation.e.advancedprivacy.domain.entities.NOTIFICATION_FAKE_LOCATION_FLAG
+import foundation.e.advancedprivacy.domain.entities.NOTIFICATION_FIRST_BOOT
+import foundation.e.advancedprivacy.domain.entities.NOTIFICATION_IPSCRAMBLING_FLAG
+import foundation.e.advancedprivacy.domain.entities.NotificationContent
import foundation.e.advancedprivacy.domain.usecases.GetQuickPrivacyStateUseCase
import foundation.e.advancedprivacy.externalinterfaces.permissions.IPermissionsPrivacyModule
import foundation.e.advancedprivacy.main.MainActivity
@@ -37,14 +45,6 @@ import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach
object Notifications {
- const val CHANNEL_FIRST_BOOT = "first_boot_notification"
- const val CHANNEL_FAKE_LOCATION_FLAG = "fake_location_flag"
- const val CHANNEL_IPSCRAMBLING_FLAG = "ipscrambling_flag"
-
- const val NOTIFICATION_FIRST_BOOT = 1000
- const val NOTIFICATION_FAKE_LOCATION_FLAG = NOTIFICATION_FIRST_BOOT + 1
- const val NOTIFICATION_IPSCRAMBLING_FLAG = NOTIFICATION_FAKE_LOCATION_FLAG + 1
-
fun showFirstBootNotification(context: Context) {
createNotificationFirstBootChannel(context)
val notificationBuilder: NotificationCompat.Builder = notificationBuilder(
@@ -88,6 +88,14 @@ object Notifications {
channelDescription = R.string.notifications_ipscrambling_channel_description
)
+ createNotificationFlagChannel(
+ context = appContext,
+ permissionsPrivacyModule = permissionsPrivacyModule,
+ channelId = CHANNEL_TRACKER_FLAG,
+ channelName = R.string.notifications_tracker_channel_name,
+ channelDescription = R.string.notifications_ipscrambling_channel_description
+ )
+
getQuickPrivacyStateUseCase.isLocationHidden.onEach {
if (it) {
showFlagNotification(appContext, MainFeatures.FAKE_LOCATION)
@@ -183,26 +191,4 @@ object Notifications {
}
NotificationManagerCompat.from(context).cancel(id)
}
-
- private data class NotificationContent(
- val channelId: String,
- val icon: Int,
- val title: Int,
- val description: Int,
- val pendingIntent: PendingIntent?
- )
-
- private fun notificationBuilder(
- context: Context,
- content: NotificationContent
- ): NotificationCompat.Builder {
- val builder = NotificationCompat.Builder(context, content.channelId)
- .setSmallIcon(content.icon)
- .setPriority(NotificationCompat.PRIORITY_LOW)
- .setContentTitle(context.getString(content.title))
- .setStyle(NotificationCompat.BigTextStyle().bigText(context.getString(content.description)))
- content.pendingIntent?.let { builder.setContentIntent(it) }
-
- return builder
- }
}