Skip to content

Luuk0510/ShinyCounter

Repository files navigation

Shiny Counter

Pokémon shiny counter app in Flutter.

Features

  • Pokémon list (base + custom), dex-sorted; collapsible caught/uncaught sections; empty states and search/gen filters aligned across add/manage.
  • Manage Pokémon sheet: search by name/dex, gen filter, clear (X) shortcut, empty-state messaging, and per-Pokémon edit/delete actions.
  • Add Pokémon dialog: pick from dex list with search + gen filter, shiny-only sprite picker (skips mega/gmax), dex labels hide raw custom_* ids, clear (X) shortcut, and empty state.
  • Detail page: counter (+/-, manual), caught toggle, start/catch dates, game selection, shiny/normal sprite toggle (mega before gmax), and form-aware sprite paging.
  • Stats pages: overall stats (caught count, total counts), caught-by-game table with expand, recent catches list, and counts chart with date range + reset.
  • Game stats page: per-game caught list with counts and direct navigation to detail.
  • Android overlay mini-counter: show/share/close via CounterSyncService; can be pinned to lock position.
  • Themes: System/Light/Dark/OLED and Language: EN/NL — both persisted via SharedPreferences.
  • Persistence: counters, caught status, daily counts, custom list, theme, and language stored via SharedPreferences (KeyValueStore facade); overlay/list/detail stay in sync.
  • Sprite handling: precache helper, shiny/normal pairing, mega before gmax ordering for detail, and shared dex parsing/labels for consistent display.

Usage

  1. flutter pub get (installs dependencies listed in pubspec.yaml)
  2. flutter gen-l10n (generates localization files from lib/l10n/*.arb)
  3. flutter run (Run application)
  4. flutter test (Execute all tests)
  5. Coverage:
    • flutter test --coverage
    • dart run tools/lcov_viewer.dart coverage/lcov.info > coverage/coverage.html

Notes

  • Overlay requests “draw over other apps” permission on Android.
  • Pinning the overlay makes it non-draggable; unpin to drag again.
  • Dex display: UI shows #xxxx; custom entries still store as custom_<dex>_<suffix> to avoid collisions.
  • When no game is selected in detail, you see a dropdown; after selection it shows text and you can change it via the edit sheet.

About

Pokémon shiny counter flutter app

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published