jacobrs / signal-android Goto Github PK
View Code? Open in Web Editor NEWThis project forked from signalapp/signal-android
A private messenger for Android.
Home Page: https://whispersystems.org
License: GNU General Public License v3.0
This project forked from signalapp/signal-android
A private messenger for Android.
Home Page: https://whispersystems.org
License: GNU General Public License v3.0
As a user, I wish to have the option to mark a message as unread in order to bring back the notification so that I may have a reminder to re-read this message at a later time.
NOTE: This will have no effect on the recipient's view of the message's read status.
Priority: 2/4
Risk: 2/4
Story Points: 3
#51 UI Mockup for marking a message as unread
#52 Implement the change to the Read field
#53 Add menu option to mark a message as unread
#54 Test marking as unread
#55 Document marking as unread
#70 Mark messages as unread look different
#71 Allow user to unmark as unread
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
mark as unread | long press on Conversation Item | Mark as unread icon appears in menu | PASS |
mark as unread | long press on conversation item, tap mark as unread icon | message marked as unread, conversation activity closes | PASS |
mark as unread | long press multiple messags, tap Mark as Unread icon | messages are marked as unread, activity closes | PASS |
mark as unread | long press on message already marked as unread | Mark as unread does not appear in menu | PASS |
mark as unread | long press on multiple messages, some already marked as unread | mark as unread icon does not appear in menu | PASS |
mark as unread | mark message as unread | conversation activity closes and returns to conversation list view | PASS |
mark as unread | mark message as unread | conversation in conversation list shows unread messages | PASS |
mark as unread | mark message as unread, then reopen the conversation | Conversation no longer show unread messages | PASS |
mark as unread | mark message as unread, then reopen conversation | messages that were marked as unread are marked with blue exclamation mark | PASS |
mark as unread | tap a message marked as unread | blue exclamation point disappears | PASS |
Upon swiping right in the conversation view activity, trigger the back button functionality to take the user back to the conversation list view.
Ideal Hours: 5 hours
Related Stories: #10
Using the component diagram, make a rough estimation of the Activity architecture of the application.
Include diagrams (or link to documents) in the release document.
Ideal hours: 2
Related Story: #3
As a developer, I wish to have access to the Espresso testing framework in order to more easily develop automated acceptance and UI tests.
Currently, there are flawed tests within the AndroidTest suite for the Signal Application. Registration through a phone number also hinders the ability to perform Espresso tests as there is no existing test phone number known.
#57 Fix Existing Espresso Tests
#58 Bypass Phone Number Registration
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Fixing Espresso | Unverified phone and fake registration espresso test | Fake verified phone | PASS |
Fixing Espresso | Fake verified phone and conversation list espresso test | Passing espresso test | PASS |
Priority: 4/4
Risk: 2/4
Story Points: 3
In the Release Document, Infrastructure Section, document the use of Jenkins over the use of Jenkins.
Ideal hours: 0.5
Related Stories: #1
Implement a function which updates the database to change the read flag on the selected Conversation Item.
Ideal Hours: 5 hours
Related Story: #36
On the conversation settings screen we want users to be able to edit other people's names.
Ideal Hours: 3h
Related Stories: #11
In the conversation view activity, implement a feature that allows the user to swipe right across the screen with their finger. Integrate a swiping animation to go along with this feature.
Ideal Hours: 10 hours
Related Stories: #10
Conduct research into compression libraries that would allow the compression of video files being sent
Ideal Hours: 2 hours
Related Stories: #34
As a user, I wish to have my videos be compressed in order to send video media quicking and using less data.
Priority: 4/4
Risk: 2/4
Story Points: 8
#46 Research Video Compression Libraries @BDSchoeler @samantha-kerr
#47 Implement Compression for Outgoing Videos @BDSchoeler @samantha-kerr
#48 Implement Decompression for Incoming Videos (not used)
#49 Test Video Compression @BDSchoeler @samantha-kerr
#50 Document Video Compression @samantha-kerr
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Send compressed video | Send low-resolution video in a message | Video is sent | PASS |
Send compressed video | Send a mid-resolution video in a message | Video is sent | PASS |
Send compressed video | Send a high-resolution video in a message | Video is sent | PASS |
Send compressed video | Send a high-resolution video in a message | No size errors occur | PASS |
Play compressed video | Send a high-resolution video in a message | Video is playable in conversation | PASS |
As a user, I wish to be able to pin one conversation to the top of the Conversation List, in order to more easily access this conversation. This may be a conversation that is very important, or one that I do not want to have to spend time looking for.
Demo steps (Acceptance criteria)
Subtasks
Priority:
Risk:
Story points:
Implement Unit and Acceptance tests for marking a message as unread.
Unit tests
Acceptance tests
Ideal Hours: 6 hours
Related Stories: #36
In the code base, locate where the conversation list view, and see how a conversation can be archived.
Ideal hours: 1.5 hours
Related stories: #9
As a user, while I am in a conversation, I want to be able to swipe to go back to the conversation list view.
Demo Steps:
Sub Tasks
Priority: 2/4 (medium)
Risk: 2/4 (medium)
Story Points: 5
Acceptance Tests:
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Conversation | Swipe right in a conversation | Return to conversation list | PASS |
Conversation | Swipe right in an archived conversation | Return to archived conversation list | PASS |
Conversation | Swipe left in a conversation | No transition to conversation list | PASS |
Conversation | Swipe up or down in a conversation | Scroll the conversation view | PASS |
As a user, I wish for the application to be protected by a fingerprint authentication in order to add another layer of security to my messages.
Priority: 3/4
Risk: 3/4
Story Points: 5
#65 UI Mockup for fingerprint auth @lori-dalkin
#81 Implement UI and logic for fingerprint settings for enabled/disabled @lori-dalkin
#66 Import fingerprint api and implement backend logic @BDSchoeler
#67 Implement UI for fingerprint auth @BDSchoeler
#68 Fingerprint Authentication Tests @lori-dalkin @BDSchoeler
#69 Fingerprint authentication documentation @lori-dalkin @BDSchoeler
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Fingerprint Toggle Availability True | Enable passphrase authentication | Fingerprint toggle is interact-able | PASS |
Fingerprint Toggle Availability False | Disable passphrase authentication | Fingerprint toggle is NOT interact-able | PASS |
Set Fingerprint Auth Enabled | Enable passphrase authentication, Toggle Fingerprint Auth | Fingerprint icon appears on passphrase prompt screen | PASS |
Set Fingerprint Auth Disabled | Enable passphrase authentication, Toggle Fingerprint Auth | Fingerprint icon does NOT appear on passphrase prompt screen | PASS |
Use Fingerprint Auth | Enable passphrase authentication, Enable fingerprint authentication, Lock app, Scan fingerprint | App unlocks | PASS |
Use Passphrase Auth | Enable passphrase authentication, Enable fingerprint authentication, Lock app, Input passphrase | App unlocks | PASS |
Fingerprint Auth Disabled | Enable passphrase authentication, Lock app, Scan fingerprint | No reaction | PASS |
No hardware support | Enable passphrase authentication | Fingerprint toggle does NOT appear | PASS |
Auth = Authentication
Using the library researched, implement decompression for all incoming video attachments.
Ideal Hours: 5 hours
Related Stories: #34
When the user confirms that they are done editing the name it should save properly so that the information can persist.
Ideal Hours: 5h
Related Stories: #11
Take screenshots of the existing UI, and add to these screenshots specifics for pinning messages to a conversation
Ideal Hours: 2 hours
Related Story: #38
Upon swiping left in the conversation list view activity, trigger the delete conversation method which will delete the conversation that you swipped.
Ideal Hours: 3 hours
Related Stories: #9
Subtask to build an activity that will display all pinned messages of a specific convo.
Ideal Hours: 3 hours
Related Story: #38
As a software developer, I want to research whether or not the application imports and stores contact information in order to prepare for the next sprint's development.
Priority: 2/4 (medium)
Risk: 1/4 (low)
Story points: 1
Change the display message from "archived conversation" to "deleted conversation" when deleting conversation.
Ideal Hours: 2 hours
Related Stories: #9
In the toolbar that results from long-pressing a message, add an option to mark a message as unread.
Ideal hours: 5 hours
Related Story: #36
As a user, I wish to have the ability to pin messages in a conversation to the bottom of the conversation in order to more easily access these messages.
Priority: 3/4
Risk: 3/4
Story Points: 5
#45 Pinned Message UI Mockup @lori-dalkin
#41 Pinned Message Elements in Conversation View Activity @lori-dalkin
#42 Load all pinned messages within new Pinned Messages activity @jacobrs
#43 Testing pinned messages @lori-dalkin & @jacobrs
#44 Documenting Pinned Messages feature @lori-dalkin & @jacobrs
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Pin message | Long press on message | Pin icon appears in menu | PASS |
Pin message | Long press on message, click pin icon | Small pin icon appears on selected message | PASS |
Pin message | Long press on multiple messages | No pin icon appears in menu | PASS |
Unpin message | Long press on message | Unpin icon appears in menu | PASS |
Unpin message | Long press on a pinned message, click unpin icon | Small pin icon disappears on selected message | PASS |
Unpin message | Long press on multiple messages | No pin icon appears in menu | PASS |
View pinned messages | Press three dot icon | "View pinned messages" action appears in drop down | PASS |
View pinned messages | Press three dot icon, press "View pinned messages" | Pinned messages activity opens, displays all pinned messages | PASS |
View pinned messages | Recipient with no profile name | Recipient's address | PASS |
Within the AndroidTest directory, there are currently existing test which are failing due to unknown reasons. These must be fixed in order to run espresso tests for the application.
Ideal Hours: 2h
Related Story: #56
Using screenshots of the current application, create a mockup UI for marking a message as unread
Ideal Hours: 1.5 hours
Related stories: #36
Implement test code to test that the conversation is properly deleted, or that the method is properly called.
Ideal Hours: 3 hours
Related Stories: #9
As a user, I wish to have the ability to search for text within a conversation in order to more easily find a particular message.
Priority: 4/4
Risk: 3/4
Story Points: 8
#59 Searching UI Mockup @samantha-kerr @claudds
#60 Search box and Icon @claudds
#61 Apply search term to messages @jacobrs
#62 UI for highlighting searched terms @samantha-kerr
#63 Tests for searching @samantha-kerr @jacobrs @claudds
#64 Documentation for searching @samantha-kerr @claudds
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
SearchView text changes | any text that is not empty | should refresh list with filter applied | PASS |
SearchView text reverts to empty | empty string | should cancel the search filter | PASS |
SearchView back press | when pressed | should cancel the search filter | PASS |
SearchView icon | when pressed | should popup the keyboard and focus on textedit | PASS |
Filtered conversation | when term inserted | should highlight term in messages | PASS |
Highlight colour | when shown | should be visible (not blend in) | PASS |
Search filtering | when search term not empty | should filter with case insensitive term | PASS |
Search Highlighting | when search term not empty | should highlight with case insensitive term | PASS |
Implement the ability to swipe left on a conversation node in the conversation list view. The animation should be similar to that of archive but with a different icon.
Ideal hours: 7 hours
Related stories: #9
In the release 2 document, add a description in the appropriate sections about the marking a message as unread feature.
Ideal hours: 0.5 hours
Related stories: #36
Document mockups and changes in the release document.
Ideal Hours: 2 hours
Related Story: #38
As a software developer, I want a local development and test environment in order to be able to implement new features and to develop and run tests for these new features.
Priority: 2/4 (medium)
Risk: 1/4 (low)
Story Points: 1
Subtasks: #7
As a user, I want to be able to swipe across the screen to delete a conversation from history.
Demo Steps (Acceptance Criteria)
Sub Tasks
#21 Locate conversation view activity (1.5 hr)
#22 Implement swiping left on a conversation node (7 hrs)
#23 Connect delete function with swiping. (3 hrs)
#24 Develop tests for delete functionality (3 hrs)
#28 Animate swipe left action*
#29 Change the display message when deleting*
*Branched off subtasks from #22
Acceptance Tests:
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Conversation | Swipe left on conversation | Conversation deleted | PASS |
Conversation | Swipe left on an archived conversation | Conversation deleted | PASS |
Conversation | Swipe right on a conversation | Conversation archived | PASS |
Conversation | Swipe left on an archived conversation | Conversation un-archived | PASS |
Priority: 3/4 (medium)
Risk: 2/4 (medium)
Story Points: 5
Implement Tests (Unit tests, acceptance tests) for video compression feature
Ideal Hours: 6 hours
Related Stories: #34
As a user, I want to be able to rename my signal contacts in order to customize my contact list.
Demo Steps (Acceptance Criteria)
Sub-tasks
Priority: 4/4 (high)
Risk: 3/4 (medium)
Story Points: 8
Acceptance Tests:
Testing Component | Inputs | Outputs | Status |
---|---|---|---|
Chat Name | Conversation with address or contact name, new chat name | Conversation with new chat name | PASS |
Chat Name | Conversation with chat name, new chat name | Conversation with new chat name | PASS |
Chat Name | Conversation with address or contact name, empty chat name | Conversation with address or contact name | PASS |
Chat Name | Conversation with chat name, empty chat name | Conversation with address or contact name | PASS |
Whenever the application needs to load a person's name it should check if there's an existing nickname and display it if it exists.
Ideal Hours: 5h
Related Stories: #11
Using the library obtained through research, implement compression for outgoing attachments.
Ideal Hours: 5 hours
Related Story: #34
Implement test code to test that the back button functionality is triggered from the conversation list view upon swiping (if possible)
Ideal Hours: 5 hours
Related Stories: #10
In the code base, locate where the conversation list view and conversation view activities are, and how they connect to each other
Ideal hours: 2.5 hours
Related stories: #10
Add information about the implementation of this feature to the relevant sections of the release document
Ideal hours: 1 hour
related Stories: #34
Add menu icon for pinning a message.
Implement logic that will mark messages as pinned in the local database on icon click.
Add pinned indicator icon for individual pinned messages.
Ideal Hours: 5 hours
Related Story: #38
In the release Document, write a paragraph describing the extracted architecture.
Ideal hours: 0.5
Related Stories: #3
From the existing Signal project (latest release) extract the components and create a diagram. Include diagrams (or link to documents) in the release document.
Ideal hours: 4
Related Story: #3
On your local machine, set up the development environment required for the project. Clone the app and make sure it runs in your development environment.
Ideal hours: 6 (1 hour per developer)
Related Stories: #6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.