Fuck Storage Access Framework (or just FSAF) is a handy library that hides away from you all the annoying parts of the Storage Access Framework (like DocumentTrees / DocumentIds / DocumentFiles / DocumentContracts and other bullshit) leaving only an API that is similar to good-old Java File API
Ensure correct order of directories and files when listing all files in a directory (directories should come first with their inner files afterwards). This potentially could break everything in some cases where f file would come before a directory and that directory wouldn't exist. So we would check whether a file exists (for example) but since it's parent directory does not exist SAF would throw an exception with a really not obvious message. This should be fixed now.
Another fix isChildOfDirectory this time when the same but for comparing ExternalFiles
Fix for isChildOfDirectory() when comparing RawFiles
Make FSAFUtils non-internal, only leave internal some specific methods
Add @JvmStatic annotation for splitIntoSegments()
Implement flattenSegments()
Fixes for SnapshotFileManager
Now when creating or deleting a file via SnapshotFileManager the FastFileSearchTree will also be updated
Fix for clone() method
Use segments from the input AbstractFile (which in most cases should be empty but sometimes may not be empty) in create() method without the segments parameter
Add an overloaded create() method for file managers, add virtual files checks and add a test