Commit Graph

959 Commits

Author SHA1 Message Date
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
Jack He
7a6aadce4b Bluetooth: Only show devices when their names are resolved
am: 19ba320263

Change-Id: I23300ac9541f88b3aeb978be0771e93b85fe834f
2017-08-26 02:51:48 +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
c26876ade7 Merge "Add battery indicator to bluetooth icon" into oc-mr1-dev
am: 77bd8c3a73

Change-Id: I36f5729dd042c88c9f8d6a2d4abf720a05748246
2017-08-25 18:37:53 +00: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
811b25ac2b Merge "Fix rotation bug in Bluetooth pairing PIN dialog" into oc-mr1-dev
am: 53a77a2452

Change-Id: I5d750adc4623eacf704a12577b34f3434108b28f
2017-08-17 01:22:27 +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
Antony Sargent
caaccbc72c Merge "Stay discoverable in Bluetooth settings and pairing pages" into oc-dr1-dev am: 49cd8f2327 am: 0fe460a8e3
am: d9456d807b

Change-Id: I5bd24cc8cc532ffdcec05c51424140e8dcc764f8
2017-08-10 07:32:23 +00:00
Antony Sargent
d9456d807b Merge "Stay discoverable in Bluetooth settings and pairing pages" into oc-dr1-dev am: 49cd8f2327
am: 0fe460a8e3

Change-Id: I000eba2d8266b3d86f08c336f4ae3217ae48b8ac
2017-08-10 07:28:51 +00:00
Antony Sargent
8cd8519eab Merge "Stay discoverable in Bluetooth settings and pairing pages" into oc-dr1-dev
am: 49cd8f2327

Change-Id: I4b8989fd95405bfeb7ada518b0ce2f76dec5cdb3
2017-08-10 07:25:53 +00:00
Antony Sargent
0fe460a8e3 Merge "Stay discoverable in Bluetooth settings and pairing pages" into oc-dr1-dev
am: 49cd8f2327

Change-Id: I02c6056ab8efb238cb8ba97ea4d4ea6de247c13d
2017-08-10 07:25:52 +00:00
Antony Sargent
c86440538f Stay discoverable in Bluetooth settings and pairing pages
There are two problems with the Bluetooth settings and pairing pages
that are fixed by this CL:

(1) We advertise on the page that the local device is visible to other
devices, but that only lasts for the length of the default timeout (120
seconds) for the local adapter being in discoverable mode.

(2) Both the BluetoothSettings and BluetoothPairingDetail fragments
enter discoverable mode in their onStart handler and exit it in their
onStop handler. Unfortunately when doing a fragment navigation the
onStart and onStop events interleave in a non-intuitive manner. When you
go from BluetoothSettings to BluetoothPairingDetail, we see the onStop
event for BluetoothSettings *after* the onStart event for
BluetoothPairingDetail, and similarly when going back from
BluetoothSettings to BluetoothPairingDetail. What this means in practice
is that if you go to the BluetoothSettings page, the device will be
discoverable, but once you navigate to BluetoothPairingDetail or back
again you won't be discoverable again until you go somewhere else or end
the settings activity.

This CL adds a new object called AlwaysDiscoverable which can be used to
start and stop a mode of "always being discoverable". While started, it
will listen for changes to the discoverable state, and return to
discoverable mode. This fixes (1) by returning to discoverable mode
whenever the normal timeout expires, and (2) similary by returning to
discoverable mode when we accidentally exit it due to the onStop/onStart
mismatch.

A better fix for (2) would be to avoid the "glitch" of briefly exiting
discoverable mode only to re-enter it, but the implementation of that is
a little more complicated so that's being left as future work in order
to keep this CL as small as possible.

Bug: 64130265
Test: make RunSettingsRoboTests
Change-Id: I559dd8187263ea6a0008be1a8abdfffac97cb87a
2017-08-09 22:10:40 -07:00
mingliang.x.lei
05d56ce9c8 Merge "Fix memory leak in Bluetooth settings" am: 5a652c0286 am: 8d3bb3e2ad am: c46b5e60b9 am: 8ba28798aa
am: cc6b8a868d

