Files
noo/lib/models/nextcloud_sharee.dart
T
ayushyaandClaude Sonnet 5 d68cc43368 Add Trash/Shares/Recent tabs, file sharing, Details sheet, and rebrand to Noo
Major additions since the initial rebuild:
- New tabs: Trash, Shares, Recent, configurable tab visibility/order/default
- Nextcloud sharing: search users/teams, internal link, email shares,
  public links, "others with access" - in its own Share bottom sheet
- Details bottom sheet (Info/Versions/Activity) with a persistent peek
  panel in the media viewer, reachable from selection, swipe, and the
  media viewer
- Files/Photos: tap-and-hold multi-select with a sticky selection toolbar,
  swipe actions (favorite/delete/share), sticky sort/filter controls,
  list/grid views, breadcrumb chips, whole-account Photos view
- Media viewer: pinch/double-tap zoom on images, predictive-back support,
  fixed PDF zoom-out floor
- Settings: Material You theming incl. AMOLED black, configurable bottom
  bar tabs, swipe actions, media seek bar style, and folder-listing cache
  policy (never/periodic/manual) to cut down on refetching
- Login flow moved to an in-app Chrome Custom Tab with retry-tolerant
  polling
- Replaced ad hoc widgets with native Material 3 equivalents (toggle
  IconButtons, SliverAppBar selection toolbar, SearchBar, drag handles)
- Rebrand: app renamed to Noo throughout, package id -> dev.ayushya.noo,
  new adaptive launcher icon

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 22:44:42 -04:00

31 lines
751 B
Dart

/// One result from a sharee search (`/ocs/.../sharees`) — a user or team
/// (group) that a file/folder can be shared with.
enum ShareeType { user, group, remote }
class NextcloudSharee {
final String shareWith;
final String label;
final ShareeType type;
final String? subtitle;
const NextcloudSharee({
required this.shareWith,
required this.label,
required this.type,
this.subtitle,
});
/// The numeric OCS `shareType` used when creating a share with this
/// sharee (0 = user, 1 = group, 6 = federated/remote).
int get shareTypeValue {
switch (type) {
case ShareeType.user:
return 0;
case ShareeType.group:
return 1;
case ShareeType.remote:
return 6;
}
}
}