Emojis not fully supported which results in blank received SMS messages

Bug #1269017 reported by Jamie Strandboge
34
This bug affects 6 people
Affects Status Importance Assigned to Milestone
messaging-app
Fix Released
High
Renato Araujo Oliveira Filho
messaging-app (Ubuntu)
Fix Released
High
Renato Araujo Oliveira Filho
ofono (Ubuntu)
Fix Released
Medium
Alfonso Sanchez-Beato

Bug Description

Android allows for adding emojis[1] to SMS messages. I'm told that iOS users are able to see these emojis. Our messaging app should also support displaying emojis.

emojis appear to not requires MMS since when using Google Hangouts in the new android, when you add an emoji the hangouts app says 'Sent now via SMS'. Two things need to happen:

1. need to be able to correctly receive SMS messages with arbitrary emojis. Currently, on image 120, an SMS with a known emoji, eg, a smiley face, will display correctly when it is and is not accompanied with text. However, an SMS with an unknown emoji (eg, with a pinata) will show up as a blank SMS, even when the SMS has text. At a minimum, the text of the message should always be shown, perhaps with an 'unknown emoji' placeholder

2. need to be able to send SMS messages with emojis

[1]http://en.wikipedia.org/wiki/Emoji

Related branches

Changed in messaging-app (Ubuntu):
assignee: nobody → Tiago Salem Herrmann (tiagosh)
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Bill Filler (bfiller) wrote :

After testing with Tiago, seems ofono is dropping any messages with emojis in them on the floor. The messaging-app is delivered a blank message. The message sent was "emjoi follows <theEmoji> ok?". This is what is shown in dbus log

signal sender=:1.4 -> dest=(null destination) serial=190 path=/ril_0; interface=org.ofono.MessageManager; member=IncomingMessage
   string ""
   array [
      dict entry(
         string "LocalSentTime"
         variant string "2014-04-08T20:53:36+0000"
      )
      dict entry(
         string "SentTime"
         variant string "2014-04-08T17:53:36-0300"
      )
      dict entry(
         string "Sender"
         variant string "+16176665555"
      )
   ]

Changed in ofono (Ubuntu):
importance: Undecided → High
assignee: nobody → Tony Espy (awe)
Tony Espy (awe)
Changed in ofono (Ubuntu):
status: New → Confirmed
Revision history for this message
Tony Espy (awe) wrote :

My take on this is that it's a feature request, not necessarily a bug.

Emoji support was *just* added to Android 4.4, and in fact isn't quite compatible with older releases of Android which support non-color emoji. Actually from what I've read, emoji support on Android usually required a 3rd party app, but Google's recent merging of Messaging and Hangouts in 4.4 made it a standard feature.

Furthermore, while there is some cross compatibility between iOS and Android, it's apparently not an exact match.

Finally, full support will require a special keyboard for the messaging app, and probably a unique set of emoji icons for Touch itself.

I'm working on figuring out what the underlying message scheme is for emoji, and will add details to the bug once I've done so.

Changed in ofono (Ubuntu):
importance: High → Medium
Revision history for this message
Tony Espy (awe) wrote :

Standard text messages are usually encoded using 7BIT encoding.

When I send a message from Android to Touch using emoji, the message is encoded as UC2, however the decoding of this message ( which is done via a standard g_convert() call using the codepoints "UTF-8//TRANSLIT", "UCS-2BE" ) fails. So more investigation is needed into exactly how these messages are encoded.

Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

The emojis are have code points wider than 16 bits, so they cannot be code using UCS-2. UTF-16 is being used instead, and the emojis are coded using surrogate pairs. Code to use UTF-16 in ofono instead of UCS-2 can be found in this PR:

https://github.com/rilmodem/ofono/pull/76

Tony Espy (awe)
Changed in ofono (Ubuntu):
assignee: Tony Espy (awe) → Alfonso Sanchez-Beato (alfonsosanchezbeato)
Tony Espy (awe)
Changed in ofono (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.1 KiB)

This bug was fixed in the package ofono - 1.12.bzr6858+14.10.20140501-0ubuntu1

