Giter Club home page Giter Club logo

signal-android's People

Contributors

2-4601 avatar agrajaghh avatar asamk avatar backspace avatar bdschoeler avatar benrs avatar cascheberg avatar cherryasphalt avatar claudds avatar eikowagenknecht avatar feurenard avatar haffenloher avatar jacobrs avatar joeykrim avatar lori-dalkin avatar mcginty avatar mcloo avatar meskio avatar moxie0 avatar nrizzio avatar passy avatar rhodey avatar riset avatar s0 avatar samantha-kerr avatar thoughtbox avatar tinloaf avatar trolldemorted avatar unrulygnu avatar veeti avatar

Watchers

 avatar  avatar  avatar

signal-android's Issues

Document Marking a Message as Unread

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

Setup Local Environment

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

  • Ben
  • Lori
  • Claudia
  • Bryce
  • Jacob
  • Sam

Implement Swiping Right in Conversation View Activity

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

Test Nicknaming A Contact

Implement basic tests for the code we wrote

Ideal Hours: 3 Hours
Related Stories: #18 #19 #20

Unit Tests:

  • Done

Acceptance Testing:

  • Done

UI Tests:

  • Done

Implement swiping left on a conversation node

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

Fingerprint Authentication

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

Demo Steps (acceptance criteria):

  1. Access the Signal application, and in the security settings, turn on fingerprint authentication
  2. Close the application
  3. Reopen the application. It will ask you to authenticate with a fingerprint
    3.1 If the fingerprint is invalid, the application will ask for the backup passcode
  4. Access should be granted for the proper print or passcode

Subtasks

#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

Acceptance Tests

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

Mockups

  • Settings Disabled
    settingsdisabled

  • Settings Enabled
    settingsenabled

  • Fingerprint Authorization Homescreen
    fingerprint authorization

Trigger Back Button Functionality

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

Fix Existing Espresso Tests that are failing

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

Setup Development and Test Environment

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

Mark Message as Unread

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

Demo steps (acceptance criteria):

  1. Open the Signal Application and access a conversation with an unread message
  2. Note that the message notification has been cleared.
  3. Long press a message
  4. In the resulting toolbar, choose to mark a message as unread
  5. Note that the unread message notification will again appear

Subtasks

#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

Acceptance Tests

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

markasunread
markasunread2ss
markasunread4

Swipe to Delete Conversation

As a user, I want to be able to swipe across the screen to delete a conversation from history.

Demo Steps (Acceptance Criteria)

  • Open Signal application to conversation list view.
  • Swipe left on desired conversation to delete.
  • Conversation should no longer appear in the conversation list view nor the archived conversation list view.

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

Test Video Compression

Implement Tests (Unit tests, acceptance tests) for video compression feature

  • Unit Test
  • Acceptance Test

Ideal Hours: 6 hours
Related Stories: #34

Pinned Messages UI Mockup

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

Nickname A Contact

As a user, I want to be able to rename my signal contacts in order to customize my contact list.

Demo Steps (Acceptance Criteria)

  • Be able to select a contact and add a nickname.
  • Contacts with nicknames should display nicknames instead of contact names.
  • Nicknames should be persistent within the application
  • Polling for contact information should not affect nicknames.

Sub-tasks

  • #18 Make name editable on the conversation settings screen
  • #19 Save nickname after the user confirms
  • #20 Load nickname wherever it's needed
  • #30 Write appropriate tests

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

Video Compression

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

Demo Steps (Acceptance Criteria)

  1. Open the Signal Application and open an existing conversation
  2. Select to attach a video attachment
  3. Select an existing video, for which you know the size
  4. Send the video as an attachment
  5. Verify that the size of the video has been compressed upon sending

Subtasks:

#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

Acceptance Tests

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

Load the nickname

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

Connect delete function with swiping.

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

Extract Activity Architecture

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

Save the nickname

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

Document Usage of Jenkins

In the Release Document, Infrastructure Section, document the use of Jenkins over the use of Jenkins.

Ideal hours: 0.5

Related Stories: #1

Pin Favourite Conversation

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:

Testing Pinned Messages

Implement UI, Acceptance and Unit tests for story #38 and all related subtasks to ensure quality of the deliverable.

Ideal Hours: 5 hours
Related Story: #38

Search Through Conversation

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

Demo Steps (acceptance criteria):

  1. Open the Signal application and access an existing conversation
  2. Select the option to search from the conversation menu
  3. Enter a search term
  4. Check the resulting messages containing your search term

Subtasks

#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

Acceptance Tests

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

Mockups

searchconversation1

searchbarmockup

highlightedsearchtext

Research Contact Storage

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

Pin Messages

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

Demo Steps (acceptance criteria):

  1. Open the Signal Application and access a conversation
  2. Long Press a single message. A toolbar will appear at the top of the screen
  3. Choose to pin the message
  4. Click on settings (three dots) and select "View Pinned" to go to Pinned Messages Activity View.

Subtasks:

#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

Acceptance Tests

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

Final Design

  • Pin and Unpin Icons
    image
    image
  • Small pin icon for messages
    image
  • Accessing Pinned Messages Activity
    image
    image

Implement Continuous Integration

Pseudo-Story 1:
As a developer, I wish to have continuous integration set up in order to be aware of the state of the builds and test environment for my project

Priority: 2/4 (medium)
Risk: 1/5 (low)
Story Points: 2

Subtasks: #2 #12

Fix Espresso Tests (Pseudo Story)

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.

Demo Steps (acceptance criteria)

  1. Select an Espresso test to run
  2. Run the appropriate espresso test successfully

Subtasks

#57 Fix Existing Espresso Tests
#58 Bypass Phone Number Registration

Acceptance Tests

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

Swipe to Return to Conversation View

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:

  • Open Signal application to conversation list view.
  • Select a conversation to open.
  • From this conversation, swipe right to return to the conversation list view

Sub Tasks

  • #14 Locate conversation list view and conversation view activity.
  • #15 Implement swiping right in the conversation view activity.
  • #16 Trigger back button functionality on swipe right from conversation view activity.
  • #17 Develop tests for back button triggering.

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

Animate the swipe left action.

The animation should be similar to that of archive but with a different icon.

Ideal hours: 4 hours. (Hours remaining from #22 )
Related stories: #9

Extract Project Architecture

As a software developer, I would like to have an overview of Signal's software architecture in order to implement new features in the proper place and enhance this architecture.

Priority: 4/4 (High)
Risk: 3/4 (medium)
Story Points: 5

Subtasks: #4 #5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.