Change-Id: Ie742ea8ba0f1e463ddafe7d76e174df6e33fb860
2017-08-10 02:28:19 +00:00
mingliang.x.lei
cc6b8a868d Merge "Fix memory leak in Bluetooth settings" am: 5a652c0286 am: 8d3bb3e2ad am: c46b5e60b9
am: 8ba28798aa

Change-Id: Ib0f0e1d0ec3bbcf2223e5609bc6218f0c360a5cb
2017-08-10 00:06:32 +00:00
mingliang.x.lei
8ba28798aa Merge "Fix memory leak in Bluetooth settings" am: 5a652c0286 am: 8d3bb3e2ad
am: c46b5e60b9

Change-Id: I1c8766701e83c9354bebf6554742c24756de7117
2017-08-09 18:53:07 +00:00
mingliang.x.lei
8d3bb3e2ad Merge "Fix memory leak in Bluetooth settings"
am: 5a652c0286

Change-Id: Ica95ac1bed6dbbc305315a32c1c9a92bb83d4574
2017-08-09 18:34:07 +00:00
Julia Reynolds
cad51d7753 Merge "Use colorful +s" into oc-mr1-dev am: e286c0627b
am: 5d17c4284d

Change-Id: Ibe772dacaafd554b51cc9f5340453244106eefee
2017-08-09 14:17:57 +00:00
Julia Reynolds
fabe766958 Use colorful +s
Instead of grey

Change-Id: Iac0454110d3af9045a83098e67957130987ad718
Fixes: 63820885
Test: manual
2017-08-08 14:00:09 -04:00
Salvador Martinez
b1a4db26d8 Refactor permissions code for bluetooth controller enabler am: a8db5ccea8 am: b32159f242
am: 0d337881ad

Change-Id: I99e0d6509d49cf31aa17b9e340bd985ec574531b
2017-08-08 03:21:29 +00:00
Salvador Martinez
0d337881ad Refactor permissions code for bluetooth controller enabler am: a8db5ccea8
am: b32159f242

Change-Id: I7734f18a3fd1c5abc401131862701c47bfae64c9
2017-08-08 03:07:08 +00:00
Salvador Martinez
b1c0e38284 Refactor permissions code for bluetooth controller enabler
am: a8db5ccea8

Change-Id: I6288cf595419229f58abb396cbe9b6cf6e2c5fc4
2017-08-08 03:04:45 +00:00
Salvador Martinez
a8db5ccea8 Refactor permissions code for bluetooth controller enabler
Bluetooth may be disabled for a user. This CL refactors the code
that determines this a bit so we can query that without having to
have the UI open.

Test: robotests still pass
Bug: 62022517
Change-Id: Ic0837d21bdc4007a20d6ad138753d4f5d37ceceb
Merged-In: I3b54529865e16b7e1640b0adda7f7edb9d1a41f7
2017-08-07 17:51:02 -07:00
Fan Zhang
1105a1a465 Convert more pages to use ActionButtonPreference
- text to speech page
- blue tooth detail page
- installed app page

Change-Id: Ib743a144cc6025055cd496ec077f13fce4db0c69
Bug: 63991885
Test: robotests
2017-08-01 14:27:42 -07:00
Jack He
85d9a7c48a Merge "Bluetooth: reset mConnectionState when adapter is OFF" into oc-dr1-dev am: 0c6f001c09
am: dfc2fb14c6

Change-Id: Ifb3276adeecf756b5c2aa11ee78f1c039273cfbe
2017-07-26 06:38:32 +00:00
Jack He
a65e3e6795 Merge "Bluetooth: reset mConnectionState when adapter is OFF" into oc-dr1-dev
am: 0c6f001c09

Change-Id: I2a161d403cf0c8e34a16b1ac9328135c40f7e50a
2017-07-26 06:34:30 +00:00
Jack He
70f293ee50 Bluetooth: reset mConnectionState when adapter is OFF
* No device is connected when Bluetooth adapter is OFF
* BluetoothSummaryUpdater should reset its connection state tracker in
  order to display the correct summary message on ConnectedDevice
  preference
* Otherwise, "Connected to null" will be shown because no device is
  connected while BluetoothSummaryUpdater is still in CONNECTED state
