This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
In order to continue releasing updates on Google Play, we can no longer access the external storage directly; instead, we must use the Storage Access Framework (SAF). For more information, see: https://developer.android.com/about/versions/11/privacy/storage By default, APDE stores the sketchbook on the external storage. In order for this to keep working, we need to use the SAF to access the sketchbook. We *could* put the sketchbook on the internal storage, but this is bad for a variety of reasons, including: - users lose access to existing sketches - we no longer guarantee that your sketches still exist when you reinstall APDE - you can't interact with sketches outside of APDE for things like version control and managing data files So in short, this really sucks. This commit introduces a `MaybeDocumentFile` abstraction which wraps AndroidX's `DocumentFile`, which allows us to treat `DocumentFile` very similarly to a raw `File`. This has bad performance ramifications, but it seemed a lot easier than rewriting everything to use the SAF directly. This has been tested on the full Espresso test suite and is passing for both Android 9 and Android 11 (except for exportTest on Android 11). This gives me a reasonable degree of confidence that things are working, but there is a lot of surface area and certainly many more bugs that I haven't found yet. All functionality should work with the SAF with the exception of git integration for SAF sketchbooks, since git fundamentally requires access to a raw filesystem. For now, the git tool is disabled entirely. The plan is to re-enable the git tool for internal storage sketchbooks and pre-Android 10 devices, and point people at an external git client like MGit for external storage sketchbooks. If that doesn't work for some reason, I could release a standalone app for doing git things based on the existing git tool. There are also these outstanding tasks: - Prompt the user to pick an external storage sketchbook location when they first open APDE - Support migrating an external storage sketchbook to the new system - Test upgrading the app from the old system to the new system - Test upgrading Android from pre-Android 10 to Android 10+ - Re-enable git integration in a limited capacity - Lots of general testing
Failed to load latest commit information.
No packages published