---------------
ofono (1.12.bzr6858+14.10.20140501-0ubuntu1) utopic; urgency=low

  [ Tony Espy ]
  * [ Tony Espy ] build, gril, rilmodem, plugins/ril, test: call-
    forwarding support. [ Alfonso Sanchez-Beato ] build, gril,
    plugins/rildev: dynamic plugin loading for ril-type modems.   The
    new rildev plugin reads an environment variable to determine
    which   device plugin   to load ( defaults to the standard ril
    plugin ). build, gril, plugins/ril, rilmodem, unit: radio-settings
    support.   Allow radio technology ( ie. use 2G-only ) preference to
    be configured. [ Tony Espy ] test: update remaining test scripts to
    Python 3. build, src, plugins, src/gprs: add MMS support.   Added
    new android-provision plugin and associated -apndb code   to
    provision GPRS and MMS contexts using apns-conf.xml as the primary
      provisioning database, while mobile-broadband-provider-info is
    still   queried in order to pickup additional Apns. Also added
    support for   combined Internet/MMS contexts by allowing MMS
    specific properties   to be set for OFONO_GPRS_CONTEXT_TYPE_INTERNET
    contexts. [ Alfonso Sanchez-Beato ] rilmodem/ussd: Fix USSD Initiate
    hang (LP: #1299227 ). gril, rilmodem, unit: add SIM write support.
      This allows ofono's core call-forwarding and message-waiting logic
      to update persistent state on the SIM, in order to preserve it
    across   reboots. build, gril, include, plugins, src,
    drivers/mtkmodem, drivers/rilmodem: add MTK support.   This change
    adds support for MTK-ril modems without breaking compatibility
      with AOSP-ril modems. examples, include, plugins, src: support for
    gid type MVNOs in Android APN database. gril, rilmodem: fix for call
    redirections (LP: #1239869).   This fix checks and ignores a
    Qualcomm specific error   code that indicates a call has been re-
    directed by an   operator while roaming. build, gril, rilmodem,
    unit: add call-barring support. gril, mtkmodem, rilmodem, unit: MTK
    followup changes.   This change adds unit tests for MTK specific
    messages.   It also consolidates parsing logic for parsing data
      call lists, which is a valid payload for multiple message   types.
    Finally, the deactivate data call logic on start-   up has been re-
    worked to query the active calls before   attempting to deactivate
    any. src/smsutil: use UTF-16 instead of UCS-2 (LP: #1269017).   If
    an incoming SMS is indicated to be UCS-2, use UTF-16   instead to
    decode so that emoji's ( which use larger   codepoints than can be
    encoded in UCS-2 ) are properly   decoded. [ Jussi Pakkanen ]
    phonesim: add a DBus control interface.   This control interface has
    been added in order to make   phonesime more flexible for auto-pilot
    testing of   Touch's network-indicator code. [ Alfonso Sanchez-Beato
    ] android-apndb.c/-provision.c: fix string comparisions.   Change
    all usage of g_str_equal() to g_strcmp0(). This   fixes a crash that
    may happen if the SIM doesn't contain   a SPN file. gril: switch
    process to radio user.   Te...

Read more...

Changed in ofono (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

Bug #1137630 describes that emojis could be supported by installing the Symbola font and describes how to get them to work. I have not tried to do that myself, but it might be an easy way to display emojis now that messages are no longer blocked when they contain emojis.

Revision history for this message
Bill Filler (bfiller) wrote :

I installed the ttf-ancient-fonts package and now get many emojis correctly displayed in the messaging app and indicator. All the ones from the iphone are not supported, but many are.

We could install this fonts package in the image, but it does take disk space though.

Revision history for this message
Bill Filler (bfiller) wrote :

17.2mb to be exact

Changed in messaging-app:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Tiago Salem Herrmann (tiagosh)
tags: added: rtm14
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

2 cents> users are going to expect emojis to work, so it seems reasonable to include on the image. If the 17M is really an issue, perhaps add it now and then break ttf-ancient-fonts into two packages: one with emojis (eg ttf-ancient-emojis) and one with everything else (ttf-ancient-fonts) and have ttf-ancient-fonts Recommends ttf-ancient-emojis but only install ttf-ancient-emojis on the device. I have no idea how much space savings this would be or if it is easy to split the packages.

Revision history for this message
Adolfo Jayme Barrientos (fitojb) wrote :

It’s not mandatory to use specifically the Symbola font. You could also package and use the Noto Color Emoji free font, as Firefox OS has done. [1][2] (FreeType supports that color font... unless Ubuntu Phone doesn’t use FreeType, of course.)

[1]: https://github.com/mozilla-b2g/moztt/commit/2372e891b10ff9a7382bbb4fbcd439a75cebd206
[2]: http://bugzil.la/939280

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

FYI: fonts-noto - "No Tofu" font families with large Unicode coverage

$ apt-cache policy fonts-noto
fonts-noto:
  Installed: (none)
  Candidate: 2013-04-11-2
  Version table:
     2013-04-11-2 0
        500 http://us.archive.ubuntu.com/ubuntu/ utopic/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu/ utopic/universe amd64 Packages

Ie, fonts-noto appears to already be packaged in Ubuntu. On my mako device with most recent promoted:

$ sudo apt-get install fonts-noto
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  fonts-noto
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,631 kB of archives.
After this operation, 6,059 kB of additional disk space will be used.

I installed this on my device and tested if emojis worked. Now I see rectangles whereas before, I think I just saw nothing. Seems adding this to the touch seed would be part of the fix, but maybe more needs to be done.

Changed in messaging-app (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Alberto Salvia Novella (es20490446e) wrote :

Please, include Unicode emoticons and pictographs in the default Ubuntu installation; as they:

   - Allow visual representation in plain text, which saves having to use complex formatting in messages for this and warranties cross compatibility with Android and Apple devices for messaging.

   - Saves a huge amount of time when editing documents where you want to have icons, as these are diverse and visual coherent with each other. You don't need to look for icon-sets that fits you purpose, and can be used everywhere you wish.

Tables are here:

   - Emoticons: <http://www.unicode.org/charts/PDF/U1F600.pdf>

   - Miscellaneous Symbols And Pictographs <http://www.unicode.org/charts/PDF/U1F300.pdf>

Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :

I have a branch that I started the implementation of support for basics emoji (smiles only).

On this branch you will be able to see any basic emoji that you received, and send using combinations of chars like :) :( :'( (that will be translated to the correct unicode, before send the message) .

Revision history for this message
Bill Filler (bfiller) wrote :

@renato
I think we should use one of the font packages that does this already and try and reduce it's size. Seems easier then writing code to do it.

Changed in messaging-app (Ubuntu):
assignee: Tiago Salem Herrmann (tiagosh) → Renato Araujo Oliveira Filho (renatofilho)
tags: added: touch-2014-09-18
Revision history for this message
Alberto Salvia Novella (es20490446e) wrote :

You only need to include the Noto Sans typo, which will take 900 kB.

Also keep in mind that you will need to design some automation to keep this font updated, as the standard is continuously being extended.

Revision history for this message
Sebastien Bacher (seb128) wrote :

is bug #1137630 a duplicate?

Bill Filler (bfiller)
tags: added: touch-2014-09-25
removed: touch-2014-09-18
Changed in messaging-app:
assignee: Tiago Salem Herrmann (tiagosh) → Renato Araujo Oliveira Filho (renatofilho)
Changed in messaging-app (Ubuntu):
status: Triaged → In Progress
Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :

I only got this working with Symbola font.

I tried using "Noto Color Emoji" which has colored emojis, but I failed.

I was able to see the emojis using the ftview : ftview -m 😷 55 NotoColorEmoji.ttf

But I was unable to get it working with Qt.

I will attach my cpp and qml example to the bug if you want to try it.

Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :
Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :
Revision history for this message
Renato Araujo Oliveira Filho (renatofilho) wrote :
Changed in messaging-app:
status: Confirmed → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package messaging-app - 0.1+14.10.20140917.1-0ubuntu1

---------------
messaging-app (0.1+14.10.20140917.1-0ubuntu1) utopic; urgency=low

  [ CI bot ]
  * Resync trunk

  [ Gustavo Pichorim Boiko ]
  * Update pot file.

  [ Tiago Salem Herrmann ]
  * Workaround focus problem in the MultiRecipientInput component. (LP:
    #1369018)

  [ Renato Araujo Oliveira Filho ]
  * Added Symbola font as dependency (LP: #1269017)

  [ Ubuntu daily release ]
  * New rebuild forced
 -- Ubuntu daily release <email address hidden> Wed, 17 Sep 2014 15:58:09 +0000

Changed in messaging-app (Ubuntu):
status: In Progress → Fix Released
Bill Filler (bfiller)
Changed in messaging-app:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.