Commit Graph

126 Commits

Author SHA1 Message Date
Fan Zhang
f7843adabd More renaming in DashboardFragment
getPreferenceControllers() -> createPreferenceControllers() for the same
reason as in ag/3647936

Bug: 73668763
Test: robotests
Change-Id: I97670a91a2a38d1c844d1b9d37f4222c5e6f45a0
2018-02-23 16:56:30 -08:00
Fan Zhang
be45f9c865 Migrate more settings to SubSettingsLauncher
Bug: 73250851
Test: robotests
Change-Id: I4100bef20e2ed477e4e31c9b7816f1b03f3f2809
2018-02-19 13:36:57 -08:00
Fan Zhang
7cf99f5f12 Migrate more settings to use SubSettingsLauncher
Bug: 73250851
Test: robotests
Change-Id: I08f6f380489646231d6d8ceb1488e2efb036bf69
2018-02-18 21:10:03 -08:00
Fan Zhang
615563db0c Migrate more subsetting launching to SubSettingLauncher
Bug: 73250851
Test: robotests
Change-Id: Ic0bf23f6ac6f717bdd3d477fdb84af68badae8e6
2018-02-15 15:39:56 -08:00
Pavlin Radoslavov
b58b006e44 Use proper string formatting for the "Active device" string
Updated testContextMock() how it checks the bluetooth_connected string.

Bug: 72317067
Test: Unit test updated:
      make ROBOTEST_FILTER=BluetoothDetailsHeaderControllerTest \
                           RunSettingsRoboTests
      Manual: two headsets and switching the active device
Change-Id: I3db178d71543e4dfa437544350c58241860ae703
2018-02-08 11:14:10 -08:00
Leif Hendrik Wilden
28dee1f086 Migrate to use instrumentation classes from settingslib.
Test: Compiles. Manually tested.
Change-Id: I70a6e76cc8440547746ecc008c32bd06a7de8161
2018-01-24 12:30:39 -08:00
Leif Wilden
cab0ee611d Revert "Migrate to use instrumentation classes from settingslib."
This reverts commit 1546cca529.

Reason for revert: Broke fingerprint setup flow. b/72267201

Change-Id: I8321265ae64732c526325882ddea51080decddf5
2018-01-22 20:57:36 +00:00
Leif Hendrik Wilden
1546cca529 Migrate to use instrumentation classes from settingslib.
Test: Compiles. Manually tested.
Change-Id: Ie5515bb0fe3e621fc7723a9b04ba23e4bfa9c401
2018-01-18 11:13:24 -08:00
jackqdyulei
f2ef447e8e Tweak bluetooth text alignment
1. Remove the placeholder summary so it won't show blank summary
2. Update settings_entity_header to make text center_vertical,
so it could align with the icon.

Bug: 71742145
Test: Screenshot
Change-Id: I185114a4e0c8d996f218075a8633e802fabf3c66
2018-01-17 12:26:21 -08:00
James Lemieux
99d10a4e62 Adopt robolectric 3.6.1
Bug: 71596155
Test: make RunSettingsRoboTests
Change-Id: I46362bae1e3ddd3ce19ade1c93250d272f3366e6
2018-01-12 13:49:29 -08:00
Fan Zhang
4e08869e1a Make a strong reference to LifecycleOwner in tests
Change-Id: Id3b26ded6c903b67b9880dbfe1a0656a564c8947
Fixes: 71867776
Test: rerun tests
2018-01-11 14:30:16 -08:00
Matthew Fritze
c69f73f4d1 Support getDynamicSummary in BasePreferenceController
Adds dynamic summary getter in relevant BasePreferenceControllers.
Preferece controllers that don't have dynamic summaries or which
are not yet BasePreferenceControllers are not changed right now.

