Gaia/System/Activities: Difference between revisions

m
 
(26 intermediate revisions by 7 users not shown)
Line 1: Line 1:
==Status==
== Design Specs==  
* Stage: Development
For the latest UX specifications, please visit
* Latest:
https://mozilla.box.com/system
* Release target:
 
 
== Team ==
* UX: Patryk
* UX: Josh
* Dev: Vivien
* Dev: Etienne
* B2G: Fabrice
* API: Mounir
 
 


== Background ==
== Background ==
Line 68: Line 56:
The system maintains a record ''(via a central registry in Activities API?)'' of which apps support which Actions & Types, and uses this record to populate the list of available handler apps when the user selects an Action.
The system maintains a record ''(via a central registry in Activities API?)'' of which apps support which Actions & Types, and uses this record to populate the list of available handler apps when the user selects an Action.


== App Interaction Matrix ==


== Requirements ==
Details of each of the currently implemented activities are here: https://etherpad.mozilla.org/gaia-activities-audit
 
<div style="overflow-x:scroll">
{| border="1" cellpadding="5" style="font-size:smaller;"
|-
!&nbsp;!! colspan="15" |Handler App
|-
!Initiating App!!Bluetooth!!Browser!!Calendar!!Camera!!Contacts!!Dialer!!Email!!Gallery!!Homescreen!!Music!!PDFjs!!Settings!!SMS!!Video!!Wallpaper
|-
!Bluetooth
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Browser
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| Add to Home <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Calendar
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Camera
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| Browse, Open <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Contacts
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| Dial <!-- Dialer -->
| New <!-- Email -->
| Pick <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| New <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Dialer
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| New <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Email
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| Pick, New <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Gallery
| Share <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| Record <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| Share <!-- Wallpaper -->
|-
!Homescreen
| &nbsp; <!-- Bluetooth -->
| open{{sup|2}} <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Music
| Share <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!PDFJS
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Settings
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!SMS
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| Pick, New <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Video
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| &nbsp; <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|-
!Wallpaper
| &nbsp; <!-- Bluetooth -->
| &nbsp; <!-- Browser -->
| &nbsp; <!-- Calendar -->
| &nbsp; <!-- Camera -->
| &nbsp; <!-- Contacts -->
| &nbsp; <!-- Dialer -->
| &nbsp; <!-- Email -->
| Pick-wallpaper <!-- Gallery -->
| &nbsp; <!-- Homescreen -->
| &nbsp; <!-- Music -->
| &nbsp; <!-- PDFjs -->
| &nbsp; <!-- Settings -->
| &nbsp; <!-- SMS -->
| &nbsp; <!-- Video -->
| &nbsp; <!-- Wallpaper -->
|}
</div>


''Please fill in the following for each app''
# The browser currently handles any activity where activity.source.data.type is 'url' by opening a new tab, but I don't think this activity is initiated by the homescreen itself but at a lower level.


== Requirements ==


=== Browser ===
=== Browser ===
Line 78: Line 332:
* 1. Select from list of compatible applications that the link can be shared to:
* 1. Select from list of compatible applications that the link can be shared to:
** Email, Compose message
** Email, Compose message
*** subject line: "[name] Shared a link with you"
*** subject line: "[name] shared a link with you"
*** body text: includes website link  
*** body text: [link name][link url]
** Messaging/SMS
** Messaging/SMS
*** Include link into message
*** Open to New Message screen
*** Open keyboard
*** Add link url to a new blank message
*** Place cursor one space after url
* 2. User sends message or completes sharing operation
* 2. User sends message or completes sharing operation
* 3. Share operation is completed in background and user is returned to browser
* 3. Share operation is completed in background and user is returned to browser


==== In browser content mailto: link ====
==== In browser content mailto: link ====
* 1. User clicks on email links
* 1. User taps email link
* 2. Email, Compose message
* 2. Email, Compose message
** to: [mailto: email address]
** to: [mailto: email address]
Line 94: Line 351:
==== In browser content link pattern ====
==== In browser content link pattern ====
* 1. Pattern match website addresses  (ie: www.domain.com)
* 1. Pattern match website addresses  (ie: www.domain.com)
* 2. User clicks and navigates to link
* 2. User taps link
* 3. Link opens


==== In browser content phone number pattern ====
==== In browser content phone number pattern ====
* 1. Pattern matches phone numbers (eg XXX-XXX-XXXX formatted)
* 1. Pattern matches phone numbers (eg XXX-XXX-XXXX formatted)
* 2. User clicks phone number
* 2. User taps phone number
* 3. Dialer application is opened with phone # added to number field.
* 3. Dialer application is opened with phone # added to number field.
==== Open .PDF url ====
# User taps a .PDF url (ie: www.domain.com/menu.pdf)
# Open headless PDF.js app
# Pass through url.
# PDF.js loads the content, user interacts with it.
# User taps "Close" button, activity closes, user is returned to origin app


