Gaia/SMS: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Add a Security Review section)
(Updated etherpad links)
 
(34 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Design Specs ==
== Development Team ==
For the latest UX specifications, please visit:
You'll be able to find the current team [[Modules/FirefoxOS#Messages|on the Firefox OS modules page]].
https://mozilla.box.com/applications/1/864518430


== Use Cases ==
The SMS team is part of the larger [[FirefoxOS/Comms|Comms team]].
*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 ==  
== Design Specs ==
;Gaia v1
=== Panels-specific spec ===
*User has the ability to send/receive text messages
==== Conversation View ====
*User has the ability to send a new SMS:
* https://bug1087933.bmoattachments.org/attachment.cgi?id=8533556
**Enters a name based on available phone numbers in the Contacts app list
==== Report Panel ====
**Enters a phone number
* top part: https://bug1202061.bmoattachments.org/attachment.cgi?id=8661096
*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
*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) ==
* Milestone 1 - Completed by 4/26/2013
** SMIL, Multi-recipient, New layout and Gaia's pick activity
* Milestone 2 - Completed by 5/10/2013
** 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: ==
=== Versions specific specs ===
☆ - priority for merge to master,  ★ - in-progress, ✓ - landed on dev-branch or master, ⇪ - on master & uplifted
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]).


===Resolved===
For 2.0, the Visual Refresh specifications are on [http://bugzil.la/950175 bug 950175].


* ✓⇪ New layout (Borja) <strike>{{bug|860680}}</strike> - LANDED, UPLIFTED
For 1.4, please visit :
* ✓⇪ SMIL (Steve, Corey) {{bug|845173}}, LANDED, UPLIFTED
* https://mozilla.app.box.com/shared/yt7hl2leikogcuili7kp/1/1578257617 for the Wappush DSDS spec
* https://mozilla.app.box.com/shared/yt7hl2leikogcuili7kp/1/1425004300 for DSDS UX spec
* https://bugzilla.mozilla.org/show_bug.cgi?id=947139 for the DSDS Messaging Visual Design spec


* ✓⇪ Activities for attaching media (Dominic)
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)
** ✓⇪ Pick music {{bug|849766}} -  LANDED, UPLIFTED
** ✓⇪ Pick video <strike>{{bug|849768}}</strike> - LANDED, UPLIFTED


* Device Timestamp -
The following link contains the specifications for versions 1.0, 1.1 and 1.2:
** <strike>{{bug|840051}}</strike> - RESOLVED, NO CHANGES
https://mozilla.box.com/applications/1/864518430.
* 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
Mirror for the UX spec for version 1.3: [[File:FFOS_MessageApp_V1.3_20131125_V8.0.pdf]].<br>
*** ✓ {{bug|840055}} (Mike) - LANDED, not 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]]


* Thread List
== Source Code ==
** ★ <strike>{{bug|862311}}</strike> (Mike) - paperclip icon (has WIP patch, needs asset)
The [https://github.com/mozilla-b2g/gaia/tree/master/apps/sms source code can be found in the gaia repository in github].
*** 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)
== IRC ==
** {{bug|840065}} meta-bug
You can find us on the IRC server irc.mozilla.org, channels #gaia and #gaia-messaging.
** ✓⇪ <strike>{{bug|867231}}</strike> support saving previewed media in Gallery app
** ✓⇪ <strike>{{bug|867448}}</strike> support saving previewed media in Music app
** ✓⇪ <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
== Code Style Guidelines ==
** ✓⇪ <strike>{{bug|840076}}</strike> (Steve) - MMS download options
* [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style Mozilla's Code Style Guidelines]
** ✓⇪ <strike>{{bug|842487}}</strike> (Steve) - Download option settings page layout
** ✓⇪ <strike>{{bug|842251}}</strike> (Steve) - SMS delivery report, Gaia parts
*** ✓ <strike>{{bug|863130}}</strike> (Jaoo) - SMS delivery report, Gecko parts, LANDED NOT UPLIFTED


* Message Expiry
* [https://public.etherpad-mozilla.org/p/sms-code-style-guidelines Ongoing SMS Team specifc Code Style Guidelines]
** ✓⇪ <strike>{{bug|867227}}</strike> (Chia-hung) - Add expiry date into nsIDOMMozMmsMessage


* Notification of MMS (Steve)
== Filing bugs ==
** <strike>{{bug|840049}}</strike> New message notification
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|840050}}</strike> Messages app invoke from notification
* /data/local/storage/permanent/chrome/idb/226660312ssm.sqlite
* /data/local/storage/permanent/chrome/idb/226660312ssm.files


