github Kilowatch/ultimate-file-manager-pro v2.1.5

3 hours ago

Added

  • Main Dashboard Edge Menu Hamburger Trigger: Added dedicated hamburger menu buttons (btnEdgeMenuLeft / btnEdgeMenuRight) in the main storage header bar with glassmorphism frosted styling to open the slide-out Edge Swipe Menu directly on tap with haptic feedback.
  • APKMirror Bundle (.apkm) Support: Added full support for APKMirror App Bundles (.apkm), including app icon thumbnail extraction, 512px WebP disk and Room DB caching, Android package fallback icons, Smart Sort app categorization, and direct session-based split package installation.

Changed

  • Mobile Storage Dashboard Title ("UFM Pro"): Streamlined mobile main dashboard toolbar title to "UFM Pro" for a cleaner, compact presentation.
  • Relocated "Manage Hidden Tiles" to Edge Menu: When Edge Swipe Menu is enabled, hidden dashboard tiles (ic_tune) are managed via a dedicated frosted button in the Edge Swipe drawer footer (next to Settings), keeping the main screen toolbar clean and free from clutter.
  • Edge Swipe Settings & Header Toolbar Synchronization: When Edge Swipe Menu is active, the redundant top-right Settings gear is automatically hidden from the main screen (since Settings is directly accessible inside the swipe drawer footer). The hamburger button is dynamically aligned to the top-left or top-right matching the user's configured swipe edge, and automatically hides during Tile Edit Mode.
  • Porter SDK 0.7.0 & Modern Protocol Upgrade: Migrated elevated access integration from legacy porter-client to official Porter SDK 0.7.0 (porter-sdk, porter-extras, and porter-shizuku-compat). Updated permission declarations from eu.darken.porter.permission.API_V23 to eu.darken.porter.permission.API. Replaced deprecated PorterProvider and SelectedShizukuProvider with official PorterShizukuApiProvider for unified Shizuku and Shevery compatibility. Eliminated fragile reflection-based process creation in favor of official PorterConnection.exec(...) via suspending coroutines. Modernized ElevatedAccessProbe and ElevatedAccessActivity to reactively observe Porter.connection StateFlow and use suspending permission requests.

Fixed

  • Shizuku & Porter Android TV Folder Listings: Fixed empty folder listings in /Android/data and /Android/obb on Android TV when using Shizuku or Porter by adding runtime mount traversal (/mnt/runtime/full), dynamic multi-user profile support, and a robust shell listing fallback.
  • Dropbox Android TV Authentication & Error Dialogs:
    • Fixed an issue where Dropbox manual code authentication failures on Android TV were misidentified as enterprise policy (MDM/Intune) blocks.
    • Introduced a dedicated TV authentication error dialog (dialog_auth_error_tv.xml) that displays transparent status descriptions and keeps scrollable technical error details (txtErrorDetails) visible.
    • Added PKCE codeVerifier state preservation across on-screen keyboard (IME) launches and activity recreation in DropboxManualCodeAuthActivity.
    • Added system clock skew validation on Android TV to warn users if an unsynchronized post-factory reset device date/time is preventing secure TLS/OAuth connections.
    • Decoupled enterprise policy dialogs across DropboxAuthActivity, GoogleDriveAuthActivity, and BoxAuthActivity so standard OAuth, network, and token exchange failures display accurate error details rather than assuming policy restrictions.
  • NFS Media Streaming & Playback (LibNfsClient, LibNfsBridge, nfs_jni.c, NfsShareClient):
    • Fixed media files (wav, mp3, mkv, mp4, etc.) failing to stream or stalling indefinitely on "Buffering" in the internal player (UfmMedia3DataSource) and producing a black screen in external players via NetworkHttpProxyServer.
    • Implemented safe 64 KB chunking in LibNfsRandomAccess.read() and write(), preventing large block reads (up to 8 MB) from overwhelming native JNI heap allocation and triggering synchronous RPC socket timeouts.
    • Added native nfsFstatSize via nfs_fstat64 on open file handles, eliminating redundant and fragile path-based nfs_stat64 re-lookups.
    • Increased random access streaming RPC timeout to 30,000 ms to ensure smooth playback during seeks and buffering on high-latency or Wi-Fi connections.
    • Added export path prefix normalization (stripExportPrefix) to prevent duplicate mount export paths from causing ENOENT during file opens.
  • WebDAV HTTPS Self-Signed Certificate Direct Streaming & Playback: Resolved internal UFM Media Player playback failure (tls: bad certificate / Source error) when streaming directly over WebDAV HTTPS with self-signed or untrusted SSL certificates. Replaced manual NetworkShare instantiation across all playback engines (UFMPlayerActivity, UFMPlaybackService, SlideShowActivity, and TwinWindowPlayerFragment) with OnlineStorage.toNetworkShare() to ensure allowInsecureTls is strictly preserved from the configured storage account.
  • WebDAV Standard Copying to Device Storage: Fixed standard copy operations from WebDAV servers to Internal Storage failing with destination is 0 bytes for <file> in LocalPasteEngine by properly passing allowInsecureTls from the source OnlineStorage configuration.
  • MPEG-2 Transport Stream (.ts) MIME Type Conflict: Fixed .ts video files inadvertently resolving to application/typescript MIME type and text category, which caused external app intent routing to invoke web browsers to download the file instead of launching media players. Registered canonical video/mp2t mapping across MimeTypeHelper, FileViewerRouter, and streaming HTTP proxy servers.
  • Universal OnlineStorage.toNetworkShare() Canonicalization: Centralized NetworkShare instantiation on OnlineStorage across all browser, paste, scanner, recycle bin, sync, smart sort, and local HTTP proxy components, eliminating missing TLS security and authentication fields across all cloud and WebDAV providers.
  • Folder Item Counting with Hidden Files: Fixed folder child item counter excluding subfolders and files starting with a dot (such as .thumbnail or .nomedia) when "Show hidden files" is enabled. Synchronized item counting across local, SAF, root, Shizuku, and network/cloud storage in both Standalone and Tabbed/Twin Window modes.

Don't miss a new ultimate-file-manager-pro release

NewReleases is sending notifications on new releases.