mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-24 23:25:19 +00:00
2.3 KiB
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
- Your username remains green - Uses
colorScheme.primary(bright green in dark mode, dark green in light mode) - Other users get unique colors - Based on their peer ID using the
getUsernameColor()function - Colors are consistent - Same user always gets the same color across sessions
- 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! 🎉