2.2 KiB
Changelog
All notable changes to File Manager are documented in this file.
The format follows Keep a Changelog, and the project uses Semantic Versioning.
versionCode and versionName are defined in app/build.gradle.kts. Each Play
upload needs a higher versionCode than every previous upload.
[Unreleased]
Added
-
M2 — storage layer. The two storage backends behind one interface.
AllFilesSourceisjava.io.Fileover every mounted volume (the "All files access" path);SafSourceis the Storage Access Framework fallback, reading a persisted tree URI throughDocumentsContractwithSafDocumentIdsdoing the tree↔path mapping andSafGrantowning the folder picker and its persistence.VolumeRepositoryenumerates volumes viaStorageManager/StorageVolumeand reports free/total space throughStatFs;StorageAccessandStorageAccessPolicydecide between the two backends. Both sources confine their blocking I/O toDispatchers.IOand expose asuspendcontract. 32 new JVM tests (76 total), including a Robolectric run ofSafSourceagainst a stand-inDocumentsProvider. -
M1 — pure-Kotlin core engine. An Android-free
core/package holding the logic every other layer builds on:StoragePath(normalised absolute paths that can never escape the root),FileEntrywith extension-basedFileKindclassification and aMimeTypeslookup for "open with", natural-orderSortSpec(directories always first,file2beforefile10), human-readableFileSize,NameMatcher(case-insensitive substring plus*/?globs),NameAllocator("name (1)") andTransferPlanner(conflict policies and move-into-self detection). Covered by 44 JVM unit tests across 10 classes. -
M0 — project scaffold. Gradle 9.3.1 / AGP 9.1.0 build with a version catalog,
de.softwareapp_hb.filemanagerapp module, a Compose Material 3 shell with the branded blue theme (dynamic colour on Android 12+), an adaptive launcher icon, and the storage-access permission set (all files access + SAF fallback). Debug APK builds, installs and runs on an AOSP Android 12 AVD.