Files
bitchat-android/demo_colors.md
T
2025-07-08 23:38:35 +02:00

2.3 KiB

Username Color Feature Demo

The bitchat Android app already has the username color feature fully implemented! Here's how it works:

How It Works

  1. Your username remains green - Uses colorScheme.primary (bright green in dark mode, dark green in light mode)
  2. Other users get unique colors - Based on their peer ID using the getUsernameColor() function
  3. Colors are consistent - Same user always gets the same color across sessions
  4. Terminal-friendly palette - 16 colors that work on both black and white backgrounds

Color Palette

The system uses these 16 terminal-friendly colors for other users:

  • 🟢 Bright Green (#00FF00)
  • 🔵 Cyan (#00FFFF)
  • 🟡 Yellow (#FFFF00)
  • 🔴 Magenta (#FF00FF)
  • 🟦 Bright Blue (#0080FF)
  • 🟠 Orange (#FF8000)
  • 🔶 Lime Green (#80FF00)
  • 🟣 Purple (#8000FF)
  • 🩷 Pink (#FF0080)
  • 💚 Spring Green (#00FF80)
  • 🟦 Light Cyan (#80FFFF)
  • 🩷 Light Red (#FF8080)
  • 🟦 Light Blue (#8080FF)
  • 🟡 Light Yellow (#FFFF80)
  • 🩷 Light Magenta (#FF80FF)
  • 🟢 Light Green (#80FF80)

Example Chat Display

[14:23:45] <@you> hello everyone!                    ← Your message (green)
[14:23:47] <@alice> hey there!                       ← Alice (cyan)
[14:23:50] <@bob> how's it going?                    ← Bob (yellow)
[14:23:52] <@charlie> great to see you all          ← Charlie (magenta)
[14:23:55] <@you> having a great time                ← Your message (green)
[14:23:58] <@alice> same here @you!                  ← Alice (cyan again)

Code Implementation

The feature is implemented in /app/src/main/java/com/bitchat/android/ui/ChatScreen.kt:

  • Line 342-350: Color assignment logic in formatMessageAsAnnotatedString()
  • Line 820-855: getUsernameColor() function that generates consistent colors
  • Uses peer ID for consistency (falls back to nickname if no peer ID available)
  • Integrates perfectly with the existing IRC-style chat format

Testing

The feature is already working in the app. When you chat with multiple users, you'll see:

  • Your messages in green
  • Each other user in their own unique color
  • Same user always has the same color
  • Colors remain consistent across app restarts
  • Works in both light and dark themes

The feature is complete and ready to use! 🎉