Confirmed users
208
edits
m (→Design Specs) |
|||
(26 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
== | == Design Specs== | ||
For the latest UX specifications, please visit | |||
https://mozilla.box.com/system | |||
== 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 == | |||
== | 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 == | |||
=== 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] | *** subject line: "[name] shared a link with you" | ||
*** body text: | *** 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 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 | * 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 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 | * 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 | * 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 # | ||
* 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 | * 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 === | ||
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. | * 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 | * Add recipient same as Email | ||
* | * 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 | ||