Skip to content

Commit 5eae3d2

Browse files
authored
Merge pull request #7 from LikeTheSalad/release/2.2.0
Release/2.2.2
2 parents 2adebfa + a0f94f6 commit 5eae3d2

File tree

24 files changed

+69
-257
lines changed

24 files changed

+69
-257
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
Change Log
22
==========
33

4+
Version 2.2.2
5+
---
6+
7+
* Removing gradle from android-resource-collector.
8+
49
Version 2.2.0
510
---
611

-11
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,15 @@
11
plugins {
22
alias(libs.plugins.java.library)
3-
id 'kotlin-kapt'
43
}
54

65
dependencies {
76
api project(':resource-collector')
87
implementation project(':android-resource-api')
98
implementation libs.androidCompatApi
10-
embedded libs.dagger
11-
kapt libs.dagger.compiler
129
testImplementation libs.unitTesting
1310
testImplementation gradleApi()
1411
}
1512

16-
shadowExtension {
17-
relocate("dagger", "${group}.resourcecollector.dagger")
18-
}
19-
2013
libConventions {
2114
setJavaVersion("11")
22-
}
23-
24-
kapt {
25-
correctErrorTypes = true
2615
}

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/data/AndroidXmlResDocument.kt

+18-20
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import org.w3c.dom.NodeList
88
import org.xml.sax.InputSource
99
import java.io.File
1010
import java.io.StringReader
11-
import javax.inject.Inject
12-
import javax.inject.Singleton
1311
import javax.xml.parsers.DocumentBuilderFactory
1412
import javax.xml.transform.OutputKeys
1513
import javax.xml.transform.TransformerFactory
@@ -20,6 +18,24 @@ class AndroidXmlResDocument(private val document: Document) {
2018

2119
companion object {
2220
private const val XML_RESOURCES_TAG = "resources"
21+
private val documentBuilderFactory by lazy {
22+
DocumentBuilderFactory.newInstance().apply { isNamespaceAware = true }
23+
}
24+
25+
fun fromFile(xmlFile: File): AndroidXmlResDocument {
26+
val dBuilder = documentBuilderFactory.newDocumentBuilder()
27+
val xmlInput = InputSource(StringReader(xmlFile.readText()))
28+
return AndroidXmlResDocument(
29+
dBuilder.parse(xmlInput)
30+
)
31+
}
32+
33+
fun createNewDocument(): AndroidXmlResDocument {
34+
val document = documentBuilderFactory.newDocumentBuilder().newDocument().apply {
35+
xmlStandalone = true
36+
}
37+
return AndroidXmlResDocument(document)
38+
}
2339
}
2440

2541
private val resources: Element by lazy { getOrCreateResources() }
@@ -64,22 +80,4 @@ class AndroidXmlResDocument(private val document: Document) {
6480
return resources
6581
}
6682

67-
@Singleton
68-
class Factory @Inject constructor(private val documentBuilderFactory: DocumentBuilderFactory) {
69-
70-
fun fromFile(xmlFile: File): AndroidXmlResDocument {
71-
val dBuilder = documentBuilderFactory.newDocumentBuilder()
72-
val xmlInput = InputSource(StringReader(xmlFile.readText()))
73-
return AndroidXmlResDocument(
74-
dBuilder.parse(xmlInput)
75-
)
76-
}
77-
78-
fun createNewDocument(): AndroidXmlResDocument {
79-
val document = documentBuilderFactory.newDocumentBuilder().newDocument().apply {
80-
xmlStandalone = true
81-
}
82-
return AndroidXmlResDocument(document)
83-
}
84-
}
8583
}

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/data/resdir/ResDirFinder.kt

+2-5
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@ package com.likethesalad.tools.resource.collector.android.data.resdir
22

33
import com.likethesalad.tools.agpcompat.api.bridges.AndroidExtension
44
import com.likethesalad.tools.resource.api.android.environment.Variant
5-
import javax.inject.Inject
6-
import javax.inject.Singleton
75

