Fix MAP SDP record generation [2/3].

Give the bluetooth app API to register a server socket for a specific
UUID/port pair. It needs that for registering two OBEX server instances.

Change-Id: I6ede7f2777040af4e653eceb14ea47a2c03abfae
Bluetooth: HID: Add support for Set Idle and Get Idle Commands

This patch provides an interface for application to send Set Idle
and Get Idle commands to remote HID Device. Support for these
two commands was missing from exisitng code, so existing code
design is reused to add support for these two commands.

Change-Id: I548362cc328498920b2dae740f1a76b2cc2d6a67
CRs-Fixed: 522511
(cherry picked from commit e98b0a3118b9c7a72f8e65e7e080259e6f032db8)
(cherry picked from commit 14fd26713fa406174f6d770506708dbbfd8c2a2e)
(cherry picked from commit 3a40bbc088c1c09fba649d40a7670760c17d5a38)
Bluetooth: Add trust device feature.

Add set trust feature where the remote device is marked
as a trusted device for subsequent connection.

CRs-fixed: 523135

Change-Id: I9bde4d7dfe07d9d63b58a661ed2413f45501bd7b
(cherry picked from commit 7ba8616bb2ba13558cdf0f00d7e1ae5b38a6ba53)
(cherry picked from commit 9bda1cf301ea06b0873d28fe1b0fcadaf2b1fb73)
(cherry picked from commit 50f4f58ae97f433b68e79a14cb662a7db9b410c9)
OBEX: Implementation of MAP and PBAP client role on Bluedroid.

Implementation changes to support MAP client and PBAP client
role on Bluedroid stack.

Change-Id: Ic75e0bea10b8420aef928d868cc25acd769d5620
CRs-fixed: 530274
(cherry picked from commit 8a9036e632092e7311e5009cb96a016b52bbacca)
(cherry picked from commit 1e4719192c82f89d0b2dba67ec99c72c77060f9a)
(cherry picked from commit abb73fd0ef2dd64c44944cff99dc81c1fd368d36)
Bluetooth: SAP: Add framework changes to support SAP

Bluetooth SIM access server (SAP) profile APIs added to the
framework APIs. As SAP server supports only disconnection
of SAP profile level connection this API is implemeted
along with other APIs.

It registers bluetooth state changed callback with the
adapter service,once there is a change in the bluetooth
state,it will bind/unbind the SAP service which is
implemented in BluetoothExt.APK.

SAP service, and other SAP Application layer is implemented
in BluetoothExt.APK.

Change-Id: I7215f503244c5ee277e83d60d6960f18559acfb9

Conflicts:
	core/java/android/bluetooth/BluetoothDevice.java
(cherry picked from commit 86d14a60283c2315bea8a34f24dd0c22139a136b)
(cherry picked from commit 718d372656fa7a456247c4909baac6e7104049f8)
Bluetooth: Support  HFP Client role on Bluedroid.

Implementation changes to support HFP Client role
on Bluedroid stack

Change-Id: Ie37e95d3b0e3f785af818fb495c835e420792f4d
(cherry picked from commit 072fad9a9a17c2a31660e7ac6cd6eba82d63fe50)
(cherry picked from commit 559508238c2fe1f8f10049549b8a29053399407c)
Bluetooth: DUN: Add framework changes to support DUN

Bluetooth DUN profile APIs added to the framework APIs.
As DUN server supports only disconnection of DUN profile
level connection this API is implemeted along with other
APIs.

It registers bluetooth state changed callback with the
adapter service,once there is a change in the bluetooth
state,it will bind/unbind the DUN service which is
implemented in BluetoothExt.APK.

DUN service, and other DUN Application layer are mplemented
in BluetoothExt.APK.

CRs-Fixed: 557180
Change-Id: I6ce1204ac6138e28ad7486f2855f0f7444ad3886
(cherry picked from commit 2e60ff9becce9db20d1714786f74cb29b9ad9c74)
(cherry picked from commit ff766d48a4f6eb1b2efeaefa30f8467deefccfa1)
Fixing Compilation issues.

Change-Id: I3934dc861454f245a61c34a2cbd8dbd31147dfb2
(cherry picked from commit bb239ed63fe95c799c634109614c27c71ccfa544)
(cherry picked from commit 4143b7c7a3beb6835f673404bc13cddd22e1c298)
Bluetooth: HID: Add support for HID Device Role

