Specification Draft
This commit is contained in:
parent
b503cabd44
commit
44ff3bc66f
|
@ -0,0 +1,89 @@
|
|||
# Specification
|
||||
|
||||
This document outlines the minimal functionality necessary for us to consider Flwtch the canonical
|
||||
Cwtch UI implementation.
|
||||
|
||||
This functionality is implemented in libCwtch and so this work captures just the UI work
|
||||
required - any new Cwtch work is beyond the scope of this initial spec.
|
||||
|
||||
|
||||
## Home Pane (formally Profile Pane)
|
||||
|
||||
- [ ] Unlock a profile with a password
|
||||
- [ ] Create a new Profile
|
||||
- [ ] With a password
|
||||
- [ ] Without a password
|
||||
- [ ] Display all unlocked profiles
|
||||
- [ ] Profile Picture
|
||||
- [ ] Profile Name
|
||||
- [ ] Edit Button
|
||||
- [ ] Navigate to a specific Profile Contacts Pane (when clicking on a Profile row)
|
||||
- [ ] Navigate to a specific Profile Management Pane (edit Button)
|
||||
- [ ] Navigate to the Settings Pane (Settings Button in Action bar)
|
||||
|
||||
## Settings Pane
|
||||
|
||||
- [ ] Switch Dark / Light Theme
|
||||
- [ ] Switch Language
|
||||
- [ ] Enable/Disable Experiments
|
||||
- [ ] Accessibility Settings (Zoom etc. - needs a deep dive into flutter)
|
||||
- [ ] Display Build & Version Info
|
||||
- [ ] Acknowledgements & Credits
|
||||
|
||||
## Profile Management Pane
|
||||
|
||||
- [ ] Update Profile Name
|
||||
- [ ] Update Profile Password
|
||||
- [ ] Delete a Profile
|
||||
- [ ] Copy Profile Onion Address
|
||||
|
||||
## Profile Pane (formally Contacts Pane)
|
||||
|
||||
- [ ] Display Profile-specific status
|
||||
- [ ] Profile Name
|
||||
- [ ] Online Status
|
||||
- [ ] Add Contact Button Navigates to Add Contact Pane
|
||||
- [ ] Display all Peer Contacts
|
||||
- [ ] Profile Picture
|
||||
- [ ] Name
|
||||
- [ ] Onion
|
||||
- [ ] Online Status
|
||||
- [ ] Unread Messages Badge
|
||||
- [ ] In Order of Most Recent Message / Activity
|
||||
- [ ] With Accept / Reject Heart/Trash Bin Option
|
||||
- [ ] Display all Group Contacts (if experiment is enabled)
|
||||
- [ ] Navigate to a specific Contact or Group Message Pane (Contact Row)
|
||||
- [ ] Pressing Back should go back to the home pane
|
||||
|
||||
## Add Contact Pane
|
||||
- [ ] Allowing Copying the Profile Onion Address for Sharing
|
||||
- [ ] Allowing Pasting a Peer Onion Address for adding to Contacts (with optional name field)
|
||||
- [ ] Allowing Pasting a Group Invite / Server Address (if group experiment is enabled)
|
||||
|
||||
## Message Pane
|
||||
|
||||
- [ ] Display Messages from Contacts
|
||||
- [ ] Allowing copying the text of a specific message (on mobile)
|
||||
- [ ] Send a message to the specific Contact / Group
|
||||
- [ ] Display the Acknowledgement status of a message
|
||||
- [ ] Navigate to the specific Contact or Group Settings Pane ( Settings Button in Action bar)
|
||||
- [ ] Emoji Support
|
||||
- [ ] Display in-message emoji text labels e.g. `:label:` as emoji.
|
||||
- [ ] Functional Emoji Drawer Widget for Selection
|
||||
- [ ] Display a warning if Contact / Server is offline (Broken Heart)
|
||||
- [ ] Display a warning for configuring peer history
|
||||
- [ ] Pressing Back should go back to the contacts pane
|
||||
|
||||
## Contact Settings Pane
|
||||
- [ ] Update local name of contact
|
||||
- [ ] Copy contact onion address
|
||||
- [ ] Block/Unblock a contact
|
||||
- [ ] Configure Peer History Saving
|
||||
- [ ] Pressing Back should go back to the message pane
|
||||
|
||||
## Group Settings Pane (experimental)
|
||||
- [ ] Gated behind group experiment
|
||||
- [ ] Update local name of group
|
||||
- [ ] Get Group Invite
|
||||
- [ ] Leave Group
|
||||
- [ ] Pressing Back should go back to the message pane for the group
|
Loading…
Reference in New Issue