* Removed unused imports from BluetoothSummaryUpdater
* Write additional unit test to verify the above behaviour
* Add additional logging when deviceName is null in CONNECTED state

Bug: 62492716
Test: Pair and connect to Bluetooth device, turning Bluetooth ON/OFF,
      unit tests
Change-Id: I30726636f5678d61d6052f5b8d211aa20f26f409
2017-07-26 00:31:55 +00:00
Fan Zhang
715f0956f4 Merge "Tweak bluetooth name preference" into oc-dr1-dev am: 03c595ce24
am: ef0e290e65

Change-Id: I77ca5052477a9e1efee01c7022378164096669b8
2017-07-22 00:32:48 +00:00
Fan Zhang
3ecdee573b Merge "Tweak bluetooth name preference" into oc-dr1-dev
am: 03c595ce24

Change-Id: I1d2f8d65fb7ba48bac656222c4501306103b385c
2017-07-22 00:32:42 +00:00
Antony Sargent
75512a3215 Merge "Switch to using gray icon for Bluetooth imaging devices" into oc-dr1-dev am: a6ac4890ed
am: 62b7527da5

Change-Id: Ibfe8afab3bf662c2855a28c27d636da17444eb79
2017-07-22 00:32:07 +00:00
Antony Sargent
0531bd48e3 Merge "Switch to using gray icon for Bluetooth imaging devices" into oc-dr1-dev
am: a6ac4890ed

Change-Id: Ib4cbffa94b0372419f60f16972836df27ad1fecf
2017-07-22 00:32:00 +00:00
Fan Zhang
03c595ce24 Merge "Tweak bluetooth name preference" into oc-dr1-dev 2017-07-21 21:41:29 +00:00
Fan Zhang
9218e3b7df Tweak bluetooth name preference
- remove accent color from device name
- remove useless ripple when tap

Change-Id: I7800523eb27bafa24f3a4549b1acf02c869ac8c8
Fix: 62891178
Test: robotests
2017-07-21 11:38:09 -07:00
Antony Sargent
64fab6f4cd Switch to using gray icon for Bluetooth imaging devices
All the other Bluetooth icons were switched to gray at some point in the
past, but we must have missed this one.

Bug: 63858978
Test: make RunSettingsRoboTests
Change-Id: I2ebefa42f3ecff8ae6d58f4bdb22dce39ae4dbd4
2017-07-20 09:54:29 -07:00
Fan Zhang
0e13d6c8a7 Fix a bug where bt name is updated to wrong preference. am: f6e6ae2441
am: c1d04860d5

Change-Id: I42525051bd0471dece01807c87adb0f2a38af1d1
2017-07-18 01:00:29 +00:00
Fan Zhang
f6e6ae2441 Fix a bug where bt name is updated to wrong preference.
Change-Id: Ica0ef6763e8868fc33773f2db917aba29193b632
Fix: 63772093
Test: robotests
2017-07-17 23:06:07 +00:00
Lei Yu
70966973a1 Merge "Add metric action for bt rename dialog" into oc-dr1-dev am: 8e1f509b5d
am: 23de6959af

Change-Id: I68b23030c05e9d0949675dc158f8fb7dd8ab6479
2017-07-14 17:38:25 +00:00
Philipp Weiß
036304f32d Merge "Bluetooth Settings Policy Transparency" 2017-07-14 09:51:14 +00:00
jackqdyulei
7190797b73 Add metric action for bt rename dialog
Bug: 63553537
Test: runtest -x BluetoothNetworkSettingsTests
Change-Id: Ic618133da513bb0c22ac4d79e5d7cb75412a93dd
2017-07-13 14:58:24 -07:00
TreeHugger Robot
c0ca084622 Merge "UI refresh on bluetooth list page" into oc-dr1-dev 2017-07-13 20:05:25 +00:00
Antony Sargent
27afdf0c26 Merge "Make sure PIN edit control is focused" into oc-dr1-dev am: 61e61d96d1
am: d1b5116213

Change-Id: I1df59b4c237b0daff4f5c44a444d35df8cc77cb0
2017-07-13 20:00:37 +00:00