tane/apps/app_seeds
vjrj fed0e8200e feat(sharing): make going online opt-in, and show what it unlocks
Tane dialled its four default relays at launch, before anyone had asked
for anything — an F-Droid reviewer spotted it, and they were right. The
seed book needs no network at all, so the app should not have one until
the person joins the sharing side.

- SocialSettings gains a three-state `sharingEnabled`. `null` means
  "never asked", which is what lets `migrateSharingEnabled` keep an
  existing install exactly as it was: anyone past the intro was on a
  build that connected at launch, so they keep messaging, device sync
  and offer alerts. A fresh install starts fully offline.
- bootstrap only starts the shared connection when sharing is on. The
  inbox/sync/plantaré/alert listeners are untouched: they react to a
  session, and none arrives.
- SharingSwitch is the single place that moves the stored choice, the
  live connection and the flag the UI listens to, so they cannot drift.
- Agreeing to the community rules is the opt-in — one consent surface,
  reached from the market or from the drawer's invitation.
- SocialConnection.start is now idempotent and gains stop(), so turning
  sharing off goes offline immediately instead of at the next launch.
- The social drawer entries stay visible but padlocked while sharing is
  off; tapping one explains what wakes up and offers to join. Hiding
  them would have kept the tool a secret. "Coming soon" is gone for
  good — everything it labelled is built.

Covered by tests for the migration in both directions, start/stop
lifecycle, the gate turning sharing on, the invitation, and the drawer
in all three states (no social layer / off / on).
2026-07-25 16:47:56 +02:00
..
android fix(fdroid): drop Google Play Core so the scanner accepts the APK; prep v0.1.15 2026-07-23 10:47:01 +02:00
assets feat(i18n): full RTL/CJK support — fonts, Japanese locale, directional fixes 2026-07-14 11:11:19 +02:00
drift_schemas perf(inventory): lazy list, photo thumbnails, indexes, debounced reload 2026-07-20 22:53:48 +02:00
fastlane perf(android): R8, bitmap downscaling, edge-to-edge; recover device compat; publish to production 2026-07-20 22:53:48 +02:00
fonts feat(ui): align inventory + detail with mockups (seed icons, green theme) 2026-07-08 00:14:43 +02:00
integration_test test(ui): scroll to the save button in the taller edit sheet; fix doc lint 2026-07-09 21:58:43 +02:00
ios feat(block2): 'use my location' — set the sharing area without typing a code 2026-07-10 10:25:44 +02:00
lib feat(sharing): make going online opt-in, and show what it unlocks 2026-07-25 16:47:56 +02:00
linux fix(linux): set GTK window icon from bundled app icon 2026-07-09 12:39:29 +02:00
test feat(sharing): make going online opt-in, and show what it unlocks 2026-07-25 16:47:56 +02:00
tool feat(store): branded feature graphic (1024x500) + 512 store icon 2026-07-16 02:49:06 +02:00
web fix(branding): rename remaining Tanemaki → Tane in platform metadata 2026-07-12 13:15:33 +02:00
windows fix(android): drop geolocator for a native LocationManager channel 2026-07-17 09:19:05 +02:00
.gitignore feat(release): automate store publishing (fastlane supply + GitLab CI) and F-Droid recipe 2026-07-16 02:42:47 +02:00
.metadata feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00
analysis_options.yaml feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
build.yaml feat(inventory): informal quantity scale (number + unit) + seed/plant lots 2026-07-08 10:51:02 +02:00
dart_test.yaml feat(web): tane.comunes.org landing + localized app screenshots 2026-07-15 02:21:42 +02:00
Gemfile feat(release): automate store publishing (fastlane supply + GitLab CI) and F-Droid recipe 2026-07-16 02:42:47 +02:00
pubspec.yaml fix(fdroid): drop Google Play Core so the scanner accepts the APK; prep v0.1.15 2026-07-23 10:47:01 +02:00
README.md feat(block1): inventory walking skeleton + first quick-add slice 2026-07-07 15:16:14 +02:00
slang.yaml feat(block1): variety detail + edit screen with reactive lots 2026-07-07 15:56:03 +02:00

tane

A new Flutter project.

Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.