summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-07-15 23:52:28 +0200
committerJoel Klinghed <the_jk@spawned.biz>2024-07-16 00:25:07 +0200
commit42564c71cfb70c28831c662a3b6bf4084e079353 (patch)
tree111456fd3e8dce884d0380a81d70950062c7d212
parent4a8f6807c9d3ee6bcfac25aee832163036b4e6fe (diff)
Break out io code in libs
Preparing for adding more io implementations. Really tried writing the convention plugins in kotlin dsl but could not find the exact right hacks to get it to work.
-rw-r--r--.gitignore2
-rw-r--r--.idea/gradle.xml16
-rw-r--r--app/.gitignore1
-rw-r--r--app/build.gradle.kts34
-rw-r--r--app/src/main/java/org/the_jk/cleversync/io/TreeFactory.kt8
-rw-r--r--build.gradle.kts11
-rw-r--r--buildSrc/build.gradle.kts25
-rw-r--r--buildSrc/settings.gradle.kts9
-rw-r--r--buildSrc/src/main/groovy/the_jk.android-conventions.gradle45
-rw-r--r--gradle/libs.versions.toml5
-rw-r--r--libs/io/build.gradle.kts12
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/Directory.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/Directory.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/File.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/File.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/Link.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableDirectory.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/ModifiableDirectory.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableFile.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/ModifiableFile.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableTree.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/ModifiableTree.kt)0
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/Tree.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/Tree.kt)0
-rw-r--r--libs/local/build.gradle.kts12
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/impl/PathDirectory.kt)2
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/impl/PathFile.kt)2
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/io/local/PathLink.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/impl/PathLink.kt)2
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/io/local/PathTree.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/impl/PathTree.kt)4
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/io/local/PathWatcher.kt (renamed from app/src/main/java/org/the_jk/cleversync/io/impl/PathWatcher.kt)2
-rw-r--r--libs/local/src/main/java/org/the_jk/cleversync/local/LocalTreeFactory.kt16
-rw-r--r--libs/local/src/main/res/values/strings.xml3
-rw-r--r--libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt (renamed from app/src/test/java/org/the_jk/cleversync/io/LocalTreeTest.kt)8
-rw-r--r--libs/utils/build.gradle.kts12
-rw-r--r--libs/utils/src/main/java/org/the_jk/cleversync/LiveDataUtils.kt (renamed from app/src/main/java/org/the_jk/cleversync/LiveDataUtils.kt)0
-rw-r--r--libs/utils/src/main/java/org/the_jk/cleversync/StringUtils.kt (renamed from app/src/main/java/org/the_jk/cleversync/StringUtils.kt)0
-rw-r--r--libs/utils/src/test/java/org/the_jk/cleversync/StringUtilsTest.kt (renamed from app/src/test/java/org/the_jk/cleversync/StringUtilsTest.kt)0
-rw-r--r--settings.gradle.kts3
33 files changed, 190 insertions, 44 deletions
diff --git a/.gitignore b/.gitignore
index aa724b7..b2ed268 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,7 @@
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
-/build
+build
/captures
.externalNativeBuild
.cxx
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 0897082..cc8d323 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,12 +4,28 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
+ <compositeConfiguration>
+ <compositeBuild compositeDefinitionSource="SCRIPT">
+ <builds>
+ <build path="$PROJECT_DIR$/buildSrc" name="the_jk-conventions">
+ <projects>
+ <project path="$PROJECT_DIR$/buildSrc" />
+ </projects>
+ </build>
+ </builds>
+ </compositeBuild>
+ </compositeConfiguration>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
+ <option value="$PROJECT_DIR$/buildSrc" />
+ <option value="$PROJECT_DIR$/libs" />
+ <option value="$PROJECT_DIR$/libs/io" />
+ <option value="$PROJECT_DIR$/libs/local" />
+ <option value="$PROJECT_DIR$/libs/utils" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
diff --git a/app/.gitignore b/app/.gitignore
deleted file mode 100644
index 42afabf..0000000
--- a/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build \ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index d432519..ea29544 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -1,21 +1,14 @@
plugins {
alias(libs.plugins.android.application)
- alias(libs.plugins.arturbosch.detekt)
- alias(libs.plugins.jetbrains.kotlin.android)
}
android {
namespace = "org.the_jk.cleversync"
- compileSdk = 34
defaultConfig {
applicationId = "org.the_jk.cleversync"
- minSdk = 29
- targetSdk = 34
versionCode = 1
versionName = "0.1"
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
@@ -27,41 +20,22 @@ android {
)
}
}
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
- }
- kotlinOptions {
- jvmTarget = "11"
- }
buildFeatures {
viewBinding = true
}
}
dependencies {
+ implementation(project(":libs:local"))
+ implementation(project(":libs:io"))
+ implementation(project(":libs:samba"))
+ implementation(project(":libs:utils"))
implementation(libs.androidx.appcompat)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.core.ktx)
- implementation(libs.androidx.livedata)
- implementation(libs.androidx.livedata.ktx)
implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
implementation(libs.material)
- testImplementation(libs.junit)
- testImplementation(libs.robolectric)
- testImplementation(libs.truth)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}
-
-detekt {
- config.setFrom(rootProject.file("detekt.yaml"))
-}
-
-tasks.withType<io.gitlab.arturbosch.detekt.Detekt>().configureEach {
- this.jvmTarget = "11"
-}
-tasks.withType<io.gitlab.arturbosch.detekt.DetektCreateBaselineTask>().configureEach {
- this.jvmTarget = "11"
-}
diff --git a/app/src/main/java/org/the_jk/cleversync/io/TreeFactory.kt b/app/src/main/java/org/the_jk/cleversync/io/TreeFactory.kt
index d7c22f5..6df2c93 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/TreeFactory.kt
+++ b/app/src/main/java/org/the_jk/cleversync/io/TreeFactory.kt
@@ -1,12 +1,14 @@
package org.the_jk.cleversync.io
-import org.the_jk.cleversync.io.impl.PathTree
+import org.the_jk.cleversync.local.LocalTreeFactory
import java.nio.file.Path
object TreeFactory {
fun localModifiableTree(root: Path): ModifiableTree {
- return PathTree(root)
+ return LocalTreeFactory.modifiableTree(root)
}
- fun localTree(root: Path): Tree = localModifiableTree(root)
+ fun localTree(root: Path): Tree {
+ return LocalTreeFactory.tree(root)
+ }
}
diff --git a/build.gradle.kts b/build.gradle.kts
index 435b1fa..0c60167 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,4 +1,15 @@
plugins {
alias(libs.plugins.android.application) apply false
+ alias(libs.plugins.android.library) apply false
+ alias(libs.plugins.arturbosch.detekt) apply false
alias(libs.plugins.jetbrains.kotlin.android) apply false
}
+
+subprojects {
+ plugins.withId("com.android.application") {
+ apply(plugin = "the_jk.android-conventions")
+ }
+ plugins.withId("com.android.library") {
+ apply(plugin = "the_jk.android-conventions")
+ }
+}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
new file mode 100644
index 0000000..b3d40ac
--- /dev/null
+++ b/buildSrc/build.gradle.kts
@@ -0,0 +1,25 @@
+plugins {
+ id("groovy-gradle-plugin")
+
+ `kotlin-dsl`
+}
+
+repositories {
+ google()
+ gradlePluginPortal()
+}
+
+dependencies {
+ implementation(libs.android.build.gradle.api)
+}
+
+java {
+ toolchain {
+ // 11 needed for compile the groovy
+ languageVersion = JavaLanguageVersion.of(11)
+ }
+}
+
+kotlin {
+ jvmToolchain(11)
+}
diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts
new file mode 100644
index 0000000..8edb952
--- /dev/null
+++ b/buildSrc/settings.gradle.kts
@@ -0,0 +1,9 @@
+rootProject.name="the_jk-conventions"
+
+dependencyResolutionManagement {
+ versionCatalogs {
+ create("libs") {
+ from(files("../gradle/libs.versions.toml"))
+ }
+ }
+}
diff --git a/buildSrc/src/main/groovy/the_jk.android-conventions.gradle b/buildSrc/src/main/groovy/the_jk.android-conventions.gradle
new file mode 100644
index 0000000..9ff8adf
--- /dev/null
+++ b/buildSrc/src/main/groovy/the_jk.android-conventions.gradle
@@ -0,0 +1,45 @@
+plugins {
+ id("io.gitlab.arturbosch.detekt")
+ id("org.jetbrains.kotlin.android")
+}
+
+android {
+ compileSdk = 34
+
+ defaultConfig {
+ minSdk = 29
+
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+ kotlinOptions {
+ jvmTarget = "11"
+ }
+}
+
+dependencies {
+ testImplementation(libs.junit)
+ testImplementation(libs.robolectric)
+ testImplementation(libs.truth)
+}
+
+detekt {
+ config.setFrom(rootProject.file("detekt.yaml"))
+}
+
+def detektPlugin = project.plugins['io.gitlab.arturbosch.detekt']
+def detektCls = Class.forName('io.gitlab.arturbosch.detekt.Detekt', true, detektPlugin.class.classLoader)
+
+tasks.withType(detektCls).configureEach {
+ jvmTarget = "11"
+}
+
+def detektCreateBaselineTaskCls = Class.forName('io.gitlab.arturbosch.detekt.DetektCreateBaselineTask', true, detektPlugin.class.classLoader)
+
+tasks.withType(detektCreateBaselineTaskCls).configureEach {
+ jvmTarget = "11"
+}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 6f124db..ba79550 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -3,6 +3,7 @@ agp = "8.5.1"
appcompat = "1.7.0"
constraintlayout = "2.1.4"
coreKtx = "1.13.1"
+detekt = "1.23.6"
espressoCore = "3.6.1"
junit = "4.13.2"
junitVersion = "1.2.1"
@@ -13,6 +14,7 @@ navigationFragmentKtx = "2.7.7"
navigationUiKtx = "2.7.7"
[libraries]
+android-build-gradle-api = { group = "com.android.tools.build", name = "gradle-api", version.ref = "agp" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -29,5 +31,6 @@ truth = { group = "com.google.truth", name = "truth", version = "1.4.3" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
-arturbosch-detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.3" }
+android-library = { id = "com.android.library", version.ref = "agp" }
+arturbosch-detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
diff --git a/libs/io/build.gradle.kts b/libs/io/build.gradle.kts
new file mode 100644
index 0000000..c091a90
--- /dev/null
+++ b/libs/io/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ alias(libs.plugins.android.library)
+}
+
+android {
+ namespace = "org.the_jk.cleversync.io"
+}
+
+dependencies {
+ api(libs.androidx.livedata)
+ api(libs.androidx.livedata.ktx)
+}
diff --git a/app/src/main/java/org/the_jk/cleversync/io/Directory.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/Directory.kt
index e653059..e653059 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/Directory.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/Directory.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/File.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/File.kt
index 17f142a..17f142a 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/File.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/File.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/Link.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt
index c05f29e..c05f29e 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/Link.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/ModifiableDirectory.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableDirectory.kt
index 8bddc2c..8bddc2c 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/ModifiableDirectory.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableDirectory.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/ModifiableFile.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableFile.kt
index 8675dae..8675dae 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/ModifiableFile.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableFile.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt
index 7dd565b..7dd565b 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/ModifiableTree.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableTree.kt
index 383360d..383360d 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/ModifiableTree.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableTree.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/io/Tree.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/Tree.kt
index b6f2d54..b6f2d54 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/Tree.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/Tree.kt
diff --git a/libs/local/build.gradle.kts b/libs/local/build.gradle.kts
new file mode 100644
index 0000000..46d8128
--- /dev/null
+++ b/libs/local/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ alias(libs.plugins.android.library)
+}
+
+android {
+ namespace = "org.the_jk.cleversync.local"
+}
+
+dependencies {
+ implementation(project(":libs:io"))
+ testImplementation(project(":libs:utils"))
+}
diff --git a/app/src/main/java/org/the_jk/cleversync/io/impl/PathDirectory.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt
index 55bed6a..9899f02 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/impl/PathDirectory.kt
+++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathDirectory.kt
@@ -1,4 +1,4 @@
-package org.the_jk.cleversync.io.impl
+package org.the_jk.cleversync.io.local
import androidx.annotation.AnyThread
import androidx.lifecycle.LiveData
diff --git a/app/src/main/java/org/the_jk/cleversync/io/impl/PathFile.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt
index 9a8d160..6aeb895 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/impl/PathFile.kt
+++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathFile.kt
@@ -1,4 +1,4 @@
-package org.the_jk.cleversync.io.impl
+package org.the_jk.cleversync.io.local
import org.the_jk.cleversync.io.ModifiableFile
import java.io.InputStream
diff --git a/app/src/main/java/org/the_jk/cleversync/io/impl/PathLink.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathLink.kt
index 9ae8b51..97cd117 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/impl/PathLink.kt
+++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathLink.kt
@@ -1,4 +1,4 @@
-package org.the_jk.cleversync.io.impl
+package org.the_jk.cleversync.io.local
import org.the_jk.cleversync.io.Directory
import org.the_jk.cleversync.io.File
diff --git a/app/src/main/java/org/the_jk/cleversync/io/impl/PathTree.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathTree.kt
index a8a74c5..23442a1 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/impl/PathTree.kt
+++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathTree.kt
@@ -1,8 +1,8 @@
-package org.the_jk.cleversync.io.impl
+package org.the_jk.cleversync.io.local
import android.content.res.Resources
-import org.the_jk.cleversync.R
import org.the_jk.cleversync.io.ModifiableTree
+import org.the_jk.cleversync.local.R
import java.nio.file.Path
internal class PathTree(root: Path) : PathDirectory(root, PathWatcher()), ModifiableTree {
diff --git a/app/src/main/java/org/the_jk/cleversync/io/impl/PathWatcher.kt b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathWatcher.kt
index 945019a..0fa9f03 100644
--- a/app/src/main/java/org/the_jk/cleversync/io/impl/PathWatcher.kt
+++ b/libs/local/src/main/java/org/the_jk/cleversync/io/local/PathWatcher.kt
@@ -1,4 +1,4 @@
-package org.the_jk.cleversync.io.impl
+package org.the_jk.cleversync.io.local
import androidx.annotation.GuardedBy
import androidx.annotation.WorkerThread
diff --git a/libs/local/src/main/java/org/the_jk/cleversync/local/LocalTreeFactory.kt b/libs/local/src/main/java/org/the_jk/cleversync/local/LocalTreeFactory.kt
new file mode 100644
index 0000000..3990416
--- /dev/null
+++ b/libs/local/src/main/java/org/the_jk/cleversync/local/LocalTreeFactory.kt
@@ -0,0 +1,16 @@
+package org.the_jk.cleversync.local
+
+import org.the_jk.cleversync.io.ModifiableTree
+import org.the_jk.cleversync.io.Tree
+import org.the_jk.cleversync.io.local.PathTree
+import java.nio.file.Path
+
+object LocalTreeFactory {
+ fun tree(path: Path): Tree {
+ return PathTree(path)
+ }
+
+ fun modifiableTree(path: Path): ModifiableTree {
+ return PathTree(path)
+ }
+}
diff --git a/libs/local/src/main/res/values/strings.xml b/libs/local/src/main/res/values/strings.xml
new file mode 100644
index 0000000..9fef6ef
--- /dev/null
+++ b/libs/local/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+ <string name="local_directory">Local directory</string>
+</resources>
diff --git a/app/src/test/java/org/the_jk/cleversync/io/LocalTreeTest.kt b/libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt
index 7b83c98..21002e3 100644
--- a/app/src/test/java/org/the_jk/cleversync/io/LocalTreeTest.kt
+++ b/libs/local/src/test/java/org/the_jk/cleversync/local/LocalTreeTest.kt
@@ -1,4 +1,4 @@
-package org.the_jk.cleversync.io
+package org.the_jk.cleversync.local
import com.google.common.truth.Truth.assertThat
import org.junit.Assert
@@ -10,6 +10,10 @@ import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import org.robolectric.shadows.ShadowLooper
+import org.the_jk.cleversync.io.Directory
+import org.the_jk.cleversync.io.Link
+import org.the_jk.cleversync.io.ModifiableLink
+import org.the_jk.cleversync.io.ModifiableTree
import org.the_jk.cleversync.safeValue
@Config(manifest=Config.NONE)
@@ -22,7 +26,7 @@ class LocalTreeTest {
@Before
fun setUp() {
- tree = TreeFactory.localModifiableTree(folder.root.toPath())
+ tree = LocalTreeFactory.modifiableTree(folder.root.toPath())
}
@Test
diff --git a/libs/utils/build.gradle.kts b/libs/utils/build.gradle.kts
new file mode 100644
index 0000000..b4f0ae5
--- /dev/null
+++ b/libs/utils/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ alias(libs.plugins.android.library)
+}
+
+android {
+ namespace = "org.the_jk.cleversync.utils"
+}
+
+dependencies {
+ api(libs.androidx.livedata)
+ api(libs.androidx.livedata.ktx)
+}
diff --git a/app/src/main/java/org/the_jk/cleversync/LiveDataUtils.kt b/libs/utils/src/main/java/org/the_jk/cleversync/LiveDataUtils.kt
index 7f6ab1f..7f6ab1f 100644
--- a/app/src/main/java/org/the_jk/cleversync/LiveDataUtils.kt
+++ b/libs/utils/src/main/java/org/the_jk/cleversync/LiveDataUtils.kt
diff --git a/app/src/main/java/org/the_jk/cleversync/StringUtils.kt b/libs/utils/src/main/java/org/the_jk/cleversync/StringUtils.kt
index 6adea24..6adea24 100644
--- a/app/src/main/java/org/the_jk/cleversync/StringUtils.kt
+++ b/libs/utils/src/main/java/org/the_jk/cleversync/StringUtils.kt
diff --git a/app/src/test/java/org/the_jk/cleversync/StringUtilsTest.kt b/libs/utils/src/test/java/org/the_jk/cleversync/StringUtilsTest.kt
index 6a36156..6a36156 100644
--- a/app/src/test/java/org/the_jk/cleversync/StringUtilsTest.kt
+++ b/libs/utils/src/test/java/org/the_jk/cleversync/StringUtilsTest.kt
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 0a813b0..48dd233 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -21,3 +21,6 @@ dependencyResolutionManagement {
rootProject.name = "CleverSync"
include(":app")
+include(":libs:local")
+include(":libs:io")
+include(":libs:utils")