Skip to content

feat(ui): Yuma design system for player/theme + image rendering fix - #11

Closed
arena-ai-coding-agent[bot] wants to merge 4 commits into
mainfrom
arena/01a095a4-telebox
Closed

arena-ai-coding-agent[bot] wants to merge 4 commits into
mainfrom
arena/01a095a4-telebox

Conversation

@arena-ai-coding-agent

Copy link
Copy Markdown

Summary

Applies the Yuma Design System (YDS 2.1) analysed from YumaPlayer to TeleBox's UI, focuses on the media player and theme, and fixes image rendering.

Theme

  • New ui/theme/YumaDesign.kt (additive, no changes to existing Theme.kt):
    • yumaGlassCard — translucent glass surface with position-aware hairline gradient border
    • yumaClickable — whole-element spring scale to 0.96f + light haptic tick
    • segmentedItemShape (22dp outer / 5dp inner composite radii) and YumaTokens

Player (MediaPlayer.kt, rewritten)

  • Professional glassmorphic audio + video UI with dynamic accent color
  • Custom seek bar with buffered progress and draggable thumb (seek now calls player.seekTo)
  • Playback-speed chip (1× / 1.25× / 1.5× / 2× / 0.75×)
  • Animated equalizer on the audio cover; tap-to-toggle, auto-hiding video controls; buffering spinner
  • Marquee title, robust loading / error / unsupported states

Image rendering fix

  • Verified root cause: thumbnails were never requested for the file grid/list and the preview modal had no guaranteed decode path.
  • Lazily load inline thumbnails per visible image file (ViewModel.requestThumbnail) and thread them through FileExplorer → FileCard/FileListItem.
  • PreviewModal now decodes base64 data: URLs directly to an ImageBitmap (guaranteed render) with an AsyncImage fallback and retry-on-error.

Test plan

  • Build with ./build_pipeline.sh (or Gradle) — check for compile errors
  • Browse files: image thumbnails now appear in grid and list
  • Open an image preview: renders correctly, retry works on error
  • Play an audio file: equalizer animates, seek + speed work
  • Play a video: tap toggles controls, buffering shows

Note

This sandbox has no Android SDK/Java, so the app was not compiled here — changes were verified by code review against the Compose/Media3/Coil APIs in build.gradle.kts. Please run a build to confirm.

RaeesRizwan09 and others added 4 commits September 12, 2026 13:13
…ering

- Add Yuma Design System (YDS 2.1) primitives (ui/theme/YumaDesign.kt):
  glass surfaces with position-aware hairline borders, tactile press-scale
  clickables with haptics, segmented composite radii, and design tokens.
- Rewrite MediaPlayer with a professional glassmorphic audio + video UI:
  dynamic accent, custom seek bar with buffered progress, playback speed,
  animated equalizer, and tap-to-toggle video controls.
- Fix images not rendering: lazily load thumbnails for image files in the
  grid/list and decode base64 previews directly so they always display.
- Harden PreviewModal with guaranteed image decode + retry-on-error.

Co-Authored-By: Claude <noreply@anthropic.com>

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- YumaDesign: add missing getValue/setValue imports for by-delegation (root cause of cascading graphicsLayer/background/scale errors); use Modifier.scale() instead of graphicsLayer.
- MediaPlayer: drop ambiguous weight import (resolved to internal RowColumnParentData) and use Arrangement.SpaceBetween; fix radialGradient radius type (Float not Dp); add missing TextOverflow and Dp imports.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
… YumaDesign

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@RaeesRizwan09
RaeesRizwan09 deleted the arena/01a095a4-telebox branch September 12, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant