fix(android): Java call sites for scheduleExactNotification need 8th parameter

Add skipPendingIntentIdempotence (false) to NotifyReceiver.scheduleExactNotification
calls in DailyNotificationReceiver.java and DailyNotificationWorker.java so
consuming apps compile. Rollover paths do not skip idempotence.

- DailyNotificationReceiver: scheduleNextNotification() — add 8th arg false
- DailyNotificationWorker: scheduleNextNotification() — add 8th arg false
- Bump version to 1.1.3 (package.json, CHANGELOG, native/TS refs)
This commit is contained in:
Jose Olarte III
2026-02-13 19:51:49 +08:00
parent 7702bd3b81
commit a62f54b8a8
12 changed files with 23 additions and 15 deletions

View File

@@ -5,6 +5,12 @@ All notable changes to the Daily Notification Plugin will be documented in this
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.1.3] - 2026-02-13
### Fixed
- **Android (Java)**: Java call sites for `NotifyReceiver.scheduleExactNotification()` now pass the 8th parameter `skipPendingIntentIdempotence`, fixing "actual and formal argument lists differ in length" when building consuming apps. Updated `DailyNotificationReceiver.java` and `DailyNotificationWorker.java`.
## [1.1.2] - 2026-02-13
### Fixed

View File

@@ -1,7 +1,7 @@
# Daily Notification Plugin
**Author**: Matthew Raymer
**Version**: 1.1.2 (see `package.json` for source of truth)
**Version**: 1.1.3 (see `package.json` for source of truth)
**Created**: 2025-09-22 09:22:32 UTC
**Last Updated**: 2025-12-23 UTC

View File

@@ -445,7 +445,8 @@ public class DailyNotificationReceiver extends BroadcastReceiver {
false, // isStaticReminder
null, // reminderId
scheduleId,
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE,
false // skipPendingIntentIdempotence rollover path does not skip
);
Log.i(TAG, "Next notification scheduled via centralized function: scheduleId=" + scheduleId);

View File

@@ -588,7 +588,8 @@ public class DailyNotificationWorker extends Worker {
false, // isStaticReminder
null, // reminderId
scheduleId,
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE,
false // skipPendingIntentIdempotence rollover path does not skip
);
// Log next scheduled time in readable format

View File

@@ -17,7 +17,7 @@ import org.json.JSONObject
* Implements exponential backoff and network constraints
*
* @author Matthew Raymer
* @version 1.1.2
* @version 1.1.3
*/
class FetchWorker(
appContext: Context,
@@ -205,7 +205,7 @@ class FetchWorker(
val entity = com.timesafari.dailynotification.entities.NotificationContentEntity(
notificationId,
"1.1.2", // Plugin version
"1.1.3", // Plugin version
null, // timesafariDid - can be set if available
"daily",
title,
@@ -301,7 +301,7 @@ class FetchWorker(
"timestamp": ${System.currentTimeMillis()},
"content": "Daily notification content",
"source": "mock_generator",
"version": "1.1.2"
"version": "1.1.3"
}
""".trimIndent()
return mockData.toByteArray()

View File

@@ -21,7 +21,7 @@ import kotlinx.coroutines.runBlocking
* Implements TTL-at-fire logic and notification delivery
*
* @author Matthew Raymer
* @version 1.1.2
* @version 1.1.3
*/
/**
* Source of schedule request - tracks which code path triggered scheduling
@@ -246,7 +246,7 @@ class NotifyReceiver : BroadcastReceiver() {
val roomStorage = com.timesafari.dailynotification.storage.DailyNotificationStorageRoom(context)
val entity = com.timesafari.dailynotification.entities.NotificationContentEntity(
notificationId,
"1.1.2", // Plugin version
"1.1.3", // Plugin version
null, // timesafariDid - can be set if available
"daily",
config.title,

View File

@@ -247,7 +247,7 @@ class ReactivationManager(private val context: Context) {
// Create new notification content entry for missed alarm
val notification = com.timesafari.dailynotification.entities.NotificationContentEntity(
notificationId,
"1.1.2", // Plugin version
"1.1.3", // Plugin version
null, // timesafariDid
"daily", // notificationType
"Daily Notification",
@@ -1014,7 +1014,7 @@ class ReactivationManager(private val context: Context) {
// Create new notification content entry for missed alarm
val notification = com.timesafari.dailynotification.entities.NotificationContentEntity(
notificationId,
"1.1.2", // Plugin version
"1.1.3", // Plugin version
null, // timesafariDid
"daily", // notificationType
"Daily Notification",

View File

@@ -52,7 +52,7 @@ public class DailyNotificationStorageRoom {
private final ExecutorService executorService;
// Plugin version for migration tracking
private static final String PLUGIN_VERSION = "1.1.2";
private static final String PLUGIN_VERSION = "1.1.3";
/**
* Constructor

View File

@@ -1,6 +1,6 @@
{
"name": "@timesafari/daily-notification-plugin",
"version": "1.1.2",
"version": "1.1.3",
"description": "TimeSafari Daily Notification Plugin - Enterprise-grade daily notification functionality with dual scheduling, callback support, TTL-at-fire logic, and comprehensive observability across Mobile (Capacitor) and Desktop (Electron) platforms",
"main": "dist/plugin.js",
"module": "dist/esm/index.js",

View File

@@ -5,7 +5,7 @@
* Aligned with Android implementation and test requirements
*
* @author Matthew Raymer
* @version 1.1.2 (see package.json for source of truth)
* @version 1.1.3 (see package.json for source of truth)
*/
// Import SPI types from content-fetcher.ts

View File

@@ -3,7 +3,7 @@
* Provides structured logging, event codes, and health monitoring
*
* @author Matthew Raymer
* @version 1.1.2
* @version 1.1.3
*/
import {

View File

@@ -7,7 +7,7 @@
* This implementation provides clear error messages for all methods.
*
* @author Matthew Raymer
* @version 1.1.2
* @version 1.1.3
*/
import type {