Add support for sim manual provisioning

Enable vendor Telephony plugin

- Add hooks to vendor components.
- Change access specifiers of members from private to protected.
- Override factory methods.
- Add support for HIDL service to implement vendor/OEM specific features.

CRs-Fixed: 2178879
Change-Id: I0b8369f88c05d56973c0adb6f08607460601302e

Enable vendor Telephony plugin: MSIM Changes

Author: Sneh Bansal <snehb@codeaurora.org>
Date:   Fri Jan 19 17:18:32 2018 +0530

    Enable vendor Telephony plugin: MSIM Changes

    MSIM Changes that are needed to enable vendor telephony framework.

    CRs-Fixed: 2172757
    Change-Id: I80a46de96c34d5e2a4ce952830f6beb862522de5

Author: Sandeep Gutta <sangutta@codeaurora.org>
Date:   Mon Feb 12 13:56:27 2018 +0530

    MSIM: Perform code clean-up

    Make required changes to use vanilla implementation for
    handling SIM ERROR scenario.

    Change few method access specifiers and remove unused constant.

    Change-Id: Ifffc1cbff72316ec6885e0f4eb0a7b89dadcc96d
    CRs-Fixed: 2179165

Change-Id: I1df4fcacea64a09c0720109fa2547e4f0cbbf43b

Telephony: Send INITIAL_ATTACH only when it is applicable.

Issue is that SET_INITIAL_ATTACH is being sent whenever subId changes.

During bootup subId does change before records gets loaded. This results
in SET_INITIAL_ATTACH with incorrect APN setting/profile.

Solution is to send SET_INITIAL_ATTACH only when cdmaSubscriptionSource
is RUIM based and records have been loaded.

Change-Id: I68280db4831935326c732943e5b763d3b3a4c3fe

Fix to send initial attach apn

If there is no IA/default apn then do not perform initial
attach with any other available apns.

Change-Id: Ie3241747eb44df9070f2cb4874f13878f8ca3d9b
CRs-Fixed: 2178888

SimPhoneBook: Add ANR/EMAIL support for USIM phonebook.

1. Add multi-EF_ANR/EF_EMAIL support for each ADN record.
2. Add the related interfaces for getting count of ADN,ANR,EMAIL
    - getAdnRecordsCapacity
3. Use updateIccRecordInEf for all update/insert/delete operations.
    - add updateAdnRecordsWithContentValuesInEfBySearchUsingSubId for
      updating IccRecord
4.Move main thread in IccPhoneBookInterfaceManager to other thread to
fix deadlock issue.

CRs-Fixed: 2172707
Change-Id: I282650251b98317a4a2bf59d61adad66a30cc9c9

Telephony: Enable data call on CSIM.

- Let DCT get mcc/mnc from phone object.
- GsmCdmaPhone would return mcc/mnc as follow...
    - If phoneType is GSM then mcc/mnc from SimRecords
    - If phoneType is CdmaLte then
        If CdmaSubscriptionSource is NV
            mcc/mnc from ro.cdma.home.operator.numeric
        Else
            If SimRecords present then mcc/mnc from this recored.
            Else mcc/mnc from RuimRecords.

- ApnSettings UI would always display list of APNs based on mcc/mnc of GsmCdmaPhone.
    - CDMA operators having LTE
        - APN UI would list LTE apn profile since mcc/mnc is from SimRecords.
    - Legacy CDMA operators
        - APN UI would be empty since such simcard would not have Sim/Usim app.
        - OEM must add profile in apns-conf.xml for such operators.

CRs-Fixed: 2178887
Change-Id: Ib8fd65eb8b18661d76a71ee24f1e732fb467d5c4

MSIM: Fix to call setMccMnc() with proper mcc-mnc value

Change-Id: I8f986c8b8554f59079a8bcebd48cf87bff84ef69
CRs-Fixed: 2203088

Avoid showing stack trace without QTI telephony extension

Author: maxwen <max.weninger@gmail.com>
Date:   Tue Nov 28 17:25:07 2017 +0100

    telephony: dont scare AOSP people

    for AOSP its full ok to not have QtiTelephonyComponentFactory
    so dont scare them with a stack trace but a nice message only

    Change-Id: I6644c4df91f1fbb775c368c62ef1ad90e1874cf7

Author: Alexander Diewald <Diewi@diewald-net.com>
Date:   Tue Jan 16 20:51:31 2018 +0100

    telephony: Construct TelephonyComponentFactory correctly wo qti jar.

    * In the absence of the file "/system/frameworks/qti-telephony-common.jar",
      the default TelephonyComponentFactory shall be instantiated.
      This fails in the current version, since the ClassLoader already
      produces an exception in the absence of the jar. Hence, place
      the ClassLoader construction in the try statement such that
      a TelephonyComponentFactory is constructed for the singleton.
    * No stack trace is shown when the jar is abscent, but an
      informative message as intended before.

    Change-Id: I3b7970ac3f58483d9a044a4252775bf7d32ac217
    Signed-off-by: Alexander Diewald <Diewi@diewald-net.com>

Change-Id: Ib1541a1ecb4b85abf097861707e7315be86b4f18

telephony: Squashed support for simactivation feature

 * This is a squash of the "OldRilFeatures" implementation plus
   the following changes, forward-ported to P.

   Author: Danny Baumann <dannybaumann@web.de>
   Date:   Mon Dec 7 16:37:45 2015 +0100

       Also activate default UICC apps once after SIM presence.

       Some devices apparently need this, and it shouldn't hurt on other
       devices either.

       Change-Id: I7feb27cceeffc30081e682a6f6b0e2bdb6ad5087

   Author: Danny Baumann <dannybaumann@web.de>
   Date:   Thu Nov 5 11:06:09 2015 +0100

       Activate default UICC application if not done automatically.

       Provides compatibility to the pre-M behaviour.

       Change-Id: Ie87e40cf1da3b19fd37e2c07ff50845f0842216a

Change-Id: I785a91dadd79713f57641a3c20a94a0220a723e9

Telphony: Introduce TelephonyExtUtils to call qti-telephony.jar api.

Issue: FP2P-242
Change-Id: Id44e34b3f399cb88ef867cc227f036bbfc47237f
22 files changed