Update Spec + Lightweight Prioritization

This commit is contained in:
Sarah Jamie Lewis 2021-03-29 16:17:37 -07:00
parent 0912fc9e83
commit 28bcae678a
1 changed files with 47 additions and 45 deletions

92
SPEC.md
View File

@ -7,18 +7,18 @@ This functionality is implemented in libCwtch and so this work captures just the
required - any new Cwtch work is beyond the scope of this initial spec.
# Functional Requirements
- [ ] Kill all processes / isolates on exit
- [ ] Android Service?
- [ ] Kill all processes / isolates on exit (Blocked - P1)
- [ ] Android Service? (P1)
# Splash Screen
- [ ] Android
- [ ] Investigate Lottie [example implementation blog](https://medium.com/swlh/native-splash-screen-in-flutter-using-lottie-121ce2b9b0a4)
- [ ] Desktop
- [X] Android
- [X] Investigate Lottie [example implementation blog](https://medium.com/swlh/native-splash-screen-in-flutter-using-lottie-121ce2b9b0a4)
- [ ] Desktop (P2)
# Custom Styled Widgets
- [/] Label Widget
- [X] Initial
- [ ] With Accessibility / Zoom Integration
- [ ] With Accessibility / Zoom Integration (P1)
- [X] Text Field Widget
- [X] Password Widget
- [X] Text Button Widget (for Copy)
@ -32,13 +32,11 @@ required - any new Cwtch work is beyond the scope of this initial spec.
- [X] Display all unlocked profiles
- [X] Profile Picture
- [X] default images
- [ ] custom images
- [ ] coloured ring border
- [ ] Profile Name
- [X] local
- [ ] remote
- [ ] custom images (P3)
- [ ] coloured ring border (P2)
- [X] Profile Name
- [X] Edit Button
- [ ] Unread messages badge
- [ ] Unread messages badge (P2)
- [X] Navigate to a specific Profile Contacts Pane (when clicking on a Profile row)
- [X] Navigate to a specific Profile Management Pane (edit Button)
- [X] Navigate to the Settings Pane (Settings Button in Action bar)
@ -48,7 +46,7 @@ required - any new Cwtch work is beyond the scope of this initial spec.
- [X] Switch Dark / Light Theme
- [X] Switch Language
- [X] Enable/Disable Experiments
- [ ] Accessibility Settings (Zoom etc. - needs a deep dive into flutter)
- [ ] Accessibility Settings (Zoom etc. - needs a deep dive into flutter) (P1)
- [X] Display Build & Version Info
- [X] Acknowledgements & Credits
@ -56,12 +54,12 @@ required - any new Cwtch work is beyond the scope of this initial spec.
- [X] Update Profile Name
- [X] Update Profile Password
- [ ] Error Message When Attempting to Update Password with Wrong Old Password
- [ ] Easy Transition from Unencrypted Profile -> Encrypted Profile
- [ ] Delete a Profile
- [ ] Dialog Acknowledgement
- [ ] Require Old Password Gate
- [ ] Async Checking of Password
- [ ] Error Message When Attempting to Update Password with Wrong Old Password (P2)
- [ ] Easy Transition from Unencrypted Profile -> Encrypted Profile (P3)
- [ ] Delete a Profile (P2)
- [ ] Dialog Acknowledgement (P2)
- [ ] Require Old Password Gate (P2)
- [ ] Async Checking of Password (P2)
- [X] Copy Profile Onion Address
## Profile Pane (formally Contacts Pane)
@ -70,7 +68,7 @@ required - any new Cwtch work is beyond the scope of this initial spec.
- [X] Profile Name
- [X] Online Status
- [X] Add Contact Button Navigates to Add Contact Pane
- [ ] Search Bar
- [ ] Search Bar (P2)
- [ ] Search by name
- [ ] Search by Onion
- [ ] Display all Peer Contacts
@ -78,49 +76,53 @@ required - any new Cwtch work is beyond the scope of this initial spec.
- [X] Name
- [X] Onion
- [X] Online Status
- [ ] Unread Messages Badge
- [ ] In Order of Most Recent Message / Activity
- [ ] With Accept / Reject Heart/Trash Bin Option
- [ ] Separate list area for Blocked Contacts
- [ ] Unread Messages Badge (P1)
- [ ] In Order of Most Recent Message / Activity (P1)
- [ ] With Accept / Reject Heart/Trash Bin Option (P1)
- [ ] Separate list area for Blocked Contacts (P1)
- [ ] Display all Group Contacts (if experiment is enabled)
- [X] Navigate to a specific Contact or Group Message Pane (Contact Row)
- [X] 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)
- [X] Allowing Copying the Profile Onion Address for Sharing
- [X] Allowing Pasting a Peer Onion Address for adding to Contacts
- [ ] (with optional name field)
- [ ] Allowing Pasting a Group Invite / Server Address
- [X] (if group experiment is enabled)
## Message Overlay
- [X] Display Messages from Contacts
- [ ] Allowing copying the text of a specific message (on mobile)
- [ ] Allowing copying the text of a specific message (on mobile) (P2)
- [X] Send a message to the specific Contact / Group
- [~] Display the Acknowledgement status of a message
- [~] Display the Acknowledgement status of a message (P1)
- [ ] 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
- [ ] Mutant Standard?
- [ ] Display a warning if Contact / Server is offline (Broken Heart)
- [ ] Display a warning for configuring peer history
- [ ] Emoji Support (P1)
- [ ] Display in-message emoji text labels e.g. `:label:` as emoji. (P1)
- [ ] Functional Emoji Drawer Widget for Selection (P2)
- [ ] Mutant Standard? (P2)
- [ ] Display a warning if Contact / Server is offline (Broken Heart) (P1)
- [ ] Display a warning for configuring peer history (P2)
- [X] Pressing Back should go back to the contacts pane
## List Overlay
## List Overlay (P3)
- [ ] Add Item to List
- [ ] mark Item as Complete
- [ ] Delete Item from List
- [ ] Search List
- [ ] Add Item to List (P3)
- [ ] mark Item as Complete (P3)
- [ ] Delete Item from List (P3)
- [ ] Search List (P3)
## Bulletin Overlay (P4)
## Contact Settings Pane
- [ ] Update local name of contact
- [ ] Copy contact onion address
- [ ] Block/Unblock a contact
- [ ] Configure Peer History Saving
- [X] Update local name of contact
- [X] Copy contact onion address
- [X] Block/Unblock a contact
- [X] Configure Peer History Saving
- [X] Pressing Back should go back to the message pane
## Group Settings Pane (experimental)
## Group Settings Pane (experimental - P3)
- [ ] Gated behind group experiment
- [ ] Update local name of group
- [ ] Get Group Invite