Vexxx Mobile v1.0.38 Official Release - Venti Supporters (Patreon)
Content
Vexxx Mobile — Features
Native Android client for your self-hosted Vexxx media library. Built entirely in Kotlin with Jetpack Compose and Media3, Vexxx Mobile gives you a first-class touch experience on phones and tablets without compromising on power.
Player
Inline Playback on Scene Detail
Tap Play and the video starts right in the scene’s hero banner — no jumping to a separate screen. Your performers, tags, chapter markers, and related scenes stay fully scrollable beneath the player.
Fullscreen with One Tap
Hit the fullscreen icon in the player controls and the device locks to landscape, immersive mode kicks in (status bar, nav bar — all gone), and the video expands to fill the screen. Tap again or press Back to return to the inline view.
Pinch-to-Zoom
Pinch open on any player surface — inline or fullscreen — to switch from letterboxed fit to a cropped zoom. Pinch back to restore. Works on both orientations.
Double-Tap to Seek
Double-tap the left half of the player to rewind 10 s, right half to skip forward. Rapid taps on the same side accumulate — three taps on the right skips 30 s. A translucent circle flash confirms direction and total offset.
VTT Sprite Scrub Preview
Drag the seek bar and a thumbnail strip appears showing the exact frame at that position, using the server’s generated VTT sprite sheet.
Chapter/Marker Bar
A tap-to-seek marker bar sits beneath the player with screenshots for every chapter. Tap any chip to jump directly to that moment in the inline player.
Picture-in-Picture
Press the home button while playing and the player shrinks to a floating overlay so you can keep watching while you multitask.
Resume Playback
Open a scene you’ve watched before and Vexxx Mobile offers to resume where you left off or restart from the beginning. A toggle in Settings disables the prompt entirely and always restarts from the beginning. Your progress is reported back to the server every 10 s.
Continue Watching
The Continue Watching carousel on the home screen always resumes at the exact saved position with a single tap — no prompt, no toggle, just straight back in.
Play Count Tracking
After watching 10 % of a scene, the server play count increments automatically.
MediaSession Integration
Lock-screen and notification transport controls (play, pause, seek) backed by a proper MediaSession — compatible with Bluetooth headsets, Android Auto, and assistant queries.
Adaptive Buffering
Buffer sizes tune themselves to available RAM so playback stays smooth on low-memory devices.
Scene Detail
Full-width 16:9 hero with screenshot or inline player
Performers, tags, studio chip with logo, rating, date, and file details
Chapter markers with screenshots — tap to seek inline
Related scenes grid
Scene-specific Generate dialog — trigger sprite, preview, marker, phash, or clip-preview generation for just this scene
Edit button — change title, date, details, organised flag without leaving the app
Browse & Search
Tabbed grids for Scenes, Performers, Studios, Groups, Galleries, Images, Tags, Playlists
Global text search across all entity types with search history — recent queries shown as chips below the search bar; tap to re-run, swipe to dismiss, or clear all at once
Filter sheets on every tab — sort field, sort direction, rating, date ranges, duration ranges, organised flag, markers, previews, interactive, gender, orientation, birth year, performer favourites, relationship pickers (multi-select performers, tags, studios)
Active filter chip bar showing sort field and badge count of applied filters
Animated WebP card thumbnails where available
Pagination with a live total item count display, e.g. < 3/30 > (1163)
Pull-to-refresh on every screen — swipe down to reload from the server
Home Screen
Customisable carousel layout — toggle rows on/off and drag them into any order from Customise Home in Settings (drag handle, no long-press required):
Continue Watching — scenes with saved progress, always one tap to resume at your exact position
Recently Released — scenes sorted by release date
Recently Added — scenes sorted by date added to server
Recently Played — your last-watched scenes
Recommended — server-curated recommendations
Recent Galleries — galleries sorted by creation date
Long-Press Context Menu
Long-press any scene card anywhere in the app for a YouTube-style bottom sheet:
Play now — opens the player immediately
Play next — inserts the scene right after the current queue position
Add to queue — appends to the end of the playback queue
Add to playlist — lazy-loads your server playlists; one tap adds the scene
New playlist… — creates a new playlist inline without navigating away
Playlists & Queue
Playlists tab — paginated grid of all server playlists with search
Playlist Player — embedded inline player above a scrollable queue list; tap any scene to start from that position with no extra navigation
Group “Play All” — one button to queue all scenes in a group and start playing
Queue persistence — the active queue (scene IDs, position, playlist name) is saved to DataStore and survives app restarts and process death
Library Management & Tasks
Library scan — full or selective (directory picker), configurable generate options
Metadata generate — covers, sprites, previews, phashes, markers, clip previews, per scene or library-wide
Metadata identify — connect to a stash-box source to auto-tag scenes
Library path management — add/remove server stash paths with excludeVideo / excludeImage flags
Full filesystem browser — navigate the server’s directory tree to pick paths
Task Dashboard
Live job queue with real-time WebSocket updates
Progress bars with percentage complete and ETA (34% • ~2m 15s remaining) or elapsed time when indeterminate
Cancel individual jobs or clear the entire queue
Foreground notification when tasks are running — taps back to the app
Detail & Edit Screens
Full edit panels for every entity type — field parity with the Vexxx web app:
Scene — view and edit
Performer — view and edit
Studio — view and edit
Group — view and edit
Gallery — view and edit
Image — fullscreen lightbox and edit
Tag — view and edit
Settings
Safe-for-Work (SFW) mode — blurs all media thumbnails and images across the entire app instantly
Resume Playback prompt — toggle whether opening a previously-watched scene asks to resume or always restarts from the beginning
Customise Home — reorder and toggle home screen carousels
Server connection — update server URL and API key at any time
Performance
Apollo SQLite normalized cache + 5 MB memory cache — GraphQL object graph persists across restarts; detail screens open instantly on revisit
Apollo HTTP disk cache — 50 MB response cache; cacheable queries served from disk without a network round-trip
Apollo watch() on detail screens — reacts automatically to mutations (edits, generates) without a full network re-fetch
@Stable on all 28 UiState classes — Compose skips recomposition of unchanged subtrees
Stable list keys — partial data changes don’t trigger full list recomposition
Coil image caches — 15 % of heap (memory) + 512 MB (disk) for smooth scrolling in large grids
Browse search debounced 300 ms — no redundant page requests on fast typing
Home invisible-section guard — hidden carousels never trigger network calls
Setup & Security
Server setup wizard — enter your Vexxx server URL (http or https, custom port) and optional API key; live connection test with clear error feedback
Auto-reconnect — skips the setup screen on launch if saved credentials still work
LAN scanner — tap to auto-discover Vexxx servers on your local network without typing an IP
Secure credential storage — DataStore-backed; never logged in release builds
ADB backup disabled — prevents credential extraction via adb backup
Image cache cleared on disconnect — no data leakage when switching servers
Adaptive Layout
The navigation chrome adapts to your screen size automatically:
Phone (portrait/landscape) — bottom navigation bar
Tablet (≥ 600 dp) — navigation rail
Large tablet / foldable (≥ 1240 dp) — navigation drawer
Material You dynamic colour on Android 12+ — the UI adapts to your wallpaper palette.