Commit Graph

1050 Commits

Author SHA1 Message Date
Fan Zhang
928ddbe731 Merge sub pages for lock/unlock into 1 xml.
And create PreferenceControllers for each setting

The page is still pretty janky and controllers are invoked manually.
Next CL will clean these up.

Bug: 32953042
Test: TODO
Change-Id: I1d7478324f5de4fdb464d79f89086f7e79c0ee67
2018-01-04 15:02:36 -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
Hemant Gupta
6a386dc6c1 Merge "Bluetooth: Add support for PBAP UI preference" am: f689d1aaa7 am: 0b4c0ebbe4
am: 40069b5ee2

Change-Id: I57de94d04d73ed1af24a15b36a73ea0692ad9815
2017-12-13 02:26:01 +00: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
Hemant Gupta
13197bcc1e Bluetooth: Add support for PBAP UI preference
Usecase:
1) Connect with carkit that supports PBAP/MAP
2) Try to uncheck the checkbox for contact sharing from device sub
   settings menu

Expected Result:
1) DUT should display "Connected (No Media or Phone)"
1) Should be able to disconnect when checkbox moves from selected->unselected,
and carkit should be able to connect when checkbox is selected again

Observation:
1) No UI updates when PBAP/MAP are connected.
2) On unchecking Contact sharing checkbox nothing happens. PBAP connection
   remains active and user is not asked to disconnect profile level connection.

Fix:
Add support for PBAP UI preference in SettingsLib. Also Fix issues related to MAP
profile addition/removal.
Test: Connect from carkit, try disconnecting from sub settings menu by unchecking
Contact Sharing checkbox and check if PBAP is successfully disconnected.

Bug: 35014213
Change-Id: I4981aa063b2541b58ce1d36e3576578cbeb02acc
2017-12-07 09:31:03 +05:30
TreeHugger Robot
b5931a6624 Merge "Add preferences in new connected device page" 2017-12-01 23:00:20 +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
Lei Yu
7e315a937b Merge "Remove the getSwitch() in SwitchWidgetController" 2017-12-01 19:13:56 +00:00
jackqdyulei
9891b74533 Remove the getSwitch() in SwitchWidgetController
IMHO we don't need to expose switch in SwitchWidgetController.
This controller already has enough API to control the switch.

Also rename mSwitchWidget to mSwitchController because it is not a
widget.

Bug: 69973752
Test: test still pass
Change-Id: I0ac247e34468a44109ab26019f1303c814e381f2
2017-11-30 13:58:57 -08:00
Hemant Gupta
0a86571705 Merge "Bluetooth: Give PBAP permission only if device is AUDIO_VIDEO_HANDSFREE" am: b21a10b2ff am: a84a535729
am: cf2557e8f4

Change-Id: I207d63ade137f41a1ac6d6184f019b0a21cffd9d
2017-11-30 17:45:18 +00:00
Hemant Gupta
a84a535729 Merge "Bluetooth: Give PBAP permission only if device is AUDIO_VIDEO_HANDSFREE"
am: b21a10b2ff

Change-Id: Id0378b1c410afcc0566652e3308cd812dcd68470
2017-11-30 17:40:31 +00:00
TreeHugger Robot
4031bc78e4 Merge changes from topic "settings_presubmit_instr_test"
* changes:
  Refactor help menu stuff into a controller
  Fix UniquePreferenceTest
2017-11-30 01:38:33 +00:00
Fan Zhang
e0b0e9f902 Refactor help menu stuff into a controller
This is a clean up to action bar menu item pattern, we will use the same
pattern to build search icon on all pages in a later change.

Bug: 68814716
Test: robotests
Change-Id: Iedd3ec263e8ccb63ed75ec7a95b28c00878b1de4
2017-11-29 15:51:04 -08:00
Hemant Gupta
5b84cfae44 Bluetooth: Give PBAP permission only if device is AUDIO_VIDEO_HANDSFREE
Step by step:
1. Pair and connect with BTHS (e.g. SBH50).
2. Click the settings icon of paired device, and check "Use for" items.
-----------------------------------------------------------------
Expected Result:
After step 2, "Contact sharing" should not be checked.

Actual Result:
After step 2, "Contact sharing" is checked.

Fix:
Set phone book permission as REJECTED if class of Device is
not AUDIO_VIDEO_HANDSFREE

Test: Checked above usecase and issue is not observed

Bug: 64372703
Change-Id: I178a09dd9e76d67c461c4b04d9b2ee0078ed24c9
2017-11-29 20:37:05 +00: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
e6f052e928 Merge "Add owners to setting packages."
am: f82cd59476

Change-Id: Ic7c94f6ba65149cdc799332a0cc5976ff285f16f
2017-11-21 16:41:50 +00:00
jackqdyulei
d6a00cfa3f Add owners to setting packages.
Bug: 65294119
Fixes: 69384604
Test: Build

