Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ios-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Build KMP
working-directory: ios
run: |
./scripts/generate-error-messages.sh
./scripts/generate-strings.sh
./scripts/build-kmp.sh release false true false
- name: Setup tools
working-directory: ios
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ios-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Build KMP
working-directory: ios
run: |
./scripts/generate-error-messages.sh
./scripts/generate-strings.sh
./scripts/build-kmp.sh release false true false
- name: Setup tools
working-directory: ios
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ios_pr_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
working-directory: ios
run: |
./scripts/setup.sh
- name: Generate Error Messages
- name: Generate Strings
working-directory: ios
run: |
./scripts/generate-error-messages.sh
./scripts/generate-strings.sh
- name: Build KMP
working-directory: ios
run: |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package kmp.android.navigation

import androidx.annotation.StringRes
import dev.icerock.moko.resources.desc.StringDesc
import dev.icerock.moko.resources.desc.desc
import kmp.android.sample.navigation.SampleGraph
import kmp.android.samplecomposemultiplatform.navigation.SampleComposeMultiplatformGraph
import kmp.android.samplesharedviewmodel.navigation.SampleSharedViewModelGraph
import kmp.android.shared.R
import kmp.shared.base.MR

enum class NavBarFeature(val route: String, @StringRes val titleRes: Int) {
Sample(SampleGraph.rootPath, R.string.bottom_bar_item_1),
SampleSharedViewModel(SampleSharedViewModelGraph.rootPath, R.string.bottom_bar_item_2),
SampleComposeMultiplatform(SampleComposeMultiplatformGraph.rootPath, R.string.bottom_bar_item_3),
enum class NavBarFeature(val route: String, val titleRes: StringDesc) {
Sample(SampleGraph.rootPath, MR.strings.bottom_bar_item_1.desc()),
SampleSharedViewModel(SampleSharedViewModelGraph.rootPath, MR.strings.bottom_bar_item_2.desc()),
SampleComposeMultiplatform(SampleComposeMultiplatformGraph.rootPath, MR.strings.bottom_bar_item_3.desc()),
}
4 changes: 2 additions & 2 deletions android/app/src/main/kotlin/kmp/android/ui/Root.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ import androidx.compose.material.primarySurface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import dev.icerock.moko.resources.compose.localized
import kmp.android.navigation.NavBarFeature
import kmp.android.sample.navigation.SampleGraph
import kmp.android.sample.navigation.sampleNavGraph
Expand Down Expand Up @@ -84,7 +84,7 @@ private fun BottomBar(navController: NavHostController, modifier: Modifier = Mod
)
}
},
label = { Text(stringResource(screen.titleRes)) },
label = { Text(screen.titleRes.localized()) },
selected = currentRoute?.startsWith(screen.route + "/") ?: false,
onClick = {
navController.navigate(screen.route) {
Expand Down
41 changes: 0 additions & 41 deletions android/shared/src/main/res/values-en/generated_strings.xml

This file was deleted.

41 changes: 0 additions & 41 deletions android/shared/src/main/res/values-sk/generated_strings.xml

This file was deleted.

41 changes: 0 additions & 41 deletions android/shared/src/main/res/values/generated_strings.xml

This file was deleted.

43 changes: 2 additions & 41 deletions build-logic/convention/src/main/kotlin/config/TwineConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,9 @@ import java.io.File

fun Project.configureTwine() {
tasks.register("generateTwine") {
Twine.generateAllRegularFiles(
Twine.generateAllStringFiles(
project = project,
twineFile = "${rootProject.file("twine").absolutePath}/strings.txt",
moduleName = "android/shared",
)
}

tasks.register("generateErrorsTwine") {
Twine.generateAllErrorFiles(
project = project,
twineFile = "${rootProject.file("twine").absolutePath}/errors.txt",
targetPath = "${project.rootDir.absolutePath}/shared/base/src/commonMain/moko-resources",
targetFileName = "strings.xml",
languages = listOf("sk", "en", "cs"),
Expand All @@ -27,38 +19,7 @@ fun Project.configureTwine() {

private object Twine {

fun generateAllRegularFiles(
project: Project,
moduleName: String,
twineFile: String,
) {
val script =
when {
OperatingSystem.current().isLinux || OperatingSystem.current().isMacOsX ->
"twine generate-all-localization-files $twineFile ${project.rootDir.absolutePath}/$moduleName/src/main/res/ -f android -n generated_strings.xml -d en -r"

OperatingSystem.current().isWindows -> "twine generate-all-localization-files $twineFile ${project.rootDir.absolutePath}/$moduleName/src/main/res/ -f android -n generated_strings.xml -d en -r"
else -> "unsupported"
}

project.exec {
// Add twine into path
// This should be also refactored
val twinePath = project.findProperty("twinePath")
if (twinePath != null) {
environment["PATH"] =
"${environment["PATH"]}${System.getProperty("path.separator")}$twinePath"
}

if (OperatingSystem.current().isMacOsX || OperatingSystem.current().isLinux) {
this.commandLine("sh", "-c", script)
} else if (OperatingSystem.current().isWindows) {
this.commandLine("cmd", "/c", script)
}
}
}

fun generateAllErrorFiles(
fun generateAllStringFiles(
project: Project,
twineFile: String,
targetPath: String,
Expand Down
7 changes: 4 additions & 3 deletions ios/Application/MainFlowController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// Copyright © 2019 Matee. All rights reserved.
//

import KMPShared
import Sample
import SampleComposeMultiplatform
import SampleSharedViewModel
Expand All @@ -28,7 +29,7 @@ final class MainFlowController: FlowController {
private func setupSampleTab() -> UINavigationController {
let sampleNC = BaseNavigationController(statusBarStyle: .lightContent)
sampleNC.tabBarItem = UITabBarItem(
title: L10n.bottom_bar_item_1,
title: MR.strings().bottom_bar_item_1.toLocalized(),
image: AppTheme.Images.person,
tag: MainTab.sample.rawValue
)
Expand All @@ -41,7 +42,7 @@ final class MainFlowController: FlowController {
private func setupSampleSharedViewModelTab() -> UINavigationController {
let sampleSharedViewModelNC = BaseNavigationController(statusBarStyle: .lightContent)
sampleSharedViewModelNC.tabBarItem = UITabBarItem(
title: L10n.bottom_bar_item_2,
title: MR.strings().bottom_bar_item_2.toLocalized(),
image: AppTheme.Images.personCirle,
tag: MainTab.sampleSharedViewModel.rawValue
)
Expand All @@ -54,7 +55,7 @@ final class MainFlowController: FlowController {
private func setupSampleComposeMultiplatformTab() -> UINavigationController {
let sampleComposeMultiplatformNC = BaseNavigationController(statusBarStyle: .lightContent)
sampleComposeMultiplatformNC.tabBarItem = UITabBarItem(
title: L10n.bottom_bar_item_3,
title: MR.strings().bottom_bar_item_3.toLocalized(),
image: AppTheme.Images.personSquare,
tag: MainTab.sampleComposeMultiplatform.rawValue
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Generate error messages"
scriptText = "if [ -z &quot;$CI&quot; ]; then&#10; cd &quot;${PROJECT_DIR}&quot;&#10; scripts/generate-error-messages.sh&#10;fi&#10;">
title = "Generate strings"
scriptText = "if [ -z &quot;$CI&quot; ]; then&#10; cd &quot;${PROJECT_DIR}&quot;&#10; scripts/generate-strings.sh&#10;fi&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Generate error messages"
scriptText = "if [ -z &quot;$CI&quot; ]; then&#10; cd &quot;${PROJECT_DIR}&quot;&#10; scripts/generate-error-messages.sh&#10;fi&#10;">
title = "Generate strings"
scriptText = "if [ -z &quot;$CI&quot; ]; then&#10; cd &quot;${PROJECT_DIR}&quot;&#10; scripts/generate-strings.sh&#10;fi&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Generate error messages"
scriptText = "if [ -z &quot;$CI&quot; ]; then&#10; cd &quot;${PROJECT_DIR}&quot;&#10; scripts/generate-error-messages.sh&#10;fi&#10;">
title = "Generate strings"
scriptText = "if [ -z &quot;$CI&quot; ]; then&#10; cd &quot;${PROJECT_DIR}&quot;&#10; scripts/generate-strings.sh&#10;fi&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ struct SampleView: View {
EmptyView()
}
}
.navigationTitle(L10n.bottom_bar_item_1)
.navigationTitle(MR.strings().bottom_bar_item_1.toLocalized())
.toastView(Binding<ToastData?>(
get: { viewModel.state.toast },
set: { toast in viewModel.onIntent(.onToastChanged(data: toast)) }
Expand All @@ -56,6 +56,7 @@ import DependencyInjectionMocks
import Factory

#Preview {
fixMokoResourcesForPreviews()
Container.shared.registerUseCaseMocks()

let vm = SampleViewModel(flowController: nil)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ struct SampleComposeMultiplatformView: View {
)
}
.toastView($toastData)
.navigationTitle(L10n.bottom_bar_item_3)
.navigationTitle(MR.strings().bottom_bar_item_3.toLocalized())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ struct SampleSharedViewModelView: View {
}
}
}
.navigationTitle(L10n.bottom_bar_item_2)
.navigationTitle(MR.strings().bottom_bar_item_2.toLocalized())
.onAppear {
viewModel.onIntent(intent: SampleSharedIntentOnAppeared())
}
Expand All @@ -59,6 +59,7 @@ import DependencyInjectionMocks
import Factory

#Preview {
fixMokoResourcesForPreviews()
Container.shared.registerUseCaseMocks()
Container.shared.registerViewModelMocks()

Expand Down
Loading