mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 02:45:20 +00:00
nice
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# ChatScreen.kt Refactoring Plan
|
||||
|
||||
## Current State
|
||||
- Single file: `ChatScreen.kt` (~1,100+ lines)
|
||||
- Multiple UI responsibilities mixed together
|
||||
- Hard to maintain and test individual components
|
||||
|
||||
## Proposed Component Structure
|
||||
|
||||
### 1. Main Screen (ChatScreen.kt)
|
||||
**Responsibilities:**
|
||||
- Main layout orchestration
|
||||
- State management delegation
|
||||
- Window insets handling
|
||||
- Component coordination
|
||||
|
||||
### 2. Header Components (ChatHeader.kt)
|
||||
**Responsibilities:**
|
||||
- TopAppBar with different states (main, private, channel)
|
||||
- Nickname editor
|
||||
- Peer counter with status indicators
|
||||
- Navigation controls
|
||||
|
||||
### 3. Message Components (MessageComponents.kt)
|
||||
**Responsibilities:**
|
||||
- MessagesList composable
|
||||
- MessageItem with formatting
|
||||
- Message text parsing and styling
|
||||
- Delivery status indicators
|
||||
- RSSI-based coloring
|
||||
|
||||
### 4. Input Components (InputComponents.kt)
|
||||
**Responsibilities:**
|
||||
- MessageInput with different modes
|
||||
- Command suggestions box
|
||||
- Command suggestion items
|
||||
- Input validation and handling
|
||||
|
||||
### 5. Sidebar Components (SidebarComponents.kt)
|
||||
**Responsibilities:**
|
||||
- SidebarOverlay with navigation
|
||||
- ChannelsSection for channel management
|
||||
- PeopleSection for peer list
|
||||
- Sidebar state management
|
||||
|
||||
### 6. Dialog Components (DialogComponents.kt)
|
||||
**Responsibilities:**
|
||||
- Password prompt dialog
|
||||
- App info dialog
|
||||
- Other modal dialogs
|
||||
|
||||
### 7. UI Utils (ChatUIUtils.kt)
|
||||
**Responsibilities:**
|
||||
- RSSI color mapping
|
||||
- Text formatting utilities
|
||||
- Common styling constants
|
||||
- Helper functions
|
||||
|
||||
## Benefits
|
||||
- Each file has a single, clear responsibility
|
||||
- Components are easier to test in isolation
|
||||
- Better code organization and navigation
|
||||
- Simplified debugging
|
||||
- Easier to add new UI features
|
||||
Reference in New Issue
Block a user