Change-Id: Ib4fddc1f04087671d8445fd967d4262287e5c4f3
Merged-In: I927052a73f639d0894600611cd5c79293f43ff5e
Merged-In: Ia1eb8155f2d4359d56b0babd474083295ba38a0b
Merged-In: I24ec103ff5013ad416e3dfb1c548acd387b4ba64
Merged-In: If9fddc8b4e2e6d4d7db185ab16063e824323b9a7
Merged-In: I49159950521a013422b1087ea2c3e6cd5151457c
Merged-In: I69af58183c5b89af96c1a8808665fa506a620012
Merged-In: Ie9492f497824cd2b2727dde9d3a48452c72f1084
Merged-In: I2fd0249fd8b555e5ca93c3aec13857e6c74e157c
Merged-In: Id1c2d9233643a18c1e104255a9e2b8b1aaefc44e
Merged-In: Icdcfaaf6cc7a1e1cf77e89a79d0425cab4405ffc
Merged-In: I697528ff260a0f8e54aa1188e35143e668800e7d
Merged-In: I1486782f476acaf1e2e4b66df57869409239986f
Merged-In: I804b50a38c877da80b5ef3251e16029259014152
Merged-In: I39eec9ebc1db2dc14669f27b17624394e25eb47f
Merged-In: I054a6df08046cda1c2f202390ed24839a6b10349
Merged-In: I9da5bd71ed6aa3922a7f2e2ac4729e3247a204ce
Merged-In: I63778c68f1ab9edc36a9e12aa1729f8fd6a5e073
2017-11-20 16:39:59 -08:00
jackqdyulei
76ba0f72e4 Add feature flag for connected device
Add feature flag to toggle connected device between new and old
feature.

ConnectedDeviceDashboardFragment will contain new feature will
ConnectedDeviceDashboardFragment2 will hold old feature.

Bug: 69333961
Test: Build
Change-Id: I0ea932c69dea5242129aab994d5142b1f87fbea0
2017-11-20 15:29:28 -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
jeffreyhuang
cb823d5983 Delete DevelopmentSettings.java
- Remove the old DevelopmentSettings
 - Remove references to the feature flag

Fixes: 65522949
Test: make RunSettingsRoboTests -j40
Change-Id: Ie2eb3465127d79a027de6bb58a47bb15e3094f89
2017-11-17 13:52:33 -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
TreeHugger Robot
04d9769c0e Merge "Switch the buttons in bt detail page" 2017-10-20 17:55:37 +00: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
jeffreyhuang
142682c19c Hide dev options v1 under feature flag
- Cutover to DevelopmentSettingsDashboardFragment
 - Add dev_option_v1 feature flag

Bug: 34203528
Test: make RunSettingsRoboTests -j40
Change-Id: I2ff7b5c55f1f27cd24b4e276d3d81a73f67dcf88
2017-10-17 13:49:19 -07:00
PMS22
63a0560a6c Settings: Correctly align cursor in Settings
Steps to Reproduce:
- Click on Density Settings (DPI Settings) / Renaming BT Device / Renaming SIM Settings
- EditText Dialog pops up
- The cursor is at the leftmost side of the text
- Logically Cursor should be at rightmost side which can be aligned grabbing text length

Screenshots:
Before:
http://imgur.com/a/o4vkr
http://imgur.com/a/6Qext

After:
http://imgur.com/a/fuxqT
http://imgur.com/a/vm2WX

Bug: 65185652
Test: RunSettingsRoboTests: OK (47 tests)

Change-Id: Id00308e7e019434edad4afab56cf4719be0d0d54
Signed-off-by: PMS22 <prathams99@rediff.com>
2017-09-27 14:12:32 -07: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
1197438540 Bluetooth: remove unnecessary state tracking in BluetoothSummaryUpdater
am: ac040e3b1f

Change-Id: I13a2bd7e40a94773fc0afe37d71d7ba60e2b625b
2017-09-20 21:43:24 +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
e01900d9c5 Merge "Update the bluetooth battery icon" into oc-mr1-dev
am: 04ba0f5067

Change-Id: Ibc55937908be092c78ddac484226187276e87ee2
2017-09-14 21:40:26 +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
jackqdyulei
054064d40d Add OWNERS for folder bluetooth
Bug: 65294119
Test: Build
Change-Id: I927052a73f639d0894600611cd5c79293f43ff5e
2017-09-11 20:41:47 +00: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
d9de1ecc03 Bluetooth: add metrics for pairing with devices without names
am: 5b017f7b05

Change-Id: If74bd132ee1352888a7f9513444e998537f11145
2017-09-07 23:25:43 +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
f92f6c24f1 Merge "Fix Bluetooth switch status in Connected devices screen" into oc-mr1-dev
am: c3b47925e3

Change-Id: I7c9a07543340992e8bd3ff15538d74d28a1aab22
2017-09-06 16:53:28 +00:00
Antony Sargent
c3b47925e3 Merge "Fix Bluetooth switch status in Connected devices screen" into oc-mr1-dev 2017-09-06 16:42:41 +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
0921319824 Merge "Bluetooth: do not dimiss fragment when Activity.finish() is called" into oc-mr1-dev am: bf66bf30b1
am: 4dddaf18e1

Change-Id: I249a0a3fc1a8c030041cfca8b3dbd49bc2badf07
2017-08-31 19:54:20 +00:00
Jack He
4dddaf18e1 Merge "Bluetooth: do not dimiss fragment when Activity.finish() is called" into oc-mr1-dev
am: bf66bf30b1

Change-Id: Id5f413c21eb39e540d2417f9c19b7553f57d6b6a
2017-08-31 19:25:33 +00:00
Jack He
6108d6c22e Bluetooth: do not dimiss fragment when Activity.finish() is called
* When Activity.finish() is called, it's associtated fragments are all
  dismissed automatically
* Cached used fragments are dimissed in onCreate() before new ones are
  created

Bug: 62230203
Test: Pair with Bluetooth device, Settings unit tests
Change-Id: Ieca88ba0660c5407f0d88d572d06a722c642ac39
2017-08-30 18:44:39 -07: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