Skip to content
Closed
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
4 changes: 4 additions & 0 deletions apps/flipcash/core-ui/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,21 @@ kotlin {

sourceSets {
commonMain.dependencies {
implementation(libs.jetbrains.compose.animation)
implementation(libs.jetbrains.compose.ui.tooling.preview)
implementation(project(":apps:flipcash:core"))
implementation(project(":services:opencode"))
implementation(project(":services:opencode-compose"))
implementation(project(":libs:encryption:keys"))
implementation(project(":ui:components"))
implementation(project(":ui:resources"))
implementation(project(":ui:theme"))
implementation(project(":apps:flipcash:shared:theme"))

implementation(libs.jetbrains.compose.runtime)
implementation(libs.jetbrains.compose.foundation)
implementation(libs.jetbrains.compose.ui)
implementation(libs.jetbrains.compose.components.resources)
implementation(libs.jetbrains.compose.material)
implementation(libs.jetbrains.compose.material3)
implementation(libs.jetbrains.compose.material.icons.extended)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import org.jetbrains.compose.resources.painterResource
import androidx.compose.ui.unit.dp
import com.flipcash.core.R
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.ic_arrow_right
import com.flipcash.core.resources.ic_coin_dollars
import com.flipcash.core.resources.ic_usdc_on_solana

/**
* A coin face the [ConversionGraphic] can show on either side of the arrow.
Expand Down Expand Up @@ -50,7 +53,7 @@ fun ConversionGraphic(
// Nudged onto the coin faces' centre line, which the top alignment above leaves at
// 50 dp: (100 - 28) / 2.
modifier = Modifier.padding(top = 36.dp).size(28.dp),
painter = painterResource(R.drawable.ic_arrow_right),
painter = painterResource(Res.drawable.ic_arrow_right),
contentDescription = null,
)
Coin(to)
Expand All @@ -62,13 +65,13 @@ private fun Coin(coin: ConversionCoin) {
when (coin) {
ConversionCoin.Dollars -> Image(
modifier = Modifier.size(100.dp),
painter = painterResource(R.drawable.ic_coin_dollars),
painter = painterResource(Res.drawable.ic_coin_dollars),
contentDescription = null,
)

// Natural size (111x112): the 100 dp coin plus the badge overhanging its corner.
ConversionCoin.UsdcOnSolana -> Image(
painter = painterResource(R.drawable.ic_usdc_on_solana),
painter = painterResource(Res.drawable.ic_usdc_on_solana),
contentDescription = null,
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package com.flipcash.app.core.ui

import org.jetbrains.compose.resources.stringResource
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.label_fromAppreciation
import com.flipcash.core.resources.label_fromCurrencyAppreciation
import com.flipcash.core.resources.label_fromCurrencyDepreciation
import com.flipcash.core.resources.label_fromDepreciation
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
Expand All @@ -12,13 +18,11 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.flipcash.app.core.money.formattedAppreciation
import com.flipcash.app.core.resources.CoreStrings
import com.getcode.opencode.model.financial.Fiat
import com.getcode.theme.CodeTheme
import com.getcode.theme.White20
import com.getcode.theme.extraSmall
import com.getcode.ui.components.text.AnimatedNumberText
import com.getcode.util.resources.stringRes

/** Controls the visual treatment of the appreciation badge. */
enum class AppreciationStyle {
Expand Down Expand Up @@ -88,15 +92,15 @@ fun CurrencyAppreciationLabel(
val label = when (style) {
AppreciationStyle.Pill ->
if (hasAppreciation) {
stringRes(CoreStrings.label_fromAppreciation)
stringResource(Res.string.label_fromAppreciation)
} else {
stringRes(CoreStrings.label_fromDepreciation)
stringResource(Res.string.label_fromDepreciation)
}
AppreciationStyle.Classic ->
if (hasAppreciation) {
stringRes(CoreStrings.label_fromCurrencyAppreciation)
stringResource(Res.string.label_fromCurrencyAppreciation)
} else {
stringRes(CoreStrings.label_fromCurrencyDepreciation)
stringResource(Res.string.label_fromCurrencyDepreciation)
}
}
Text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource
import org.jetbrains.compose.resources.painterResource
import androidx.compose.ui.unit.dp
import com.flipcash.core.R
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.ic_device_frame
import com.flipcash.core.resources.ic_screen_frame

@Composable
fun ScreenFrame(
Expand All @@ -20,7 +22,7 @@ fun ScreenFrame(
) {
Box(modifier = modifier, contentAlignment = Alignment.TopCenter) {
Image(
painter = painterResource(id = R.drawable.ic_screen_frame),
painter = painterResource(Res.drawable.ic_screen_frame),
contentDescription = "",
)
Box(
Expand All @@ -43,7 +45,7 @@ fun DeviceFrame(
) {
Box(modifier = modifier, contentAlignment = Alignment.TopCenter) {
Image(
painter = painterResource(id = R.drawable.ic_device_frame),
painter = painterResource(Res.drawable.ic_device_frame),
contentDescription = "",
)
// Inner viewport clipped to frame edge
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,19 @@ 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.res.painterResource
import androidx.compose.ui.res.stringResource
import org.jetbrains.compose.resources.painterResource
import org.jetbrains.compose.resources.stringResource
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.flipcash.app.theme.FlipcashPreview
import com.flipcash.core.R
import com.getcode.theme.CodeTheme
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.ic_notification_preview_icon
import com.flipcash.core.resources.notification_preview_body
import com.flipcash.core.resources.notification_preview_title

@Composable
fun NotificationPreview(
Expand All @@ -53,7 +56,7 @@ fun NotificationPreview(
.fillMaxHeight()
.requiredSize(32.dp)
.aspectRatio(1f),
painter = painterResource(R.drawable.ic_notification_preview_icon),
painter = painterResource(Res.drawable.ic_notification_preview_icon),
contentDescription = null,
)
Spacer(modifier = Modifier.width(8.dp))
Expand Down Expand Up @@ -96,8 +99,8 @@ fun NotificationPreview(
fun Preview_Notification() {
FlipcashPreview {
NotificationPreview(
title = stringResource(R.string.notification_preview_title),
body = stringResource(R.string.notification_preview_body),
title = stringResource(Res.string.notification_preview_title),
body = stringResource(Res.string.notification_preview_body),
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,16 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.res.stringResource
import org.jetbrains.compose.resources.stringResource
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.flipcash.app.theme.FlipcashPreview
import com.flipcash.core.R
import com.getcode.theme.CodeTheme
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.title_allowNotifications

@Composable
fun SwitchPreview(modifier: Modifier = Modifier, checked: Boolean = false) {
Expand All @@ -45,7 +46,7 @@ fun SwitchPreview(modifier: Modifier = Modifier, checked: Boolean = false) {
) {
Text(
modifier = Modifier.weight(1f),
text = stringResource(R.string.title_allowNotifications),
text = stringResource(Res.string.title_allowNotifications),
fontSize = 14.sp,
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Medium
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import org.jetbrains.compose.resources.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.Dp
import com.getcode.opencode.model.financial.Token
import com.getcode.theme.CodeTheme
import com.getcode.ui.core.R
import com.getcode.util.resources.Res
import com.getcode.util.resources.ic_dropdown

@Composable
fun TokenSelectionPill(
Expand Down Expand Up @@ -64,7 +65,7 @@ fun TokenSelectionPill(
Image(
modifier = Modifier
.size(CodeTheme.dimens.grid.x4),
painter = painterResource(R.drawable.ic_dropdown),
painter = painterResource(Res.drawable.ic_dropdown),
contentDescription = ""
)
}
Expand Down Expand Up @@ -105,7 +106,7 @@ fun TokenSelectionPill(
Image(
modifier = Modifier
.width(CodeTheme.dimens.grid.x4),
painter = painterResource(R.drawable.ic_dropdown),
painter = painterResource(Res.drawable.ic_dropdown),
contentDescription = ""
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
package com.flipcash.app.core.ui.onboarding

import org.jetbrains.compose.resources.stringResource
import org.jetbrains.compose.resources.painterResource
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.ic_checked_green
import com.getcode.util.resources.ic_chevron_right
import com.getcode.util.resources.Res as UiRes
import com.flipcash.core.resources.ic_nav_tipcard
import com.flipcash.core.resources.subtitle_addMoney
import com.flipcash.core.resources.subtitle_scanTipCard
import com.flipcash.core.resources.title_addMoney
import com.flipcash.core.resources.title_scanTipCard
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
Expand All @@ -26,12 +37,8 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.util.fastForEach
import com.flipcash.app.core.resources.CoreDrawables
import com.flipcash.app.core.resources.CoreStrings
import com.getcode.theme.CodeTheme
import com.getcode.theme.extraSmall
import com.getcode.util.resources.painterForResId
import com.getcode.util.resources.stringRes

/**
* A row in a "what's left to do" checklist.
Expand All @@ -53,20 +60,20 @@ sealed interface TutorialItem {

class AddMoney(override val isCompleted: Boolean) : Wallet {
override val title: String
@Composable get() = stringRes(CoreStrings.title_addMoney)
@Composable get() = stringResource(Res.string.title_addMoney)
override val description: String
@Composable get() = stringRes(CoreStrings.subtitle_addMoney)
@Composable get() = stringResource(Res.string.subtitle_addMoney)
override val icon: Painter
@Composable get() = rememberVectorPainter(Icons.Outlined.AddCircleOutline)
}

class ScanTipCard(override val isCompleted: Boolean) : Wallet {
override val title: String
@Composable get() = stringRes(CoreStrings.title_scanTipCard)
@Composable get() = stringResource(Res.string.title_scanTipCard)
override val description: String
@Composable get() = stringRes(CoreStrings.subtitle_scanTipCard)
@Composable get() = stringResource(Res.string.subtitle_scanTipCard)
override val icon: Painter
@Composable get() = painterForResId(CoreDrawables.ic_nav_tipcard)
@Composable get() = painterResource(Res.drawable.ic_nav_tipcard)
}
}

Expand Down Expand Up @@ -137,7 +144,7 @@ private fun OnboardingItemRow(
Image(
modifier = Modifier.align(Alignment.Top).size(24.dp),
painter = if (item.isCompleted) {
painterForResId(CoreDrawables.ic_checked_green)
painterResource(Res.drawable.ic_checked_green)
} else {
item.icon
},
Expand All @@ -162,7 +169,7 @@ private fun OnboardingItemRow(
}
Icon(
modifier = Modifier.align(Alignment.CenterVertically).size(16.dp),
painter = painterForResId(CoreDrawables.ic_chevron_right),
painter = painterResource(UiRes.drawable.ic_chevron_right),
tint = CodeTheme.colors.textSecondary,
contentDescription = null
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,17 @@ import androidx.compose.runtime.withFrameMillis
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.StrokeCap
import androidx.compose.ui.res.painterResource
import com.flipcash.core.R
import org.jetbrains.compose.resources.painterResource
import com.getcode.theme.CodeTheme
import com.getcode.ui.theme.CodeCircularProgressIndicator
import com.getcode.view.LoadingSuccessState
import kotlinx.coroutines.isActive
import kotlin.math.pow
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
import com.flipcash.core.resources.Res
import com.flipcash.core.resources.ic_circle_check_large
import com.flipcash.core.resources.ic_circle_exclamation_large

@Composable
fun ProcessingLoadingIndicator(
Expand Down Expand Up @@ -96,7 +98,7 @@ fun ProcessingLoadingIndicator(
when (targetState) {
LoadingSuccessState.State.Error -> Image(
modifier = modifier,
painter = painterResource(R.drawable.ic_circle_exclamation_large),
painter = painterResource(Res.drawable.ic_circle_exclamation_large),
contentDescription = null,
)
LoadingSuccessState.State.Idle -> Spacer(modifier)
Expand All @@ -110,7 +112,7 @@ fun ProcessingLoadingIndicator(
)
LoadingSuccessState.State.Success -> Image(
modifier = modifier,
painter = painterResource(R.drawable.ic_circle_check_large),
painter = painterResource(Res.drawable.ic_circle_check_large),
contentDescription = null,
)
}
Expand Down
6 changes: 6 additions & 0 deletions apps/flipcash/core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ kotlin {

sourceSets {
commonMain.dependencies {
implementation(libs.jetbrains.compose.ui)
implementation(libs.jetbrains.compose.animation)
implementation(libs.jetbrains.compose.material)
implementation(libs.jetbrains.compose.material3)
implementation(libs.jetbrains.compose.ui.tooling.preview)
implementation(libs.sodium.bindings.kmp)
implementation(project(":libs:parcelable"))
implementation(libs.javax.inject)
api(libs.androidx.lifecycle.runtime.common)
Expand Down

This file was deleted.

Loading
Loading