How inckie/anotherglass works
AnotherGlass is a phone companion and Google Glass client system. The phone starts a background host service; Glass connects over Wi-Fi (or Bluetooth on Explorer Edition), after which GPS, notifications, media state, and device status are exchanged, with Glass media controls sent back to the phone. Separate Glass applications implement Explorer and Enterprise experiences. The graph preserves the documented feature branches; some UI and transport wiring is inferred only from README descriptions, so those edges are dashed where source evidence was not sampled.
Main entry points: GlassService.kt Phone host service · HostService.java Explorer service · HostService.kt Enterprise service · MediaController.kt Media controller
Components 27
Phone companion
- Companion UI
mobile/src/main/java/com/damn/anotherglass/ui/mainscreen/MainScreen.kt - Service controller
mobile/src/main/java/com/damn/anotherglass/ui/mainscreen/ServiceController.kt - Phone host service
mobile/src/main/java/com/damn/anotherglass/core/GlassService.kt - GPS extension
mobile/src/main/java/com/damn/anotherglass/extensions/GPSExtension.kt - Media extension
mobile/src/main/java/com/damn/anotherglass/extensions/media/MediaExtension.kt - Notification listener
mobile/src/main/java/com/damn/anotherglass/extensions/notifications/NotificationService.kt - Notification extension
mobile/src/main/java/com/damn/anotherglass/extensions/notifications/NotificationExtension.kt
Glass clients
- Explorer service
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Bluetooth client
glass-xe/src/main/java/com/damn/anotherglass/glass/host/bluetooth/BluetoothClient.java - Enterprise service
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/HostService.kt - Tilt to wake
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/tiltawake/TiltToWakeService.kt
Shared protocol
- RPC messages
shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCMessage.java - Wi-Fi transport
glass-shared/src/main/java/com/damn/glass/shared/rpc/WiFiClient.kt - Location data
shared/src/main/java/com/damn/anotherglass/shared/gps/Location.java - Notification data
shared/src/main/java/com/damn/anotherglass/shared/notifications/NotificationData.java - Media state and commands
shared/src/main/java/com/damn/anotherglass/shared/media/MediaStateData.kt
Glass features
- Mock GPS
glass-shared/src/main/java/com/damn/glass/shared/gps/MockGPS.java - Media controller
glass-shared/src/main/java/com/damn/glass/shared/media/MediaController.kt - Notification controller
glass-shared/src/main/java/com/damn/glass/shared/notifications/NotificationController.kt - Media timeline card
glass-xe/src/main/java/com/damn/anotherglass/glass/host/media/MediaCardController.kt - Notification cards
glass-xe/src/main/java/com/damn/anotherglass/glass/host/notifications/NotificationsCardController.java - Enterprise media UI
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/ui/cards/MediaCard.kt - Enterprise notifications UI
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/NotificationNotifier.kt
Notification management
- Filter screens
mobile/src/main/java/com/damn/anotherglass/ui/notifications/filters/FilterListScreen.kt - History screens
mobile/src/main/java/com/damn/anotherglass/ui/notifications/history/NotificationHistoryScreen.kt - Filter and history
mobile/src/main/java/com/damn/anotherglass/extensions/notifications/filter/Filter.kt
Other components
- Phone user
Connections 34
- Phone user → Companion UI: configures
- Companion UI → Service controller: controls service
- Service controller → Phone host service: starts and binds
mobile/src/main/java/com/damn/anotherglass/ui/mainscreen/ServiceController.kt - Phone host service → GPS extension: starts and stops
mobile/src/main/java/com/damn/anotherglass/core/GlassService.kt - Phone host service → Media extension: starts and stops
mobile/src/main/java/com/damn/anotherglass/core/GlassService.kt - Phone host service → Notification extension: starts and stops
mobile/src/main/java/com/damn/anotherglass/core/GlassService.kt - Notification listener → Filter and history: records events
mobile/src/main/java/com/damn/anotherglass/extensions/notifications/NotificationService.kt - Filter screens → Filter and history: edits filters
- History screens → Filter and history: reads history
- Phone host service → Wi-Fi transport: uses transport
- Phone host service → RPC messages: sends messages
mobile/src/main/java/com/damn/anotherglass/core/GlassService.kt - Phone host service → Explorer service: serves Glass
- Phone host service → Enterprise service: serves Glass
- Explorer service → Bluetooth client: selects Bluetooth
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Explorer service → Wi-Fi transport: selects Wi-Fi
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Enterprise service → Wi-Fi transport: connects over Wi-Fi
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/HostService.kt - Explorer service → Mock GPS: publishes location
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Enterprise service → Mock GPS: publishes location
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/HostService.kt - Explorer service → Media timeline card: updates card
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Explorer service → Notification cards: updates cards
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Enterprise service → Enterprise media UI: shows media
- Enterprise service → Enterprise notifications UI: presents alerts
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/HostService.kt - Enterprise service → Tilt to wake: supports tilt wake
- Media extension → Media state and commands: exchanges state
- Media controller → Media state and commands: forwards commands
glass-shared/src/main/java/com/damn/glass/shared/media/MediaController.kt - Notification listener → Notification data: converts events
mobile/src/main/java/com/damn/anotherglass/extensions/notifications/NotificationService.kt - Notification controller → Notification data: tracks updates
glass-shared/src/main/java/com/damn/glass/shared/notifications/NotificationController.kt - Explorer service → Location data: receives location
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Enterprise service → Location data: receives location
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/HostService.kt - Phone host service → Location data: sends GPS
- Phone host service → Notification data: forwards notifications
- Phone host service → Media state and commands: mirrors media
mobile/src/main/java/com/damn/anotherglass/core/GlassService.kt - Explorer service → Media controller: handles playback
glass-xe/src/main/java/com/damn/anotherglass/glass/host/HostService.java - Enterprise service → Media controller: handles playback
glass-ee/src/main/java/com/damn/anotherglass/glass/ee/host/core/HostService.kt