summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt
diff options
context:
space:
mode:
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
- }
}