===Milestone 2 (5/10/13)===
== Handling bugs ==
<imagemap>
Image:Gaia_SMS_Handling_Bugs_digraph_handling_bugs_dot.svg|right|thumb|200px|[[Gaia/SMS/Handling_Bugs|Sms Bug Handling Flow]]
default [[Gaia/SMS/Handling_Bugs]]
</imagemap>


* Composer
See [[Gaia/SMS/Handling_Bugs]].
** 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>
There are 2 goals:
** ☆ {{bug|870601}} z-index problem on recipient search panel
* making the bug move forward thanks to other people until it's actionable.
** ☆ {{bug|870603}} (Rick) Contact entry bugs with ; and ENTER
* not forgetting an important bug
** ☆ <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)===
With this flow, we still need to be careful to:
* assigned bugs without activity
* needinfo that are not answered


* Open (pushed to Milestone 4, below)
Indeed these bugs could still be forgotten if they don't move.
** {{bug|868218}} (Corey) Handle not-downloaded messages in thread view. Patches in review.
** {{bug|868227}} (Greg) Attachment (pre-send). Patches in review.


* Closed
== Project Management ==
** <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.
We try to follow the Scrum methodology. Please have a look to the [[Gaia/SMS/Scrum|SMS Scrum Page]] for more information.
*** 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)===
== Some future development ==
=== Using datastores for SMS ===
* [https://public.etherpad-mozilla.org/p/messages-datastore Etherpad]


'''Pushed from M3, and new blockers
=== Haida and Sheets ===
* <strike>{{bug|868218}}</strike> (Corey) Handle not-downloaded messages in thread view.
* [https://public.etherpad-mozilla.org/p/sms-haida Etherpad]
* <strike>{{bug|868227}}</strike> (Greg) Attachment (pre-send).
* {{bug|874186}} (Vicamo) After sending a new message to a new contact, ensure headers update properly
* <strike>{{bug|872369}}</strike> (Corey) Send MMS messages via new sendMMS
* {{bug|873145}} (Ctai) sendMMS does not transmit end-to-end. has patch, has review, needs landing
* <strike>{{bug|870057}}</strike> (Steve) Input field in bottom bar is not working as expected. has patch, has review, needs landing
* <strike>{{bug|873477}}</strike> (Rick) Group participants string formatting update per v8.0


''' [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=sw%3Auplift-blocker&list_id=6622567 Remaining uplift blockers]  
=== Feature backlog ===
* [https://public.etherpad-mozilla.org/p/sms-feature-backlog Etherpad]


'''Nice to have
=== New Gaia architecture ===
* {{bug|810099}} (Chia-hung) support onretrieving event
* [https://wiki.mozilla.org/Gaia/Architecture_Proposal New Gaia Architecture Proposal]
* {{bug|874912}} () SmsMessage interface should expose a receivers property
* [https://github.com/gaia-components/threads Bridge library repo]


''' Existing M4 plan
== The Gecko API for Mobile Messaging ==
* Visual design meta-bug {{bug|872514}}
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.


== Meeting minutes ==
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.
* [https://etherpad.mozilla.org/SeUu340ZGQ MMS meeting (March 15, 2013)]
* [https://etherpad.mozilla.org/MMS-v1-1 Taipei office weekly MMS meeting]


== Development ==
[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://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.
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]).


== Security Review ==
== Security Review ==
The security review for this app can be found [https://wiki.mozilla.org/Security/Reviews/Gaia/sms here].
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.