Commit Graph

988 Commits

Author SHA1 Message Date
Jack He
bbe2cf45ac Bluetooth: Use string in remote device summary am: 04f5967c95
am: d79f6af9ae

Change-Id: If95cf2c89469d5b9220e3f2741e8c7f9288b655a
2017-07-06 03:29:58 +00:00
Jack He
04f5967c95 Bluetooth: Use string in remote device summary
* Use String in connected device summary instead of resource id
* This allows dynamic strings to be built by CachedBluetoothDevice
  such as ones involve battery level percentages

Bug: 35874078
Test: make, unit test, test with Bluetooth devices
Change-Id: I583eac73280ca17387b215a4e7095e27de399998
2017-07-06 01:22:35 +00:00
Antony Sargent
c73c4b4055 Merge "Fix Bluetooth device details crash on screen rotation" into oc-dr1-dev am: 6d50576496
am: 5438319677

Change-Id: I1595e3c80b731a4c7f86faa198f2cc6e7f05d710
2017-07-05 23:15:53 +00:00
Antony Sargent
1b6e7d76ed Fix Bluetooth device details crash on screen rotation
We were getting the following exception when you rotated the Bluetooth
device details screen:

java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.android.settings/com.android.settings.SubSettings}:
java.lang.IllegalStateException: This Activity already has an action bar
supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR
and set android:windowActionBar to false in your theme to use a Toolbar
instead.

It turns out that allowing EntityHeaderController to inflate the
settings_entity_header.xml view seems to cause this - if you instead
manually include a LayoutPreference and hand that to
EntityHeaderController, you don't have the problem.

The rotation failure couldn't be tested with Robolectric because our
version doesn't support using FragmentTestUtil.startFragment for
fragments which use PreferenceScreen's ("sorry, not yet
implemented"). So instead this includes an app test.

Bug: 62447414
Test: runtest --path=BluetoothDeviceDetailsRotationTest.java
Change-Id: I8d052d1f4ab6e2b0ca5c0e513ec366bdcc382d99
2017-06-30 16:34:40 -07:00
Andrew Sapperstein
c0d544943f Merge commit 'e414cd231656314442cb503f9cda3677561dc44a' into manual_merge_e414cd2316
Test: none
Change-Id: I5dedcc30c9f15fa61532ecad2e0f68de4fd97c8e
2017-06-26 14:28:10 -07:00
TreeHugger Robot
ee55927bd4 Merge "Add a rename dialog for paired Bluetooth devices" into oc-dr1-dev 2017-06-26 19:35:06 +00:00
Tony Mantler
1d583e125f Make PreferenceController a mixin
Bug: 62912136
Test: Existing tests in BaseSearchIndexProviderTest
Change-Id: Ieda359806c09a019840b2005446c7ec8b61fdb00
2017-06-26 10:58:36 -07:00
Antony Sargent
843c3ead6d Add a rename dialog for paired Bluetooth devices
This adds an icon to the paired device details page which users can
click on to bring up a dialog for changing the display name for that
device.

We already had a dialog for changing the advertised name of the local
Bluetooth adapter that's used on the main Bluetooth settings page, so
I've made that abstract and created two new subclasses to encapsulate
the slight differences for this use case.

Bug: 62535241
Test: make RunSettingsRoboTests
Change-Id: I1c407f276e12aedf066a336e24b4ccd16d67c4df
2017-06-26 10:20:38 -07:00
Marie Janssen
493a76e087 Bluetooth: Make notifications local-only
am: 1138397336

Change-Id: I26d09208b0425e5cdfb8317c7aa782ad0ef1fe5d
2017-06-23 00:22:24 +00:00
Marie Janssen
1138397336 Bluetooth: Make notifications local-only
This will prevent them from showing up on external devices where they
would be less than useful.

Test: connect to watch and pair a device
Bug: 34612389
Change-Id: I8b02c20200ce78a73967b8121cf7d5653b68f356
(cherry picked from commit 426903d155)
2017-06-22 16:18:59 +00:00
Marie Janssen
852c930bfd Merge "Bluetooth: Make notifications local-only" am: 348a7085fa am: 620fe71520
am: 3cc4522cbc

Change-Id: I74688eb24e40c7c1a370a9b36dec09b876047011
2017-06-22 15:46:01 +00:00
Marie Janssen
3cc4522cbc Merge "Bluetooth: Make notifications local-only" am: 348a7085fa
am: 620fe71520

Change-Id: I3df0a009c7fc6184ea1176f6953748c5031d76cd
2017-06-22 15:41:55 +00:00
Marie Janssen
426903d155 Bluetooth: Make notifications local-only
This will prevent them from showing up on external devices where they
would be less than useful.

