Skip to content

feat: forward TimelinePin reminders to the timeline emulator#258

Open
kchinnasamy wants to merge 1 commit into
coredevices:masterfrom
kchinnasamy:feat/pk2-reminder-bridge-core
Open

feat: forward TimelinePin reminders to the timeline emulator#258
kchinnasamy wants to merge 1 commit into
coredevices:masterfrom
kchinnasamy:feat/pk2-reminder-bridge-core

Conversation

@kchinnasamy

@kchinnasamy kchinnasamy commented Jun 18, 2026

Copy link
Copy Markdown

Summary

PebbleKit2 1.2.0 added an optional reminders list to TimelinePin
(pebble-dev/PebbleKitAndroid2#14),
but PebbleSenderReceiver.toPinJson() dropped the field when converting to
TimelinePinJson — so a reminder attached to a PebbleKit2 pin never reached
RemoteTimelineEmulator, and the watch never buzzed.

This maps reminders through (each TimelineReminderTimelineReminderJson,
reusing a small shared TimelineLayout.toLayoutJson() helper) and bumps
pebblekit2 1.1.0 → 1.2.0 so the new field is on the classpath.
RemoteTimelineEmulator.insertPin already reads pin.reminders and inserts the
matching reminder rows, so nothing changes there.

Why

A TimelinePin inserted via PebbleKit2's insertTimelinePin is otherwise
silent — there's no way for a third-party app (e.g. a companion that schedules
reminders) to make the watch buzz at the pin's time. This closes that gap on the
host side.

Notes

  • The pebblekit2 bump is in the root version catalog, so it applies app-wide.
    1.2.0 is backward compatible — it only adds the optional reminders field.
  • Same change as feat: forward TimelinePin reminders to the timeline emulator matejdro/libpebble3#4 (microPebble lineage), where
    :libpebble3:compileDebugKotlinAndroid is green. The patch is identical and
    the touched libpebble3 source is shared, so this is verified on that side.

Test plan

  • End-to-end: third-party PebbleKit2 app inserts a pin carrying a reminder → watch buzzes at reminder time

Backward compatible: pins without reminders serialize exactly as before
(reminders is omitted when empty).

PebbleKit2 1.2.0 adds an optional reminders list to TimelinePin, but
PebbleSenderReceiver.toPinJson() dropped it when building TimelinePinJson,
so a third-party PebbleKit2 pin could never carry a reminder buzz. Map the
field through (reusing a shared TimelineLayout.toLayoutJson() helper) and
bump pebblekit2 1.1.0 -> 1.2.0 for the new field. RemoteTimelineEmulator
already reads pin.reminders and inserts the matching BlobDatabase.Reminder.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant