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
Telephony: Fix Mms auto-retrieval

This adds some missing code from the 10.1 port

Change-Id: I57093d0dfbc00478b2835324e740da9d75c111d6
DcTracker: Only retrieve records when we're either RUIM or CdmaLte AND subscribing from NV

Change-Id: I498097440d62ad6c9e04497085a63ede894fb5d8
PhoneProxy: Update IccCardProxy only when cdma voice tech changes.

	Update IccCardProxy only when the device is reporting new cdma voice tech.
	Fixes scenario where device reports UNSOL_VOICE_TECH_CHANGE to UMTS, but remains
        as a CdmaLtePhone.

Change-Id: I81bd5d3c6cf553c0a60ad3d4f1f581d3500f446c
Merge "DcTracker: Only retrieve records when we're either RUIM or CdmaLte AND subscribing from NV" into cm-10.2
Merge "PhoneProxy: Update IccCardProxy only when cdma voice tech changes." into cm-10.2
PhoneProxy: Restore previous updatePhoneObject logic.

	No reason to do an opt-in with a boolean, most cdma devices with >= v6 RIL should be
	able to update their IccCardProxy when triggered by an EVENT_ICC_CHANGED
	message.

Change-Id: Ica92c2d53e9d3551d3abe8b460b80d0d381ac5bb
HTCQualcommRIL: Handle HTC VOICE_RADIO_TECH_CHANGED response

* Properly handle VOICE_RADIO_TECH_CHANGED unsolicited response.

Change-Id: Id42deb43237be78286a20dfb22e4645c6b83ceed
HTCQualcommRIL: properly reset radio on RIL_CONNECTED

* Resets radio on RIL_CONNECTED, but only after the first RIL_CONNECTED
  response.

Change-Id: I94a56d97eca173b8bcc5b38e59ee43740d2ef74a
HTCQualcommRIL: support DATA_NETWORK_STATE_CHANGED_M7/5757

* This UNSOL response behaves the same as the existing
  RESPONSE_DATA_NETWORK_STATE_CHANGED message.

Change-Id: I804c1f13fb3019a7e54a344967a3a4eb707046fd
Merge "PhoneProxy: Restore previous updatePhoneObject logic." into cm-10.2
HTCQualcommRIL: skip setCdmaSubscriptionSource if CDMA_SUBSCRIPTION_MODE is null

Change-Id: Idf842a6def9151d500bcb2d8ee3e21010c725e20
SamsungQualcommRIL: skip setCdmaSubscriptionSource if CDMA_SUBSCRIPTION_MODE is null

Change-Id: I9784c99e0ac82d6982f5240e2576fce6a7c1e1bf
Merge "HTCQualcommRIL: skip setCdmaSubscriptionSource if CDMA_SUBSCRIPTION_MODE is null" into cm-10.2
CdmaLte: Fix 3G reported as unknown on certain devices

Some older CDMA/LTE RILs only report VoiceRadioTechnology which
results in network Unknown. In these cases return
RilVoiceRadioTechnology for RilDataRadioTechnology.

Set ro.telephony.ril.v3=usevoicetechfordata to enable

Change-Id: Icfbc8739993beae1b0f024bf71374751aa200a01