ayushyaandClaude Sonnet 5 c18fc98dc3
Build APK / build (push) Successful in 5m32s
Refresh Files list automatically when an upload finishes
Uploads run entirely in ShareUploadService.kt, an Android foreground
service with no channel back to Dart once started - by design, so
closing the app mid-upload doesn't interrupt it. That meant
FilesController had no way to know a batch had finished, so a newly
uploaded file only appeared after a manual pull-to-refresh.

Adds a one-shot completion signal instead of a full stream: the
service publishes into a new UploadEventBus (in-process pub/sub,
mirroring SyncStatusBus) once a batch finishes with at least one
success, MainActivity forwards it to Dart over a new
dev.ayushya.noo/upload_service/status EventChannel, and
FilesController (subscribed in its own constructor, same pattern
OfflineController already uses for sync completion) calls
refreshData() when the event's destination folder matches
currentFolderPath. Covers both upload entry points (share-to-Noo and
Files' own "+" -> Upload file), since they already share the same
ShareUploadView/UploadService path.

Move/Copy needed no fix - ItemOperations already calls
files.invalidateCache() + refreshData() on success.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 13:09:08 -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%