Telephony: Mock SMS (2/4)

This change brings the possibility of simulate the reception of SMS on real devices.
This change adds a MockSmsReceiver inside SMSDispatcher that have a BroadcastReceiver listening
for Intents.MOCK_SMS_RECEIVED_ACTION actions. This class accept the SMS simulation if and only if
Settings.Secure.ALLOW_MOCK_SMS is enabled and the sender application has the
"android.permission.SEND_MOCK_SMS" permission.

This receiver should be used in the next way:

Devs should declare <uses-permission android:name="android.permission.SEND_MOCK_SMS" />
and call it with:

Intent in = new Intent(Intents.MOCK_SMS_RECEIVED_ACTION);
in.putExtra("scAddr", "+01123456789");
in.putExtra("senderAddr", "+01123456789");
in.putExtra("msg", "This is a mock SMS message.");
sendBroadcast(in);

or

String pdu = "07914151551512f2040B916105551511f100006060605130308A04D4F29C0E";
byte[][] pdus = new byte[1][];
pdus[0] = HexDump.hexStringToByteArray(pdu);
Intent in = new Intent(Intents.MOCK_SMS_RECEIVED_ACTION);
intent.putExtra("pdus", pdus);
sendBroadcast(in);

Ported from http://review.cyanogenmod.org/#/c/23017

Patchset 2: Add support for sender vanish address; Split request into multiples sms
Patchset 3: Remove TODO comment

Change-Id: I14cab3d8ceb484df71a676dcfa44ca1634be908d
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Merge "Telephony: Mock SMS (2/4)" into cm-10.2
fix mvno_match_data OutOfBounds Exception in substring check routine.

When the length of mvno_match_data is greater than GID from IccRecord,
It will generate StringIndexOutOfBoundsException.
Therefore, codes are changed to use startsWith() insteads of subString().

Change-Id: I04c5c5039edb2cfa757bf2f5a4b9f124afb69b06
Bugs: 10171336

Fix mvnoMatches function but keep case-insensitive

Redo previous fix in a way that's still case insensitive.

bug:10171336
Change-Id: I65e29b72ace2a41ed7a19e3bfb5d23bf3773d41c
Merge branch 'cm-10.2' of github.com:CyanogenMod/android_frameworks_opt_telephony into cm-10.2