Change-Id: I435ccab7758d90515583fd8ca10a9b1ef0c858b9
Fixes: 71514936
Test: robotests
2018-01-04 13:58:01 -08:00
jackqdyulei
6c94769e56 Add summary placeholder for bt preference
Then UI won't be janky(as everything slide down a little bit)

Bug: 63910184
Test: RunSettingsRoboTests
Change-Id: Ie4074694f54af92da52f09d2caaab5490fa73647
2017-12-22 10:25:04 -08:00
Lei Yu
15b8b27646 Merge changes Ie1f934b4,Ic3b045a6
* changes:
  Create BluetoothSwitchPreference
  Add ConnectedUsbDeviceUpdater
2017-12-13 01:06:14 +00:00
jackqdyulei
be555e2dad Add device name preference in pairing page
Also refactor the preference controller
1. Extend from BasePreferenceController.
2. pass in the preference key. Then it could be reused in different
places with different key.

Bug: 69333961
Test: Screenshot | RunSettingsRoboTests
Change-Id: I773ca022baa326481045c1659565c9a21111200a
2017-12-11 15:52:57 -08:00
jackqdyulei
d055937664 Create BluetoothSwitchPreference
In the new design, bluetooth preference is not MasterSwitchPreference
any more. This cl creates BluetoothSwitchPreference while reuse the
BluetoothEnabler.

Future cl will remove the BluetoothMasterSwitchPreference when P
feature is finalized.

Bug: 69333961
Test: RunSettingsRoboTests
Change-Id: Ie1f934b4e93a6758a1b0cf83bb5098585a635c2a
2017-12-11 13:05:01 -08:00
jeffreyhuang
cbfb099a40 Rename SDK_VERSION_O to SDK_VERSION
Test: make RunSettingsRoboTests -j40
Change-Id: I6715062d8addadda441e32809db1af55f15e3a90
2017-12-05 16:43:54 -08:00
Fan Zhang
dff6dd687e Move away from deprecated FakeFeatureFactory.setupForTest()
Test: rerun
Change-Id: I896ba414315ddb1664c0499264f4992f0554ef98
2017-12-05 10:12:10 -08:00
TreeHugger Robot
b5931a6624 Merge "Add preferences in new connected device page" 2017-12-01 23:00:20 +00:00
Antony Sargent
4d9e1b4b6b Fix BluetoothPairingDialogTest to not expect device name am: f20e0a492b am: 0ceadf9fb8 am: 4b47184df3
am: a4e3b55ad2

Change-Id: I2e82fc3f4faab96221679e661bf19225f297f327
2017-12-01 21:29:25 +00:00
Antony Sargent
4b47184df3 Fix BluetoothPairingDialogTest to not expect device name am: f20e0a492b
am: 0ceadf9fb8

Change-Id: I2d48521b73bb75fbbc92c54ff353ec491397f81c
2017-12-01 21:23:59 +00:00
Antony Sargent
0ceadf9fb8 Fix BluetoothPairingDialogTest to not expect device name
am: f20e0a492b

Change-Id: I4a74ac865db27415b232b0f460b058344adcc0ce
2017-12-01 21:21:38 +00:00
jackqdyulei
b79e0d4279 Add preferences in new connected device page
1. Add device preference
2. connection preference

This cl add click action for Add device preference. Action for
connection preference will be added in future cl.

Bug: 69333961
Test: Screenshot | RunSettingsRoboTests
Change-Id: Ifb1afc8371ee45165ea22a7a195a774ba04fdeea
2017-12-01 12:28:15 -08:00
TreeHugger Robot
211550f596 Merge "Add preference group for saved devcies." 2017-11-29 21:14:14 +00:00
jeffreyhuang
4824ff3d00 Move bluetooth test package to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: I26e6f437052caafd97f3f164b388d379fc890e7e
2017-11-27 15:42:25 -08:00
jackqdyulei
aec5543841 Add preference group for saved devcies.
Currently it only contains bluetooth devices.

