Added
- Customizable View Appearance (Mobile): Granular customization for file browsing List and Grid views:
- List View Presets: Customizable thumbnail size (24–72 dp), horizontal/vertical row padding, row spacing, primary/secondary text sizes, and icon corner radius across Small, Medium, Large, and Extra Large presets.
- Grid View Presets: Customizable column target width (60–240 dp with responsive multi-column calculations), card spacing, card corner radius, caption text size, and icon padding across Small, Medium, and Large presets.
- Live Preview & Draft Flow: Real-time preview card rendering actual list and grid item layouts, with explicit save, unsaved change discard prompt, and one-tap factory reset.
- Universal Storage Support: Operates across Local, SAF, Network (SMB, FTP, SFTP, WebDAV), Online Cloud (RClone), Tabbed Mode, and Twin Window Mode, while isolating Main Menu storage cards and Settings rows.
- FOSS In-App Auto-Update (Mobile): Added in-app download and direct APK installation flow for FOSS mobile releases:
- In-App Streaming Download: Downloads update APKs directly within the app using OkHttp into an isolated cache directory (
foss_update/), eliminating external browser redirects and duplicate file downloads. - Live Progress Feedback: Added an integrated
LinearProgressIndicatorwith real-time percentage and byte progress inside the update dialog, along with download cancellation support. - PackageInstaller Session Install: Automatically triggers Android's native
PackageInstallersession prompt upon download completion to update UFM seamlessly. - Pending Update Persistence & Resume: Detects previously downloaded APKs on app open and prompts to install directly without re-downloading.
- Automatic Cache Management: Purges cached APK files once successfully installed or if the pending update becomes obsolete.
- Simulation Testing Support: Added a
simulateOldVersiontoggle inbuild.gradle.ktsfor verifying the update detection and installation flow.
- In-App Streaming Download: Downloads update APKs directly within the app using OkHttp into an isolated cache directory (
- Mobile: Configurable multi-line file name wrapping options (2 lines, 3 lines, unlimited, or single-line truncate) alongside the default marquee scroll, with smart delimiter wrapping across Local, Tab, SAF, Network, and Online Cloud storage.
- In-list visual highlighting during Cut (50% opacity, amber name, top-left scissors badge) and Copy (cyan name, top-left copy badge, subtle background tint) operations across Local, SAF, Network, and Online Cloud storage.
- Tab bar clipboard indicator badges reflecting active cut or copy operations for each tab.
- Quick Transfer mode in Tab view: when enabled, transfers immediately between 2 open tabs or prompts with a tab selection sheet when more than 2 tabs are open.
- Mobile setting to show/hide selection checkboxes in edit mode (disabled by default on mobile, always visible on TV).
- "New Folder" and "New File" options in Tab mode 3-dots overflow menu, dispatching directly to the active Local or Network tab.
- Contextual selection header (Close/X button, dynamic selection count, and Select All/Deselect All toggle) overlapping the header bar in Tab mode with per-tab selection state isolation.
Changed
- Synchronized selection Tools FAB (FileToolsBottomSheet) and Floating Quick Action Bar (FloatingQuickActionBar) across all storage types (Local, SAF, Network, Online Cloud) and container environments (Standalone, Tabbed, and Twin Window Mode).
- Made FileBrowserFragment and NetworkBrowserFragment fully self-contained without concrete activity casts, ensuring reliable execution inside TabbedBrowserActivity and TwinWindowActivity.
- Preserved Twin Window pane-to-pane transfer and cross-pane file comparison (compare_twin).