mms: fix NPE in compose message activity onStart when in multi select mode

Change-Id: Icc522abbba6f7abf5e80f294ef18466de3345836

(cherry picked from commit ff0b1246ba2ab7c178795843e19d0b43a0d3d486)
Mms: Add to no subject filter for mms messages

* Some carriers add a default subject if one is not provided.
* T-Mobile US adds NoSubject if no subject is added.

Change-Id: Ibed4383d33c24922bcf758862f5e0a9f0e3ed97c

(cherry picked from commit 8617675970246bfa10990fca144722abd90d7534)
Mms: Match count per thread to message per thread

The default SMS messages per thread is 10000, but the max
message counter is set to 5000. This causes the wrong input
number to be shown in the selection dialog, as it's not possible
to go above 5000 and reach the default which is 10000.

Change-Id: I8af30677db2c5c32030ead99f3aa41c5b5469336

(cherry picked from commit 36f220d3ecfbb3a52202e0023c25e8c7adb3b11b)
More materialization

Change-Id: I71959e83dc1310674e6a24dbf43e6d8558f51e13

(cherry picked from commit 88eb695c9dbb01b657e40e3728d1b142ac28a260)
Mms: Add the ability to select recipients from a checkbox list

When creating a new message you have to write some letters from the
contacts you want to add and select them by clicking on it.

This can be annoying if you want to send your message to several contacts.
With this change you can manually select numbers from contacts and groups
from a checkbox list.

* Added fixes for cm-12 apis

Change-Id: I03681f22a0d949679e2a9cc95c551e4c216b6300

(cherry picked from commit ca7d7c414ad76e7f70a161ed491c9a8736e8360c)
Mms: Run all selection through SelectRecipientsList.

  Instead of having 3 different activities to handle
  local groups, remote contacts, vcard and contact information
  selection, we should setup all selection through a single
  intent.

Change-Id: I65b0ef508f05a229f07daa752ad79b2ae153f26c

(cherry picked from commit 818423ddfd1dd578f0c04ef328eae4dae9f2f05a)
Mms: Only retain selected items when choosing recipients.

Change-Id: I2e0993edda2ed823a6430204427fc1c94791e059

(cherry picked from commit ea048a090ee306951316f0b9c9e2d2addb064b7f)
Mms: Fix NPE while attaching vcard

Change-Id: I25ba36eaa0b28e9ebc657c3f3f4ab85da741bd7a

(cherry picked from commit 6443cdddf389809aa91fe2cf22aa38a791de4b2c)
Mms: Handle possible null array on sub id.

  In some scenarios (possibly even data corruption), the destPhoneId
  used to retrieve the sub id may not be valid anymore. This can
  happen when an mms fails to be received and handled correctly. Instead
  of leaving user in a broken state (ex: unable to open mms), handle
  the null array and log the error.

  Example trace:

  AndroidRuntime
  E  FATAL EXCEPTION: TransactionService
    E  Process: com.android.mms, PID: 6440
    E  java.lang.NullPointerException: Attempt to read from null array
    E      at com.android.mms.transaction.TransactionService.onNewIntent(TransactionServic
                           e.java:479)
    E      at com.android.mms.transaction.TransactionService$ServiceHandler.handleMessage(
                           TransactionService.java:934)
    E      at android.os.Handler.dispatchMessage(Handler.java:102)
    E      at android.os.Looper.loop(Looper.java:135)
    E      at android.os.HandlerThread.run(HandlerThread.java:61)

Change-Id: I20b32455f294f1fd5a31363fbefd0cc3337461ee

(cherry picked from commit 97605ff0d280db57db9b80c11652b8327fe72742)