Initial commit: EventTracker desktop app + Android companion
Desktop: GTK3 + matplotlib app tracking arbitrary events (button -> timestamp -> CSV), with per-event stats, trend charts, settings (rename/add events, relocate data file), and a reset-with-backup flow. Portable desktop launcher via a .desktop.in template + install script, no machine-specific paths baked in. Android: minimal Kivy v1 companion reading/writing the same CSV format, plus buildozer build tooling isolated in a venv and a local p4a recipe override for kivy (see CLAUDE.md for why). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
commit
cd9f9456e9
17 changed files with 1722 additions and 0 deletions
37
android/buildozer.spec
Normal file
37
android/buildozer.spec
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
[app]
|
||||
title = Event Tracker
|
||||
package.name = eventtracker
|
||||
package.domain = net.tastech
|
||||
|
||||
source.dir = .
|
||||
source.include_exts = py
|
||||
version = 0.1
|
||||
|
||||
requirements = python3,kivy
|
||||
|
||||
# Upstream p4a's kivy recipe declares python_depends on requests/certifi/
|
||||
# chardet/idna/urllib3/filetype — kivy.network.UrlRequest extras we never
|
||||
# call. p4a-recipes/kivy is a copy of that recipe with python_depends
|
||||
# emptied out. It's not just cleanup: requests pulls in charset-normalizer,
|
||||
# whose newest release ships an Android-tagged wheel; p4a's dependency
|
||||
# resolver pins that exact wheel into requirements.txt, then installs it
|
||||
# with a plain host pip that has no idea it's an Android wheel, and the
|
||||
# build dies on "not a supported wheel on this platform". Dropping the
|
||||
# unused chain avoids the bug entirely instead of chasing version pins.
|
||||
p4a.local_recipes = p4a-recipes
|
||||
|
||||
orientation = portrait
|
||||
fullscreen = 0
|
||||
|
||||
# broad file access is required to reach whatever folder FolderSync/DAVx5
|
||||
# is syncing into — that folder is picked by the user at runtime (Settings),
|
||||
# not fixed at build time, so scoped storage APIs alone aren't enough
|
||||
android.permissions = READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE,MANAGE_EXTERNAL_STORAGE
|
||||
|
||||
android.api = 33
|
||||
android.minapi = 24
|
||||
android.archs = arm64-v8a
|
||||
|
||||
[buildozer]
|
||||
log_level = 2
|
||||
warn_on_root = 1
|
||||
Loading…
Reference in a new issue