From 994672608db65a68b3ba3db8fa37bb613de89c20 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Tue, 10 Sep 2024 23:46:21 +0200 Subject: Add libs:documents Reads the abomination that is SAF, or Androids best effort to make files and directories completely and utterly unusable on Android. The androidTest was (and is) a pain, only known to work on a Pixel3 API 34 emulator but it showed a lot of things that the fake content provider in the unit tests failed to show. --- .idea/gradle.xml | 1 + app/build.gradle.kts | 1 + .../java/org/the_jk/cleversync/io/TreeFactory.kt | 11 + .../main/groovy/the_jk.android-conventions.gradle | 8 + gradle/libs.versions.toml | 14 + libs/documents/.gitignore | 1 + libs/documents/build.gradle.kts | 36 ++ libs/documents/consumer-rules.pro | 0 libs/documents/proguard-rules.pro | 21 + libs/documents/src/androidTest/AndroidManifest.xml | 6 + .../documents/DocumentTreeAndroidTest.kt | 216 ++++++++++ .../cleversync/documents/test/TestActivity.kt | 26 ++ .../cleversync/documents/DocumentTreeFactory.kt | 33 ++ .../io/documents/DelayedCreationDocumentFile.kt | 36 ++ .../cleversync/io/documents/DocumentDirectory.kt | 302 ++++++++++++++ .../the_jk/cleversync/io/documents/DocumentFile.kt | 47 +++ .../cleversync/io/documents/DocumentMetadata.kt | 83 ++++ .../the_jk/cleversync/io/documents/DocumentTree.kt | 23 ++ .../cleversync/documents/DocumentTreeTest.kt | 460 +++++++++++++++++++++ .../src/test/resources/robolectric.properties | 1 + .../java/org/the_jk/cleversync/TreeAbstractTest.kt | 60 ++- settings.gradle.kts | 3 +- 22 files changed, 1370 insertions(+), 19 deletions(-) create mode 100644 libs/documents/.gitignore create mode 100644 libs/documents/build.gradle.kts create mode 100644 libs/documents/consumer-rules.pro create mode 100644 libs/documents/proguard-rules.pro create mode 100644 libs/documents/src/androidTest/AndroidManifest.xml create mode 100644 libs/documents/src/androidTest/java/org/the_jk/cleversync/documents/DocumentTreeAndroidTest.kt create mode 100644 libs/documents/src/androidTest/java/org/the_jk/cleversync/documents/test/TestActivity.kt create mode 100644 libs/documents/src/main/java/org/the_jk/cleversync/documents/DocumentTreeFactory.kt create mode 100644 libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DelayedCreationDocumentFile.kt create mode 100644 libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentDirectory.kt create mode 100644 libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentFile.kt create mode 100644 libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentMetadata.kt create mode 100644 libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentTree.kt create mode 100644 libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTest.kt create mode 120000 libs/documents/src/test/resources/robolectric.properties diff --git a/.idea/gradle.xml b/.idea/gradle.xml index d80a4e3..098a16f 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -23,6 +23,7 @@