Gaia/SMS: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Updated etherpad links)
 
(35 intermediate revisions by 5 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) ==
=== Versions specific specs ===
* Milestone 1 - Completed by 4/26/2013
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]).
** 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: ==
For 2.0, the Visual Refresh specifications are on [http://bugzil.la/950175 bug 950175].
☆ - priority for merge to master, ★ - in-progress, ✓ - landed on dev-branch or master, ⇪ - on master & uplifted


===Resolved===
For 1.4, please visit :
* 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


* ✓⇪ New layout (Borja) <strike>{{bug|860680}}</strike> - LANDED, UPLIFTED
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)
* ✓⇪ SMIL (Steve, Corey) {{bug|845173}}, LANDED, UPLIFTED


* ✓⇪ Activities for attaching media (Dominic)
The following link contains the specifications for versions 1.0, 1.1 and 1.2:
** ✓⇪ Pick music {{bug|849766}} -  LANDED, UPLIFTED
https://mozilla.box.com/applications/1/864518430.
** ✓⇪ Pick video <strike>{{bug|849768}}</strike> - LANDED, UPLIFTED


* Device Timestamp -
Mirror for the UX spec for version 1.3: [[File:FFOS_MessageApp_V1.3_20131125_V8.0.pdf]].<br>
** <strike>{{bug|840051}}</strike> - RESOLVED, NO CHANGES
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>
* Media Preview (Steve/Corey)
Mirror for the UX spec for version 1.0: [[File:HTML5 SMS 20121212 R2S1 V8.0.pdf]]
** ✓⇪ <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
== Source Code ==
*** ✓ {{bug|840055}} (Mike) - LANDED, not uplifted
The [https://github.com/mozilla-b2g/gaia/tree/master/apps/sms source code can be found in the gaia repository in github].


* Thread List
== IRC ==
** ★ <strike>{{bug|862311}}</strike> (Mike) - paperclip icon (has WIP patch, needs asset)
You can find us on the IRC server irc.mozilla.org, channels #gaia and #gaia-messaging.
*** 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)
== Code Style Guidelines ==
** {{bug|840065}} meta-bug
* [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style Mozilla's Code Style Guidelines]
** ✓⇪ <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
* [https://public.etherpad-mozilla.org/p/sms-code-style-guidelines Ongoing SMS Team specifc Code Style Guidelines]
** ✓⇪ <strike>{{bug|840076}}</strike> (Steve) - MMS download options
** ✓⇪ <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
== Filing bugs ==
** ✓⇪ <strike>{{bug|867227}}</strike> (Chia-hung) - Add expiry date into nsIDOMMozMmsMessage
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):
* /data/local/storage/permanent/chrome/idb/226660312ssm.sqlite
* /data/local/storage/permanent/chrome/idb/226660312ssm.files


* Notification of MMS (Steve)
== Handling bugs ==
** <strike>{{bug|840049}}</strike> New message notification
<imagemap>
** <strike>{{bug|840050}}</strike> Messages app invoke from notification
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>


===Milestone 2 (5/10/13)===
See [[Gaia/SMS/Handling_Bugs]].


* Composer
There are 2 goals:
** Composition to handle media (Greg):  
* making the bug move forward thanks to other people until it's actionable.
*** ✓ <strike>{{bug|840069}}</strike> message preview, landed on dev branch
* not forgetting an important bug
** 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>
With this flow, we still need to be careful to:
** ☆ {{bug|870601}} z-index problem on recipient search panel
* assigned bugs without activity
** ☆ {{bug|870603}} (Rick) Contact entry bugs with ; and ENTER
* needinfo that are not answered
** ☆ <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)===
Indeed these bugs could still be forgotten if they don't move.


* Open (pushed to Milestone 4, below)
== Project Management ==
** {{bug|868218}} (Corey) Handle not-downloaded messages in thread view. Patches in review.
We try to follow the Scrum methodology. Please have a look to the [[Gaia/SMS/Scrum|SMS Scrum Page]] for more information.
** {{bug|868227}} (Greg) Attachment (pre-send). Patches in review.


* Closed
== Some future development ==
** <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.
=== Using datastores for SMS ===
*** Blocked by <strike>{{bug|870562}}</strike> (fixed on m-c, uplifted)
* [https://public.etherpad-mozilla.org/p/messages-datastore Etherpad]
*** 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)===
=== Haida and Sheets ===
* [https://public.etherpad-mozilla.org/p/sms-haida Etherpad]


'''Pushed from M3, and new blockers
=== Feature backlog ===
* <strike>{{bug|868218}}</strike> (Corey) Handle not-downloaded messages in thread view.
* [https://public.etherpad-mozilla.org/p/sms-feature-backlog 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]  
=== New Gaia architecture ===
* [https://wiki.mozilla.org/Gaia/Architecture_Proposal New Gaia Architecture Proposal]
* [https://github.com/gaia-components/threads Bridge library repo]


'''Nice to have
== The Gecko API for Mobile Messaging ==
* {{bug|810099}} (Chia-hung) support onretrieving event
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|874912}} () SmsMessage interface should expose a receivers property


''' 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.