Specification Draft #12
|
@ -0,0 +1,112 @@
|
|||
# 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.
|
||||
|
||||
# Splash Screen
|
||||
- [ ] Android
|
||||
- [ ] Investigate Lottie [example implementation blog](https://medium.com/swlh/native-splash-screen-in-flutter-using-lottie-121ce2b9b0a4)
|
||||
- [ ] Desktop
|
||||
|
||||
## Home Pane (formally Profile Pane)
|
||||
|
||||
- [X] Unlock a profile with a password
|
||||
- [ ] Create a new Profile
|
||||
- [X] With a password
|
||||
- [ ] Without a password
|
||||
- [X] Display all unlocked profiles
|
||||
- [X] Profile Picture
|
||||
- [X] default images
|
||||
- [ ] custom images
|
||||
- [ ] coloured ring border
|
||||
- [ ] Profile Name
|
||||
- [X] local
|
||||
- [ ] remote
|
||||
- [X] Edit Button
|
||||
- [ ] Unread messages badge
|
||||
- [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)
|
||||
|
||||
## Settings Pane
|
||||
|
||||
- [X] 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
|
||||
|
||||
- [X] Update Profile Name
|
||||
- [ ] Update Profile Password
|
||||
- [ ] Delete a Profile
|
||||
- [ ] Copy Profile Onion Address
|
||||
|
||||
## Profile Pane (formally Contacts Pane)
|
||||
|
||||
- [X] Display Profile-specific status
|
||||
- [X] Profile Name
|
||||
- [X] Online Status
|
||||
- [X] Add Contact Button Navigates to Add Contact Pane
|
||||
- [ ] Search Bar
|
||||
- [ ] Search by name
|
||||
- [ ] Search by Onion
|
||||
- [ ] Display all Peer Contacts
|
||||
- [X] Profile Picture
|
||||
- [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
|
||||
- [ ] 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)
|
||||
|
||||
## Message Overlay
|
||||
|
||||
- [X] Display Messages from Contacts
|
||||
- [ ] Allowing copying the text of a specific message (on mobile)
|
||||
- [X] 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
|
||||
- [ ] Mutant Standard?
|
||||
- [ ] Display a warning if Contact / Server is offline (Broken Heart)
|
||||
- [ ] Display a warning for configuring peer history
|
||||
- [X] Pressing Back should go back to the contacts pane
|
||||
|
||||
## List Overlay
|
||||
|
||||
- [ ] Add Item to List
|
||||
- [ ] mark Item as Complete
|
||||
- [ ] Delete Item from List
|
||||
- [ ] Search List
|
||||
|
||||
## Contact Settings Pane
|
||||
- [ ] Update local name of contact
|
||||
- [ ] Copy contact onion address
|
||||
- [ ] Block/Unblock a contact
|
||||
- [ ] Configure Peer History Saving
|
||||
- [X] 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
|
||||
|
|
@ -82,7 +82,7 @@ add_custom_command(
|
|||
COMMAND ${CMAKE_COMMAND} -E env
|
||||
${FLUTTER_TOOL_ENVIRONMENT}
|
||||
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh"
|
||||
linux-x64 ${CMAKE_BUILD_TYPE}
|
||||
${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(flutter_assemble DEPENDS
|
||||
|
|
Loading…
Reference in New Issue