ayushya 0abea46b1c Fix sheet peek for async content, and rework several screens' details
showNooSheet's peek detection previously measured content once, right
after the first frame - Details' Versions/Activity tabs fetch their
data asynchronously, so that one-shot measurement only ever saw the
initial loading-spinner height, never the eventual (often long) list,
and the sheet still snapped to full height once data arrived. Replaced
it with a ScrollMetricsNotification-based check that keeps content
capped at the peek height from frame one and upgrades to a draggable
sheet whenever it actually overflows that cap, however and whenever
that happens - fixed for good this time, with a regression test that
mirrors the async-load shape.

Also, in the same pass:
- Upload/Move/Copy's bottom bar meta line now always reads as a count
  ("Uploading 3 items"), never a filename for the single-item case,
  and is centered rather than left-aligned - matches the approved
  design and removes a bespoke marquee/chip implementation that only
  Upload had.
- Upload/Move/Copy now show the same FilesControlsRow (sort, filter,
  List/Grid) Files itself uses, including a folder-grid rendering
  path for when List/Grid is set to grid.
- Files' filter chip reads "Filters" instead of "All types" when idle.
- Trash's overflow button - whose only action is "Delete forever" -
  is now a direct delete icon (mobile) / "Delete" danger pill
  (desktop) instead of a generic "..." menu that hid a single action
  behind an extra tap.
- The media viewer's floating chrome (top bar, bottom action bar,
  video transport row) now follows the app's light/dark theme instead
  of a fixed dark panel - a dark panel read as out of place over a
  light-theme stage. Panel tint and icon/text colors come from the
  theme's own surface/fg1 tokens (at a higher blur opacity to stay
  legible over arbitrary photo/video brightness), and the edge scrim
  gradients fade toward the panel's own tint instead of a fixed black.
  Mirrored the same change into the design canvas's Main.dc.html/
  MainAndroid.dc.html mockups (now with a theme prop) so they match.
2026-09-28 19:26:18 -04:00
2026-09-21 19:22:32 -04:00
2026-09-26 01:51:58 -04:00
2026-09-26 01:51:58 -04:00
2026-09-15 11:54:26 -04:00

Noo

A fast, native Nextcloud client built with Flutter and Material You.

Noo gives you a clean, modern way to browse and manage the files on your own Nextcloud server — files, photos, shares, activity, and trash, all in one app, themed to match your device.

Features

  • Files — browse, upload, move, rename, delete, and favorite files and folders; sort and filter per folder
  • Photos — a dedicated media gallery with a full-screen viewer for images and video
  • Activity — a feed of what's changed on your server
  • Shares — see and manage what you've shared and what's shared with you
  • Trash — restore or permanently delete recently removed items
  • Material You theming — dynamic color on supported devices, five built-in accent colors, light/dark/AMOLED
  • Secure sign-in — authenticates via Nextcloud's Login Flow v2: you sign in through your browser, and Noo never sees or stores your password, only a scoped app token

Screenshots

Coming soon.

Getting started

Prerequisites:

  • Flutter (SDK ^3.12.2)
  • A Nextcloud server with Login Flow v2 enabled (on by default since Nextcloud 15)
flutter pub get
flutter run

On first launch, enter your server's address — Noo opens your browser to finish signing in.

Supported platforms

Android, iOS, and Windows.

Building

flutter build apk       # Android
flutter build ios       # iOS
flutter build windows   # Windows

Tech stack

Flutter with Material 3, provider for state management, and http/dio talking directly to Nextcloud's WebDAV and OCS APIs — no bundled Nextcloud SDK.

Contributing

Project context for contributors (human or AI) lives in CLAUDE.md and .claude/context/ — architecture, the server integration, styling conventions, and code standards.

flutter test      # run tests
flutter analyze   # static analysis / lints

License

Not yet licensed for redistribution — license TBD.

S
Description
No description provided
Readme
4.5 MiB
RC-iOS-1
Latest
2026-10-05 23:01:44 -04:00
Languages
Dart 77.1%
Kotlin 8.1%
HTML 7.5%
JavaScript 4.8%
C++ 1.5%
Other 0.9%