Bug: 3240835
Test: RunSettingsRoboTests
Change-Id: Ief102e7174a4c4610dbda6b728419b303ff928f9
2017-11-27 12:56:44 -08:00
jackqdyulei
75ea67c9f4 Update ConnectedDeviceGroupController
Get the PreferenceGroup there and add/remove preference
through the callback

Also add ConnectedBluetoothDeviceUpdater which only filter
the connected device.

Bug: 69333961
Test: RunSettingsRoboTests

Change-Id: Ia2ab6b6708329227929d6fe442df3a8d45bf86f5
2017-11-21 14:44:35 -08:00
jackqdyulei
88579e2558 Add infrastructure for connected device group.
The core thing is to find out a way to update group when devices
(bt device and usb device)are updated.

The infrastructure contains three parts:
1. ConnectedDeviceController
Normal PreferenceController. Get info from sub controller and update
the preferenceGroup.

2. BluetoothDeviceUpdater
Listen to bluetooth callback, decide whether to add/remove devices

3. DevicePreferenceCallback
Interface to add/remove preference. This interface will be used in
ConntectedDeviceController and future SavedDeviceController

Bug: 69333961
Test: RunsettingsRoboTests
Change-Id: I85a9ef216a801d5f0dd1cf0130d53850a68be4bd
2017-11-21 12:46:30 -08:00
jackqdyulei
cf1ce05ce5 Decouple BluetoothDevicePreference and DeviceListPreferenceFragment
The BluetoothDevicePreference need to know whether to display with an
invalid name. However pass in the whole fragment is over-killing.

This cl decouple it for several reasons:
1. In P, BluetoothDevicePreference will be used in other fragment.
2. In preference lifecycle from end user side, this flag is constant.

Bug: 69333961
Test: RunSettingsRoboTests
Change-Id: I3dbcd2a4aafa3ead74371534250e5e7c3ee221f7
2017-11-20 10:11:20 -08:00
Antony Sargent
f20e0a492b Fix BluetoothPairingDialogTest to not expect device name
The functional fix for b/62672248 in ag/2856166 removes the device name
from the text near the checkbox in the bluetooth pairing dialog, so we
need to stop checking for it in this robotest. However, that functional
fix needs to be in a separate CL from this fix for the robotest, because
the robotest doesn't exist on some of the older branches where the
functional fix needs to be backported.

Bug: 62672248
Test: RunSettingsRoboTests
Change-Id: I17ff3e4f13c20d58cc4027557f275d296ecccc95
2017-11-15 18:38:36 +00:00
Tony Mantler
94a7c7d21c Convert SettingsLib Lifecycle to Flatfoot
Bug: 69257739
Test: m -j RunSettingsRoboTests
Change-Id: I27e7850c39afb9c09297007e8cc352f410665653
2017-11-14 11:04:40 -08:00
Fan Zhang
7020d97545 Fix a NPE when displaying device detail page.
Bug: 68956750
Test: robotests
Change-Id: I1eed4e07ad723ee787a333ae88cd2ced62b3d34f
2017-11-10 17:12:50 -08:00
jackqdyulei
88a4b0b0e5 Move the bluetooth icon logic to settingslib
This cl contains the moving about:
1. Several methods in Bluetooth/Utils.java
2. Bluetooth icon drawables
3. Bluetooth strings
4. Tests

Bug: 65488978
Test: RunSettingslibRoboTests

Change-Id: I682daa3eeb5022beb90a95763c70d19d32d54915
2017-10-25 12:49:59 -07:00
jackqdyulei
d3ffdc564c Switch the buttons in bt detail page
The forget button should be left and connect button be right.

Bug: 67915643
Test: RunSettingsRoboTests
Change-Id: I71bb99270c4a3d480346db1ded554ecc9b99e706
2017-10-19 16:48:28 -07:00
Maurice Lam
e18902ec67 Update Robolectric to 3.4.2
Bug: 66693279
Test: m RunSettingsRoboTests
      m RunSettingsRoboTests-jacoco
