chore: align with daily-notification-plugin 2.0.0 (org.timesafari namespace)
- Update Android manifest, Java imports, and capacitor.plugins.json to use org.timesafari.dailynotification (receivers, intent action, plugin classpath) - Update iOS Info.plist BGTaskSchedulerPermittedIdentifiers to org.timesafari.* - Bump @timesafari/daily-notification-plugin 1.3.3 → 2.0.0 (package-lock, Podfile.lock) - Update docs and test-notification-receiver.sh to reference new package/action names - Lockfile: minor bumps for @expo/cli, @expo/fingerprint, @expo/router-server, babel-preset-expo
This commit is contained in:
@@ -49,17 +49,17 @@
|
|||||||
<!-- DailyNotificationReceiver: Handles alarm-triggered notifications -->
|
<!-- DailyNotificationReceiver: Handles alarm-triggered notifications -->
|
||||||
<!-- Note: exported="true" allows AlarmManager to trigger this receiver -->
|
<!-- Note: exported="true" allows AlarmManager to trigger this receiver -->
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.timesafari.dailynotification.DailyNotificationReceiver"
|
android:name="org.timesafari.dailynotification.DailyNotificationReceiver"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="false">
|
android:exported="false">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.timesafari.daily.NOTIFICATION" />
|
<action android:name="org.timesafari.daily.NOTIFICATION" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
<!-- NotifyReceiver: Handles notification delivery -->
|
<!-- NotifyReceiver: Handles notification delivery -->
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.timesafari.dailynotification.NotifyReceiver"
|
android:name="org.timesafari.dailynotification.NotifyReceiver"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
/>
|
/>
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<!-- BootReceiver: reschedule daily notification after device restart.
|
<!-- BootReceiver: reschedule daily notification after device restart.
|
||||||
Two intent-filters: BOOT_COMPLETED has no Uri, so must not share a filter with <data scheme="package"/> or the boot broadcast never matches. -->
|
Two intent-filters: BOOT_COMPLETED has no Uri, so must not share a filter with <data scheme="package"/> or the boot broadcast never matches. -->
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.timesafari.dailynotification.BootReceiver"
|
android:name="org.timesafari.dailynotification.BootReceiver"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:directBootAware="true">
|
android:directBootAware="true">
|
||||||
|
|||||||
@@ -37,6 +37,6 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"pkg": "@timesafari/daily-notification-plugin",
|
"pkg": "@timesafari/daily-notification-plugin",
|
||||||
"classpath": "com.timesafari.dailynotification.DailyNotificationPlugin"
|
"classpath": "org.timesafari.dailynotification.DailyNotificationPlugin"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public class MainActivity extends BridgeActivity {
|
|||||||
|
|
||||||
// Register DailyNotification plugin
|
// Register DailyNotification plugin
|
||||||
// Plugin is written in Kotlin but compiles to Java-compatible bytecode
|
// Plugin is written in Kotlin but compiles to Java-compatible bytecode
|
||||||
registerPlugin(com.timesafari.dailynotification.DailyNotificationPlugin.class);
|
registerPlugin(org.timesafari.dailynotification.DailyNotificationPlugin.class);
|
||||||
|
|
||||||
// Initialize SQLite
|
// Initialize SQLite
|
||||||
//registerPlugin(SQLite.class);
|
//registerPlugin(SQLite.class);
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package app.timesafari;
|
|||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.timesafari.dailynotification.DailyNotificationPlugin;
|
import org.timesafari.dailynotification.DailyNotificationPlugin;
|
||||||
import com.timesafari.dailynotification.NativeNotificationContentFetcher;
|
import org.timesafari.dailynotification.NativeNotificationContentFetcher;
|
||||||
|
|
||||||
public class TimeSafariApplication extends Application {
|
public class TimeSafariApplication extends Application {
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import android.util.Log;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.timesafari.dailynotification.FetchContext;
|
import org.timesafari.dailynotification.FetchContext;
|
||||||
import com.timesafari.dailynotification.NativeNotificationContentFetcher;
|
import org.timesafari.dailynotification.NativeNotificationContentFetcher;
|
||||||
import com.timesafari.dailynotification.NotificationContent;
|
import org.timesafari.dailynotification.NotificationContent;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
### 2.2 (Optional) Add NotifyReceiver
|
### 2.2 (Optional) Add NotifyReceiver
|
||||||
|
|
||||||
- [ ] If the plugin’s Android integration expects **NotifyReceiver** for alarm-based delivery, add a `<receiver>` for `com.timesafari.dailynotification.NotifyReceiver` inside `<application>` (see test app manifest for exact declaration).
|
- [ ] If the plugin’s Android integration expects **NotifyReceiver** for alarm-based delivery, add a `<receiver>` for `org.timesafari.dailynotification.NotifyReceiver` inside `<application>` (see test app manifest for exact declaration).
|
||||||
|
|
||||||
### 2.3 (Optional) BootReceiver options
|
### 2.3 (Optional) BootReceiver options
|
||||||
|
|
||||||
|
|||||||
@@ -56,31 +56,31 @@ Alarms are being scheduled successfully and fire at the correct time, but the `D
|
|||||||
|
|
||||||
```xml
|
```xml
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.timesafari.dailynotification.DailyNotificationReceiver"
|
android:name="org.timesafari.dailynotification.DailyNotificationReceiver"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.timesafari.daily.NOTIFICATION" />
|
<action android:name="org.timesafari.daily.NOTIFICATION" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
```
|
```
|
||||||
|
|
||||||
- ✅ `exported="true"` is set (required for AlarmManager broadcasts)
|
- ✅ `exported="true"` is set (required for AlarmManager broadcasts)
|
||||||
- ✅ Intent action matches: `com.timesafari.daily.NOTIFICATION`
|
- ✅ Intent action matches: `org.timesafari.daily.NOTIFICATION`
|
||||||
- ✅ Receiver is inside `<application>` tag
|
- ✅ Receiver is inside `<application>` tag
|
||||||
|
|
||||||
### Alarm Scheduling Evidence
|
### Alarm Scheduling Evidence
|
||||||
|
|
||||||
From logs when scheduling (23:51:32):
|
From logs when scheduling (23:51:32):
|
||||||
```
|
```
|
||||||
I DNP-SCHEDULE: Scheduling OS alarm: variant=ALARM_CLOCK, action=com.timesafari.daily.NOTIFICATION, triggerTime=1770105300000, requestCode=44490, scheduleId=timesafari_daily_reminder
|
I DNP-SCHEDULE: Scheduling OS alarm: variant=ALARM_CLOCK, action=org.timesafari.daily.NOTIFICATION, triggerTime=1770105300000, requestCode=44490, scheduleId=timesafari_daily_reminder
|
||||||
I DNP-NOTIFY: Alarm clock scheduled (setAlarmClock): triggerAt=1770105300000, requestCode=44490
|
I DNP-NOTIFY: Alarm clock scheduled (setAlarmClock): triggerAt=1770105300000, requestCode=44490
|
||||||
```
|
```
|
||||||
|
|
||||||
From `dumpsys alarm` output:
|
From `dumpsys alarm` output:
|
||||||
```
|
```
|
||||||
RTC_WAKEUP #36: Alarm{7a8fb5e type 0 origWhen 1770148800000 whenElapsed 122488536 app.timesafari.app}
|
RTC_WAKEUP #36: Alarm{7a8fb5e type 0 origWhen 1770148800000 whenElapsed 122488536 app.timesafari.app}
|
||||||
tag=*walarm*:com.timesafari.daily.NOTIFICATION
|
tag=*walarm*:org.timesafari.daily.NOTIFICATION
|
||||||
type=RTC_WAKEUP origWhen=2026-02-03 12:00:00.000 window=0 exactAllowReason=policy_permission
|
type=RTC_WAKEUP origWhen=2026-02-03 12:00:00.000 window=0 exactAllowReason=policy_permission
|
||||||
operation=PendingIntent{6fce955: PendingIntentRecord{5856f6a app.timesafari.app broadcastIntent}}
|
operation=PendingIntent{6fce955: PendingIntentRecord{5856f6a app.timesafari.app broadcastIntent}}
|
||||||
```
|
```
|
||||||
@@ -94,12 +94,12 @@ RTC_WAKEUP #36: Alarm{7a8fb5e type 0 origWhen 1770148800000 whenElapsed 12248853
|
|||||||
### Manual Broadcast Test (Works)
|
### Manual Broadcast Test (Works)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
adb shell am broadcast -a com.timesafari.daily.NOTIFICATION -n app.timesafari.app/com.timesafari.dailynotification.DailyNotificationReceiver
|
adb shell am broadcast -a org.timesafari.daily.NOTIFICATION -n app.timesafari.app/org.timesafari.dailynotification.DailyNotificationReceiver
|
||||||
```
|
```
|
||||||
|
|
||||||
**Result**: ✅ Receiver triggered successfully
|
**Result**: ✅ Receiver triggered successfully
|
||||||
```
|
```
|
||||||
02-02 23:46:07.505 DailyNotificationReceiver D DN|RECEIVE_START action=com.timesafari.daily.NOTIFICATION
|
02-02 23:46:07.505 DailyNotificationReceiver D DN|RECEIVE_START action=org.timesafari.daily.NOTIFICATION
|
||||||
02-02 23:46:07.506 DailyNotificationReceiver W DN|RECEIVE_ERR missing_id
|
02-02 23:46:07.506 DailyNotificationReceiver W DN|RECEIVE_ERR missing_id
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ The PendingIntent may be created without explicitly specifying the component, ca
|
|||||||
**Expected Fix**: When creating the PendingIntent for AlarmManager, explicitly set the component:
|
**Expected Fix**: When creating the PendingIntent for AlarmManager, explicitly set the component:
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
val intent = Intent("com.timesafari.daily.NOTIFICATION").apply {
|
val intent = Intent("org.timesafari.daily.NOTIFICATION").apply {
|
||||||
setComponent(ComponentName(context, DailyNotificationReceiver::class.java))
|
setComponent(ComponentName(context, DailyNotificationReceiver::class.java))
|
||||||
putExtra("id", scheduleId) // Also fix missing_id issue
|
putExtra("id", scheduleId) // Also fix missing_id issue
|
||||||
}
|
}
|
||||||
@@ -222,7 +222,7 @@ intent.putExtra("scheduleId", scheduleId) // if receiver expects different key
|
|||||||
When an alarm fires:
|
When an alarm fires:
|
||||||
1. AlarmManager delivers the broadcast
|
1. AlarmManager delivers the broadcast
|
||||||
2. `DailyNotificationReceiver.onReceive()` is called
|
2. `DailyNotificationReceiver.onReceive()` is called
|
||||||
3. Log shows: `DN|RECEIVE_START action=com.timesafari.daily.NOTIFICATION`
|
3. Log shows: `DN|RECEIVE_START action=org.timesafari.daily.NOTIFICATION`
|
||||||
4. Receiver finds the ID in Intent extras (no `missing_id` error)
|
4. Receiver finds the ID in Intent extras (no `missing_id` error)
|
||||||
5. Notification is displayed
|
5. Notification is displayed
|
||||||
|
|
||||||
@@ -243,8 +243,8 @@ When an alarm fires:
|
|||||||
```bash
|
```bash
|
||||||
# This works - receiver is triggered
|
# This works - receiver is triggered
|
||||||
adb shell am broadcast \
|
adb shell am broadcast \
|
||||||
-a com.timesafari.daily.NOTIFICATION \
|
-a org.timesafari.daily.NOTIFICATION \
|
||||||
-n app.timesafari.app/com.timesafari.dailynotification.DailyNotificationReceiver \
|
-n app.timesafari.app/org.timesafari.dailynotification.DailyNotificationReceiver \
|
||||||
--es "id" "timesafari_daily_reminder"
|
--es "id" "timesafari_daily_reminder"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ error: method scheduleExactNotification in class NotifyReceiver cannot be applie
|
|||||||
```
|
```
|
||||||
|
|
||||||
**Affected files (in the plugin repo):**
|
**Affected files (in the plugin repo):**
|
||||||
- `android/src/main/java/com/timesafari/dailynotification/DailyNotificationReceiver.java`
|
- `android/src/main/java/org/timesafari/dailynotification/DailyNotificationReceiver.java`
|
||||||
- `android/src/main/java/com/timesafari/dailynotification/DailyNotificationWorker.java`
|
- `android/src/main/java/org/timesafari/dailynotification/DailyNotificationWorker.java`
|
||||||
|
|
||||||
## Current Kotlin signature (NotifyReceiver.kt)
|
## Current Kotlin signature (NotifyReceiver.kt)
|
||||||
|
|
||||||
@@ -40,27 +40,27 @@ In both Java files, add the **8th argument** to every call to `NotifyReceiver.sc
|
|||||||
|
|
||||||
**Current call:**
|
**Current call:**
|
||||||
```java
|
```java
|
||||||
com.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
org.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
||||||
context,
|
context,
|
||||||
nextScheduledTime,
|
nextScheduledTime,
|
||||||
config,
|
config,
|
||||||
false, // isStaticReminder
|
false, // isStaticReminder
|
||||||
null, // reminderId
|
null, // reminderId
|
||||||
scheduleId,
|
scheduleId,
|
||||||
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE
|
org.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
**Fixed call (add 8th argument):**
|
**Fixed call (add 8th argument):**
|
||||||
```java
|
```java
|
||||||
com.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
org.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
||||||
context,
|
context,
|
||||||
nextScheduledTime,
|
nextScheduledTime,
|
||||||
config,
|
config,
|
||||||
false, // isStaticReminder
|
false, // isStaticReminder
|
||||||
null, // reminderId
|
null, // reminderId
|
||||||
scheduleId,
|
scheduleId,
|
||||||
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE,
|
org.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE,
|
||||||
false // skipPendingIntentIdempotence – rollover path does not skip
|
false // skipPendingIntentIdempotence – rollover path does not skip
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
@@ -71,27 +71,27 @@ com.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
|||||||
|
|
||||||
**Current call:**
|
**Current call:**
|
||||||
```java
|
```java
|
||||||
com.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
org.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
||||||
getApplicationContext(),
|
getApplicationContext(),
|
||||||
nextScheduledTime,
|
nextScheduledTime,
|
||||||
config,
|
config,
|
||||||
false, // isStaticReminder
|
false, // isStaticReminder
|
||||||
null, // reminderId
|
null, // reminderId
|
||||||
scheduleId,
|
scheduleId,
|
||||||
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE
|
org.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
**Fixed call (add 8th argument):**
|
**Fixed call (add 8th argument):**
|
||||||
```java
|
```java
|
||||||
com.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
org.timesafari.dailynotification.NotifyReceiver.scheduleExactNotification(
|
||||||
getApplicationContext(),
|
getApplicationContext(),
|
||||||
nextScheduledTime,
|
nextScheduledTime,
|
||||||
config,
|
config,
|
||||||
false, // isStaticReminder
|
false, // isStaticReminder
|
||||||
null, // reminderId
|
null, // reminderId
|
||||||
scheduleId,
|
scheduleId,
|
||||||
com.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE,
|
org.timesafari.dailynotification.ScheduleSource.ROLLOVER_ON_FIRE,
|
||||||
false // skipPendingIntentIdempotence – rollover path does not skip
|
false // skipPendingIntentIdempotence – rollover path does not skip
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ So boot recovery does **not** replace the alarm; the existing PendingIntent is k
|
|||||||
**When the notification fires (after reboot):**
|
**When the notification fires (after reboot):**
|
||||||
|
|
||||||
```
|
```
|
||||||
02-23 16:32:00.601 D/DailyNotificationReceiver: DN|RECEIVE_START action=com.timesafari.daily.NOTIFICATION
|
02-23 16:32:00.601 D/DailyNotificationReceiver: DN|RECEIVE_START action=org.timesafari.daily.NOTIFICATION
|
||||||
02-23 16:32:00.650 D/DailyNotificationReceiver: DN|WORK_ENQUEUE display=notify_1771835520000 work_name=display_notify_1771835520000
|
02-23 16:32:00.650 D/DailyNotificationReceiver: DN|WORK_ENQUEUE display=notify_1771835520000 work_name=display_notify_1771835520000
|
||||||
02-23 16:32:00.847 D/DailyNotificationWorker: DN|WORK_START id=notify_1771835520000 action=display ...
|
02-23 16:32:00.847 D/DailyNotificationWorker: DN|WORK_START id=notify_1771835520000 action=display ...
|
||||||
02-23 16:32:00.912 D/DailyNotificationWorker: DN|DISPLAY_START id=notify_1771835520000
|
02-23 16:32:00.912 D/DailyNotificationWorker: DN|DISPLAY_START id=notify_1771835520000
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ Logcat from a real test (schedule set, device restarted shortly after, app not l
|
|||||||
|
|
||||||
**At scheduled time (19:00:00):**
|
**At scheduled time (19:00:00):**
|
||||||
```
|
```
|
||||||
02-24 19:00:00 ... DailyNotificationReceiver: DN|RECEIVE_START action=com.timesafari.daily.NOTIFICATION
|
02-24 19:00:00 ... DailyNotificationReceiver: DN|RECEIVE_START action=org.timesafari.daily.NOTIFICATION
|
||||||
02-24 19:00:00 ... DailyNotificationWorker: DN|DISPLAY_NOTIF_OK ...
|
02-24 19:00:00 ... DailyNotificationWorker: DN|DISPLAY_NOTIF_OK ...
|
||||||
02-24 19:00:01 ... DN|ROLLOVER next=1772017200000 scheduleId=daily_rollover_1771930801007 ...
|
02-24 19:00:01 ... DN|ROLLOVER next=1772017200000 scheduleId=daily_rollover_1771930801007 ...
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -65,10 +65,10 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>com.timesafari.dailynotification.fetch</string>
|
<string>org.timesafari.dailynotification.fetch</string>
|
||||||
<string>com.timesafari.dailynotification.notify</string>
|
<string>org.timesafari.dailynotification.notify</string>
|
||||||
<string>com.timesafari.dailynotification.content-fetch</string>
|
<string>org.timesafari.dailynotification.content-fetch</string>
|
||||||
<string>com.timesafari.dailynotification.notification-delivery</string>
|
<string>org.timesafari.dailynotification.notification-delivery</string>
|
||||||
</array>
|
</array>
|
||||||
<key>NSUserNotificationAlertStyle</key>
|
<key>NSUserNotificationAlertStyle</key>
|
||||||
<string>alert</string>
|
<string>alert</string>
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ PODS:
|
|||||||
- SQLCipher/common (4.9.0)
|
- SQLCipher/common (4.9.0)
|
||||||
- SQLCipher/standard (4.9.0):
|
- SQLCipher/standard (4.9.0):
|
||||||
- SQLCipher/common
|
- SQLCipher/common
|
||||||
- TimesafariDailyNotificationPlugin (1.3.1):
|
- TimesafariDailyNotificationPlugin (2.0.0):
|
||||||
- Capacitor
|
- Capacitor
|
||||||
- ZIPFoundation (0.9.19)
|
- ZIPFoundation (0.9.19)
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ SPEC CHECKSUMS:
|
|||||||
nanopb: 438bc412db1928dac798aa6fd75726007be04262
|
nanopb: 438bc412db1928dac798aa6fd75726007be04262
|
||||||
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
SQLCipher: 31878d8ebd27e5c96db0b7cb695c96e9f8ad77da
|
SQLCipher: 31878d8ebd27e5c96db0b7cb695c96e9f8ad77da
|
||||||
TimesafariDailyNotificationPlugin: 1027e97c6d47178ed20a8d3f01cf462f42ba8f1e
|
TimesafariDailyNotificationPlugin: 3c12e8c39fc27f689f56cf4e57230a8c28611fcc
|
||||||
ZIPFoundation: b8c29ea7ae353b309bc810586181fd073cb3312c
|
ZIPFoundation: b8c29ea7ae353b309bc810586181fd073cb3312c
|
||||||
|
|
||||||
PODFILE CHECKSUM: 6d92bfa46c6c2d31d19b8c0c38f56a8ae9fd222f
|
PODFILE CHECKSUM: 6d92bfa46c6c2d31d19b8c0c38f56a8ae9fd222f
|
||||||
|
|||||||
32
package-lock.json
generated
32
package-lock.json
generated
@@ -4637,9 +4637,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@expo/cli": {
|
"node_modules/@expo/cli": {
|
||||||
"version": "55.0.15",
|
"version": "55.0.16",
|
||||||
"resolved": "https://registry.npmjs.org/@expo/cli/-/cli-55.0.15.tgz",
|
"resolved": "https://registry.npmjs.org/@expo/cli/-/cli-55.0.16.tgz",
|
||||||
"integrity": "sha512-Qd4aF2+wT9LtdV7G/gULbx/t8FJ/OVtwuNkLcZt1XlosQ5XX/C/3ywZXYl+/bYcHUmuO1TBD3Fg05bNlmL6vrw==",
|
"integrity": "sha512-rp1mBnA5msGDPTfFuqVl+9RsJOtuA0cXsWSJpHdvsIxcSVg0oJyF/rgvrwsFrNQCLXzkMXm+o3CsY9iL1D/CDA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4658,7 +4658,7 @@
|
|||||||
"@expo/plist": "^0.5.2",
|
"@expo/plist": "^0.5.2",
|
||||||
"@expo/prebuild-config": "^55.0.8",
|
"@expo/prebuild-config": "^55.0.8",
|
||||||
"@expo/require-utils": "^55.0.2",
|
"@expo/require-utils": "^55.0.2",
|
||||||
"@expo/router-server": "^55.0.9",
|
"@expo/router-server": "^55.0.10",
|
||||||
"@expo/schema-utils": "^55.0.2",
|
"@expo/schema-utils": "^55.0.2",
|
||||||
"@expo/spawn-async": "^1.7.2",
|
"@expo/spawn-async": "^1.7.2",
|
||||||
"@expo/ws-tunnel": "^1.0.1",
|
"@expo/ws-tunnel": "^1.0.1",
|
||||||
@@ -5467,9 +5467,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@expo/fingerprint": {
|
"node_modules/@expo/fingerprint": {
|
||||||
"version": "0.16.5",
|
"version": "0.16.6",
|
||||||
"resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.16.5.tgz",
|
"resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.16.6.tgz",
|
||||||
"integrity": "sha512-mLrcymtgkW9IJ/G1e8MH1Xt2VIb1MOS86ePY0ePcnV3nVyJqm7gfa/AXD1Hk+eZXvf8XhioYz6QZaamBdEzR3A==",
|
"integrity": "sha512-nRITNbnu3RKSHPvKVehrSU4KG2VY9V8nvULOHBw98ukHCAU4bGrU5APvcblOkX3JAap+xEHsg/mZvqlvkLInmQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -6175,9 +6175,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@expo/router-server": {
|
"node_modules/@expo/router-server": {
|
||||||
"version": "55.0.9",
|
"version": "55.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@expo/router-server/-/router-server-55.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/@expo/router-server/-/router-server-55.0.10.tgz",
|
||||||
"integrity": "sha512-LcCFi+P1qfZOsw0DO4JwNKRxtWt4u2bjTYj0PUe4WVf9NVG/NfUetAXYRbBS6P+gupfM6SC+/bdzdqCWQh7j8g==",
|
"integrity": "sha512-NZQzHwkaedufNPayVfPxsZGEMngOD3gDvYx9lld4sitRexrKDx5sHmmNHi6IByGbmCb4jwLXub5sIyWh6z1xPQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -8685,8 +8685,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@timesafari/daily-notification-plugin": {
|
"node_modules/@timesafari/daily-notification-plugin": {
|
||||||
"version": "1.3.3",
|
"version": "2.0.0",
|
||||||
"resolved": "git+https://gitea.anomalistdesign.com/trent_larson/daily-notification-plugin.git#b8d9b6247d670929418b12e7135d8dd3c9684277",
|
"resolved": "git+https://gitea.anomalistdesign.com/trent_larson/daily-notification-plugin.git#ca6a75ded82eda036508947fa78e41a45656fac3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
@@ -11323,9 +11323,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/babel-preset-expo": {
|
"node_modules/babel-preset-expo": {
|
||||||
"version": "55.0.10",
|
"version": "55.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-55.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-55.0.11.tgz",
|
||||||
"integrity": "sha512-aRtW7qJKohGU2V0LUJ6IeP7py3+kVUo9zcc8+v1Kix8jGGuIvqvpo9S6W1Fmn9VFP2DBwkFDLiyzkCZS85urVA==",
|
"integrity": "sha512-ti8t4xufD6gUQQh+qY+b+VT/1zyA0n1PBnwOzCkPUyEDiIVBpaOixR+BzVH68hqu9mH2wDfzoFuGgv+2LfRdqw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -11356,7 +11356,7 @@
|
|||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@babel/runtime": "^7.20.0",
|
"@babel/runtime": "^7.20.0",
|
||||||
"expo": "*",
|
"expo": "*",
|
||||||
"expo-widgets": "^55.0.2",
|
"expo-widgets": "^55.0.4",
|
||||||
"react-refresh": ">=0.14.0 <1.0.0"
|
"react-refresh": ">=0.14.0 <1.0.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ echo ""
|
|||||||
|
|
||||||
# Get the package name
|
# Get the package name
|
||||||
PACKAGE_NAME="app.timesafari.app"
|
PACKAGE_NAME="app.timesafari.app"
|
||||||
INTENT_ACTION="com.timesafari.daily.NOTIFICATION"
|
INTENT_ACTION="org.timesafari.daily.NOTIFICATION"
|
||||||
|
|
||||||
echo "Package: $PACKAGE_NAME"
|
echo "Package: $PACKAGE_NAME"
|
||||||
echo "Intent Action: $INTENT_ACTION"
|
echo "Intent Action: $INTENT_ACTION"
|
||||||
@@ -89,11 +89,11 @@ fi
|
|||||||
|
|
||||||
# Test 1: Send broadcast intent to trigger receiver (without ID - simulates current bug)
|
# Test 1: Send broadcast intent to trigger receiver (without ID - simulates current bug)
|
||||||
echo "Test 1: Sending broadcast intent to DailyNotificationReceiver (without ID)..."
|
echo "Test 1: Sending broadcast intent to DailyNotificationReceiver (without ID)..."
|
||||||
"$ADB_CMD" shell am broadcast -a "$INTENT_ACTION" -n "$PACKAGE_NAME/com.timesafari.dailynotification.DailyNotificationReceiver"
|
"$ADB_CMD" shell am broadcast -a "$INTENT_ACTION" -n "$PACKAGE_NAME/org.timesafari.dailynotification.DailyNotificationReceiver"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Test 2: Sending broadcast intent WITH ID (to test if receiver works with ID)..."
|
echo "Test 2: Sending broadcast intent WITH ID (to test if receiver works with ID)..."
|
||||||
"$ADB_CMD" shell am broadcast -a "$INTENT_ACTION" -n "$PACKAGE_NAME/com.timesafari.dailynotification.DailyNotificationReceiver" --es "id" "timesafari_daily_reminder"
|
"$ADB_CMD" shell am broadcast -a "$INTENT_ACTION" -n "$PACKAGE_NAME/org.timesafari.dailynotification.DailyNotificationReceiver" --es "id" "timesafari_daily_reminder"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Check logcat for 'DN|RECEIVE_START' to see if receiver was triggered"
|
echo "Check logcat for 'DN|RECEIVE_START' to see if receiver was triggered"
|
||||||
|
|||||||
Reference in New Issue
Block a user