This patch adds the HID Device Role support in Bluetooth framework.
Also AIDL and callback related files for HID Device role are added
to provide interface for third party applications to communicate with
HID device Service.

Change-Id: Id03a362b7bcfa2e76056fa0197eaac12ce49b5a2
CRs-Fixed: 573086
Bluetooth: Changes for LPP and extended LE scan

This patch includes implementation of a new Bluetooth
Adapter named QBluetoothAdapter for implementing LE
specific tasks that the default adapter doesnt perform.
This patch also implements Low power proximity and extended
LE scan functionality based on service UUIDs.

CRs-Fixed: 581289
Change-Id: I63e0593f79c8929d4e18cee0472fcb401c8892e7
Bluetooth: Cleaning up sap service object to avoid serviceRecord leaks

A case where script is running to do BT ON/OFF 2000 times. Sap service
class object is leaked while turning OFF BT, when it is referenced
(Directly OR Indirectly due to its member variables). So Garbage
Collector doesn't collect class object which is referenced. Setting
NULL for service class object & service connection, while cleaning up
those variable to mark as weak reference. Any objects memory is
immediately claimed by GC, which are marked as weak reference.

Change-Id: I905d1e542c159c8f9addcb8491aee900697c9006
CRs-Fixed: 591180
Bluetooth: Fix to avoid framework reboot during monkey.

A case where monkey is running & sometimes framework is
disconnected due to unhandled java Exception during the
binding of DUN, SAP, HID device & PAN service on unsuccessful
binding. So it never handled. Handing java exception while binding
DUN, SAP, HID device & PAN  services to solve this issue.

Change-Id: Idea710593a3f9496305f636042605303e73e7749
CRs-Fixed: 564709
Bluetooth: HID-C: Add support for error parameter for reportError

This patch adds support for error parameter in reportError providing
better flexibiltiy to application to respond to errors for Set Report
received from HID Host.

Change-Id: Ieada7be8a6a91d310f20849af9e5a9b04766f4a5
CRs-Fixed: 595139
Increases Gatt connection timeout value to be 30 secs

Some LE devices take more time to establish
LE connection. This change increases the
connection timeout value to take care of
this scenario.

Change-Id: Ie4cc79b53301f230553df02afd5d64dec637fe5d
CRs-fixed: 582556
Bluetooth: Validate input parameters of gatt characteristics

If the input parameters of gatt characteristics are not valid
return false

Change-Id: Icf44439992cb068339f7a4c4e50a3f28c25db6ce
CRs-Fixed: 534763
Bluetooth: Fix PXP LPP app link loss reconnection

When BLE link loss reconnection happens,the host is
not able to send Vendor specific commands
to the controller to start monitoring the RSSI
values.

CRs-fixed: 597822

Change-Id: I436889fae7f7d42c4f532690b726271ffc136e94
Bluetooth: Fix to avoid framework reboot during monkey.

A case where monkey is running & sometimes framework is
disconnected due to unhandled java Exception during the
unbinding of HID device service on unsuccessful unbinding.
Handling java Illegal Argument exception while unbinding
HID device service solves this issue.

Change-Id: I61a5620e756119d25f2a235e67d6404b216f4cbf
CRs-Fixed: 601533
Bluetooth: Add SDK apis for Wipower and Peripheral feature

changes needed for Wipower and Periferal features.

CRs-fixed: 587811

Change-Id: Ibe73124daf78c79498fd1a6cbbcd75a88006c688
Bluetooth: Handle exceptions for bluetoot socket read

Handled IO exception in read function of BluetootSocket,
and also introduced a null check for mSocketIS.

CRs-Fixed: 605606
Change-Id: Ic948c72269e0de486a8f49163830528b002198ff
Bluetooth: Add Get/Set socket option to the Bluetooth Socket

Introduced Get/Set socket option to the Bluetooth Socket.
For these APIs it will directly call the APIs of Adapter
Service.The corresponding APIs have been implemented in
the Adapter service of native Bluetooth APK.

CRs-Fixed: 557180
Change-Id: Ic49b66599fb3c4c500e52295895d708dbc172cc7
(cherry picked from commit 80a5a8d9f465458c5417e532cc98970951f2c675)
(cherry picked from commit 5b4c228467074d2b71e02cd36c220584dba818fe)