From 213e10d8eb3c171705f3a2bf166e5a80e39e2855 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Fri, 25 Oct 2024 09:49:48 -0300 Subject: [PATCH] Show colored border for each account --- .../greenart7c3/nostrsigner/ui/MainScreen.kt | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt index cd347b63..a8c4c602 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.os.Build +import android.util.Log import android.widget.Toast import androidx.activity.compose.ManagedActivityResultLauncher import androidx.activity.compose.rememberLauncherForActivityResult @@ -13,6 +14,7 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut +import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -398,6 +400,13 @@ private suspend fun initNotifications(context: Context) { PushNotificationUtils.init(LocalPreferences.allSavedAccounts(context)) } +fun Color.Companion.fromHex(colorString: String) = try { + Color(android.graphics.Color.parseColor("#$colorString")) +} catch (e: Exception) { + Log.e("Color", "Failed to parse color: $colorString", e) + Unspecified +} + @OptIn(ExperimentalMaterial3Api::class) @Composable fun MainScreen( @@ -573,10 +582,22 @@ fun MainScreen( } }, icon = { - Icon( - if (selected) it.selectedIcon else it.icon, - it.route, - ) + if (it.route == Route.Accounts.route) { + Icon( + if (selected) it.selectedIcon else it.icon, + it.route, + modifier = Modifier.border( + 2.dp, + Color.fromHex(account.keyPair.pubKey.toHexKey().slice(0..5)), + CircleShape, + ), + ) + } else { + Icon( + if (selected) it.selectedIcon else it.icon, + it.route, + ) + } }, ) }