Skip to content

v1.6.47 - Device Apps Browser and DM Notifications

Choose a tag to compare

@x1watt x1watt released this 22 Dec 01:17
· 1707 commits to main since this release

Release v1.6.47 - Device Apps Browser and DM Notifications

🎯 Major New Features

Device Apps Browser

New way to explore remote device content

When you click on a device in the Devices page, you now see available apps with public data instead of file collections.

Features:

  • 📱 Automatic app discovery via API queries
  • 📊 Shows item counts (Blog: 3 posts, Chat: 2 rooms, etc.)
  • 🔍 Supports Blog, Chat, Events, and Reports apps
  • 🌐 Multi-transport support (WiFi + Bluetooth simultaneously)

User Flow:

  1. Tap device → See available apps with counts
  2. Tap Blog app → Browse all published posts
  3. Tap post → Opens in browser via station proxy
  4. Tap Chat app → Browse public chat rooms
  5. Tap room → View messages with author/timestamp

Technical:

  • Uses ConnectionManager for automatic transport selection
  • Priority routing: LAN > WebRTC > Station > BLE+ > BLE
  • Automatic failover between WiFi and Bluetooth
  • Transport-agnostic communication

DM Push Notifications (Mobile)

Local push notifications for direct messages

Android and iOS devices now show push notifications when direct messages arrive, just like popular messaging apps.

Features:

  • 📬 Local notifications for incoming DMs
  • ✓ Verification badge for cryptographically signed messages
  • 🔇 Respects notification settings (sound, vibration, enable/disable)
  • 👆 Tap notification to open DM conversation
  • 📝 Smart message truncation (100 chars)

Smart Filtering:

  • Skips notifications for own messages
  • Skips notifications for synced messages
  • Only notifies for fresh incoming messages

🐛 Bug Fixes

Blog Footer Link Removed

  • Removed broken link to non-existent geogram.app
  • Footer now shows: "Posted via geogram | p2p.radio"

Blog HTML Proxy Fixed

  • Blog posts via p2p.radio station now work correctly
  • Fixed path format: /{callsign}/blog/{filename}.html
  • Applied to both CLI and GUI station modes
  • Verified working on p2p.radio production server

ProfileService Method Name

  • Fixed macOS/iOS build error
  • Changed getActiveProfile() → getProfile()

Android Core Library Desugaring

  • Enabled desugaring for flutter_local_notifications
  • Android builds now compile successfully

ConnectionManager Service

  • Fixed compilation error in device apps service
  • Uses DevicesService.makeDeviceApiRequest() correctly
  • Maintains multi-transport support

📦 New Dependencies

  • flutter_local_notifications: ^18.0.1 - Push notifications
  • desugar_jdk_libs: 2.0.4 - Android core library support

🏗️ Architecture

Multi-Transport Communication:

  • Device apps browser uses ConnectionManager
  • Automatic selection: LAN > WebRTC > Station > BLE+ > BLE
  • WiFi and Bluetooth work simultaneously
  • Automatic failover on transport failure

EventBus Integration:

  • DM notifications via DirectMessageReceivedEvent
  • New DMNotificationTappedEvent for navigation
  • Clean service/UI separation

🎯 Breaking Changes

Device Interaction:

  • Clicking devices now shows apps instead of file collections
  • Previous file collection view removed
  • New app-based navigation required

📝 Files Created

Device Apps Browser:

  • lib/services/device_apps_service.dart
  • lib/pages/device_detail_page.dart
  • lib/pages/remote_blog_browser_page.dart
  • lib/pages/remote_chat_browser_page.dart
  • lib/pages/remote_chat_room_page.dart

DM Notifications:

  • lib/services/dm_notification_service.dart

📝 Files Modified

Major Changes:

  • lib/pages/devices_browser_page.dart - Device apps navigation
  • lib/util/event_bus.dart - DMNotificationTappedEvent
  • lib/main.dart - Initialize DMNotificationService
  • lib/services/log_api_service.dart - Blog footer fix
  • lib/cli/pure_station.dart - Blog proxy fix (CLI)
  • lib/services/station_server_service.dart - Blog proxy fix (GUI)
  • android/app/build.gradle.kts - Core library desugaring
  • android/app/src/main/AndroidManifest.xml - POST_NOTIFICATIONS permission

🚀 Deployment

Server: p2p.radio running v1.6.47

  • Blog HTML proxy verified working
  • Station relay operational
  • WebSocket connections stable

✅ What's Working

  • ✅ Device apps discovery and browsing
  • ✅ Remote blog post viewing
  • ✅ Remote chat room message viewing
  • ✅ Blog HTML via station proxy
  • ✅ DM push notifications (pending mobile testing)
  • ✅ Multi-transport communication
  • ✅ All platform builds compiling

🧪 Testing Needed

  • DM push notifications on real Android/iOS devices
  • Device apps browser end-to-end flow
  • Blog post opening on mobile browsers
  • Chat message viewing from remote devices

Full Changelog: v1.6.43...v1.6.47
Release Date: 2025-12-22