8-
@Singleton
9-
class ResDirFinder @Inject constructor(private val androidExtension: AndroidExtension) {
6+
object ResDirFinder {
107

11-
fun findResDirs(variant: Variant): List<ResDir> {
8+
fun findResDirs(androidExtension: AndroidExtension, variant: Variant): List<ResDir> {
129
return androidExtension.getVariantSrcDirs(variant.name)
1310
.filter { it.exists() }
1411
.map { ResDir(variant, it) }

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/data/valuedir/ValueDirFinder.kt

+2-7
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,10 @@ package com.likethesalad.tools.resource.collector.android.data.valuedir
33
import com.likethesalad.tools.resource.api.android.environment.Language
44
import com.likethesalad.tools.resource.collector.android.data.resdir.ResDir
55
import java.io.File
6-
import javax.inject.Inject
7-
import javax.inject.Singleton
86

9-
@Singleton
10-
class ValueDirFinder @Inject constructor() {
7+
object ValueDirFinder {
118

12-
companion object {
13-
private val VALUES_FOLDER_NAME_REGEX = Regex("values(-([a-z]{2}(-r[A-Z]{2})*))*")
14-
}
9+
private val VALUES_FOLDER_NAME_REGEX = Regex("values(-([a-z]{2}(-r[A-Z]{2})*))*")
1510

1611
fun findValueDirs(resDir: ResDir): List<ValueDir> {
1712
val valueFolders = resDir.dir.listFiles { _, name ->

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/data/xml/XmlFileFinder.kt

+2-7
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,10 @@ package com.likethesalad.tools.resource.collector.android.data.xml
22

33
import com.likethesalad.tools.resource.collector.android.data.valuedir.ValueDir
44
import java.io.File
5-
import javax.inject.Inject
6-
import javax.inject.Singleton
75

8-
@Singleton
9-
class XmlFileFinder @Inject constructor() {
6+
object XmlFileFinder {
107

11-
companion object {
12-
private val XML_FORMAT = Regex(".+\\.[xX][mM][lL]\$")
13-
}
8+
private val XML_FORMAT = Regex(".+\\.[xX][mM][lL]\$")
149

1510
fun findXmlFiles(valueDir: ValueDir): List<File> {
1611
return valueDir.dir.listFiles { _, name ->

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/di/CollectorComponent.kt

-17
This file was deleted.

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/di/CollectorModule.kt

-20
This file was deleted.

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/source/AndroidXmlResourceSource.kt

+4-13
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,15 @@ package com.likethesalad.tools.resource.collector.android.source
33
import com.likethesalad.tools.resource.api.Resource
44
import com.likethesalad.tools.resource.collector.android.data.AndroidXmlResDocument
55
import com.likethesalad.tools.resource.collector.source.base.FileResourceSource
6-
import dagger.assisted.Assisted
7-
import dagger.assisted.AssistedFactory
8-
import dagger.assisted.AssistedInject
96
import java.io.File
107

11-
class AndroidXmlResourceSource @AssistedInject constructor(
12-
@Assisted private val xmlFile: File,
13-
@Assisted private val scope: Resource.Scope,
14-
private val documentFactory: AndroidXmlResDocument.Factory
8+
class AndroidXmlResourceSource(
9+
private val xmlFile: File,
10+
private val scope: Resource.Scope,
1511
) : FileResourceSource(xmlFile) {
1612

17-
@AssistedFactory
18-
interface Factory {
19-
fun create(xmlFile: File, scope: Resource.Scope): AndroidXmlResourceSource
20-
}
21-
2213
val document: AndroidXmlResDocument by lazy {
23-
documentFactory.fromFile(xmlFile)
14+
AndroidXmlResDocument.fromFile(xmlFile)
2415
}
2516

2617
override fun getScope(): Resource.Scope = scope

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/source/providers/ResDirResourceSourceProvider.kt

+4-17
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,13 @@ import com.likethesalad.tools.resource.collector.android.data.xml.XmlFileFinder
88
import com.likethesalad.tools.resource.collector.android.source.AndroidXmlResourceSource
99
import com.likethesalad.tools.resource.collector.source.ResourceSource
1010
import com.likethesalad.tools.resource.collector.source.ResourceSourceProvider
11-
import dagger.assisted.Assisted
12-
import dagger.assisted.AssistedFactory
13-
import dagger.assisted.AssistedInject
1411
import java.io.File
1512

16-
class ResDirResourceSourceProvider @AssistedInject constructor(
17-
@Assisted private val resDir: ResDir,
18-
private val valueDirFinder: ValueDirFinder,
19-
private val xmlFileFinder: XmlFileFinder,
20-
private val sourceFactory: AndroidXmlResourceSource.Factory
21-
) : ResourceSourceProvider() {
22-
23-
@AssistedFactory
24-
interface Factory {
25-
fun create(resDir: ResDir): ResDirResourceSourceProvider
26-
}
13+
class ResDirResourceSourceProvider(private val resDir: ResDir) : ResourceSourceProvider() {
2714

2815
override fun doGetSources(): List<ResourceSource> {
2916
val sources = mutableListOf<ResourceSource>()
30-
val valueDirs = valueDirFinder.findValueDirs(resDir)
17+
val valueDirs = ValueDirFinder.findValueDirs(resDir)
3118

3219
for (valueDir in valueDirs) {
3320
sources.addAll(extractSourcesFromValueDir(valueDir))
@@ -38,7 +25,7 @@ class ResDirResourceSourceProvider @AssistedInject constructor(
3825

3926
private fun extractSourcesFromValueDir(valueDir: ValueDir): Collection<ResourceSource> {
4027
val sources = mutableListOf<ResourceSource>()
41-
val xmlFiles = xmlFileFinder.findXmlFiles(valueDir)
28+
val xmlFiles = XmlFileFinder.findXmlFiles(valueDir)
4229
val scope = AndroidResourceScope(valueDir.resDir.variant, valueDir.language)
4330

4431
for (file in xmlFiles) {
@@ -51,5 +38,5 @@ class ResDirResourceSourceProvider @AssistedInject constructor(
5138
private fun createAndroidResourceSource(
5239
file: File,
5340
scope: AndroidResourceScope
54-
): AndroidXmlResourceSource = sourceFactory.create(file, scope)
41+
): AndroidXmlResourceSource = AndroidXmlResourceSource(file, scope)
5542
}

android-resource-collector/src/main/java/com/likethesalad/tools/resource/collector/android/source/providers/VariantTreeResourceSourceProvider.kt

+7-15
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
package com.likethesalad.tools.resource.collector.android.source.providers
22

3+
import com.likethesalad.tools.agpcompat.api.bridges.AndroidExtension
34
import com.likethesalad.tools.resource.api.android.environment.Variant
45
import com.likethesalad.tools.resource.collector.android.data.resdir.ResDir
56
import com.likethesalad.tools.resource.collector.android.data.resdir.ResDirFinder
67
import com.likethesalad.tools.resource.collector.android.data.variant.VariantTree
78
import com.likethesalad.tools.resource.collector.source.ResourceSource
89
import com.likethesalad.tools.resource.collector.source.ResourceSourceProvider
9-
import dagger.assisted.Assisted
10-
import dagger.assisted.AssistedFactory
11-
import dagger.assisted.AssistedInject
12-
13-
class VariantTreeResourceSourceProvider @AssistedInject constructor(
14-
@Assisted private val variantTree: VariantTree,
15-
@Assisted private val resDirFinder: ResDirFinder,
16-
private val resDirResourceSourceProviderFactory: ResDirResourceSourceProvider.Factory
17-
) : ResourceSourceProvider() {
1810

19-
@AssistedFactory
20-
interface Factory {
21-
fun create(variantTree: VariantTree, resDirFinder: ResDirFinder): VariantTreeResourceSourceProvider
22-
}
11+
class VariantTreeResourceSourceProvider(
12+
private val androidExtension: AndroidExtension,
13+
private val variantTree: VariantTree
14+
) : ResourceSourceProvider() {
2315

2416
private val lazySources: List<ResourceSource> by lazy {
2517
val sources = mutableListOf<ResourceSource>()
@@ -44,7 +36,7 @@ class VariantTreeResourceSourceProvider @AssistedInject constructor(
4436

4537
private fun extractSourcesFromVariant(variant: Variant): List<ResourceSource> {
4638
val sources = mutableListOf<ResourceSource>()
47-
val resDirs = resDirFinder.findResDirs(variant)
39+
val resDirs = ResDirFinder.findResDirs(androidExtension, variant)
4840

4941
for (resDir in resDirs) {
5042
sources.addAll(extractSourcesFromResDir(resDir))
@@ -54,6 +46,6 @@ class VariantTreeResourceSourceProvider @AssistedInject constructor(
5446
}
5547

5648
private fun extractSourcesFromResDir(resDir: ResDir): List<ResourceSource> {
57-
return resDirResourceSourceProviderFactory.create(resDir).getSources()
49+
return ResDirResourceSourceProvider(resDir).getSources()
5850
}
5951
}

android-resource-collector/src/test/java/com/likethesalad/tools/resource/collector/android/data/resdir/ResDirFinderTest.kt

+2-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.likethesalad.tools.resource.api.android.environment.Variant
66
import com.likethesalad.tools.testing.BaseMockable
77
import io.mockk.every
88
import io.mockk.impl.annotations.MockK
9-
import org.junit.Before
109
import org.junit.Test
1110
import java.io.File
1211

@@ -17,18 +16,13 @@ class ResDirFinderTest : BaseMockable() {
1716

1817
private lateinit var resDirFinder: ResDirFinder
1918

20-
@Before
21-
fun setUp() {
22-
resDirFinder = ResDirFinder(androidExtensionHelper)
23-
}
24-
2519
@Test
2620
fun `Get res dirs from variant`() {
2721
val variant = Variant.Default
2822
val dirs = setOf(createExistingFileMock(), createExistingFileMock(), createExistingFileMock())
2923
prepareExtensionHelperWithDirs(variant, dirs)
3024

31-
val result = resDirFinder.findResDirs(variant)
25+
val result = ResDirFinder.findResDirs(androidExtensionHelper, variant)
3226

3327
Truth.assertThat(result).containsExactlyElementsIn(dirsToResDir(variant, dirs))
3428
}
@@ -41,7 +35,7 @@ class ResDirFinderTest : BaseMockable() {
4135
val dirs = existingDirs + nonExistingDirs
4236
prepareExtensionHelperWithDirs(variant, dirs)
4337

44-
val result = resDirFinder.findResDirs(variant)
38+
val result = ResDirFinder.findResDirs(androidExtensionHelper, variant)
4539

4640
Truth.assertThat(result).containsExactlyElementsIn(dirsToResDir(variant, existingDirs))
4741
}

android-resource-collector/src/test/java/com/likethesalad/tools/resource/collector/android/data/valuedir/ValueDirFinderTest.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@ import org.junit.Test
99

1010
class ValueDirFinderTest {
1111

12-
private val finder = ValueDirFinder()
13-
1412
@Test
1513
fun `Find values dirs`() {
1614
val resFolder = getResourceFile("res")
1715
val resDir = ResDir(Variant.Default, resFolder)
1816

19-
val result = finder.findValueDirs(resDir)
17+
val result = ValueDirFinder.findValueDirs(resDir)
2018

2119
Truth.assertThat(result).containsExactly(
2220
ValueDir(resDir, getResourceFile("res/values"), Language.Default),

android-resource-collector/src/test/java/com/likethesalad/tools/resource/collector/android/data/xml/XmlFileFinderTest.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import java.io.File
1111

1212
class XmlFileFinderTest {
1313

14-
private val xmlFileFinder = XmlFileFinder()
15-
1614
@Test
1715
fun `Find xml files`() {
1816
val files = findXmlFilesFromFolder(getResourceFile("res/values"))
@@ -41,6 +39,6 @@ class XmlFileFinderTest {
4139
val resDir = mockk<ResDir>()
4240
val valuesDir = ValueDir(resDir, folder, Language.Default)
4341

44-
return xmlFileFinder.findXmlFiles(valuesDir)
42+
return XmlFileFinder.findXmlFiles(valuesDir)
4543
}
4644
}

0 commit comments

Comments
 (0)