Replaces the Material 3 screens with the Noo design system: warm neutrals, one violet accent, pill controls, Schibsted Grotesk/ Instrument Sans, Lucide icons, no gradients/shadows. - New lib/widgets/noo/ component kit (core, lists, files, media, nav, overlays) plus lib/theme/design_tokens.dart for the color/type/space/ radius/motion tokens. - Rebuilt the app shell (top/bottom bars, drawer, desktop sidebar and toolbar), every tab (Files/Offline, Photos, Favorites, Recent, Activity, Trash, Shares), Settings, the lock and login screens, the media viewer, search, the details/share sheets, and the share-upload and move/copy destination pickers. - Added a design canvas (linked from DESIGN_SYSTEM.md) covering the screens the spec didn't already describe, with matching Android and iOS chrome; wrote up the approved recipes into DESIGN_SYSTEM.md §4. - Removed now-dead legacy widgets (media_grid_tile, swipeable_item, sync_status_badge, selectable_thumbnail) and updated architecture.md/styling.md/standards.md to describe the new structure and component/testing conventions. - Added widget tests for the noo/ component kit. This is a UI-only rework: no provider/model/service behavior changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# Demo server for Play Store screenshots
|
|
|
|
`tool/screenshots.sh` takes the Play Store screenshots against a **throwaway
|
|
Nextcloud that only contains fake data**, so nothing real can appear in them.
|
|
This folder is that server:
|
|
|
|
- `docker-compose.yml` - a single Nextcloud container (SQLite, nothing
|
|
persisted; `docker compose down -v` wipes it).
|
|
- `seed.py` - creates the users and fills them with invented content: landscape
|
|
"photos" drawn with Pillow, tiny generated PDFs, made-up documents, favorites,
|
|
shares (to a second user and a public link), trash, a filler file for the
|
|
storage quota, and edits by a second user so the Activity feed has more than
|
|
one author. It ends by printing `APP_PASSWORD=...` - an app password for the
|
|
demo user, so the app can start logged in without the browser login step.
|
|
|
|
## Running it
|
|
|
|
Most of the time just run the whole pipeline from the repo root:
|
|
|
|
```bash
|
|
bash tool/screenshots.sh
|
|
```
|
|
|
|
(Git Bash is fine on Windows.) You need **Docker**, **Python 3**, **Flutter**
|
|
and an **Android SDK** (`ANDROID_HOME`). Pillow and `requests` are installed
|
|
into `tool/demo_server/.venv` automatically if your Python lacks them. The
|
|
script installs the emulator and a system image through `sdkmanager` on first
|
|
use. Options (`HEADLESS=1`, `DEMO_PORT`, `DEMO_HOST`, `KEEP_SERVER=1`,
|
|
`ANDROID_SERIAL`, ...) are documented at the top of the script.
|
|
|
|
To poke at the server yourself:
|
|
|
|
```bash
|
|
docker compose -f tool/demo_server/docker-compose.yml up -d
|
|
python3 tool/demo_server/seed.py # prints APP_PASSWORD=...
|
|
# browse http://localhost (Alex / alex-demo-pass, admin / demo-admin-password)
|
|
docker compose -f tool/demo_server/docker-compose.yml down -v
|
|
```
|
|
|
|
`python3 tool/demo_server/seed.py --generate-only DIR` writes the generated
|
|
files to `DIR` without any server - handy for previewing the fake content.
|
|
|
|
## Before you upload
|
|
|
|
Look at every image. The known places where real data could still show up:
|
|
the server address and username (sync header panel, Settings > Accounts), the
|
|
avatar initial, notification icons in the status bar, and anything left over
|
|
from a previously used emulator profile (the script always wipes its own).
|