2021-03-01 23:39:27 +00:00
|
|
|
# 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.
|
|
|
|
|
2021-03-03 00:42:44 +00:00
|
|
|
# Functional Requirements
|
|
|
|
- [ ] Kill all processes / isolates on exit
|
|
|
|
- [ ] Android Service?
|
|
|
|
|
2021-03-02 00:31:24 +00:00
|
|
|
# Splash Screen
|
|
|
|
- [ ] Android
|
2021-03-02 00:32:27 +00:00
|
|
|
- [ ] Investigate Lottie [example implementation blog](https://medium.com/swlh/native-splash-screen-in-flutter-using-lottie-121ce2b9b0a4)
|
2021-03-02 00:31:24 +00:00
|
|
|
- [ ] Desktop
|
2021-03-01 23:39:27 +00:00
|
|
|
|
2021-03-03 00:42:44 +00:00
|
|
|
# Custom Styled Widgets
|
|
|
|
- [/] Label Widget
|
|
|
|
- [X] Initial
|
|
|
|
- [ ] With Accessibility / Zoom Integration
|
|
|
|
- [X] Text Field Widget
|
|
|
|
- [X] Password Widget
|
|
|
|
- [ ] Text Button Widget (for Copy)
|
|
|
|
|
2021-03-01 23:39:27 +00:00
|
|
|
## Home Pane (formally Profile Pane)
|
|
|
|
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Unlock a profile with a password
|
2021-03-03 00:42:44 +00:00
|
|
|
- [X] Create a new Profile
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] With a password
|
2021-03-03 00:42:44 +00:00
|
|
|
- [X] Without a password
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Display all unlocked profiles
|
|
|
|
- [X] Profile Picture
|
|
|
|
- [X] default images
|
|
|
|
- [ ] custom images
|
|
|
|
- [ ] coloured ring border
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Profile Name
|
2021-03-02 00:09:04 +00:00
|
|
|
- [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)
|
2021-03-01 23:39:27 +00:00
|
|
|
|
|
|
|
## Settings Pane
|
|
|
|
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Switch Dark / Light Theme
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Switch Language
|
|
|
|
- [ ] Enable/Disable Experiments
|
|
|
|
- [ ] Accessibility Settings (Zoom etc. - needs a deep dive into flutter)
|
|
|
|
- [ ] Display Build & Version Info
|
|
|
|
- [ ] Acknowledgements & Credits
|
|
|
|
|
|
|
|
## Profile Management Pane
|
|
|
|
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Update Profile Name
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Update Profile Password
|
|
|
|
- [ ] Delete a Profile
|
|
|
|
- [ ] Copy Profile Onion Address
|
|
|
|
|
|
|
|
## Profile Pane (formally Contacts Pane)
|
|
|
|
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Display Profile-specific status
|
|
|
|
- [X] Profile Name
|
|
|
|
- [X] Online Status
|
|
|
|
- [X] Add Contact Button Navigates to Add Contact Pane
|
2021-03-02 00:22:51 +00:00
|
|
|
- [ ] Search Bar
|
|
|
|
- [ ] Search by name
|
|
|
|
- [ ] Search by Onion
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Display all Peer Contacts
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Profile Picture
|
|
|
|
- [X] Name
|
|
|
|
- [X] Onion
|
|
|
|
- [X] Online Status
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Unread Messages Badge
|
|
|
|
- [ ] In Order of Most Recent Message / Activity
|
|
|
|
- [ ] With Accept / Reject Heart/Trash Bin Option
|
2021-03-02 00:22:51 +00:00
|
|
|
- [ ] Separate list area for Blocked Contacts
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Display all Group Contacts (if experiment is enabled)
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Navigate to a specific Contact or Group Message Pane (Contact Row)
|
|
|
|
- [X] Pressing Back should go back to the home pane
|
2021-03-01 23:39:27 +00:00
|
|
|
|
|
|
|
## 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)
|
|
|
|
|
2021-03-02 00:22:51 +00:00
|
|
|
## Message Overlay
|
2021-03-01 23:39:27 +00:00
|
|
|
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Display Messages from Contacts
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Allowing copying the text of a specific message (on mobile)
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Send a message to the specific Contact / Group
|
|
|
|
- [~] Display the Acknowledgement status of a message
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] 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
|
2021-03-02 00:09:04 +00:00
|
|
|
- [ ] Mutant Standard?
|
2021-03-01 23:39:27 +00:00
|
|
|
- [ ] Display a warning if Contact / Server is offline (Broken Heart)
|
|
|
|
- [ ] Display a warning for configuring peer history
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Pressing Back should go back to the contacts pane
|
2021-03-01 23:39:27 +00:00
|
|
|
|
2021-03-02 00:22:51 +00:00
|
|
|
## List Overlay
|
|
|
|
|
|
|
|
- [ ] Add Item to List
|
|
|
|
- [ ] mark Item as Complete
|
|
|
|
- [ ] Delete Item from List
|
|
|
|
- [ ] Search List
|
|
|
|
|
2021-03-01 23:39:27 +00:00
|
|
|
## Contact Settings Pane
|
|
|
|
- [ ] Update local name of contact
|
|
|
|
- [ ] Copy contact onion address
|
|
|
|
- [ ] Block/Unblock a contact
|
|
|
|
- [ ] Configure Peer History Saving
|
2021-03-02 00:09:04 +00:00
|
|
|
- [X] Pressing Back should go back to the message pane
|
2021-03-01 23:39:27 +00:00
|
|
|
|
|
|
|
## 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
|
2021-03-02 00:22:51 +00:00
|
|
|
|