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

Files

Comments

No comments found for this post.