Bluetooth: Set isPreferred to true for PanProfile Connections.

isPreferred is always true for PAN profile so that DUT can
initiate connection with remote device. Curretnly we are
returning true only when pan profile is in connected, so
it will return false when pan profile is not connected and
will never initiate connection on click.

Change-Id: I7c789add73ca944d074b0ecd8af223f6d61b547a
CRs-fixed: 463887
(cherry picked from commit ca3988a7394eb189835647a5aaa04707fe5c2517)
(cherry picked from commit ea5ce47bf7b918affc66467adf4e38b1c870e86f)
(cherry picked from commit 2a3bfb2ed0102de6aa6e659ee7714ce8fcec25cd)
Bluetooth: Handle pairing Cancel intent.

Receive Pairing cancel intent and clear pairing request
from notification window.

CRs-fixed: 463362

Change-Id: I63c9299edca4356485f26cbc6332e3be9bdfbf17
(cherry picked from commit fc82c5a6a3e74aeba6139e0ccf48f634fd970e62)
(cherry picked from commit dc299471edd42a5b30c0f54ef8d33730e33d03a3)
(cherry picked from commit 32f973cbe79d2474d0815d7dd90c6960af120b3c)
Bluetooth: Security: Add Null check during pairing cancel intent.

Added null check, so before posing event we can restrict events,
if cached device list is empty

Change-Id: I458d181abe5eec2497b80b1713ddbc3502b79786
CRs-Fixed: 546364
(cherry picked from commit 7d7222c3e5c1054b4e2f3e59cc40cb182a72b040)
(cherry picked from commit 8ce523155dd030d82c32cf502d317023b017645b)
(cherry picked from commit 938686e749bca911e5f63150223116d1c381da8e)
Bluetooth: Remove out of range devices after ScanComplete

Change to remove device from UI when Bluetooth of remote
device is off or not discoverable anymore. Without this
change a device that discovered previously is available
in available devices list always, though the remote device
is not discoverable anymore. The current change updates
available devices list on scan complete removing the
devices that are available in cached devices and are not
discoverable anymore.

CRs-Fixed: 523374
Change-Id: Ia250d52e6fb7a69af242c961d33027f1e724ab25
(cherry picked from commit fee7b100ff7ac4eb7117ec1bc5c592d0c7adbbf8)
(cherry picked from commit 38d07978c7fb4f40af96b9fb96af09a64ce5bfff)
(cherry picked from commit 28a27af31eac45f4b3fe5932240dc437a37dda5c)
Bluetooth: SAP: Add SAP profile support in Settings APP

- Handles 16 digit Authentication
- Added Handles SAP profile connection status changes
- Added SAP Disconnect from server related changes

Change-Id: I655a8c8bcdcc275c5d95c8ddd3d7bac2691fa818
(cherry picked from commit d17f03934b2582637f9d059fccccaabbc4203994)
(cherry picked from commit 26fd639eaeacb7dc5d82c9ef9cf5b5eb5fc70b4f)
(cherry picked from commit c63c73ebf900091b67a951e004573c03ea53e01a)
Bluetooth: DUN: Add DUN profile support in Settings APP

It registers service listener for DUN profile with the
BT adapter, and it will track the profile status with
the service listener state chnages.

It also has support for DUN profile connection status
updation and DUN Disconnection from server.

CRs-Fixed: 557180
Change-Id: I83d4919821cb095429ff7e73a8974d92c4df086c
(cherry picked from commit 59ec7bc7e1f29edc74512b7c180dc9559202a063)
(cherry picked from commit a1df3d0f11a974c9caa199fc7be1c47cfd809cf3)
Bluetooth: Fix to connect PANU from the internet access menu

isPrefered is always true for PAN. So PANU connect fails,
Once user clicks on the internet access menu in Profiles
Setting. As PAN is not auto connect profile, So PANU should
connect from the internet access menu in Profiles Setting.

Change-Id: I6007c848e7c2703dc97f7f2113356a7aaeed0a0e
CRs-Fixed: 545350
Bluetooth: Fix to show internet access as marked when pan is connected

isPrefered is always true for PAN. So internet access menu checkbox
is always marked on. Marking internet access menu checkbox based on
pan connection status should solve this issue.

Change-Id: I4343cc6f1b46377caa54aa3d39c08489ff14adac
CRs-Fixed: 550731
Bluetooth: Set alias name only through Rename option

