Skip to content

Commit 780a400

Browse files
committed
Remove package name from Simple conversion mode
1 parent cf5d6b1 commit 780a400

File tree

9 files changed

+88
-296
lines changed

9 files changed

+88
-296
lines changed

components/generator/jvm/imagevector/src/test/kotlin/io/github/composegears/valkyrie/generator/jvm/imagevector/CustomPackageTest.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,25 @@ class CustomPackageTest(
109109
assertThat(parserOutput.iconType).isEqualTo(XML)
110110
assertThat(output).isEqualTo(expected)
111111
}
112+
113+
@Test
114+
fun `no package without icon pack`() {
115+
val icon = getResourcePath("imagevector/xml/ic_flat_package.xml").toIOPath()
116+
val parserOutput = SvgXmlParser.toIrImageVector(parser = ParserType.Jvm, path = icon)
117+
val output = ImageVectorGenerator.convert(
118+
vector = parserOutput.irImageVector,
119+
iconName = parserOutput.iconName,
120+
config = createConfig(
121+
packageName = "",
122+
outputFormat = outputFormat,
123+
),
124+
).content
125+
126+
val expected = outputFormat.toResourceText(
127+
pathToBackingProperty = "imagevector/kt/backing/NoPackage.kt",
128+
pathToLazyProperty = "imagevector/kt/lazy/NoPackage.kt",
129+
)
130+
assertThat(parserOutput.iconType).isEqualTo(XML)
131+
assertThat(output).isEqualTo(expected)
132+
}
112133
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import androidx.compose.ui.graphics.vector.ImageVector
2+
import androidx.compose.ui.unit.dp
3+
4+
val FlatPackage: ImageVector
5+
get() {
6+
if (_FlatPackage != null) {
7+
return _FlatPackage!!
8+
}
9+
_FlatPackage = ImageVector.Builder(
10+
name = "FlatPackage",
11+
defaultWidth = 24.dp,
12+
defaultHeight = 24.dp,
13+
viewportWidth = 18f,
14+
viewportHeight = 18f
15+
).build()
16+
17+
return _FlatPackage!!
18+
}
19+
20+
@Suppress("ObjectPropertyName")
21+
private var _FlatPackage: ImageVector? = null
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import androidx.compose.ui.graphics.vector.ImageVector
2+
import androidx.compose.ui.unit.dp
3+
4+
val FlatPackage: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
5+
ImageVector.Builder(
6+
name = "FlatPackage",
7+
defaultWidth = 24.dp,
8+
defaultHeight = 24.dp,
9+
viewportWidth = 18f,
10+
viewportHeight = 18f
11+
).build()
12+
}

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/ValkyriePlugin.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import io.github.composegears.valkyrie.ui.screen.intro.IntroScreen
3939
import io.github.composegears.valkyrie.ui.screen.mode.iconpack.conversion.IconPackConversionScreen
4040
import io.github.composegears.valkyrie.ui.screen.mode.iconpack.creation.IconPackCreationScreen
4141
import io.github.composegears.valkyrie.ui.screen.mode.simple.conversion.SimpleConversionScreen
42-
import io.github.composegears.valkyrie.ui.screen.mode.simple.setup.SimpleModeSetupScreen
4342
import io.github.composegears.valkyrie.ui.screen.preview.CodePreviewScreen
4443
import io.github.composegears.valkyrie.ui.screen.settings.SettingsScreen
4544
import io.github.composegears.valkyrie.ui.screen.webimport.WebImportFlow
@@ -91,7 +90,6 @@ fun ValkyriePlugin(
9190
navController = navController,
9291
destinations = arrayOf(
9392
IntroScreen,
94-
SimpleModeSetupScreen,
9593
SimpleConversionScreen,
9694

9795
IconPackCreationScreen,

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/intro/IntroScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import io.github.composegears.valkyrie.ui.foundation.theme.PreviewTheme
4242
import io.github.composegears.valkyrie.ui.screen.editor.EditorSelectScreen
4343
import io.github.composegears.valkyrie.ui.screen.intro.util.rememberPluginVersion
4444
import io.github.composegears.valkyrie.ui.screen.mode.iconpack.creation.IconPackCreationScreen
45-
import io.github.composegears.valkyrie.ui.screen.mode.simple.setup.SimpleModeSetupScreen
45+
import io.github.composegears.valkyrie.ui.screen.mode.simple.conversion.SimpleConversionScreen
4646
import io.github.composegears.valkyrie.ui.screen.settings.SettingsScreen
4747
import io.github.composegears.valkyrie.ui.screen.webimport.WebImportFlow
4848
import io.github.composegears.valkyrie.util.stringResource
@@ -57,7 +57,7 @@ val IntroScreen: NavDestination<Unit> by navDestination {
5757
},
5858
onModeChange = {
5959
when (it) {
60-
Simple -> navController.navigate(dest = SimpleModeSetupScreen)
60+
Simple -> navController.navigate(dest = SimpleConversionScreen)
6161
IconPack -> navController.navigate(dest = IconPackCreationScreen)
6262
Editor -> navController.navigate(dest = EditorSelectScreen)
6363
WebImport -> navController.navigate(dest = WebImportFlow)

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/conversion/viewmodel/SimpleConversionViewModel.kt

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class SimpleConversionViewModel(
9292
iconContent = output,
9393
)
9494
}
95+
saveCurrentMode()
9596
}
9697

9798
fun reset() {
@@ -120,6 +121,8 @@ class SimpleConversionViewModel(
120121
mode = mode,
121122
)
122123
}
124+
125+
saveCurrentMode()
123126
}
124127

125128
fun changeIconName(name: String) = viewModelScope.launch(Dispatchers.Default) {
@@ -159,29 +162,14 @@ class SimpleConversionViewModel(
159162
path: Path,
160163
iconName: String? = null,
161164
): IconContent? {
162-
val valkyriesSettings = inMemorySettings.current
163-
164165
return runCatching {
165166
val parserOutput = SvgXmlParser.toIrImageVector(parser = ParserType.Jvm, path.toIOPath())
166167
val name = iconName ?: parserOutput.iconName
167168

168169
val output = ImageVectorGenerator.convert(
169170
vector = parserOutput.irImageVector,
170171
iconName = name,
171-
config = ImageVectorGeneratorConfig(
172-
packageName = valkyriesSettings.packageName,
173-
iconPackPackage = valkyriesSettings.packageName,
174-
packName = "",
175-
nestedPackName = "",
176-
outputFormat = valkyriesSettings.outputFormat,
177-
useComposeColors = valkyriesSettings.useComposeColors,
178-
generatePreview = valkyriesSettings.generatePreview,
179-
previewAnnotationType = valkyriesSettings.previewAnnotationType,
180-
useFlatPackage = false,
181-
useExplicitMode = valkyriesSettings.useExplicitMode,
182-
addTrailingComma = valkyriesSettings.addTrailingComma,
183-
indentSize = valkyriesSettings.indentSize,
184-
),
172+
config = createGeneratorConfig(),
185173
)
186174
IconContent(
187175
name = name,
@@ -195,28 +183,13 @@ class SimpleConversionViewModel(
195183
text: String,
196184
iconName: String,
197185
): IconContent? {
198-
val valkyriesSettings = inMemorySettings.current
199-
200186
return runCatching {
201187
val parserOutput = SvgXmlParser.toIrImageVector(parser = ParserType.Jvm, text, iconName)
202188

203189
val output = ImageVectorGenerator.convert(
204190
vector = parserOutput.irImageVector,
205191
iconName = iconName,
206-
config = ImageVectorGeneratorConfig(
207-
packageName = valkyriesSettings.packageName,
208-
iconPackPackage = valkyriesSettings.packageName,
209-
packName = "",
210-
nestedPackName = "",
211-
outputFormat = valkyriesSettings.outputFormat,
212-
useComposeColors = valkyriesSettings.useComposeColors,
213-
generatePreview = valkyriesSettings.generatePreview,
214-
previewAnnotationType = valkyriesSettings.previewAnnotationType,
215-
useFlatPackage = false,
216-
useExplicitMode = valkyriesSettings.useExplicitMode,
217-
addTrailingComma = valkyriesSettings.addTrailingComma,
218-
indentSize = valkyriesSettings.indentSize,
219-
),
192+
config = createGeneratorConfig(),
220193
)
221194
IconContent(
222195
name = iconName,
@@ -225,8 +198,35 @@ class SimpleConversionViewModel(
225198
)
226199
}.getOrNull()
227200
}
201+
202+
private fun createGeneratorConfig(): ImageVectorGeneratorConfig {
203+
val valkyriesSettings = inMemorySettings.current
204+
205+
return ImageVectorGeneratorConfig(
206+
// don't add package name for single icon conversion, let user decide where to put it
207+
packageName = "",
208+
iconPackPackage = "",
209+
packName = "",
210+
nestedPackName = "",
211+
outputFormat = valkyriesSettings.outputFormat,
212+
useComposeColors = valkyriesSettings.useComposeColors,
213+
generatePreview = valkyriesSettings.generatePreview,
214+
previewAnnotationType = valkyriesSettings.previewAnnotationType,
215+
useFlatPackage = false,
216+
useExplicitMode = valkyriesSettings.useExplicitMode,
217+
addTrailingComma = valkyriesSettings.addTrailingComma,
218+
indentSize = valkyriesSettings.indentSize,
219+
)
220+
}
221+
222+
private fun saveCurrentMode() {
223+
inMemorySettings.update {
224+
mode = io.github.composegears.valkyrie.shared.Mode.Simple
225+
}
226+
}
228227
}
229228

229+
// TODO: split into separate screens
230230
enum class Mode {
231231
Picker,
232232
StringParse,

tools/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/simple/setup/SimpleModeSetupScreen.kt

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)