Confirmed users
208
edits
m (→Status) |
m (→Design Specs) |
||
(15 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
== | == Design Specs== | ||
For the latest UX specifications, please visit | |||
https://mozilla.box.com/system | |||
== 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;" | |||
|- | |||
! !! colspan="15" |Handler App | |||
|- | |||
!Initiating App!!Bluetooth!!Browser!!Calendar!!Camera!!Contacts!!Dialer!!Email!!Gallery!!Homescreen!!Music!!PDFjs!!Settings!!SMS!!Video!!Wallpaper | |||
|- | |||
!Bluetooth | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Browser | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| Add to Home <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Calendar | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Camera | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| Browse, Open <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Contacts | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| Dial <!-- Dialer --> | |||
| New <!-- Email --> | |||
| Pick <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| New <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Dialer | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| New <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Email | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| Pick, New <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Gallery | |||
| Share <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| Record <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| Share <!-- Wallpaper --> | |||
|- | |||
!Homescreen | |||
| <!-- Bluetooth --> | |||
| open{{sup|2}} <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Music | |||
| Share <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!PDFJS | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Settings | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!SMS | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| Pick, New <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Video | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- Wallpaper --> | |||
|- | |||
!Wallpaper | |||
| <!-- Bluetooth --> | |||
| <!-- Browser --> | |||
| <!-- Calendar --> | |||
| <!-- Camera --> | |||
| <!-- Contacts --> | |||
| <!-- Dialer --> | |||
| <!-- Email --> | |||
| Pick-wallpaper <!-- Gallery --> | |||
| <!-- Homescreen --> | |||
| <!-- Music --> | |||
| <!-- PDFjs --> | |||
| <!-- Settings --> | |||
| <!-- SMS --> | |||
| <!-- Video --> | |||
| <!-- 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] | *** subject line: "[name] shared a link with you" | ||
*** body text: [link] | *** body text: [link name][link url] | ||
** Messaging/SMS | ** Messaging/SMS | ||
*** | *** 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 | * 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 | * 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 | * 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 | * 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 | * 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 | * 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 | * 1. User taps email address | ||
* 2. Email | * 2. Email app opens to Compose Message view | ||
** To | ** "To" field is populated with email address | ||
** Keyboard opens | |||
** Subject field is selected | |||
* 3. User sends email | * 3. User sends email | ||
* 4. Email | * 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 | * 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 | * 1. User taps Add Contact button | ||
* 2. | * 2. Contacts app opens, to Add Contact view | ||
* 3. User enters contact details | * 3. User enters contact details | ||
* 4. User saves contact | * 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. | * 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 | ||