Skip to content

About

An Android app for "Sky: Children of the Light" players that tracks the shard eruptions schedule, and sends timely reminders for them.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Sky Shard Countdown

An Android app for Sky: Children of the Light that tracks the daily shard eruption schedule, sends timely reminders, and lets you customise your launcher icon with a coloured cape.

Based on the incredible webapp by Plutoy.


Features

Shard tracking

  • Shows the next shard with colour (Red / Black), realm, location, and a live countdown to when it lands
  • Displays the current phase: Upcoming → Erupting (started, not yet visible) → Active (visible in-game)
  • Lists upcoming occurrences for the next few days with day-group headers

Skip / tick

  • Tap Skip on any shard day to mark it as done or missed
  • The UI, scheduled reminders, and persistent notification all update immediately
  • Skips are remembered between sessions and cleared automatically the next day

Notifications

  • Reminders: alerts 1 hour and 5 minutes before each shard lands (respects skips)
  • Persistent notification: always-visible status showing the next non-skipped shard, updated live
  • Large icon in expanded notifications: red cape for Red shards, white cape for Black shards

Customisable launcher icon

  • Choose from 12 cape colours in Settings — the launcher icon changes instantly
  • Icons use the Android adaptive icon system (circle, squircle, etc. depending on your launcher)

Boot-on-start

  • Optional: keep notifications current even after a device restart by enabling "Start on boot" in Settings

Schedule logic

The shard schedule repeats on a fixed cycle determined by the day-of-month in the America/Los_Angeles timezone:

  • Colour: odd day → Red, even day → Black
  • Realm: (day − 1) mod 5 → Prairie → Forest → Valley → Wasteland → Vault (repeating)
  • Group: determines map location, occurrence timing, and which weekdays have no shard
  • Occurrences: 3 per day — Red shards every 6 hours, Black shards every 8 hours

No live data or internet connection is required. Remote event overrides are not included.


Project structure

lib/
  shard_calculator.dart     Schedule logic (Dart port of sky-shards TypeScript)
  home_screen.dart          Main UI — hero card, list, skip/undo
  notification_service.dart Reminders, persistent notification, skip persistence
  settings_screen.dart      Cape picker, notification toggles
  main.dart                 App entry + Workmanager background dispatcher

android/app/src/main/
  kotlin/.../MainActivity.kt     Icon switching (PackageManager)
  kotlin/.../BootReceiver.kt     Boot-completed receiver → Workmanager
  res/mipmap-anydpi-v26/         Adaptive icon XMLs (one per cape colour)
  res/drawable-{density}/        Adaptive foreground PNGs (transparent background)
  res/mipmap-{density}/          Legacy launcher PNGs (API < 26 fallback)

assets/cape_icons/          12 source cape PNGs (1024×1024, used in-app and for icon generation)

test/
  shard_calculator_test.dart   Unit tests for schedule logic
  skip_persistence_test.dart   Unit tests for skip save/load/prune

Building

Requires Flutter (tested with Flutter 3.x / Dart 3.11). Clone the repo then:

# Get dependencies
flutter pub get

# Run unit tests
flutter test

# Run on a connected device / emulator
flutter run

# Build a release APK
flutter build apk --release --build-number="$(date +%Y%m%d%H)"
# → build/app/outputs/flutter-apk/app-release.apk

Acknowledgements

Schedule logic ported from sky-shards by PlutoyDev.

About

An Android app for "Sky: Children of the Light" players that tracks the shard eruptions schedule, and sends timely reminders for them.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages