Skip to content

Commit

Permalink
Fixes #1222
Browse files Browse the repository at this point in the history
  • Loading branch information
mtotschnig committed Jun 23, 2023
1 parent 05493b3 commit 9a9303f
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,7 @@ import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.shape.RoundedCornerShape
Expand All @@ -29,6 +20,7 @@ import androidx.compose.runtime.snapshots.SnapshotStateList
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.platform.testTag
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.semantics.*
Expand Down Expand Up @@ -111,7 +103,7 @@ fun Category(
) {
itemsIndexed(
items = filteredChildren,
key = { _, item -> item.id }
key = { _, item -> item.id }
) { index, item ->
Category(
category = item,
Expand Down Expand Up @@ -168,6 +160,7 @@ fun CategoryRenderer(
}
}
)

is ChoiceMode.SingleChoiceMode -> Modifier
.combinedClickable(
onLongClick = { showMenu.value = true },
Expand All @@ -179,6 +172,7 @@ fun CategoryRenderer(
}
}
)

else -> Modifier
}
}
Expand Down Expand Up @@ -215,19 +209,21 @@ fun CategoryRenderer(
.size(48.dp),
contentAlignment = Alignment.Center
) {
Icon(category.icon)

Icon(icon = category.icon, color = category.color?.let { Color(it) })
}
} else if (category.color != null) {
ColorCircle(
modifier = Modifier
.padding(horizontal = 12.dp)
.size(24.dp),
color = category.color
)
} else {
Spacer(modifier = Modifier.width(24.dp))
}
Text(text = category.label, modifier = Modifier.weight(1f))

if (category.color != null) {
ColorCircle(modifier = Modifier
.padding(start = 6.dp)
.size(24.dp), color = category.color)
}

sumCurrency?.let {
ColoredAmountText(
modifier = Modifier.padding(start = 4.dp),
Expand Down
22 changes: 15 additions & 7 deletions myExpenses/src/main/java/org/totschnig/myexpenses/compose/Icon.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.totschnig.myexpenses.compose

import androidx.compose.material3.Icon
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
Expand All @@ -17,36 +18,43 @@ import org.totschnig.myexpenses.viewmodel.data.IIconInfo
import org.totschnig.myexpenses.viewmodel.data.IconInfo

@Composable
fun Icon(icon: String, size: TextUnit = 24.sp) {
fun Icon(icon: String, size: TextUnit = 24.sp, color: Color? = null) {
val iconInfo = IIconInfo.resolveIcon(icon)
if (iconInfo == null) {
Text(color = Color.Red, text = icon)
} else {
Icon(iconInfo, size)
Icon(iconInfo, size, color)
}
}

@Composable
fun Icon(iconInfo: IIconInfo, size: TextUnit = 24.sp) {
fun Icon(iconInfo: IIconInfo, size: TextUnit = 24.sp, color: Color? = null) {
when (iconInfo) {
is ExtraIcon -> {
Icon(
modifier = Modifier.size(size * 1.25f),
painter = rememberDrawablePainter(drawable = iconInfo.asDrawable(LocalContext.current)),
contentDescription = stringResource(id = iconInfo.label)
contentDescription = stringResource(id = iconInfo.label),
tint = color ?: LocalContentColor.current
)
}
is IconInfo -> {
CharIcon(char = iconInfo.unicode, fontFamily = iconInfo.fontFamily, size = size)
CharIcon(iconInfo.unicode, iconInfo.fontFamily, size, color)
}
}
}
@Composable
fun CharIcon(char: Char, fontFamily: FontFamily? = null, size: TextUnit = 24.sp) {
fun CharIcon(
char: Char,
fontFamily: FontFamily? = null,
size: TextUnit = 24.sp,
color: Color? = null
) {
Text(
text = char.toString(),
fontFamily = fontFamily,
fontSize = size
fontSize = size,
color = color ?: Color.Unspecified
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@ import androidx.core.database.getIntOrNull
import androidx.core.database.getLongOrNull
import androidx.core.database.getStringOrNull
import org.totschnig.myexpenses.model.CurrencyContext
import org.totschnig.myexpenses.model.CurrencyUnit
import org.totschnig.myexpenses.model.Payee
import org.totschnig.myexpenses.model.Transaction
import org.totschnig.myexpenses.model2.Account
import org.totschnig.myexpenses.preference.PrefHandler
import org.totschnig.myexpenses.provider.DatabaseConstants.*
import org.totschnig.myexpenses.provider.TransactionProvider.*
Expand All @@ -26,7 +23,7 @@ import org.totschnig.myexpenses.util.Utils
import org.totschnig.myexpenses.viewmodel.data.Category
import org.totschnig.myexpenses.viewmodel.data.Debt
import java.io.IOException
import java.util.*
import java.util.UUID
import javax.inject.Inject
import javax.inject.Singleton

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,12 @@ object ColorUtils {
return result
}

@JvmStatic
fun isBrightColor(color: Int): Boolean {
return if (android.R.color.transparent == color) true else ColorUtils.calculateLuminance(
color
) > 0.5
}

@JvmStatic
fun getComplementColor(colorInt: Int): Int {
val contrastColor = getBestForeground(colorInt)
return ColorUtils.blendARGB(colorInt, contrastColor, 0.5f)
Expand Down

0 comments on commit 9a9303f

Please sign in to comment.