Change-Id: I9df619c3d68f0af2ee2ae944a15998275129f7c2
2017-09-22 18:34:00 +00:00
Jack He
d8684d44f1 Bluetooth: remove unnecessary state tracking in BluetoothSummaryUpdater am: ac040e3b1f
am: 1197438540

Change-Id: I1ee2b808431c7eb324bc30e43c34f5e4799281f2
2017-09-21 05:07:36 +00:00
Jack He
ac040e3b1f Bluetooth: remove unnecessary state tracking in BluetoothSummaryUpdater
* LocalBluetoothAdapter is already a cache of BluetoothAdapter and its
  methods should be used directly to obtain states instead of caching them
  in BluetoothSummaryUpdater
    - Use LocalBluetoothAdapter.isEnabled() to check whether Bluetooth
      is enabled
    - Use LocalBluetoothAdapter.getBondedDevices() to get list of bonded
      devices
* BluetoothDevice is a stable Bluetooth API and its methods should not
  incur large latency. We should use API methods as much as possible to
  avoid intermediate wrappers
    - Use BluetoothDevice.isConnected() to check if a device is connected
* Add more logging messages in error conditions
* Show status as "Not Connected" when there is a state mismatch (i.e.
  adapter says it is connected, but no bonded device is connected)
* Updated unit tests to reflect the latest behavior

Bug: 65591907
Test: make, unit test, pair with Bluetooth devices, check Settings UI
Change-Id: I0fa54959c8bed8ac67a935f150785ba8197d0411
2017-09-20 11:35:19 -07:00
Lei Yu
2f08bb66de Merge "Update the bluetooth battery icon" into oc-mr1-dev am: 04ba0f5067
am: e01900d9c5

Change-Id: I7560f9100b4778d72ad5e395b58d720aeb25438b
2017-09-15 11:15:08 +00:00
Lei Yu
04ba0f5067 Merge "Update the bluetooth battery icon" into oc-mr1-dev 2017-09-14 21:31:13 +00:00
jackqdyulei
2c6a016b10 Update the bluetooth battery icon
In ag/2863892, we add a new parameter to tune the size of battery icon.
This cl use this parameter and update the icon in bluetooth detail page.

Bug: 65397557
Test: RunSettingsLibRoboTests & Screenshots
Change-Id: I6dd26f14b3209101dd39320b3720fbd4f79acf54
2017-09-14 10:34:30 -07:00
Jack He
9a45bab608 Bluetooth: add metrics for pairing with devices without names am: 5b017f7b05
am: d9de1ecc03

Change-Id: I34a61269d955ffd9aa073aa1c514c3f3e148adbc
2017-09-07 23:54:21 +00:00
Jack He
5b017f7b05 Bluetooth: add metrics for pairing with devices without names
* Also caches context in onClick() method

Bug: 34685932
Test: make, unit test
Change-Id: I99beab2c85b8e48c4bc41f69146759d4b7c62428
2017-09-07 12:09:00 -07:00
Antony Sargent
cbb0bcfeae Merge "Fix Bluetooth switch status in Connected devices screen" into oc-mr1-dev am: c3b47925e3
am: f92f6c24f1

Change-Id: I81d955471c420647b884533cf09656cf7cae28c1
2017-09-06 16:55:27 +00:00
Antony Sargent
c626fcc028 Fix Bluetooth switch status in Connected devices screen
The symptom observed is that the Bluetooth master switch on the
Connected devices page doesn't properly respond to Bluetooth turning off
via quicksettings - either turning on airplane mode or just toggling
Bluetooth.

The root cause was that MasterSwitchPreference's isChecked method would
not return the true value of whether the switch was checked - if the
control is disabled, it always just returns false. This interacts badly
with code in BluetoothEnabler - we disable the switch when the Bluetooth
state is in transition (eg becomes STATE_TURNING_OFF), and we also
attempt to avoid calling setChecked if the switch is already in the
desired state. So the switch would be checked but disabled, and we'd
avoid ever calling setChecked(false) on it.

