Commit graph

56 commits

Author SHA1 Message Date
Patrick Britton feed826e39 feat: show news card in thread screen, hide URL text when link preview is present 2026-02-09 16:39:17 -06:00
Patrick Britton 2dd1fe3ac2 fix: downgrade share_plus to v10.1.4 due to Android build errors with v12 2026-02-09 16:10:41 -06:00
Patrick Britton d43cf2de06 chore: update share_plus ^12.0.1, replace discontinued flutter_markdown with flutter_markdown_plus 2026-02-09 12:23:07 -06:00
Patrick Britton 5780f0ff75 feat: beacon tactical dashboard - dark map-first UI, DraggableScrollableSheet, severity pins, 'I see this too' verification, incident categories 2026-02-09 10:43:34 -06:00
Patrick Britton d6204db5c4 fix: prevent setState after pop with _popped guard, remove snackbar from compose to prevent scaffold corruption on Android 2026-02-08 14:58:53 -06:00
Patrick Britton e03442f789 fix: reset focus after compose pop to prevent web freeze, show snackbar before pop, skip animation replay on thread reload 2026-02-08 14:48:44 -06:00
Patrick Britton 46bf51a6c4 feat: compose URL preview, truncated URLs in post body, sync link preview fetch 2026-02-08 14:20:38 -06:00
Patrick Britton 9a9b2eb887 feat: admin content tools UI - create user form + import posts/quips/beacons via links or CSV 2026-02-08 09:52:19 -06:00
Patrick Britton b51c9ba90b feat: email notifications for deactivate/delete, typed confirmations, chat backup manager, provider invalidation on logout 2026-02-07 23:39:51 -06:00
Patrick Britton bc35eea69b feat: add NSFW self-labeling toggle in compose, blur setting in user preferences, improve signup date pickers with modal sheets
- Add `isNsfw` checkbox to compose screen for user self-labeling
- Add `nsfwBlurEnabled` setting to UserSettings model (default true)
- Replace signup month/year dropdowns with modal bottom sheet pickers
- Preload Noto Color Emoji font on app startup
- Refactor notifications/discover screens to use FullScreenShell component
2026-02-07 18:15:54 -06:00
Patrick Britton f48274706a fix: cast birthYear subtraction to int to fix build error 2026-02-07 12:07:04 -06:00
Patrick Britton 6e8cc5d802 fix: remove anonymous label from beacons, just omit author info entirely 2026-02-07 12:04:41 -06:00
Patrick Britton 67f74deb58 feat: anonymous beacons, video metadata stripping, remove beacon author exposure
- GetNearbyBeacons no longer returns author info (anonymous placeholder)
- Beacons excluded from profile posts (GetPostsByAuthor)
- Vouch/report notifications removed for beacon privacy
- MediaHandler strips all metadata (EXIF/GPS/device) via ffmpeg before R2 upload
- Flutter beacon UI shows 'Anonymous Beacon' instead of author info
2026-02-07 12:02:47 -06:00
Patrick Britton ecc02e10cc feat: implement account deactivation, deletion (14-day), and immediate destroy with email confirmation 2026-02-07 11:13:11 -06:00
Patrick Britton b10595f252 Age gating: birth month/year in registration, under-16 login block, under-18 NSFW block 2026-02-06 20:56:00 -06:00
Patrick Britton 256592379a NSFW content system: blur overlay, user toggle, AI tri-state (clean/nsfw/flag), feed filtering 2026-02-06 20:42:23 -06:00
Patrick Britton 7c52a1a1ed AI moderation config: OpenRouter integration, admin console page, 10s quip limit 2026-02-06 19:48:36 -06:00
Patrick Britton 9d7aa46a0d Fix bracket mismatch in notifications_screen.dart 2026-02-06 16:15:03 -06:00
Patrick Britton 72264c3044 NotificationsScreen + DiscoverScreen: match Thread screen AppBar (back, home/search/chat actions, full-page push) 2026-02-06 16:12:12 -06:00
Patrick Britton 8d52e34647 DiscoverScreen: match Thread screen AppBar (back, title, home/chat actions) 2026-02-06 16:04:49 -06:00
Patrick Britton b8bd45c0f9 NotificationsScreen: match Thread screen AppBar (back, title, home/chat actions, tab bar) 2026-02-06 16:03:50 -06:00
Patrick Britton 858d57b5b2 Keep original bottom nav, navigate search/notifications inside shell with Threads-style top bar 2026-02-06 16:00:07 -06:00
Patrick Britton 8623596903 Revert "Threads-style nav: Home, Search, +, Activity (heart+badge), Profile as bottom nav tabs"
This reverts commit 7f81923b3e.
2026-02-06 15:58:58 -06:00
Patrick Britton 7f81923b3e Threads-style nav: Home, Search, +, Activity (heart+badge), Profile as bottom nav tabs 2026-02-06 15:57:16 -06:00
Patrick Britton 863ddfe654 Revert "Fix: Search and Notifications render inside shell (bottom nav stays visible), remove duplicate nav"
This reverts commit d3aa09424e.
2026-02-06 15:55:33 -06:00
Patrick Britton d3aa09424e Fix: Search and Notifications render inside shell (bottom nav stays visible), remove duplicate nav 2026-02-06 15:51:59 -06:00
Patrick Britton c9add58b8b Revert "Threads-style nav: move Search and Activity into bottom nav tabs, remove duplicate nav from NotificationsScreen"
This reverts commit 1376802f76.
2026-02-06 15:50:38 -06:00
Patrick Britton 1376802f76 Threads-style nav: move Search and Activity into bottom nav tabs, remove duplicate nav from NotificationsScreen 2026-02-06 15:49:46 -06:00
Patrick Britton 8186e9e71c Fix notifications: add archived_at to model/queries, archived tab returns only archived, add bottom nav to notifications screen 2026-02-06 14:30:18 -06:00
Patrick Britton 46566f394b Clean up: fix run scripts, remove 190+ debug print statements from 22 files, keep only FCM debugPrints for active notification work 2026-02-06 14:13:03 -06:00
Patrick Britton b14e1fbfa3 Fix notification badge: archive marks as read; change notifications to full page 2026-02-06 13:04:36 -06:00
Patrick Britton b5002c1ce4 Replace blocked content popup with Instagram-style inline banner 2026-02-06 11:53:32 -06:00
Patrick Britton f6c4bb88e0 Add layered content moderation: hard blocklist + strike system + client-side filter 2026-02-06 11:46:30 -06:00
Patrick Britton 0954c1e2a3 feat: add Turnstile to login, improve email templates, and security cleanup
- Add Cloudflare Turnstile verification to login flow
- Add API_BASE_URL and APP_BASE_URL to config for environment flexibility
- Redesign verification and password reset emails with modern HTML templates
- Use config URLs instead of hardcoded domains in auth handlers
- Remove sensitive logging from OTK operations for security
- Delete unused deployment and draft inspection scripts
- Add TURNSTILE_SITE_KEY to Flutter run
2026-02-06 08:51:34 -06:00
Patrick Britton 33ea9b1d56 feat: notify archive instead of delete, fix api domain failsafe 2026-02-04 19:38:02 -06:00
Patrick Britton 0f6a91e319 feat: implement traditional threaded quips (comments) sheet with rich text post body and expand functionality. 2026-02-04 18:44:20 -06:00
Patrick Britton c635da552d Implement robust notification deep linking
- Create SecureChatLoaderScreen for linking to conversations by ID
- Add /secure-chat/:id route to AppRoutes
- Update NotificationService to use AppRoutes.router for all navigation
- Fix Follow and Post navigation routes in NotificationService
- Decouple notification handling from manual Navigator pushes
2026-02-04 17:42:37 -06:00
Patrick Britton 69358b016f Fix compilation errors in followers/following and privacy screens
- Fix FollowersFollowingScreen: correct imports, AppTheme references, SignedMediaImage param
- Fix profile_screen.dart: move _navigateToConnections to _ProfileScreenState, pass callback to _ProfileHeader
- Fix profile_settings_screen.dart: update property names (isPrivate, defaultVisibility)
2026-02-04 17:21:08 -06:00
Patrick Britton adeffe691e Add followers/following screen and comprehensive privacy settings
Features:
- Create FollowersFollowingScreen with tabs for followers/following lists
- Make follower/following counts tappable on profile to navigate to connections
- Create comprehensive PrivacySettingsScreen with sections for:
  - Account privacy (private account toggle)
  - Post visibility defaults
  - Interaction controls (who can message/comment)
  - Discovery settings (search visibility)
  - Circle (close friends) management placeholder
  - Data export and blocked users
