diff --git a/bisqapps/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/ui/uicases/offers/TakeOfferReviewTradeScreen.kt b/bisqapps/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/ui/uicases/offers/TakeOfferReviewTradeScreen.kt deleted file mode 100644 index bbdf34cf..00000000 --- a/bisqapps/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/ui/uicases/offers/TakeOfferReviewTradeScreen.kt +++ /dev/null @@ -1,174 +0,0 @@ -package network.bisq.mobile.presentation.ui.uicases.offers - -import androidx.compose.foundation.layout.* -import androidx.compose.material3.HorizontalDivider -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp -import androidx.navigation.NavHostController -import network.bisq.mobile.presentation.ui.components.atoms.BisqButton -import network.bisq.mobile.presentation.ui.components.atoms.BisqText -import network.bisq.mobile.presentation.ui.navigation.Routes -import network.bisq.mobile.presentation.ui.theme.BisqTheme -import org.koin.compose.koinInject -import org.koin.core.qualifier.named - -@Composable -fun TakeOfferReviewTradeScreen() { - // TODO presenter for this? And call RememberLifecycle... - - TakeOfferScaffold { - Column(modifier = Modifier.padding(horizontal = 32.dp, vertical = 24.dp)) { - BisqText.h3Regular( - text = "Review trade", - color = BisqTheme.colors.light1 - ) - Spacer(modifier = Modifier.height(32.dp)) - Column( - verticalArrangement = Arrangement.spacedBy(32.dp) - ) { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween - ) { - Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { - BisqText.largeRegular( - text = "I WANT TO", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "BUY Bitcoin" - ) - } - Column( - verticalArrangement = Arrangement.spacedBy(12.dp), - horizontalAlignment = Alignment.End - ) { - BisqText.largeRegular( - text = "FIAT PAYMENT METHOD", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "Strike" - ) - } - } - - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween - ) { - Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { - BisqText.largeRegular( - text = "AMOUNT TO PAY", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "900.00" - ) - } - Column( - verticalArrangement = Arrangement.spacedBy(12.dp), - horizontalAlignment = Alignment.End - ) { - BisqText.largeRegular( - text = "AMOUNT TO RECEIVE", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "0.00918367 btc" - ) - } - } - } - HorizontalDivider( - thickness = 1.dp, - modifier = Modifier.padding(vertical = 28.dp), - color = Color(0XFF2B2B2B) - ) - Column( - verticalArrangement = Arrangement.spacedBy(32.dp) - ) { - Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { - BisqText.largeRegular( - text = "Trade price", - color = BisqTheme.colors.grey2 - ) - Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { - Row( - verticalAlignment = Alignment.Bottom, - horizontalArrangement = Arrangement.spacedBy(4.dp) - ) { - BisqText.h5Regular( - text = "98,000.68" - ) - BisqText.baseRegular( - text = "BTC/USD", - color = BisqTheme.colors.grey2 - ) - } - BisqText.smallRegular( - text = "Float price 1.00% above market price of 60,000 BTC/USD", - color = BisqTheme.colors.grey4 - ) - } - } - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween - ) { - Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { - BisqText.largeRegular( - text = "Bitcoin settlement method", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "Lightning" - ) - } - Column( - verticalArrangement = Arrangement.spacedBy(12.dp), - horizontalAlignment = Alignment.End - ) { - BisqText.largeRegular( - text = "Fiat payment", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "Strike" - ) - } - } - Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { - BisqText.largeRegular( - text = "Fees", - color = BisqTheme.colors.grey2 - ) - BisqText.h5Regular( - text = "No trade fees in Bisq Easy :-)" - ) - } - } - } - Row( - horizontalArrangement = Arrangement.SpaceBetween, - modifier = Modifier.fillMaxWidth().padding(horizontal = 32.dp) - ) { - BisqButton( - text = "Back", - backgroundColor = BisqTheme.colors.dark5, - onClick = { }, - padding = PaddingValues(horizontal = 64.dp, vertical = 4.dp) - ) - BisqButton( - text = "Next", - onClick = { - navController.navigate(Routes.TradeFlow.name) - }, - padding = PaddingValues(horizontal = 64.dp, vertical = 4.dp) - ) - } - } -} \ No newline at end of file diff --git a/shared/domain/src/androidMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.android.kt b/shared/domain/src/androidMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.android.kt index b4f91325..744230cf 100644 --- a/shared/domain/src/androidMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.android.kt +++ b/shared/domain/src/androidMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.android.kt @@ -11,6 +11,11 @@ import androidx.compose.ui.graphics.asImageBitmap import com.russhwolf.settings.Settings import kotlinx.serialization.Serializable import java.io.ByteArrayOutputStream +import java.util.Locale + +actual fun getDeviceLanguageCode(): String { + return Locale.getDefault().language +} actual fun getPlatformSettings(): Settings { return Settings() diff --git a/shared/domain/src/commonMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.kt b/shared/domain/src/commonMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.kt index f9e93051..c5ed6a38 100644 --- a/shared/domain/src/commonMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.kt +++ b/shared/domain/src/commonMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.kt @@ -17,6 +17,8 @@ interface PlatformInfo { val name: String } +expect fun getDeviceLanguageCode(): String + expect fun getPlatformInfo(): PlatformInfo @Serializable(with = PlatformImageSerializer::class) diff --git a/shared/domain/src/iosMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.ios.kt b/shared/domain/src/iosMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.ios.kt index 83f18946..2b515c44 100644 --- a/shared/domain/src/iosMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.ios.kt +++ b/shared/domain/src/iosMain/kotlin/network/bisq/mobile/domain/PlatformDomainAbstractions.ios.kt @@ -8,11 +8,12 @@ import com.russhwolf.settings.Settings import kotlinx.cinterop.* import kotlinx.serialization.Serializable import platform.Foundation.NSData +import platform.Foundation.* +import platform.UIKit.UIDevice import platform.UIKit.UIImage import platform.Foundation.create import platform.UIKit.UIImagePNGRepresentation -import platform.UIKit.UIDevice import platform.posix.memcpy @OptIn(ExperimentalSettingsImplementation::class) @@ -22,7 +23,11 @@ actual fun getPlatformSettings(): Settings { return KeychainSettings("Settings") } -class IOSPlatformInfo: PlatformInfo { +actual fun getDeviceLanguageCode(): String { + return NSLocale.currentLocale.languageCode ?: "en" +} + +class IOSPlatformInfo : PlatformInfo { override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion } diff --git a/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/MainPresenter.kt b/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/MainPresenter.kt index 4097f95b..d4042e56 100644 --- a/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/MainPresenter.kt +++ b/shared/presentation/src/commonMain/kotlin/network/bisq/mobile/presentation/MainPresenter.kt @@ -2,14 +2,13 @@ package network.bisq.mobile.presentation import androidx.annotation.CallSuper import androidx.navigation.NavHostController -import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import network.bisq.mobile.android.node.BuildNodeConfig import network.bisq.mobile.client.shared.BuildConfig -import network.bisq.mobile.domain.data.BackgroundDispatcher +import network.bisq.mobile.domain.getDeviceLanguageCode import network.bisq.mobile.domain.getPlatformInfo import network.bisq.mobile.domain.service.controller.NotificationServiceController import network.bisq.mobile.presentation.ui.AppPresenter @@ -45,10 +44,12 @@ open class MainPresenter(private val notificationServiceController: Notification // override val greetingText: StateFlow = _greetingText init { + val localeCode = getDeviceLanguageCode() log.i { "Shared Version: ${BuildConfig.SHARED_LIBS_VERSION}" } log.i { "iOS Client Version: ${BuildConfig.IOS_APP_VERSION}" } log.i { "Android Client Version: ${BuildConfig.IOS_APP_VERSION}" } log.i { "Android Node Version: ${BuildNodeConfig.APP_VERSION}" } + log.i { "Device language code: $localeCode"} } @CallSuper