Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ object PreferencesKey {
const val NOTIFICATION_CONTENT_TEXT = "notificationContentText"
const val NOTIFICATION_CONTENT_ICON = "icon"
const val NOTIFICATION_CONTENT_BUTTONS = "buttons"
const val NOTIFICATION_LARGE_ICON_PATH = "notificationLargeIconPath"
const val NOTIFICATION_SUB_TEXT = "notificationSubText"
const val NOTIFICATION_USE_CUSTOM_LAYOUT = "notificationUseCustomLayout"
const val NOTIFICATION_TRACK_IMAGE_PATH = "notificationTrackImagePath"
const val NOTIFICATION_TEXT_ICON_NAME = "notificationTextIconName"
const val NOTIFICATION_EMPHASIS_TEXT = "notificationEmphasisText"
const val NOTIFICATION_PROGRESS = "notificationProgress"
const val NOTIFICATION_INITIAL_ROUTE = "initialRoute"
const val NOTIFICATION_SOUND = "notificationSound"
const val NOTIFICATION_VIBRATE_PATTERN = "notificationVibratePattern"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,14 @@ data class NotificationContent(
val buttons: List<NotificationButton>,
val initialRoute: String?,
val sound: String?,
val vibratePattern: String?
val vibratePattern: String?,
val largeIconPath: String?,
val subText: String?,
val useCustomLayout: Boolean,
val trackImagePath: String?,
val textIconName: String?,
val emphasisText: String?,
val progress: NotificationProgress?
) {
companion object {
fun getData(context: Context): NotificationContent {
Expand Down Expand Up @@ -44,14 +51,36 @@ data class NotificationContent(

val vibratePattern = prefs.getString(PrefsKey.NOTIFICATION_VIBRATE_PATTERN, null)

val largeIconPath = prefs.getString(PrefsKey.NOTIFICATION_LARGE_ICON_PATH, null)

val subText = prefs.getString(PrefsKey.NOTIFICATION_SUB_TEXT, null)

val useCustomLayout = prefs.getBoolean(PrefsKey.NOTIFICATION_USE_CUSTOM_LAYOUT, false)

val trackImagePath = prefs.getString(PrefsKey.NOTIFICATION_TRACK_IMAGE_PATH, null)

val textIconName = prefs.getString(PrefsKey.NOTIFICATION_TEXT_ICON_NAME, null)

val emphasisText = prefs.getString(PrefsKey.NOTIFICATION_EMPHASIS_TEXT, null)

val progressJsonString = prefs.getString(PrefsKey.NOTIFICATION_PROGRESS, null)
val progress = progressJsonString?.let(NotificationProgress::fromJsonString)

return NotificationContent(
title = title,
text = text,
icon = icon,
buttons = buttons,
initialRoute = initialRoute,
sound = sound,
vibratePattern = vibratePattern
vibratePattern = vibratePattern,
largeIconPath = largeIconPath,
subText = subText,
useCustomLayout = useCustomLayout,
trackImagePath = trackImagePath,
textIconName = textIconName,
emphasisText = emphasisText,
progress = progress
)
}

Expand Down Expand Up @@ -80,6 +109,21 @@ data class NotificationContent(

val vibratePattern = map?.get(PrefsKey.NOTIFICATION_VIBRATE_PATTERN) as? String

val largeIconPath = map?.get(PrefsKey.NOTIFICATION_LARGE_ICON_PATH) as? String

val subText = map?.get(PrefsKey.NOTIFICATION_SUB_TEXT) as? String

val useCustomLayout = map?.get(PrefsKey.NOTIFICATION_USE_CUSTOM_LAYOUT) as? Boolean ?: false

val trackImagePath = map?.get(PrefsKey.NOTIFICATION_TRACK_IMAGE_PATH) as? String

val textIconName = map?.get(PrefsKey.NOTIFICATION_TEXT_ICON_NAME) as? String

val emphasisText = map?.get(PrefsKey.NOTIFICATION_EMPHASIS_TEXT) as? String

val progressJson = map?.get(PrefsKey.NOTIFICATION_PROGRESS) as? Map<*, *>
val progressJsonString = progressJson?.let { JSONObject(it).toString() }

with(prefs.edit()) {
putString(PrefsKey.NOTIFICATION_CONTENT_TITLE, title)
putString(PrefsKey.NOTIFICATION_CONTENT_TEXT, text)
Expand All @@ -88,6 +132,13 @@ data class NotificationContent(
putString(PrefsKey.NOTIFICATION_INITIAL_ROUTE, initialRoute)
putString(PrefsKey.NOTIFICATION_SOUND, sound)
putString(PrefsKey.NOTIFICATION_VIBRATE_PATTERN, vibratePattern)
putString(PrefsKey.NOTIFICATION_LARGE_ICON_PATH, largeIconPath)
putString(PrefsKey.NOTIFICATION_SUB_TEXT, subText)
putBoolean(PrefsKey.NOTIFICATION_USE_CUSTOM_LAYOUT, useCustomLayout)
putString(PrefsKey.NOTIFICATION_TRACK_IMAGE_PATH, trackImagePath)
putString(PrefsKey.NOTIFICATION_TEXT_ICON_NAME, textIconName)
putString(PrefsKey.NOTIFICATION_EMPHASIS_TEXT, emphasisText)
putString(PrefsKey.NOTIFICATION_PROGRESS, progressJsonString)
commit()
}
}
Expand Down Expand Up @@ -117,14 +168,50 @@ data class NotificationContent(

val vibratePattern = map?.get(PrefsKey.NOTIFICATION_VIBRATE_PATTERN) as? String

val largeIconPath = map?.get(PrefsKey.NOTIFICATION_LARGE_ICON_PATH) as? String

val subText = map?.get(PrefsKey.NOTIFICATION_SUB_TEXT) as? String

val useCustomLayout = map?.get(PrefsKey.NOTIFICATION_USE_CUSTOM_LAYOUT) as? Boolean

val trackImagePath = map?.get(PrefsKey.NOTIFICATION_TRACK_IMAGE_PATH) as? String

val textIconName = map?.get(PrefsKey.NOTIFICATION_TEXT_ICON_NAME) as? String

val emphasisText = map?.get(PrefsKey.NOTIFICATION_EMPHASIS_TEXT) as? String

val progressJson = map?.get(PrefsKey.NOTIFICATION_PROGRESS) as? Map<*, *>
val progressJsonString = progressJson?.let { JSONObject(it).toString() }

with(prefs.edit()) {
title?.let { putString(PrefsKey.NOTIFICATION_CONTENT_TITLE, it) }
text?.let { putString(PrefsKey.NOTIFICATION_CONTENT_TEXT, it) }
iconJsonString?.let { putString(PrefsKey.NOTIFICATION_CONTENT_ICON, it) }
buttonsJsonString?.let { putString(PrefsKey.NOTIFICATION_CONTENT_BUTTONS, it) }
initialRoute?.let { putString(PrefsKey.NOTIFICATION_INITIAL_ROUTE, it) }
putString(PrefsKey.NOTIFICATION_SOUND, sound)
putString(PrefsKey.NOTIFICATION_VIBRATE_PATTERN, vibratePattern)
sound?.let { putString(PrefsKey.NOTIFICATION_SOUND, it) }
vibratePattern?.let {
putString(PrefsKey.NOTIFICATION_VIBRATE_PATTERN, it)
}
largeIconPath?.let {
putString(PrefsKey.NOTIFICATION_LARGE_ICON_PATH, it)
}
subText?.let { putString(PrefsKey.NOTIFICATION_SUB_TEXT, it) }
useCustomLayout?.let {
putBoolean(PrefsKey.NOTIFICATION_USE_CUSTOM_LAYOUT, it)
}
trackImagePath?.let {
putString(PrefsKey.NOTIFICATION_TRACK_IMAGE_PATH, it)
}
textIconName?.let {
putString(PrefsKey.NOTIFICATION_TEXT_ICON_NAME, it)
}
emphasisText?.let {
putString(PrefsKey.NOTIFICATION_EMPHASIS_TEXT, it)
}
progressJsonString?.let {
putString(PrefsKey.NOTIFICATION_PROGRESS, it)
}
commit()
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.pravera.flutter_foreground_task.models

import org.json.JSONObject

/// Barra de progresso exibida na notificação do serviço.
data class NotificationProgress(
val max: Int,
val current: Int,
val indeterminate: Boolean
) {
companion object {
fun fromJsonString(jsonString: String): NotificationProgress? {
return try {
fromJSONObject(JSONObject(jsonString))
} catch (e: Exception) {
null
}
}

fun fromJSONObject(jsonObj: JSONObject): NotificationProgress {
return NotificationProgress(
max = jsonObj.optInt("max", 0),
current = jsonObj.optInt("current", 0),
indeterminate = jsonObj.optBoolean("indeterminate", false)
)
}
}
}
Loading
Loading