- Update ProfilePrivacySettings model with additional fields
- Connect to new backend API endpoints
2026-02-04 16:46:20 -06:00
Patrick Britton 92d8920183 Fix 413 Request Entity Too Large and refine image display aesthetics 2026-02-04 13:32:46 -06:00
Patrick Britton 3f3e228e8a feat: Add comprehensive notification system including model, UI, and service integration, alongside new deployment documentation. 2026-02-04 12:17:58 -06:00
Patrick Britton f77bd72c57 feat: Implement comprehensive reaction display widget, add numerous new screens, services, models, documentation, and configuration files. 2026-02-04 10:57:00 -06:00
Patrick Britton 002f960142 Update terminology, fix search feed, and deploy updates 2026-02-03 21:44:08 -06:00
Patrick Britton 10ae2944d2 feat: Initialize Sojorn Flutter application with core UI, services, E2EE, backup, and build scripts for various platforms. 2026-02-03 17:13:28 -06:00
Patrick Britton a1d47f8e95 Add reaction system and security improvements 2026-02-01 16:06:12 -06:00
Patrick Britton 2d5323a310 Remove 'Dashboard View' text and implement 3-per-row grid layout
- Remove unnecessary 'Dashboard View' badge from header
- Replace vertical list with GridView (3 columns)
- Update reply cards for compact grid layout:
  - Smaller avatars (24x24) with initials
  - More compact text sizes and spacing
  - Reduced padding and margins
  - Simplified reactions display (just count)
  - Shorter 'View' button instead of 'View Thread'
