RIL: Make RIL subclassable

Conflicts:

	telephony/java/com/android/internal/telephony/RIL.java

Change-Id: I99c194c6baa6abe6f37e92d4f8df197b1cbf69f0
RIL: Support signal strength format from v3 vendor RILs

Enable by setting property ro.telephony.ril.v3=1
RIL: fix pin unlock for old ril

Change-Id: I27eb348233d41618875473ca9bdb93d339c359f9
RIL: handle the lack of version gracefully on older RILs

Change-Id: I8227c55968f502112c5b6ac334eee505c29924c2
Break the legacy ril shims into specific features. The ICC feature breaks crespo, but crepso needs the signal strength feature.
v3 RIL: Fix getDataCallState and PIN setting

Change-Id: Icf5cee33aeec58cffb23430f0f7b06b9971a71ad
telephony: Support broken RIL implementations without CALL_RING events

This is probably specific to the LGE star: Extend the call_ring.multiple
configuration to the ringing connection event, since the CALL_RING event
itself doesn't appear. Without this, only the first ring happens.

Enable with ro.telephony.call_ring.absent=true

Change-Id: Idd272583769757c6baa638fd644b5b919cf80fec
v3 RIL: another getDataCallState fix

Change-Id: Ie4e69e231956f46bc1b82550fdf4863c1367efaf
RIL: skip broken RIL_UNSOL_DATA_CALL_LIST_CHANGED

Some old RILs might produce events with type 'IP' containing the remote IP
address, normally 10.64.64.64. These events mismatch with the previously
generated ones and cause the system to take the connection down, even if
it was up and working correctly.

Add skipbrokendatacall to ro.telephony.ril.v3 to enable the workaround.

Change-Id: I3bc3c84735201a797011aafba2718638a826f31d
Add support for Caller Name Display

