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: 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: 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
Bluetooth: Validate the device for A2dpSink

This change will check if remote device supports A2dpSink before
sending A2dp connection Request.

Change-Id: I141099f14b697debce59d094a388de344aad1df1
CRs-fixed: 590200
Bluetooth:GAP: Handle exception while unregistering the Receiver

Handle the IllegalArgumentException while unregistering the
Receiver.

Usually when user presses both cancel and okay for the disconnect
dialog, OnClickListener will be called twice for both options,
and for the second time it is expected that receiver would have
already unregistered.

Change-Id: I36e30d551df76b7cfd1754305a1087578fd4a275
CRs-Fixed: 595648
Display BTH connected status correctly

This patch removes incorrect condition.
(to not use LocalBluetoothProfile#isPreferred())
This condition uses the priority that already disconnected profile,
so this codition always returns false.

To verify this issue:
1. Turn on Bluetooth.
2. Pair and connect to BTH(A2DP/HFP)
3. The display now says "Connected"
3. Disconnect HFP profile
4. The display still says "Connected" but it should say "Connected (no phone)"

Change-Id: I9e2bfa6d23bf1be7587c9556b4b05459d02c4817
Bluetooth: Ignore the second button if one already pressed

Ignore the second buton if already one button is pressed,
this case comes when user is trying to press the both
cancel and ok for the pairing dialog.

Change-Id: I77516ec59a972b4451bb8cff69645f7b9089497f
CRs-Fixed: 624285