3 Commits

Author SHA1 Message Date
25455f7e6f Add GIF-to-MP4 playback support (v1.5.2)
Features:
- Detect GIF URLs automatically
- Request conversion from alfred-proxy /api/convert-gif endpoint
- Display loading indicator during conversion
- Play MP4 in looping VideoView component
- Auto-start playback on load
- Error handling with user-friendly messages

Technical details:
- Uses AndroidView wrapper for VideoView in Compose
- Coroutines for async conversion request
- Gateway URL from SharedPreferences
- Falls back to static image for non-GIF images

Tested successfully with Tenor GIFs - smooth playback confirmed!
2026-02-11 08:44:09 -08:00
eb15e29c8b Add rich message bubble with inline media support (v1.5.0)
Features:
- Selectable text in all messages (fixes regression)
- Clickable links (auto-detected URLs with underline styling)
- Inline images/GIFs (jpg, png, gif, webp auto-displayed)
- YouTube embeds (shows thumbnail with play button overlay)
- Message parsing separates text from media content
- Uses Coil library for efficient image loading

Implementation:
- New RichMessageBubble component replaces ChatMessageBubble
- Parses message content into Text/Image/YouTube parts
- ClickableTextWithLinks handles URL detection and tap events
- ImageContent displays media with click-to-fullscreen
- YouTubeEmbed shows thumbnail and opens in YouTube app
- Added Coil dependencies (coil-compose + coil-gif)

Version: 1.5.0 (versionCode 41)
2026-02-11 08:00:43 -08:00
6d4ae2e5c3 Initial commit: Alfred Mobile - AI Assistant Android App
- OAuth authentication via Authentik
- WebSocket connection to OpenClaw gateway
- Configurable gateway URL with first-run setup
- User preferences sync across devices
- Multi-user support with custom assistant names
- ElevenLabs TTS integration (local + remote)
- FCM push notifications for alarms
- Voice input via Google Speech API
- No hardcoded secrets or internal IPs in tracked files
2026-02-09 11:12:51 -08:00