Confirmed users
208
edits
mNo edit summary |
m (→Design Specs) |
||
(43 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 == | == Requirements == | ||
'' | === Browser === | ||
==== Share Function ==== | |||
* 1. Select from list of compatible applications that the link can be shared to: | |||
** Email, Compose message | |||
*** subject line: "[name] shared a link with you" | |||
*** body text: [link name][link url] | |||
** 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 | |||
* 3. Share operation is completed in background and user is returned to browser | |||
==== In browser content mailto: link ==== | |||
* 1. User taps email link | |||
* 2. Email, Compose message | |||
** to: [mailto: email address] | |||
* 3. User sends email | |||
* 4. Email send operation is completed in background while user is returned to browser. | |||
==== In browser content link pattern ==== | |||
* 1. Pattern match website addresses (ie: www.domain.com) | |||
* 2. User taps link | |||
* 3. Link opens | |||
==== In browser content phone number pattern ==== | |||
* 1. Pattern matches phone numbers (eg XXX-XXX-XXXX formatted) | |||
* 2. User taps phone number | |||
* 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 === | |||
==== Image/Video capture ==== | |||
* 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. | |||
* 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 ==== | |||
* 1. User taps on image thumbnail to reveal full sized image from gallery. | |||
=== Calendar === | |||
Calender events with email participants: | |||
==== Add Calender Event ==== | |||
* 1. User adds new calender event and email participants | |||
* 2. Email event invite request is sent for each email participant in background | |||
==== Update, Delete Calender Event ==== | |||
* 1. User updates calender event | |||
* 2. Event update is sent for each email participant in background. | |||
=== Contacts === | |||
==== Contact website entry ==== | |||
* 1. User taps on website address | |||
* 2. Web browser opens and navigates to address | |||
==== Contact phone number entry ==== | |||
* 1. User taps phone number | |||
* 2. Dialer opens and immediately dials phone number | |||
==== Contact email address entry ==== | |||
* 1. User taps email address | |||
* 2. Email app opens to Compose Message view | |||
** "To" field is populated with email address | |||
** Keyboard opens | |||
** Subject field is selected | |||
* 3. User sends email | |||
* 4. Email "Send" operation is completed in background, and user is returned to Contact entry. | |||
==== Send SMS/MMS/Message contact ==== | |||
* 1. User taps on Send message | |||
* 2. New SMS/MMS/Message | |||
** To: contact phone # | |||
* 3. User sends message | |||
* 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 === | |||
==== Add phone number to contact ==== | |||
* 1. User taps Add Contact button | |||
* 2. Contacts app opens, to Add Contact view | |||
* 3. User enters contact details | |||
* 4. User cancels or saves contact, activity closes, user is returned to Dialer. | |||
=== Email === | |||
==== Add Email recipient from Contacts ==== | |||
* 1. User selects to, cc, bcc recipient field | |||
* 2. Live search or add email address from contacts application | |||
==== Read Email Contact ==== | |||
* 1. Match any emails in Contacts application | |||
* 2. User taps on contact | |||
* 3. Open entry in Contacts. | |||
==== Read Email 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 === | |||
==== Share item ==== | |||
* 1. User selects gallery item to share | |||
* 2. Select from list of compatible applications that the item can be shared to: | |||
** Email, Compose message | |||
*** subject line: "[name] Is sharing a [item type] with you" | |||
*** attachment: [gallery item] | |||
** Messaging/MMS | |||
*** Include [gallery item] | |||
* 2. User sends message or completes sharing operation | |||
* 3. Share operation is completed in background and user is returned to browser | |||
=== Music === | |||
=== SMS/MMS === | |||
* 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 === | |||
=== Settings === | |||
* Background / Lock screen image picker -- opens photo gallery |