mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-23 08:27:30 +00:00
Ignore unknown fields in push V2 json
This commit is contained in:
commit
e124d442ef
@ -10,6 +10,7 @@ import com.goterl.lazysodium.utils.Key
|
|||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonBuilder
|
||||||
import org.session.libsession.messaging.jobs.BatchMessageReceiveJob
|
import org.session.libsession.messaging.jobs.BatchMessageReceiveJob
|
||||||
import org.session.libsession.messaging.jobs.JobQueue
|
import org.session.libsession.messaging.jobs.JobQueue
|
||||||
import org.session.libsession.messaging.jobs.MessageReceiveParameters
|
import org.session.libsession.messaging.jobs.MessageReceiveParameters
|
||||||
@ -28,6 +29,7 @@ private const val TAG = "PushHandler"
|
|||||||
|
|
||||||
class PushReceiver @Inject constructor(@ApplicationContext val context: Context) {
|
class PushReceiver @Inject constructor(@ApplicationContext val context: Context) {
|
||||||
private val sodium = LazySodiumAndroid(SodiumAndroid())
|
private val sodium = LazySodiumAndroid(SodiumAndroid())
|
||||||
|
private val json = Json { ignoreUnknownKeys = true }
|
||||||
|
|
||||||
fun onPush(dataMap: Map<String, String>?) {
|
fun onPush(dataMap: Map<String, String>?) {
|
||||||
onPush(dataMap?.asByteArray())
|
onPush(dataMap?.asByteArray())
|
||||||
@ -89,7 +91,7 @@ class PushReceiver @Inject constructor(@ApplicationContext val context: Context)
|
|||||||
?: error("Failed to decode bencoded list from payload")
|
?: error("Failed to decode bencoded list from payload")
|
||||||
|
|
||||||
val metadataJson = (expectedList[0] as? BencodeString)?.value ?: error("no metadata")
|
val metadataJson = (expectedList[0] as? BencodeString)?.value ?: error("no metadata")
|
||||||
val metadata: PushNotificationMetadata = Json.decodeFromString(String(metadataJson))
|
val metadata: PushNotificationMetadata = json.decodeFromString(String(metadataJson))
|
||||||
|
|
||||||
return (expectedList.getOrNull(1) as? BencodeString)?.value.also {
|
return (expectedList.getOrNull(1) as? BencodeString)?.value.also {
|
||||||
// null content is valid only if we got a "data_too_long" flag
|
// null content is valid only if we got a "data_too_long" flag
|
||||||
|
Loading…
x
Reference in New Issue
Block a user