LeanBitLab/LtvLauncher
A minimal, open-source Android TV launcher featuring WiFi data usage widget, an inbuilt OLED friendly screensaver, and improved UX. A customized fork of FLauncher.
๐ฆ โค๏ธ Support the Project
- If you love using LTvLauncher (ad-free, lightweight, and open source), please consider supporting us! Your contributions help buy testing hardware, cover bills, and keep development active.
- ๐ [Sponsor LeanBitLab on GitHub](https://github.com/sponsors/LeanBitLab)
โจ Whats New
- Fix key click sound on D-pad key press navigation.
- Fix local cache out-of-sync issue when reordering apps in custom sections.
- Fix active VPN connection detection to correctly display the VPN key icon instead of Wi-Fi.
- Make tapping the VPN status bar icon open native VPN settings instead of Wi-Fi settings.
- Consolidate GitHub Actions badge generation workflows to prevent build push conflicts.
๐ฆ ๐ฆ Artifacts
- app-release.apk (18.3 MB): Universal build containing all architectures.
- app-armeabi-v7a-release.apk (9.4 MB): Optimized build for ARMv7 architectures (older Android TVs & Fire TV sticks).
- app-arm64-v8a-release.apk (9.8 MB): Optimized build for ARM64 architectures (newer Android TVs & NVIDIA Shield).
๐ฆ โค๏ธ Support the Project
- If you love using LTvLauncher (ad-free, lightweight, and open source), please consider supporting us! Your contributions help buy testing hardware, cover bills, and keep development active.
- ๐ [Sponsor LeanBitLab on GitHub](https://github.com/sponsors/LeanBitLab)
- ---
โจ โจ New Features
- Multiple Backups Support: Backups are now exported with unique timestamps (e.g., `ltv_backup_20260621_155341.json`)
- System-wide Notification Overlays: Added popups for notification alerts visible across the entire operating system.
- TV Input Selector: Directly switch between input sources (HDMI, AV, etc.) from the launcher.
- Accessibility Settings Page: Dedicated settings panel for managing launcher accessibility features.
๐ ๐ ๏ธ Bug Fixes
- Cropping & UI Scale Expansion: Capped scale limits on focused banners to prevent items from getting cropped on certain screen aspect ratios.
- Wallpaper Live Updates: Fixed a bug where changing the wallpaper did not trigger an immediate visual update in the background.
- Security & Backups: Disabled insecure full Android OS backups in the manifest (`android:allowBackup="false"`).
- Crash & Imports fixes: Resolved network/UI crashes, restored missing imports in the notification listener service, and resolved Java compilation errors in `MainActivity`.
โก ๐ Under-the-Hood & Performance
- Settings Cache: Optimized `SettingsService` by caching values locally to avoid repeatedly reading from `SharedPreferences`.
- Database & Query Optimization:
- Fixed an $N+1$ query pattern when fetching and categorizing TV applications.
- Optimized category lookups for new applications to run in $O(1)$ time.
- Concurrency & I/O:
- Implemented a concurrency pool to cap unawaited background caching tasks.
- Replaced synchronous file I/O checks (e.g., wallpaper checks) with fully asynchronous operations.
- Test Coverage: Added comprehensive widget and unit tests for `AppCard`, `DateTimeWidget`, `SidePanelDialog`, `NetworkService`, and the `App`/`Category` models.
๐ฆ ๐ฆ Artifacts
- app-release.apk (18.3 MB): Universal build containing all architectures.
- app-armeabi-v7a-release.apk (9.4 MB): Optimized build for ARMv7 architectures (older Android TVs & Fire TV sticks).
- app-arm64-v8a-release.apk (9.8 MB): Optimized build for ARM64 architectures (newer Android TVs & NVIDIA Shield).
โจ ๐ New Features
- Notification Overlay Popups: Added system-wide notification overlays.
- TV Input Selector: Added input selector support and optimized package size.
- Toggle for Status Bar Inputs: Added option to show/hide status bar inputs widget.
- Accessibility Settings: Added dedicated accessibility page.
โก โก Performance Optimizations
- Settings Caching: Optimized `SettingsService` with local caching.
- Drift DB N+1 Fix: Resolved N+1 query issue in TV apps categorization.
- Asynchronous I/O: Migrated wallpaper existence checks to async I/O.
- Concurrency Pooling: Capped concurrent background cache operations.
- O(1) Lookups: Optimized category matching for new apps.
๐ ๐ Bug Fixes & Improvements
- Banner Layout: Capped premium banner scaling to prevent focus cropping.
- Wallpaper Update: Fixed delay in wallpaper changes.
- Security: Disabled insecure Android backup configuration
โจ โจ New Features
- Themes: Switch between distinct visual styles (Default, Premium, Classic, Capsule).
- Focus Customization: Toggle focus outline and transition animations to tailor your experience.
- Edge Bump Animation: Visual feedback when reaching the edge of a row, preventing accidental focus wrapping.
๐ฆ ๐ Improvements
- Data Usage Widget: Generalized to accurately detect and display internet consumption across WiFi, Ethernet, and Mobile data (no extra permissions required).
- Date-Based Versioning: Shifted to a `YYYY.MM.DD` version scheme for clearer tracking.
- Performance Optimizations: Aggressive icon caching and code cleanups.
๐ ๐ Bug Fixes
- Focus Traversal: Fixed an issue where rapid scrolling (long-press) would cause the focus to jump unexpectedly between rows.
- General bug fixes and stability improvements.
โจ โจ New Features
- Custom App Banners: Set your own banner graphics for unofficial apps from the App Info Panel.
- Custom Section Names: Build custom categories from scratch without relying strictly on presets.
- App Labels: Clean up your homescreen grid with a new toggle to hide text below icons or show if you really wanted.
๐ ๐ ๏ธ Bug Fixes
- Fixed the keyboard overflow/scrolling glitch on the Modify Section page.
- Squashed a persistent storage leak when deleting custom app images.
- Fixed icon reloading glitches and rendering race-conditions.
๐ฆ ๐ Under-the-Hood
- Fixed the png logo
- Refactored settings to cache globally, drastically speeding up UI navigation and lowering disk usage overhead.
๐ฆ Maintenance & F-Droid Compatibility
- Build Update: Disabled `dependenciesInfo` block generation inside the [build.gradle] to comply with IzzyOnDroid and F-Droid's open-source building policies.
- Fastlane Metadata: Added structured Fastlane metadata to the repository (including icons, screenshots, and accurately formatted markdown descriptions).
- Repository Migration: Updated all internal links and documentation to appropriately reflect the new repository URL (`LeanBitLab/LtvLauncher`).
๐ฆ Files attached:
- (Universal) [LTvLauncher-universal-release.apk]
- (64-bit) [LTvLauncher-arm64-v8a-release.apk]
- (32-bit) [LTvLauncher-armeabi-v7a-release.apk]
- (x86_64) LTvLauncher-x86_64-release.apk
โจ New Features
- Screensaver Clock Styles: 7 font styles โ Minimal, Bold, Retro, Elegant, Neon, Pixel, Digital โ applied to both the Flutter screensaver and native Android DreamService.
๐ Improvements & Fixes
- Screensaver AM/PM: Rendered inline at 35% size alongside the time, instead of full-size.
- Screensaver Date: Increased font size for better readability.
- Accent Color: Added more aesthetic color tiles.
- Settings Focus: Optimized โ removed expensive `boxShadow`, added `RepaintBoundary` for smoother navigation.
- Time Formats: Cleaned up presets โ removed `HH:mm:ss` since it conflicting on screensaver and removed duplicate `HH:mm`
- Animations: Added minimal app opening animation; overall animation speeds might be snappier now.
- Screensaver: Improved efficiency
- Performance: Improved overall performance optimization.
- + 1 more
โจ New Features
- Time-based Wallpaper Switching: Automatically change your wallpaper based on the time of day (day/night modes).
๐ Improvements & Fixes
- Code cleanup:
- *Version: 3.1.0+19*
โจ ๐ท๏ธ New Name: LTvLauncher
- We have officially rebranded from FLauncher to LTvLauncher to better reflect our vision and avoid confusion with the original project.
โจ ๐ฆ New Package Name
- The application package name has been updated to `com.leanbitlab.ltvL`.
- > Important: This version will install as a separate app alongside the original FLauncher. You will need to migrate your settings manually and uninstall the old version if desired.
๐ฆ ๐จ Accent Color Support
- Personalize your launcher experience! You can now choose from a variety of accent colors to match your style or room ambience.
๐ฆ โ๏ธ Experimental Brightness Control
- Added a new Brightness Scheduler feature that allows the launcher to automatically adjust system brightness based on the time of day.
๐ฆ โ๏ธ Reorganized Settings
- The settings menu has been streamlined for better navigation.
- Better Organization: Moved "Miscellaneous" settings to the "Interface" section.
- Unified Interface: Consistent styling across all settings pages.
๐ฆ ๐ UI Refinement
- Polished various UI elements for a more modern and cohesive look.
- Enhanced focus indicators.
- Improved spacing and layout consistency.
๐ฆ โก Animation Optimization
- Optimized animations throughout the launcher for a smoother and more responsive feel, especially on lower-end devices.
- ---
- *Thank you for using LTvLauncher!*
๐ Changes
- Enhanced Focus Indicator: New double-border (White Outer, Black Inner) design ensures perfect visibility on any background.
- Smart Navigation: Fixed 'bounce back' issues and optimized focus traversal for a smoother experience.
- Refined Settings: Reorganized menus with a new 'Miscellaneous' section and unified focus styles.
๐ Changes
- Favorites System: Add/Remove toggle, new category logic, specific tab in settings.
- Visuals: hh:mm time format, focus outlines for TV navigation.
โจ โจ New Features
- Consistent Focus Indicators: Settings and network widgets now have matching outline + shadow focus style
- Settings Icon Repositioned: Moved to left of network indicator for better layout
- Improved App Card Selection: Added drop shadow for visibility on light/white app icons
๐ ๐ Bug Fixes
- Icon Cache on Uninstall: Fixed stale icons not refreshing after app uninstall
- Date/Time Dialog Autofocus: Focus now starts on first item instead of last
- TV Remote Click: Fixed settings button not responding to TV remote select button
๐ ๐ง Technical Changes
- Replaced GestureDetector with InkWell for proper TV remote handling
- Matched settings icon padding with network indicator size
- Improved focus_aware_app_bar.dart with reusable focusable widgets
๐ฆ ๐ฅ Downloads
- Universal APK (29MB): Works on all devices
- ARM64-v8a (13MB): For modern 64-bit ARM devices (recommended)
- ARMv7a (13MB): For older 32-bit ARM devices
- x86_64 (13MB): For Intel/AMD 64-bit devices
- Full Changelog: https://github.com/LeanBitLab/FlauncherL/compare/v2024.11.001...v2024.11.002
โจ โจ New Features
- TV Remote-Friendly Date/Time Format Selector: Replaced keyboard input with preset selection (6 date + 5 time formats)
- Network Indicator Toggle: Show/hide network status independently in settings
- Widget Reorganization: Network indicator merged with WiFi usage for cleaner layout
๐ ๐ Bug Fixes
- Fixed date/time toggle bug that caused duplicate time display
- Added proper widget keys to prevent state confusion
- Improved DateTimeWidget to detect and apply format changes dynamically
๐ฆ โก Optimizations
- Code Modernization: Migrated from `tuple` package to native Dart 3 records (35 usages)
- Dependency Cleanup: Removed `tuple` and `format` packages
- Asset Reduction: Removed 11 unused wallpaper assets (~5-6MB saved)
- Material Icons: Tree-shaken (99.5% reduction: 1.6MB โ 8KB)
- APK Size: Down to 29.7MB (from ~35MB)
๐ ๐ง Technical Changes
- Debug builds now use `.debug` package suffix for side-by-side installation
- Improved build configuration and gitignore
๐ฆ ๐ฅ Downloads
- Universal APK (29MB): Works on all devices
- ARM64-v8a (13MB): For modern 64-bit ARM devices (recommended for most)
- ARMv7a (13MB): For older 32-bit ARM devices
- x86_64 (13MB): For Intel/AMD 64-bit devices
- Full Changelog: https://github.com/LeanBitLab/FlauncherL/compare/v2024.11.000...v2024.11.001
