mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 02:45:20 +00:00
63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
# 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**! 🎉
|