Test: connect to watch and pair a device
Bug: 34612389
Change-Id: I8b02c20200ce78a73967b8121cf7d5653b68f356
2017-06-19 16:11:33 -07:00
jackqdyulei
9b3d2d3ea4 Use BLUETOOTH_PAIRING metric in pairing page
Bug: 38383542
Test: Build
Change-Id: Ibc8acfa7ad7766b112389509971a36d1a4ce2394
2017-06-19 13:19:23 -07:00
jackqdyulei
837200041f Move "Received files" in BluetoothSettings
Move it from menu to preference

Also clean up the code about menu since there is no menu anymore
in BluetoothSettings

Bug: 35876447
Test: RunSettingsRoboTests
Change-Id: I4a3821595a0cc75382f1cf74bcafb3ecc44cc178
2017-06-16 13:45:46 -07:00
TreeHugger Robot
5bf8d87454 Merge "Add a new Bluetooth device details page" 2017-06-06 01:28:54 +00:00
Jack He
c11af01481 Bluetooth: Always scan while on pairing or DevicePicker page
* Modified DeviceListPreferenceFragment to have enable/disable scanning
  methods. In ENABLE state, each onScanningStateChanged(false) will
  restart another round of scanning
* Subclasses of DeviceListPreferenceFragment should call enable/disable
  scanning when scanning is needed for long period of time
* Currently, BluetoothPairingDetail and DevicePickerFragment call
  enableScanning() when Bluetooth is turned ON and call disableScanning
  when some device is picked in their lists
* Both BluetoothPairingDetail and DevicePickerFragment will re-enable
  scanning if pairing failed for selected device
* Added associated unit tests as well

Bug: 32172815
Test: make, pair Bluetooth device, send file over Bluetooth Opp
Change-Id: I99325e06aadd7b00e7a7ba6d6c282a6831859d8b
2017-06-05 12:13:46 -07:00
Antony Sargent
04a3b2199e Add a new Bluetooth device details page
Bug: 35877479
Test: make RunSettingsRoboTests

The existing behavior is to bring up a dialog with Bluetooth device
details with checkboxes for each supported profile. This adds a new page
that serves the same purpose with a switch for each profile and a footer
containing the MAC address.

Whether to use the new page or old dialog is controlled by a flag
accessible via BluetoothFeatureProvider.

Change-Id: I026c363d4cd33932a84017a67cbef51c258bad10
2017-06-05 11:17:06 -07:00
Antony Sargent
e4a9530cc1 Add a flag for the Bluetooth device details page
This flag will be used to control whether we use a new, separate page
for Bluetooth device details, or the existing dialog.

Bug: 35877479
Test: make RunSettingsGoogleRoboTests
Change-Id: I2bda77493695ebe3b3bb824657a1422a68918256
2017-05-24 16:37:42 -07:00
TreeHugger Robot
602a714502 Merge changes Ief9e9690,I1cc1bc2d
* changes:
  Split BluetoothSettings into two pages
  Dupe BluetoothSettings and DeviceListPreferenceFragment
2017-05-23 01:36:22 +00:00
jackqdyulei
52ccb49fbe Split BluetoothSettings into two pages
This cl splits the BluetoothSettings into paired device page and
pairing page, including small changes about:
1. Refactor the pages so they could get as much as static preference
from xml file rather than dynamically add/remove them everytime.
2. Remove creating method in BluetoothDeviceNamePreferenceController
and add it in xml file
3. Create BluetoothPairingDetail page, basically move the logic from
BluetoothSettings.
4. Make pairing preference clickable and jump to BluetoothPairingDetail
5. Add and update bunch of tests

Bug: 35877041
Test: RunSettingsRoboTests
Change-Id: Ief9e9690c612f7b46c58e866e5cecc511af642c8
2017-05-22 16:57:37 -07:00
Hemant Gupta
40901478f9 Merge "Settings: Convert notifications to use NotificationChannel (2/2)" into oc-dev am: 860b608e41
am: 7eb5647656

Change-Id: I8d9c6e314a1b02cafc9523fae31a06dabfad4465
2017-05-20 01:39:52 +00:00
Hemant Gupta
7eb5647656 Merge "Settings: Convert notifications to use NotificationChannel (2/2)" into oc-dev
am: 860b608e41

Change-Id: If246a2f7d340b1d21c805322fa10f0c2fed8115c
2017-05-20 01:37:14 +00:00
Hemant Gupta
7bec5bf895 Settings: Convert notifications to use NotificationChannel (2/2)
Test Setup:
===========
HW DUT: Pixel O
Remote: MecApp (PBAP Client, MAP Client, SAP Client)

