Official Nuvio Android TV Repository
Find a file
Amarjit Singh d6e4095741 Fix Classic hero focus lost on app reopen via app switcher
The default layout (MODERN) composes first on fresh start, then
preferences load and switch to CLASSIC.  Modern's onDispose was
saving focus state (hasSavedFocus=true) which poisoned Classic's
initial focus logic, preventing the hero from receiving focus.

- Add suppressFocusSave flag to block outgoing layout's dispose save
- Defer Classic content focus with spinner until hero resolves
- Use heroSectionEnabled (default true) for deferral since
  heroCatalogKeys arrives late via 300ms preference debounce
- 2s safety timeout prevents infinite spinner if hero has no data

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 07:30:18 -07:00
.github Delete .github/workflows/build-debug-apk.yml 2026-03-27 22:56:15 +03:00
.idea Merge upstream/dev (0.5.6) into feature/collections 2026-04-02 10:47:10 -07:00
.kotlin/errors modern layout refact 2026-02-25 03:35:43 +05:30
app Fix Classic hero focus lost on app reopen via app switcher 2026-04-08 07:30:18 -07:00
assets logo update 2026-02-15 13:44:43 +05:30
baselineprofile add baselineProfile 2026-03-14 01:20:19 +01:00
gradle update media3 version to 1.10.0-rc01 2026-03-14 09:24:21 +05:30
libmpv-android@f48aa82b26 feat: adding 3h ttl cache for yt trailers 2026-03-27 18:05:07 +05:30
scripts update actions 2026-03-24 21:29:00 +05:30
.gitignore Add beta release automation 2026-03-14 13:29:39 +05:30
build.gradle.kts perf optimization 2026-02-17 22:13:27 +05:30
compose_stability_config.conf fix comment format 2026-02-17 22:19:30 +05:30
CONTRIBUTING.md update issue reporting title rule 2026-03-13 05:37:57 +05:30
gradle.properties Revert Gradle daemon tuning changes 2026-04-02 11:25:49 +01:00
gradlew init 2026-01-29 13:03:50 +05:30
gradlew.bat init 2026-01-29 13:03:50 +05:30
LICENSE added license 2026-02-05 18:12:29 +05:30
local.example.properties Add avatar management features and update profile selection ui 2026-03-07 01:09:26 +05:30
README.md update app logo. 2026-02-14 04:11:50 +05:30
release_test_cases.csv Test cases csv file 2026-02-05 18:00:44 +05:30
settings.gradle.kts add baselineProfile 2026-03-14 01:20:19 +01:00

NuvioTV

Contributors Forks Stargazers Issues License

A modern Android TV media player powered by the Stremio addon ecosystem.
Stremio Addon ecosystem • Android TV optimized • Playback-focused experience

About

NuvioTV is a modern media player designed specifically for Android TV.

It acts as a client-side playback interface that can integrate with the Stremio addon ecosystem for content discovery and source resolution through user-installed extensions.

Built with Kotlin and optimized for a TV-first viewing experience.

Installation

Android TV

Download the latest APK from GitHub Releases and install on your Android TV device.

Development

Prerequisites

  • Android Studio (latest version)
  • JDK 11+
  • Android SDK (API 29+)
  • Gradle 8.0+

Setup

git clone https://github.com/tapframe/NuvioTV.git
cd NuvioTV
./gradlew build

Running on Emulator or Device

# Debug build
./gradlew installDebug

# Run on connected device
adb shell am start -n com.nuvio.tv/.MainActivity

NuvioTV functions solely as a client-side interface for browsing metadata and playing media provided by user-installed extensions and/or user-provided sources. It is intended for content the user owns or is otherwise authorized to access.

NuvioTV is not affiliated with any third-party extensions or content providers. It does not host, store, or distribute any media content.

For comprehensive legal information, including our full disclaimer, third-party extension policy, and DMCA/Copyright information, please visit our Legal & Disclaimer Page.

Built With

  • Kotlin
  • Jetpack Compose & TV Material3
  • ExoPlayer / Media3
  • Hilt (Dependency Injection)
  • Retrofit (Networking)
  • Gradle

Star History

Star History Chart