From 1e3e77a44f133a9660aa21a020be6db63027f1fa Mon Sep 17 00:00:00 2001 From: coffeemakr <5737978+coffeemakr@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:17:55 +0200 Subject: [PATCH] fix(android): Pass channelId to Notification (175) --- .../ionic/backgroundrunner/plugin/api/Notification.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/capacitor-plugin/android/src/main/java/io/ionic/backgroundrunner/plugin/api/Notification.kt b/packages/capacitor-plugin/android/src/main/java/io/ionic/backgroundrunner/plugin/api/Notification.kt index 406e572d..a1a2af94 100644 --- a/packages/capacitor-plugin/android/src/main/java/io/ionic/backgroundrunner/plugin/api/Notification.kt +++ b/packages/capacitor-plugin/android/src/main/java/io/ionic/backgroundrunner/plugin/api/Notification.kt @@ -2,11 +2,20 @@ package io.ionic.backgroundrunner.plugin.api import android.annotation.SuppressLint import com.getcapacitor.plugin.util.AssetUtil +import org.json.JSONException import org.json.JSONObject import java.text.SimpleDateFormat import java.util.Date import java.util.TimeZone +/** Null when the key is missing or JSON null; any other non-string value is an error. */ +private fun JSONObject.getStringOrNull(name: String): String? = + when (val value = opt(name)) { + null, JSONObject.NULL -> null + is String -> value + else -> throw JSONException("$name must be a string") + } + @SuppressLint("SimpleDateFormat") class Notification(jsonObject: JSONObject) { var id: Int @@ -36,6 +45,7 @@ class Notification(jsonObject: JSONObject) { ongoing = jsonObject.optBoolean("ongoing", false) autoCancel = jsonObject.optBoolean("autoCancel", false) actionTypeId = jsonObject.optString("actionTypeId", null) + channelId = jsonObject.getStringOrNull("channelId") val scheduleDateString = jsonObject.optString("scheduleAt", "") if (scheduleDateString.isNotEmpty()) {