=== Camera ===
=== Camera ===
Line 105: Line 371:
* 1. After Image/Photo is captured, it is automatically inserted into Gallery application.
* 1. After Image/Photo is captured, it is automatically inserted into Gallery application.
** Thumbnail of last capture is added to 'filmstrip' of thumbnail images for quick viewing.
** Thumbnail of last capture is added to 'filmstrip' of thumbnail images for quick viewing.
* 2. After Video is captured, it is automatically inserted in Video application
** Thumbnail of last video capture is added to 'filmstrip' of thumbnail images for quick viewing.


==== Captured image view ====
==== Captured image view ====
* 1. User clicks on image thumbnail to reveal full sized image from gallery.
* 1. User taps on image thumbnail to reveal full sized image from gallery.


=== Calendar ===
=== Calendar ===
Line 122: Line 390:
=== Contacts ===
=== Contacts ===
==== Contact website entry ====
==== Contact website entry ====
* 1. User clicks on website address
* 1. User taps on website address
* 2. Web browser opens and navigates to address
* 2. Web browser opens and navigates to address


==== Contact phone number entry ====
==== Contact phone number entry ====
* 1. User clicks on phone number
* 1. User taps phone number
* 2. Dialer opens and immediately dials phone number
* 2. Dialer opens and immediately dials phone number


==== Contact email address entry ====
==== Contact email address entry ====
* 1. User clicks on email address
* 1. User taps email address
* 2. Email, Compose Message opens
* 2. Email app opens to Compose Message view
** To: email address
** "To" field is populated with email address
** Keyboard opens
** Subject field is selected
* 3. User sends email
* 3. User sends email
* 4. Email send operation is completed in background, user is returned to Contact entry.  
* 4. Email "Send" operation is completed in background, and user is returned to Contact entry.


==== Send SMS/MMS/Message contact ====
==== Send SMS/MMS/Message contact ====
* 1. User clicks on Send message
* 1. User taps on Send message
* 2. New SMS/MMS/Message  
* 2. New SMS/MMS/Message  
** To: contact phone #
** To: contact phone #
* 3. User sends message
* 3. User sends message
* 4. Send message operation is completed in background, user is returned to Contact entry.
* 4. Send message operation is completed in background, user is returned to Contact entry.
=== Send Contact Entry ===
* 1. User Shares contact entry
* 2. Email, Compose Message Opens
** Attachment: contact vcf file
* 3. User sends email
* 4. Email send operation is completed in background, user is returned to Contact entry.


=== Dialer ===
=== Dialer ===
==== Add phone number to contact ====
==== Add phone number to contact ====
* 1. User click and hold, Add contact
* 1. User taps Add Contact button
* 2. New Contact entry opens
* 2. Contacts app opens, to Add Contact view
* 3. User enters contact details
* 3. User enters contact details
* 4. User saves contact and is returned to dialer
* 4. User cancels or saves contact, activity closes, user is returned to Dialer.


=== Email ===
=== Email ===
Add Email recipient from Contacts
==== Add Email recipient from Contacts ====
* 1. User selects to, cc, bcc recipient field
* 1. User selects to, cc, bcc recipient field
* 2. Live search or add email address from contacts application
* 2. Live search or add email address from contacts application


Read Email Contact
==== Read Email Contact ====
* 1. Match any emails in Contacts application
* 1. Match any emails in Contacts application
* 2. user click on contact
* 2. User taps on contact
* 3. Open entry in Contacts.
* 3. Open entry in Contacts.


Read Email Content
==== Read Email Content ====
* Should exhibit same behavior as Browser Content
* Should exhibit same behavior as Browser Content
==== Open .PDF ====
# User taps a .PDF attachment (ie: www.domain.com/menu.pdf)
# Open headless PDF.js app
# Pass through PDF attachment.
# PDF.js loads the PDF, user interacts with it.
# User taps "Close" button, activity closes, user is returned to origin app


=== Gallery ===
=== Gallery ===
Line 177: Line 462:
=== Music ===
=== Music ===
=== SMS/MMS ===
=== SMS/MMS ===
* Add recipient should exhibit the same behavior as Add email recipient.
* Add recipient same as Email
* Should exhibit the same behavior as Browser Content]
* Message content same as Browser content
 
==== Take photo for MMS message ====
* 1. User selects Take Photo for new message
* 2. Camera application opens
* 3. User takes photo
* 4. Camera Modal dialogue
Use this photo
Retake | Continue
* 5. User is returned to new message with photo inserted into message contents.
 
==== Save Picture from MMS message ====
* 1. User Press and hold message image and selects 'Save Image
* 2. Image is saved to Gallery in background
* 3. User continues in Conversation view.
 
==== Open .PDF url (may be for v2) ====
# User taps a .PDF url (ie: www.domain.com/menu.pdf)
# Open headless PDF.js app
# Pass through url.
# PDF.js loads the content, user interacts with it.
# User taps "Close" button, activity closes, user is returned to origin app


=== Video ===
=== Video ===
=== Settings ===
=== Settings ===
* Background / Lock screen image picker -- opens photo gallery
* Background / Lock screen image picker -- opens photo gallery
==Design Spec==
Interaction Design Spec (Draft): https://www.dropbox.com/s/ohrypdms37tfa69/Activities.pdf
Confirmed users
208

edits