Gaia/System/Activities: Difference between revisions

m
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Status==
== Design Specs==  
* See: [https://docs.google.com/spreadsheet/ccc?key=0AiBigu584YY7dGlNSlY0QzhJb3M5anRBa1gxalV0Y3c#gid=0 B2G - Milestone 3 Plan]
For the latest UX specifications, please visit
 
https://mozilla.box.com/system
== Team ==
* UX: Patryk
* UX: Josh
* Dev: Vivien
* Dev: Etienne
* B2G: Fabrice
* API: Mounir
 
 


== Background ==
== Background ==
Line 65: 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 ==
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>
# 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 ==
== Requirements ==
Line 72: 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: [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 88: 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
** Long-press on link provides the option to open in a new tab?
* 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 104: Line 375:


==== 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 119: 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 #
Line 149: Line 422:
=== 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 ===
Line 161: Line 434:
==== 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 197: Line 478:
* 2. Image is saved to Gallery in background
* 2. Image is saved to Gallery in background
* 3. User continues in Conversation view.
* 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