Steps:
=====
1. Enable BT on DUT and bond with Remote.
2. Connect from MecApp for PBAP, MAP, SAP and observe if
   connection goes through fine.

Reproducibility:
===============
5/5

Observation:
============
MAP, PBAP and SAP cannot be connected.

Root cause:
In Android O, notifications are hidden by default.
This must be changed to use notification channels so that the
priority of the notifications can be updated.

Test: PBAP/MAP/SAP connection works fine with MecApp.

Bug: 38331825
Change-Id: I51de0ea303037bf88773352d99f092673acda2e3
(cherry picked from commit bd9f532013f0397879101f68f21ac8841fec344b)
2017-05-19 23:33:29 +00:00
jackqdyulei
5333ecd1fb Dupe BluetoothSettings and DeviceListPreferenceFragment
Create the obsolete version of the belowing fragments, so we could
flip between old page and new page.

BluetoothSettingsObsolete and DeviceListPreferenceObsoleteFragment
contains all the old logic but:
1. Logic about BluetoothPairingPreferenceController(ag/2239482),
since this preference shouldn't be checked in without the flag :(

This cl also adds logic in MasterSwitchPreferenceController to flip
these two pages.

Following cl will refactor these fragment to make it compatible
to new framework.

Bug: 35877041
Test: RunSettingsRoboTests
Change-Id: I1cc1bc2d49d8a3e11c3127e56f6409fbc84028d8
2017-05-18 14:12:02 -07:00
Antony Sargent
3033c1a2cf Merge "Add a "Use high quality audio" option to Bluetooth A2DP device settings" into oc-dev am: c439202da9
am: 3afb6616c6

Change-Id: I37280e12b32047ddef316be763f69b5ff648b557
2017-05-17 19:41:16 +00:00
Antony Sargent
3afb6616c6 Merge "Add a "Use high quality audio" option to Bluetooth A2DP device settings" into oc-dev
am: c439202da9

Change-Id: I2e0eed6c7332a9968b020c69dcc7f5507b355f6e
2017-05-17 19:12:43 +00:00
Antony Sargent
f1d544f945 Add a "Use high quality audio" option to Bluetooth A2DP device settings
This change adds a checkbox reading "Use high quality audio: <codec
name>" to the details dialog for A2DP audio bluetooth devices that
support codecs other than the mandatory SBC (eg AAC, LDAC, aptX, etc.).

Bug: 37441685
Test: make RunSettingsRoboTests

Change-Id: I6e5423db11a0cd7fe0b1141dd998e7c936c240f0
2017-05-16 11:02:52 -07:00
jackqdyulei
1b853c5597 Add pairing preference
This preference lives in paired category. When clicked, it will
go to the pairing page.

Bug: 35877041
Test: RunSettingsRoboTests
Change-Id: I64706c49c8d303a494d4c1827e1f86b59effd54c
2017-05-15 10:46:28 -07:00
Juan Lang
777ed2535a Depend on SettingsLib's version of lifecycle and FooterMixin.
The implementations have been imported into SettingsLib. Setting's copy
can now be removed, which this change also does.

Test: Manually check battery status, which uses FooterMixin, looks OK.
make RunSettingsLibRobotTests && make RunSettingsRoboTests
     && make RunSettingsGoogleRoboTests
Change-Id: I6539605fdad80d156ff5ff249e68df4a1c412067
2017-05-12 11:10:46 -07:00
TreeHugger Robot
631120f1ad Merge "Add bluetooth visible item" 2017-05-11 23:45:29 +00:00
jackqdyulei
ae86781edd Add bluetooth visible item
Show "Visible as [Device name]". Also remove the menuitem for
changing device name.

This cl creates a preference controller to handle the logic for
device name preference.

Bug: 35876447
Test: RunSettingsRoboTests

Change-Id: I9ab6c9d2df5b053d15b8ff887073ef82616243a4
2017-05-11 11:12:25 -07:00
Lei Yu
7932d5a66f Merge "Expose mac address in bluetooth main page" 2017-05-10 20:42:03 +00:00
Lei Yu
c0d798ff06 Merge "Add feature provider for Bluetooth" 2017-05-10 19:55:17 +00:00
jackqdyulei
d2ba0117fc Expose mac address in bluetooth main page
This mac address means the owned device, not the device
to connect.

Bug: 35875420
Test: RunSettingsRoboTests
Change-Id: I142f49fdca72d8ffbb9b8b2e2666a61aefb80505
2017-05-10 11:18:10 -07:00
jackqdyulei
3db59a8430 Add feature provider for Bluetooth
Also add method to check whether pairing page is enabled.

