Skip to main content

Overview

DashboardManager handles dashboard content and layouts across the system. It provides contextual information to users through various display modes, manages content from multiple apps, implements circular queue rotation for content cycling, and supports system-level dashboard updates. File: packages/cloud/src/services/dashboard/DashboardManager.ts

Key Features

  1. Multiple Display Modes: Main, Expanded, and Always-on dashboard modes
  2. Content Rotation: Circular queue for cycling through app content
  3. Head Gesture Support: Look-up gesture cycles through content
  4. System Content Management: Dedicated sections for system information
  5. App Content Integration: Apps can submit content for different modes
  6. Mode Authorization: Only system dashboard app can change modes
  7. Flexible Layouts: Supports various layout types for different contexts

Architecture

Dashboard Modes

Mode Types

Mode Characteristics

  1. Main Mode
    • Full dashboard experience
    • System info in all corners
    • Rotating app content
    • Head-up gesture support
  2. Expanded Mode
    • Minimal system info (single line)
    • More space for app content
    • Latest content displayed
  3. Always-on Mode
    • Persistent overlay
    • Essential info only
    • Minimal visual footprint

Content Management

Content Structure

Content Queues

Head Gesture Support

Head-up Handler

Circular Queue Implementation

Message Handling

Content Update

Mode Change

System Update

Layout Generation

Main Mode Layout

Expanded Mode Layout

Content Extraction

App Disconnection Handling

Display Integration

Configuration

Lifecycle Management

Disposal

Best Practices

  1. Respect mode authorization - Only system dashboard can change modes
  2. Handle content rotation carefully - Maintain index bounds
  3. Sort content by timestamp for consistent ordering
  4. Extract text properly from different layout types
  5. Clean up on app disconnect to prevent stale content
  6. Use appropriate layouts for each dashboard mode
  7. Log state transitions for debugging

Integration Points

  • DisplayManager: Sends display requests
  • AppManager: Validates app connections
  • WebSocket Service: Receives app messages
  • Head Tracking: Processes head-up gestures