Projects
Nosved Player icon

Nosved Player

v1.3.0Apr 18, 2026

Latest Release

Download Latest

Choose the variant for your device

What's Changed

Nosved Player v1.3.0 - Changelog

One of The Biggest as per me

Playback & Gestures

  • Implement smooth seeking:
    • CLOSEST_SYNC seeks, 3-phase seek model (start/preview/commit), improved buffering and timestamp previews.
  • Refactor gesture system:
    • Long-press fast seek with gesture locking, double-tap ripple unified in GestureOverlay, fixed stuck animations.
  • Remove legacy framerate field and start work on SW-decoder-friendly stats.

Watch History, States & Badges

  • Add WatchHistoryScreen with clear history support and integrate into Home’s Continue Watching.
  • Introduce VideoWatchState + getWatchState and unify badges:
    • WatchStateBadge on videos (NEW/Running/Ended).
    • NewCountBadge on folders with real-time updates via historyMap.
  • Fix mis-tagging of ended videos and add manual Tag dialog to override statuses.

Metadata, Search & Recycle Bin

  • Implement hybrid metadata caching:
    • MediaStore projections for shallow metadata, Room cache for deep metadata, background indexer for post-scan enrichment.
  • Add RecycleBinScreen using MediaStore Trash APIs:
    • Entry point in Home, full Marathi translation, fixed expiry calculation bug, repository return-type fix.
  • Search system:
    • New SearchResultScreen wired into NavGraph.
    • Suggestion popup component, layout toggle (list/grid with persistent column count).

Home & Library

  • Add Recently Added carousel (last 10 videos).
  • Add delete confirmation dialog to prevent accidental deletes.
  • Fix explorer sorting and display info in Files/Explorer views.
  • Auto-refresh library after file operations.

Device Stats & Tools

  • Redesign DeviceStatsOverlay:
    • Material 3 Card, close button, dynamic framerate via VideoFrameMetadataListener, tied to Developer section toggle.
  • Introduce Tool/ Timestamp Tool:
    • Ms ↔ time conversion, clipboard actions, navigation wiring, and a live time section with lifecycle-aware updates.

MediaSession & Intents

  • Configure ExoPlayer with proper AudioAttributes and noisy audio handling.
  • Integrate Media3 MediaSession via ForwardingPlayer for headset controls.
  • Add ACTION_VIEW intent handling and share actions (single/multiple).
  • Register shortcuts for launcher discovery and fix shortcut XML/strings issues.

Player Interface & UI

  • New PlayerInterface settings screen:
    • Orientation, full-screen, soft buttons, brightness, elapsed/battery/clock toggles.
  • Wire showRemainingTime from SettingsViewModel through PlayerControls and YouTube-style controls.
  • Adjust overlay placement (elapsed/battery/clock) and rotation button positions for both standard and YT-style layouts.
  • Fix watch history progress reset when re-entering videos.

FAB, Rotary, and Selection

  • Rotary sort wheel redesign + layout fixes + close icon.
  • Add Preview FAB:
    • Dual gesture (tap=play/close, long press=preview card), spring rotation animation, Coil-based thumbnail caching.
  • Implement “selectByThumbnail” behavior across list/grid/folder views.

Navigation Bar & Theme

  • Add isNavBarTransparent preference (DataStore), wire to theme and MainActivity, propagate across major screens.
  • Standardize TopAppBar colors for About, Privacy, Log, and secondary screens.
  • Refactor onboarding to support dynamic theme + add Greeting Splash to prevent initial flash.

Localization

  • Add Marathi as a language option and translate (still work In Progress for lots of Pages InApp):
    • Home, History, About, Log, Folder List, Recycle Bin, YT controls, formatters, explorer, info sheets.

Architecture & Data Safety

  • Replace destructive Room migration with MIGRATION_1_2:
    • Extend watch_history and video_metadata_cache schema safely; enforce migration in database builder.
  • Implement longest-prefix visibility resolver and path normalization for SAF URIs.
  • Extend WatchHistory with path field and update repository logic.
  • Add safePopBackStack() to avoid back stack depletion.

Refactors, Cleanup & Misc

  • Modularize VideoList and FolderList into dedicated packages with UiState/UiEvent/UiAction.
  • Remove legacy screens and empty controllers.
  • Address Gradle version compatibility, build warnings, and Material 3 API updates (menuAnchor).
  • Update screenshots, .gitignore, and planning docs (codebase map).

Older Versions