Set the alias name only when user is trying to change the
name using the Rename option of paired device.

CRs-Fixed: 539420
Change-Id: I415b6a962d8e7884b67d37b94c04df19e2c23012
Bluetooth: Not allow Blank BT device name.

Add empty string check for BT device name
and not enable ok button until entered
device name is not empty.

Change-Id: Ib7c460bee5c8d86d13acd66d228279dd1a240c25
CRs-fixed: 471158
Bluetooth: Remove remote device from trust list on BOND change

A special case where remote device is paired & authorized by
DUT. Remote device is unpaired by itself & try to connect again.
In this scenario Link key is deleted from remote device. So
SSP is performed again. & remote device bond state is changed
to BOND_BONDING from BOND_BONDED on DUT while SSP, As it was
in DUT BONDED list. So permission/trust info for all profile
need to be false when it's moved to BOND_BONDING to solve the
issue.

Change-Id: I37e8d92feef3c2d4d18c014a5d9092a9469335cb
CRs-Fixed: 578523
Bluetooth: GAP: Cancel the previous visibilty alarms if already set

Cancel the previous visibility alarms set for 2 mins/5 mins/
1 hour if visibility change happens from the limited discoverable
to unlimited discoverable.

Change-Id: I01797b771c271498372f15b545233a73baf60ca9
CRs-fixed: 582492
Bluetooth: GAP: Cancel the pairing notification on bond state change

Cancel the pairing notification on bond state change happens from
BOND_BONDING to BOND_NONE.  Otherwise it will present in the
notification area until it gets cancelled by opening it and press
cancel on pairing dialog.

Change-Id: I96f673e29e612cd748165a1323a5b4a4276a843c
CRs-Fixed: 569534
Bluetooth: GAP: don't update autoconnect on bonding state

This patch fixes regression caused by commit
I37e8d92feef3c2d4d18c014a5d9092a9469335cb where it was not possible
to autoconnect supported profiles of remote device from DUT after
pairing is completed.

Change-Id: Ied8e0dcfd1f6b9c98a89929f05257957c13a95fe
CRs-Fixed: 584889
Bluetooth: Destroy BT Dialog on BT power off.

Check for Bluetooth off Broadcast to destroy disconnect
dialog when Bluetooth is turned off from power widget.

Change-Id: Ie556a17c7d574f77da5181c08705648ebf5733cc
CRs-Fixed: 579028
Bluetooth: Don't set a null alias before unpairing

* This causes the unpair action to throw a null pointer exception and
  bring down the Settings app. Don't do this.

Change-Id: I0c60437f5ea934385a037a464743e24c9d341aca
Bluetooth: GAP: Avoid adding device to cached device list

Change will ensure that devices will not be added to the cached
device list if profile connection state is STATE_DISCONNECTED
or STATE_DISCONNECTING. Otherwise, devices will be added to cached
list and while inquring device will not be listed in available
device list.

CRs-Fixed: 586975
Change-Id: I60bc01c0f2cb5ea87f3c633bcec2f04c90939d67
Bluetooth: HID: Use proper values of connection status

This patch fixes issue in retrieving correct connection status when
more than one hid device was connected to DUT. In such situation
current implementation was sending STATE_DISCONNECTED as connection
state because of wrong check of matching device as 1st device in
connected device list. Instead of this now actual connection state
device is retrieved from HidService.

Change-Id: I2c766e9fc6eb9e97c3745016e38fa5c374c16539
CRs-Fixed: 593065
Bluetooth: disable scan icon when BT state is off

Usually onScanningStateChanged function should take care
of disabling the scan icon when the scan is completed.

But When the BT scan is going on and try to switch of the
BT, as onScanningStateChanged function doesn't have the
reference for scan icon it will not disable it, so disabling
is taken care in BluetoothSettings on receiving BT Off state.

On receiving BT Off state, disable the scan progress icon only
when available device category is present.

CRs-Fixed: 543777,596214
Change-Id: Ib827903d4f5c80eeb6ac8a06fb1a945140dd20c9
Bluetooth: A2dp: Add A2dp Source UUID

Add A2dp source UUID to A2dp profile UUID list so that
once SDP is performed after pairing, A2dp profile is added
to the cached device instance if remote device supports
either A2dp source or sink role.

Change-Id: I67b16ac2c6fd7a6c2510c80c41dca27c35225a1b
CRs-Fixed: 593841