A thorough fix would be to remove the code from MasterSwitchPreference's
isChecked method that looks at the enabled state, since enabled and
checked really should be treated as separate concerns. But given the
timeframe of MR1, we're opting for a more conservative fix of directly
accessing the switch and checking it's state, to avoid introducing bugs
in other consumers that might be depending on the current
behavior. We'll then do the thorough fix on the master branch which will
give a lot more time for any unexpected issues to be found (I audited
other usages and none seemed likely to be a problem, but it's better to
be safe than sorry).

Change-Id: I19a6c6b71e74595be3ef32a9718a430b67a89d53
Bug: 64940731
Test: make RunSettingsRoboTests
2017-09-05 17:10:30 +00:00
Jack He
7bef28df2d Bluetooth: Only show devices when their names are resolved am: 19ba320263
am: 7a6aadce4b

Change-Id: I93ab225467dfbb51c77ea9dfde0e3082a845624c
2017-08-26 03:03:03 +00:00
Jack He
19ba320263 Bluetooth: Only show devices when their names are resolved
* Add a developer menu option to allow name-less devices to be shown
  when a Bluetooth developer needs it, but hide it for non-developer
  users.
* Set BluetoothDevicePreference to invisible when CachedBluetoothDevice
  does not have a name besides MAC address and the above developer option
  is false.
* This affects BluetoothPairingDetail and DevicePickerFragment, but does
  not affect BluetoothSettings. BluetoothSettings will show all paired
  devices regardless whether an user friendly name exists.

Bug: 34685932
Test: pair Bluetooth device, send file over Bluetooth, unit tests
Change-Id: Idd7ad4b1671dfdcf3204efb50eddb6dae1065aa5
2017-08-25 16:27:30 -07:00
jackqdyulei
7661137981 Add battery indicator to bluetooth icon
This cl change util method in bluetooth package to return
drawable instead of resId.

If the bt device has battery level, then method return customized
layerDrawable, otherwise return a simple drawable created from
resId.

Bug: 63393322
Test: RunSettingsRoboTests

Change-Id: Ib21822eafda0e8570212ce5cb070478e4f4876a2
Merged-In: Ib21822eafda0e8570212ce5cb070478e4f4876a2
2017-08-24 16:53:01 -07:00
jackqdyulei
6f5c990abd Add battery indicator to bluetooth icon
This cl change util method in bluetooth package to return
drawable instead of resId.

If the bt device has battery level, then method return customized
layerDrawable, otherwise return a simple drawable created from
resId.

Bug: 63393322
Test: RunSettingsRoboTests

Change-Id: Ib21822eafda0e8570212ce5cb070478e4f4876a2
2017-08-24 20:50:10 +00:00
Antony Sargent
fcb1073326 Merge "Fix rotation bug in Bluetooth pairing PIN dialog" into oc-mr1-dev am: 53a77a2452
am: 811b25ac2b

Change-Id: Ifa726d167f3e352f0993aa12f4d3c11089ae03f8
2017-08-17 07:15:24 +00:00
Antony Sargent
563c4a6557 Fix rotation bug in Bluetooth pairing PIN dialog
BluetoothPairingDialogFragment has code that makes the OK button on the
dialog disabled until the user has entered at least one character into
the PIN field. However it didn't properly handle the case where the user
had entered some text and then rotated the screen - because it always
marked the OK button as disabled during onShow even if it already had
some content. This CL fixes that by looking at the text content and only
disabling the OK button if the content is empty.

Bug: 36514895
Test: make RunSettingsRoboTests
Change-Id: I4e8e70089a862e67b20ff614bbaa64fc2b641fd4
2017-08-16 15:19:47 -07:00