- Adjust childAspectRatio for better card proportions
- Faster staggered animations (50ms vs 100ms)
- Scale animation instead of slide for grid items
2026-02-01 13:53:58 -06:00
Patrick Britton ad11183ddc Fix timeago import error in threaded conversation screen 2026-02-01 13:44:41 -06:00
Patrick Britton c281a224d3 Redesign threaded conversation layout with dashboard-style reply chains
- Add top padding to anchor zone for better spacing
- Move reactions into stage actions to match main post width
- Left-align interaction buttons (reply, like, save)
- Create dashboard-style reply chains with:
  - Header showing reply count and 'Dashboard View' badge
  - Individual reply cards with menu buttons
  - 'View Thread' action buttons
  - Consistent width matching main post
  - Subtle shadows and borders for depth
- Add staggered animations for reply items
- Improve visual hierarchy and spacing throughout
2026-02-01 13:44:14 -06:00
Patrick Britton 904996a14e Redesign previous chain (anchor zone) in threaded conversation
- Edit correct file: threaded_conversation_screen.dart _buildAnchorZone method
- Implement rounded top corners with flat bottom
- Add gradient from darker navy top to transparent bottom
- Add prominent top border for visual separation
- Remove spacing between anchor zone and stage zone
- Add 'Previous chain' label and enhanced styling
- Update arrow icon with background container
2026-02-01 13:39:12 -06:00
Patrick Britton 681b5b85f9 Add debug logging to _persistReaction to track API response data 2026-02-01 13:13:08 -06:00