Home Creators Posts Import Register Favorites Logout

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 automatically offers to resume where you left off, or restart from the beginning. Your progress is reported back to the server every 10 s.

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

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:

| Carousel | Description |

| 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 |

Customise Home in Settings lets you toggle carousels on/off and drag them into any order — drag handle, no long-press required.

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 Detail — item list, tap any scene to play from that position, or Play All to queue everything

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:

| Entity | View | Edit |

| Scene | ✅ | ✅ |

| Performer | ✅ | ✅ |

| Studio | ✅ | ✅ |

| Group | ✅ | ✅ |

| Gallery | ✅ | ✅ |

| Image | ✅ lightbox | ✅ |

| Tag | ✅ | ✅ |

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

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

Files

Comments

No comments found for this post.