Bug: 38134564
Test: RunSettingsGoogleRoboTests
Change-Id: Ib74ece46f9624242895a366eac889957924f84c6
2017-05-08 16:06:42 -07:00
jackqdyulei
e407e67a3b Create RestrictedDashboardFragment.
RestrictedDashboardFragment has all the same logic coming from
RestrcitedSettingsFragment but extends from DashboardFragment.
As a result, we could use preferenceController in child class of
RestrictedDashboardFragment.

This cl also make DeviceListPreferenceFragment as child of
RestrictedDashboardFragment, which enfluences the bluetooth page.

Bug: 38041586
Test: Build
Change-Id: I01395d506176c5cc584948478f7ca16c1c7c7045
2017-05-08 13:34:54 -07:00
Jack He
a16bcf17d4 Merge "Bluetooth: Dismiss pairing dialog on user click" into oc-dev
am: fdd8d3f6ae

Change-Id: Ie5d30226ef700f29af206416b8392fd9f6017784
2017-04-27 00:37:38 +00:00
TreeHugger Robot
fdd8d3f6ae Merge "Bluetooth: Dismiss pairing dialog on user click" into oc-dev 2017-04-27 00:32:12 +00:00
Jack He
2a67cf0465 Bluetooth: Dismiss pairing dialog on user click
* Existing pairing dialog should be dismissed when user clicks on Yes/No
* In a pairing session with multiple pairing dialogs, this is necessary
  as otherwise the second pairing dialog will not be shown
* Modified unit test to test this behavior
* Launch pairing dialog as UserHandle.CURRENT to avoid Context warnings

Bug: 35833536
Test: make, unit test, pair with Bluetooth devices
Change-Id: I1823b78d287134505f59eab7caca2329ecc3a36f
2017-04-25 14:13:26 -07:00
Ruchi Kandoi
7094f1d170 Merge "Add searchable index for Bluetooth and Nfc only if the feature exists" into oc-dev
am: 41a858fde1

Change-Id: Ida195181c34d5f53ea544b1a0c81d3154385219e
2017-04-25 19:20:06 +00:00
TreeHugger Robot
41a858fde1 Merge "Add searchable index for Bluetooth and Nfc only if the feature exists" into oc-dev 2017-04-25 19:05:42 +00:00
Ruchi Kandoi
7ca6c2410c Add searchable index for Bluetooth and Nfc only if the feature exists
Test: make RunSettingsRoboTests
Bug: 35657961
Change-Id: Ie2f4722b2b1599981c933f87f95016909ba92022
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
2017-04-24 13:15:35 -07:00
Lei Yu
96cba04e0d Merge "Add device name for connect string" into oc-dev
am: bcaabec925

Change-Id: I83920ad2cecfece9ed7bb4acb50fe6a6068bd51b
2017-04-24 19:43:08 +00:00
Lei Yu
bcaabec925 Merge "Add device name for connect string" into oc-dev 2017-04-24 17:00:49 +00:00
Ajay Panicker
344405d87a Merge "Add Bluetooth Pairing notifications to a channel" into oc-dev
am: 8b09195f80

Change-Id: Iced885cd7195ed48920667ef96c0cbbdec587466
2017-04-22 01:53:42 +00:00
Ajay Panicker
2432051bfd Add Bluetooth Pairing notifications to a channel
Bug: 37531430
Test: Send a pairing request to DUT from remote phone
Change-Id: I2014b0aa3c4797cbf8e601003471372f4920d21d
2017-04-21 16:44:55 -07:00
jackqdyulei
471d71bae0 Add device name for connect string
When there are more than one connected device, show
a general summary.

Bug: 37365660
Test: RunSettingsRoboTests
Change-Id: I0eed734e82750969bef97a61dd59167e679c0203
2017-04-21 15:10:56 -07:00
Marie Janssen
f8aaed9e1f Bluetooth: Make pairing notification cancellable
Add actions to the pairing service notification so the user can dismiss
the pairing request if they want to.

Add some more information to logs when the user takes an action.

Reformat the file to match android style.

Test: pair from a remote device, dismiss using the new actions
Bug: 36036358
Change-Id: Ie110044bd4caf465f454452737000f01e7430925
(cherry picked from commit c79470d089)
2017-04-21 20:19:20 +00:00
Marie Janssen
f119ab31ad Merge "Bluetooth: Make pairing notification cancellable" am: 6c142b35b4 am: 28bbd5bacb
am: c7ad828691

Change-Id: I1b6a63bdca7a104f993b9114f7c0da18c5e8df22
2017-04-21 18:54:11 +00:00