Copied relevant parts from CdmaConnection.java to get the information
as/if presented by network operator (Fido/Rogers in canada provide that
information, and it get displayed if there's no match in phonebook).

Change-Id: I95d90c96324502c217da84be2c5c3cd46c1c0c0f
telephony: Use reflection to create command interface (RIL class)

This has the advantage over the method used in CM7 in that the
RIL class for each device does not have to be specified in this
file in an if statement. ro.telephony.ril_class needs to be upated
to contain the name of the class instead of an identifier as used
in CM7

Change-Id: I0aafdfc78d47f493a2e35819dbe873ea98787934
telephony: Added support for use of Honeycomb Radio (Modem).

-squashed (RIL: reference ICS and GB):
https://github.com/isimobile/android_frameworks_base/commit/7507127287aa8cf84b5e811977d95400b029f95b
https://github.com/isimobile/android_frameworks_base/commit/af2b84d1860b38952784ae116172e00a4b445a1d
https://github.com/isimobile/android_frameworks_base/commit/872156a81fb4185217e7642d10ec33da4893a2b3
https://github.com/isimobile/android_frameworks_base/commit/400bbc4e3ce8e9e0219b31bb985e6628c50d0f07
https://github.com/isimobile/android_frameworks_base/commit/7cb289d9e59ac69350dd2377eff63940641df603

-cleaned up some whitespace

Change-Id: I3a3474245bb336bc3f275605648f5f94f3f9b6e7

Conflicts:

	telephony/java/com/android/internal/telephony/DataConnection.java
telephony: Add SamsungRIL

Patch Set 2: Fix Emergency calling for Samsung CDMA

Patch Set 3: Do not extraneously send RIL poll requests due to extraneous HSDPA update

Patch Set 4: Remove extraneous import accidentally added in Patch Set 3

commit 91cb0a82f785539986ee4f6ef95ccd8c789121d5
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Mon Dec 19 17:53:40 2011 +0700

    SamsungRIL: ignore setCurrentPreferredNetworkType

    Change-Id: Ifa87949da3d807803db932e31c6c2dd053040c9c

commit b578cdb7bf0222a05af65cb09cdfc53aa7457328
Author: Daniel Hillenbrand <info@codeworkx.de>
Date:   Mon Dec 12 18:32:35 2011 +0100

    SamsungRIL: added unknown unsol request 11010

commit 259ccc34d53a0067c730c616814c0ec5fc788d95
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Sun Nov 27 12:06:34 2011 +0700

    SamsungRIL: Always use v3 signal strength

    Our signal processing wouldn't make sense without it anyway.

    Change-Id: Ie101d6b220b00383aa18a9ac2c66e2ef786b7467

commit 1f5730d26e7e0dece905192b4dab6340336a8a21
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Fri Nov 18 21:15:34 2011 +0700

    SamsungRIL: Fix datacall

commit 1838b577a899a1f5259327361d95fe64f706c8e8
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Fri Nov 18 13:50:39 2011 +0700

    SamsungRIL: Fix signal strength

commit 1e23a1d363e7514b32703f604bdc96411cc35330
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Thu Nov 17 17:40:56 2011 +0700

    Brings back SamsungRIL

Change-Id: Ice09e25c8657aad0ddb345d240829789f28d18fb
Fix support for CDMA devices in SamsungRIL.

These fixes are ported from jt1134's fascinatemtd patches and CM7.  For
CM9, the fixes are applied to SamsungRIL directly instead of elsewhere in
the telephony framework.  They include:

- Signal strength reporting: pass raw integer values.
- Voice registration: convert base station values from hex to dec.
- Data call setup/deactivate: start/stop pppd_cdma service and pull network
  parameters from pppd ip-up script.
- CDMA subscription: add missing PRL version from system properties.

Changes from CM7:

Note use of "ril.cdma.data_state" property instead of
"ril.cdma.data_ready".  This property has three states:

- Disconnect(ed): ril.cdma.data_state=0: stop pppd_cdma service.
- Connecting:     ril.cdma.data_state=1: (re)start pppd_cdma.
- Connected:      ril.cdma.data_state=2: pppd_cdma has responded.

The disconnect (0) and connecting (1) states are set by SamsungRIL on the
deactivation and setup, respectively, of a data call.  Prior to setting the
connecting (1) state, SamsungRIL sets the "net.cdma.datalinkinterface" for
pppd_runner's use.

After setting to the connecting (1) state, SamsungRIL waits for pppd_cdma
to respond by (itself) setting the connected (2) state.  This should be
done at the end of a /system/etc/ppp/ip-up script, after that script sets
the following interface values, which SamsungRIL uses to complete the data
call state:

- net.cdma.ppp.interface: $IFNAME (typically "ppp0")
- net.$IFNAME.local-ip:   pppd's local IPv4 address
- net.$IFNAME.remote-ip:  pppd's remote IPv4 address
- net.$IFNAME.dns1:       pppd's primary DNS address
- net.$IFNAME.dns2:       pppd's secondary DNS address
telephony: add support for samsung smdk4210 boards

Change-Id: Id51618e4f4764121a60bbcbc629f4dc8147c4808
Telephony: Add "singlepdp" RIL feature

ICS appears to assume the radio implementation is capable of multiple
simultaneous PDP contexts; maguro, for instance, brings up a second
interface (rmnet1) alongside the primary rmnet0 whenever another APN
is needed.
Other devices (including, from tests, crespo) don't accept this, and
react in unpredictable ways when a SETUP_DATA_CALL request is made before
tearing down any other active context (making it impossible, or at
least hard, to switch APNs).

Since the old setup/deactivateDefaultPDP methods are gone, this patch
adds a back-compatibility "singlepdp" option to the ro.telephony.ril.v3
property, which enforces disabling the default PDP whenever another one
is enabled.

Change-Id: Ib4b030e3f1a32445102ac72aeb68715ef8cebd88

Conflicts:

	telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
Add more CDMA SamsungRIL fixes.

Adds a collection of CDMA device fixes to SamsungRIL.  They include:

- Overriding ERROR_UNSPECIFIED fail cause with NORMAL_CLEARING, to prevent
  far-end hangups from displaying the "Call Lost" dialog.

- Adding, and ignoring the RIL_UNSOL_GPS_NOTI request, which is also
  ignored in the TW RIL, to keep the radio log clean of exceptions when the
  GPS is active.

- Workaround for Samsung CDMA "ring of death" bug.  See source comments for
  details on this problem.

Change-Id: Ida4797718ad3463d073a6fc27246cc916526d487
Telephony: Correct the typo in RIL.java

Change-Id: Ia2466d478e86bb891c4b394ac86389369a9b8dd3
SamsungRIL: Fixes for CDMA data reconnection failures due to stale pppd

Occasionally the CDMA data connection fails to reconnect after various
radio events, which is fixed neither by toggling mobile data nor airplane
mode, but only by a reboot.  One known cause of this problem is that the
pppd_cdma service is occasionally left running after the radio event, which
causes all subsequent "setup data call" operations to fail.  These two
fixes address the stale pppd_cdma service issue:

- Move the pppd_cdma service shutdown (set ril.cdma.data_state=0) from the
  "deactivate data call" response to its request.  This avoids the issue
  where the response never comes (radio crash?), and thus, the service is
  never stopped.

- Force pppd_cdma service shutdown on a "setup data call" failure.  This
  allows subsequent setup attempts to succeed in the event that the
  "deactivate" request was never made (unexpected radio poweroff).
Support for Virgin Mobile MMS.

Code cleaned up and reformatted to be closer to Android coding style.
Credit: progmanos CM9 port of inferiorhumanorgans CM7 VM MMS.

Change-Id: I25a7d8d21abca4318ccb901ff9755644a0e928b0