You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added Cancel button support and back-cancellation to the initial "Set Vault PIN" and confirmation flows in VaultActivity on both mobile and TV, cleanly closing the activity if cancelled before PIN setup completes.
Automatic Dialog Focus, Soft Keyboard Display, and Enter Key Action (DialogInputHelper):
Automatically focuses input text fields and displays the software keyboard when opening name/input dialogs (Rename, Compress, Extract to New Folder, Create Folder, Create Text File, Save As, Device Pairing, Tags, Custom Tiles, and SmartSort).
Preserves native D-pad navigation focus on Android TV devices.
Added hardware Enter key and IME Done / Go / Send key actions to quickly confirm and complete dialog editing without manual tapping.
Keyboard Shortcuts & Vim Navigation System (KeyboardShortcutsActivity, KeyboardShortcutHandler, KeyboardPreferenceManager):
Full hardware and Bluetooth keyboard shortcut support across file browsers, dual-pane twin window, viewers, and editors.
Configurable master enable toggle, dual-pane fast switching (Tab, Ctrl+W, 1/2), and customizable key remapping with an interactive rebind dialog (dialog_keyboard_rebind.xml / _tv.xml).
Vim navigation mode supporting h/j/k/l movement, gg / G top/bottom jumping, and single-letter operations (y copy, x cut, p paste, d delete, r rename, n new folder, g go to path) with search and text input field typing protection.
Polished settings screen matching the UFMStandard dark glassmorphism design language (@color/mobile_glass_card, @color/mobile_glass_stroke, @color/tv_glass_white_10, @color/tv_glass_border, frosted icon badges, and theme-accented section headers).
Granular Date Range & Size Range Filters (SortFilterSheet, SortFilterPreferenceManager):
Added granular Date range filters (Any, Today, Yesterday, This Week, Previous Week, This Month, Previous Month, This Year, Previous Year) to the Sort & Filter bottom sheet.
Added granular Size range filters (Any, Empty 0 B, Tiny 0–10 KB, Small 10 KB–1 MB, Medium 1–10 MB, Big 10–100 MB, Large 100 MB–1 GB, Huge >1 GB).
Added Archives category filter and categorized File Type sorting priority order (Images → Videos → Audio → Documents → Archives → APKs → Other).
Added "Add Storage Location" flow with UFMStandard glassmorphic dialogs (dialog_add_storage_location.xml / _tv.xml), supporting Termux home, USB drives, SD cards, and document providers.
Custom storage tiles integrate directly into the Storage Browser volume list, positioned above Settings with human-readable resolved subtitle paths.
Permanent storage location removal dialog (dialog_remove_storage_location_confirm.xml / _tv.xml) with persistable URI permission release.
Changed
High-Performance Encrypted Vault & Fast Preparation (VaultCrypto, VaultBrowserActivity, VaultActivity):
Significantly accelerated Encrypted Vault preparation and folder access times by up to 80%–95%.
Added thread-safe in-memory caching for the Android KeyStore SecretKey reference in VaultCrypto, eliminating repeated Binder IPC roundtrips across all cryptographic operations.
Implemented multi-core concurrent file decryption and re-encryption in VaultBrowserActivity and VaultActivity using coroutine worker pools with throttled UI progress dispatching.
Implemented smart incremental mirror synchronization to skip redundant decryption of untouched files and only re-encrypt modified/added files upon exit.
Upgraded file I/O streaming to 128KB chunk buffers with BufferedInputStream / BufferedOutputStream.
Enforced zero-leakage mirror security with strict cleanup on exit and activity destruction.
Fixed an issue where Batch Rename falsely flagged duplicate conflicts for files sharing identical target names across different subdirectories in search results.
Conflict checking is now strictly directory-aware, allowing identically named targets across distinct parent folders.
Completing batch rename in search results now refreshes the dataset in-place.
Folder Scroll Position Restoration Across All Storages (FileBrowserActivity, FileBrowserFragment, NetworkBrowserActivity, NetworkBrowserFragment, FolderScrollState):
Fixed an issue where the file list reset to the top when navigating back to a parent folder instead of restoring the previous scroll position.
Implemented folder scroll state tracking and restoration across SAF, Local, Network (SMB, SFTP, FTP, NFS, DLNA), and Online (Google Drive, OneDrive, Dropbox, Box, S3, WebDAV) storages in both single-pane and dual-pane twin window modes.
Preserves exact visual scroll offset on mobile/tablet and focused item on Android TV, while ensuring forward navigation into new folders starts cleanly at the top.
File Transfer Progress Dialog (TwinWindowActivity):
Fixed an android.view.InflateException caused by inflating dialog_transfer_progress with a LinearProgressIndicator inside a background IO coroutine, which threw Animators may only be run on Looper threads. Dialog inflation and display are now dispatched on the Main UI thread before starting the background transfer.
TV Background Server Foreground Service (TvServerForegroundService):
Fixed an android.app.ForegroundServiceDidNotStartInTimeException on Android TV (SDK 31) caused by cold-start main-thread contention exceeding the 5-second foreground service timeout window.
Added a cold-start delay during app initialization so UI rendering finishes before the service start timer begins.
SAF Network Documents Provider Memory Optimization (UfmDocumentsProvider):
Fixed an OutOfMemoryError caused by eager 2 MB byte array allocations in ProxyFileDescriptorCallback constructors when external apps or media players opened network documents via SAF.
Replaced eager 2 MB allocations with lazily allocated 256 KB read-ahead buffers, dynamic size-capping, and multi-tier OOM fallback to direct unbuffered reads.
Cleaned up duplicate when branch warnings for ShareType.WEBDAV.
Media Player Background Playback Service (UFMPlaybackService):
Fixed an android.app.ForegroundServiceStartNotAllowedException on Android 15 (SDK 35) when audio focus changed or progress tickers updated while backgrounded.
Added active foreground state tracking so notification updates and 1-second progress ticks use NotificationManager.notify() instead of triggering redundant Service.startForeground() IPCs.
Wrapped ServiceCompat.startForeground with graceful fallback handling for background state restrictions.
ART Finalizer Watchdog Timeout Suppression (CrashReportManager):
Fixed false-positive crashes caused by java.util.concurrent.TimeoutException: android.content.res.ApkAssets.finalize() timed out after 10 seconds on the FinalizerWatchdogDaemon thread on slow TV / set-top box hardware.
Enhanced the global uncaught exception handler to safely intercept and suppress ART finalizer watchdog timeouts without terminating the application process.