Gaia/SMS: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Updated etherpad links)
 
(41 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== Design Specs ==
== Development Team ==
You'll be able to find the current team [[Modules/FirefoxOS#Messages|on the Firefox OS modules page]].


==== Interaction ====
The SMS team is part of the larger [[FirefoxOS/Comms|Comms team]].


* [https://www.dropbox.com/sh/ygwfxk6chpshxdj/84NUe5i6Cv/Apps/SMS Dropbox]
== Design Specs ==
* [https://www.dropbox.com/s/mrtjwvzk6xgoc02/HTML5_SMS-MMSUserStorySpecifications_20130503_V8.0.pdf HTML5_SMS-MMSUserStorySpecifications_20130503_V8.0.pdf]
=== Panels-specific spec ===
 
==== Conversation View ====
 
* https://bug1087933.bmoattachments.org/attachment.cgi?id=8533556
 
==== Report Panel ====
==== Visual ====
* top part: https://bug1202061.bmoattachments.org/attachment.cgi?id=8661096
 
* [https://www.dropbox.com/sh/8jkb0osnvfda96e/TkcQuTbhHj Dropbox]
 
== Use Cases ==
*Tom wants send a text message and selects the SMS app
*Tom can send a new message by:
**Selecting an existing contact from the Contacts app list
**Entering a phone number
*Tom is notified of all incoming messages whether he's in the SMS app, on the Home Screen, or in a 3rd party app
*Tom also has the ability to send an MMS
**MMS supports photos and short videos
*Tom has the ability to search through his history of SMS sent/received
*Tom has the ability to delete specific SMS threads
*More user stories related to MMS in [https://bugzilla.mozilla.org/show_bug.cgi?id=842229 Bugzilla meta bug]


== Requirements ==  
=== Versions specific specs ===
;Gaia v1
For 2.1, 2.2 and 3.0 we had no visual refresh so we have no visual design specifications. The specifications for the Right To Left work are common to all apps and [https://mozilla.app.box.com/s/bcm3s5i2v6js5uk0ws3tsywse8bgncgo can be found on box.com] ([https://bug906270.bugzilla.mozilla.org/attachment.cgi?id=8629248 mirror on bugzilla]).
*User has the ability to send/receive text messages
*User has the ability to send a new SMS:
**Enters a name based on available phone numbers in the Contacts app list
**Enters a phone number
*All text messages sent/received are threaded and displayed in a conversation-like view
*In the messages list view, timestamps are shown based on date of last received/sent messages
**'Today' and 'Yesterday' are used for recent message threads
*User has the ability to search through all messages sent/received
*User has the ability to delete specific message threads


;Gaia v2
For 2.0, the Visual Refresh specifications are on [http://bugzil.la/950175 bug 950175].
*User has the ability to forward an individual or group of text messages to another recipient
*User has the ability to send MMS messages
**MMS messages support photos and short videos


== Implementation Plan ( established April 18th, 2013) ==
For 1.4, please visit :
* Milestone 1 - Completed by 4/26/2013
* https://mozilla.app.box.com/shared/yt7hl2leikogcuili7kp/1/1578257617 for the Wappush DSDS spec
** SMIL, Multi-recipient, New layout and Gaia's pick activity
* https://mozilla.app.box.com/shared/yt7hl2leikogcuili7kp/1/1425004300 for DSDS UX spec
* Milestone 2 - Completed by 5/10/2013
* https://bugzilla.mozilla.org/show_bug.cgi?id=947139 for the DSDS Messaging Visual Design spec
** Message composition with attachments, new text-display layout, open/save attachments
* Milestone 3 - Completed by 5/17/2013
** New thread layout, settings UI for automatic content download options
* Milestone 4/Final - Completed by 5/24/2013
** MMS Share activity (for other apps to send media to MMS), Notification of MMS


== Implementation Details: ==
For 1.3, please visit https://mozilla.app.box.com/shared/0u4jt353ei9ov2c150ip/1/1170795225 (for the generic specs) and https://mozilla.app.box.com/shared/0u4jt353ei9ov2c150ip/1/1206603879 (for DSDS)
☆ - priority for merge to master,  ★ - in-progress, ✓ - landed on dev-branch or master, ⇪ - on master & uplifted


===Resolved===
The following link contains the specifications for versions 1.0, 1.1 and 1.2:
https://mozilla.box.com/applications/1/864518430.


* ✓⇪ New layout (Borja) <strike>{{bug|860680}}</strike> - LANDED, UPLIFTED
Mirror for the UX spec for version 1.3: [[File:FFOS_MessageApp_V1.3_20131125_V8.0.pdf]].<br>
* ✓⇪ SMIL (Steve, Corey) {{bug|845173}}, LANDED, UPLIFTED
Mirror for the UX spec for versions 1.1 and 1.2: [[File:HTML5_SMS-MMSUserStorySpecifications_20130503_V8.0.pdf]]. This spec is still the authoritative one for anything that has not been redesigned.<br>
Mirror for the UX spec for version 1.0: [[File:HTML5 SMS 20121212 R2S1 V8.0.pdf]]


* ✓⇪ Activities for attaching media (Dominic)
== Source Code ==
** ✓⇪ Pick music {{bug|849766}} - LANDED, UPLIFTED
The [https://github.com/mozilla-b2g/gaia/tree/master/apps/sms source code can be found in the gaia repository in github].
** ✓⇪ Pick video <strike>{{bug|849768}}</strike> - LANDED, UPLIFTED


* Device Timestamp -
== IRC ==
** <strike>{{bug|840051}}</strike> - RESOLVED, NO CHANGES
You can find us on the IRC server irc.mozilla.org, channels #gaia and #gaia-messaging.
* Media Preview (Steve/Corey)
** ✓⇪ <strike>{{bug|840056}}</strike> - audio playback, LANDED, UPLIFTED
** ✓⇪ <strike>{{bug|840057}}</strike> - video playback, LANDED, UPLIFTED
** ✓⇪ <strike>{{bug|840059}}</strike> - photo display, LANDED, UPLIFTED


** ✓ New Thread Layout
== Code Style Guidelines ==
*** ✓ {{bug|840055}} (Mike) - LANDED, not uplifted
* [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style Mozilla's Code Style Guidelines]


* Thread List
* [https://public.etherpad-mozilla.org/p/sms-code-style-guidelines Ongoing SMS Team specifc Code Style Guidelines]
** ★ <strike>{{bug|862311}}</strike> (Mike) - paperclip icon (has WIP patch, needs asset)
*** depends on:
**** ✓ <strike>gecko bug {{bug|863241}}</strike> is landed in mozilla-central, and
**** ✓ <strike>{{bug|865287}}</strike> which is landed and awaiting uplift


* Media Saving (DJF)
== Filing bugs ==
** {{bug|840065}} meta-bug
You can file bug [https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS&component=Gaia%3A%3ASMS on Bugzilla]. Please include the Firefox OS version you use, and possibly a screenshot or a video. Any console from logcat is welcome as well, or you could provide your message sqlite from your device by retrieving the following file & directory(if you don't mind the content):
** ✓⇪ <strike>{{bug|867231}}</strike> support saving previewed media in Gallery app
* /data/local/storage/permanent/chrome/idb/226660312ssm.sqlite
** ✓⇪ <strike>{{bug|867448}}</strike> support saving previewed media in Music app
* /data/local/storage/permanent/chrome/idb/226660312ssm.files
** ✓⇪ <strike>{{bug|869292}}</strike> support saving previewed media in Video app
*** ✓⇪ <strike>{{bug|868625}}</strike> - CRASH, blocking these save bugs from moving forward. Bent fixed.


* Settings UI
== Handling bugs ==
** ✓⇪ <strike>{{bug|840076}}</strike> (Steve) - MMS download options
<imagemap>
** ✓⇪ <strike>{{bug|842487}}</strike> (Steve) - Download option settings page layout
Image:Gaia_SMS_Handling_Bugs_digraph_handling_bugs_dot.svg|right|thumb|200px|[[Gaia/SMS/Handling_Bugs|Sms Bug Handling Flow]]
** ✓⇪ <strike>{{bug|842251}}</strike> (Steve) - SMS delivery report, Gaia parts
default [[Gaia/SMS/Handling_Bugs]]
*** ✓ <strike>{{bug|863130}}</strike> (Jaoo) - SMS delivery report, Gecko parts, LANDED NOT UPLIFTED
</imagemap>


* Message Expiry
See [[Gaia/SMS/Handling_Bugs]].
** ✓⇪ <strike>{{bug|867227}}</strike> (Chia-hung) - Add expiry date into nsIDOMMozMmsMessage


* Notification of MMS (Steve)
There are 2 goals:
** <strike>{{bug|840049}}</strike> New message notification
* making the bug move forward thanks to other people until it's actionable.
** <strike>{{bug|840050}}</strike> Messages app invoke from notification
* not forgetting an important bug


===Milestone 2 (5/10/13)===
With this flow, we still need to be careful to:
* assigned bugs without activity
* needinfo that are not answered


* Composer
Indeed these bugs could still be forgotten if they don't move.
** Composition to handle media (Greg):
*** ✓ <strike>{{bug|840069}}</strike> message preview, landed on dev branch
** Attachment Support (Greg)
*** ☆★ {{bug|870057}} (Greg) - maybe Gecko problem
** Carrier Limit
*** ✓⇪ <strike>{{bug|840061}}</strike> (Steve) - operator limit definition
*** ☆ {{bug|870120}} max segments info no longer working
*** ☆ <strike>{{bug|870124}}</strike> message counter styling
*** ☆ <strike>{{bug|870536}}</strike> 'enableSend' method is not working as expected
** ☆ {{bug|870628}} Text in input box can overflow below the interface. Regression.


* ★ Multi-recipient (Rick) <strike>{{bug|837994}}</strike>
== Project Management ==
** ☆ {{bug|870601}} z-index problem on recipient search panel
We try to follow the Scrum methodology. Please have a look to the [[Gaia/SMS/Scrum|SMS Scrum Page]] for more information.
** ☆ {{bug|870603}} (Rick) Contact entry bugs with ; and ENTER
** ☆ <strike>{{bug|870618}}</strike> (Steve) Live-search panel is not cleaned after sending a SMS
** ✓ <strike>{{bug|870879}}</strike> New composer should convert &lt;br> to \n instead of stripping spaces


===Milestone 3 (5/17/13)===
== Some future development ==
=== Using datastores for SMS ===
* [https://public.etherpad-mozilla.org/p/messages-datastore Etherpad]


* Open (pushed to Milestone 4, below)
=== Haida and Sheets ===
** {{bug|868218}} (Corey) Handle not-downloaded messages in thread view. Patches in review.
* [https://public.etherpad-mozilla.org/p/sms-haida Etherpad]
** {{bug|868227}} (Greg) Attachment (pre-send). Patches in review.


* Closed
=== Feature backlog ===
** <strike>{{bug|868679}}</strike> (Rick) use threadId as the "key" of a thread instead of a phone number. Patch waiting on review from Corey, Julien.
* [https://public.etherpad-mozilla.org/p/sms-feature-backlog Etherpad]
*** Blocked by <strike>{{bug|870562}}</strike> (fixed on m-c, uplifted)
*** Also fixes <strike>{{bug|870145}}</strike> Sending to N>1 recipients should create individual threads and return to thread-list.
** <strike>{{bug|870416}}</strike> (Rick) Recipients container interaction. Drag & Pull effects. (dupe of {{bug|870544}})
** <strike>{{bug|840087}}</strike> (Steve) New message notification when auto-download disabled (Only need copywriter to provide l10n string. The priority could be lower since we already has temp string here)
** <strike>{{bug|840075}}</strike> (Mike) MMS "share" activity for images (Landed in master on Thurs.)
** <strike>{{bug|840044}}</strike> (Mike) Image Attachment Support (Landed in master on Tues.)
** <strike>{{bug|869255}}</strike> (Mike)  Attach button fire pick Activity and create Attachment (PR for UI already up for review. supporting logic in for review Monday evening.) (Landed in master on Tues.)
** <strike>{{bug|840090}}</strike> (Steve) New message notification when auto-download enabled. (Landed in master on Tues.)
** <strike>{{bug|840035}}</strike> (Corey) UI: operator defined limit prompt (Landed in master on Weds.)
** <strike>{{bug|867440}}</strike> (Chia-hung) Add more delivery status for delivery state "not-downloaded" and send the dom message with right delivery status.
** <strike>{{bug|869219}}</strike> (Mike) Reset handler is bound unsafely (Landed in master on Weds.)
** <strike>{{bug|870544}}</strike> (Mark) Apply right UI styles (Landed in master on Fri)
** <strike>{{bug|870164}}</strike> (Steve) Multi-Recip container not taking all available height (Set dup to 870544 first, reopen if necessary)
** <strike>{{bug|869717}}</strike> (Steve) CSS tweaks needed for MMS placeholders.(Landed in master on Sat)


===Milestone 4 (5/24/13)===
=== New Gaia architecture ===
* [https://wiki.mozilla.org/Gaia/Architecture_Proposal New Gaia Architecture Proposal]
* [https://github.com/gaia-components/threads Bridge library repo]


'''Pushed from M3, and new blockers
== The Gecko API for Mobile Messaging ==
* <strike>{{bug|868218}}</strike> (Corey) Handle not-downloaded messages in thread view. Patches in review.
The SMS application uses several API from Gecko. Especially it uses the API for Mobile Messaging, which allows to send and receive SMS and MMS.
* {{bug|868227}} (Greg) Attachment (pre-send). Patches in review.
* {{bug|874186}} (?) After sending a new message to a new contact, ensure headers update properly
* {{bug|872369}} (Corey) Send MMS messages via new sendMMS
** blocked by Gecko issue {{bug|873145}} (?) sendMMS does not transmit end-to-end
* {{bug|870057}} (Steve) Input field in bottom bar is not working as expected (Reviewing by Borja)
* {{bug|873477}} (Rick) Group participants string formatting update per v8.0
* {{bug|810099}} (Chia-hung) support onretrieving event


''' Existing M4 plan
On this wiki, several pages show the design behind the API: [[WebAPI/WebSMS]] and [[WebAPI/WebMMS]]. They're probably somewhat obsolete noawadays but they will provide useful information about some design.
* Visual design meta-bug {{bug|872514}}


== Meeting minutes ==
[https://developer.mozilla.org/en-US/docs/WebAPI/WebSMS/Introduction_to_Mobile_Message_API MDN has also a good documentation] about this API. It's also lagging a bit but is more uptodate.
* [https://etherpad.mozilla.org/SeUu340ZGQ MMS meeting (March 15, 2013)]
* [https://etherpad.mozilla.org/MMS-v1-1 Taipei office weekly MMS meeting]


== Development ==
Finally, the most current information is given by the [http://dxr.mozilla.org/mozilla-central/source/dom/mobilemessage/interfaces IDL files in the gecko tree] (and [http://dxr.mozilla.org/mozilla-central/source/dom/webidl/MobileMessageManager.webidl some part is in a separate place]).
[https://github.com/mozilla-b2g/gaia/tree/master/apps/sms Source code on Github]


In progress code will be landed to the [http://github.com/bocoup/gaia/tree/messaging messaging branch on Bocoup's fork on Github] for the sake of keeping friction on gaia/master minimal.
== Security Review ==
The security review for this app can be found [https://wiki.mozilla.org/Security/Reviews/Gaia/sms here].

Latest revision as of 08:16, 8 October 2015

Development Team

You'll be able to find the current team on the Firefox OS modules page.

The SMS team is part of the larger Comms team.

Design Specs

Panels-specific spec

Conversation View

Report Panel

Versions specific specs

For 2.1, 2.2 and 3.0 we had no visual refresh so we have no visual design specifications. The specifications for the Right To Left work are common to all apps and can be found on box.com (mirror on bugzilla).

For 2.0, the Visual Refresh specifications are on bug 950175.

For 1.4, please visit :

For 1.3, please visit https://mozilla.app.box.com/shared/0u4jt353ei9ov2c150ip/1/1170795225 (for the generic specs) and https://mozilla.app.box.com/shared/0u4jt353ei9ov2c150ip/1/1206603879 (for DSDS)

The following link contains the specifications for versions 1.0, 1.1 and 1.2: https://mozilla.box.com/applications/1/864518430.

Mirror for the UX spec for version 1.3: File:FFOS MessageApp V1.3 20131125 V8.0.pdf.
Mirror for the UX spec for versions 1.1 and 1.2: File:HTML5 SMS-MMSUserStorySpecifications 20130503 V8.0.pdf. This spec is still the authoritative one for anything that has not been redesigned.
Mirror for the UX spec for version 1.0: File:HTML5 SMS 20121212 R2S1 V8.0.pdf

Source Code

The source code can be found in the gaia repository in github.

IRC

You can find us on the IRC server irc.mozilla.org, channels #gaia and #gaia-messaging.

Code Style Guidelines

Filing bugs

You can file bug on Bugzilla. Please include the Firefox OS version you use, and possibly a screenshot or a video. Any console from logcat is welcome as well, or you could provide your message sqlite from your device by retrieving the following file & directory(if you don't mind the content):

  • /data/local/storage/permanent/chrome/idb/226660312ssm.sqlite
  • /data/local/storage/permanent/chrome/idb/226660312ssm.files

Handling bugs

See Gaia/SMS/Handling_Bugs.

There are 2 goals:

  • making the bug move forward thanks to other people until it's actionable.
  • not forgetting an important bug

With this flow, we still need to be careful to:

  • assigned bugs without activity
  • needinfo that are not answered

Indeed these bugs could still be forgotten if they don't move.

Project Management

We try to follow the Scrum methodology. Please have a look to the SMS Scrum Page for more information.

Some future development

Using datastores for SMS

Haida and Sheets

Feature backlog

New Gaia architecture

The Gecko API for Mobile Messaging

The SMS application uses several API from Gecko. Especially it uses the API for Mobile Messaging, which allows to send and receive SMS and MMS.

On this wiki, several pages show the design behind the API: WebAPI/WebSMS and WebAPI/WebMMS. They're probably somewhat obsolete noawadays but they will provide useful information about some design.

MDN has also a good documentation about this API. It's also lagging a bit but is more uptodate.

Finally, the most current information is given by the IDL files in the gecko tree (and some part is in a separate place).

Security Review

The security review for this app can be found here.