Commit Graph

1032 Commits

Author SHA1 Message Date
Hugh Chen
60ce7bebcf Fix anr issue on connected devices settings
Before this CL, connected devices settings will use ContentResolver
to get advanced device bitmaps on the UI thread. It will have a little
chance to cause ANR.

This CL uses background thread to get a bitmap to fix ANR issue.

Bug: 173283590
Test: Test: make -j42 RunSettingsRoboTests
Change-Id: I987759a775d507003fd4ef54f5376bd24e660b3b
2020-11-18 17:37:56 +08:00
Hugh Chen
40d4e47b05 Add the explicitly mutable flag for creating a PendingIntent
- Android S+ to specify explicitly either FLAG_MUTABLE or FLAG_IMMUTABLE
  when creating a PendingIntent.
- Suggest to use the FLAG_IMMUTABLE as default. Change it to
  FLAG_MUTABLE while errors occur.

Fixes: 172207262
Fixes: 172207195
Fixes: 172205385
Fixes: 172204525
Fixes: 172205897
Test: build pass, manual test to paring blutooth device and doing
seamless transfer

Change-Id: Ic37b37bdbe6de6bdbad741985d3a920334240d80
2020-11-04 10:59:34 +08:00
Sunny Shao
0b0f237834 Add the explicitly mutable flag for creating a PendingIntent
- Android S+ to specify explicitly either FLAG_MUTABLE or FLAG_IMMUTABLE
  when creating a PendingIntent.
- Suggest to use the FLAG_IMMUTABLE as default. Change it to
  FLAG_MUTABLE while errors occur.

Fixes: 170162598
Fixes: 170162878
Fixes: 170163592
Fixes: 170164316
Fixes: 170164458
Fixes: 170164327
Fixes: 169794524
Fixes: 170165106
Test: build pass, manual test add an account and volume control panel
Change-Id: I5aec028f82bd74fc4530b95a7c144811055ae2c5
2020-10-14 09:38:51 +00:00
TreeHugger Robot
2e307f804a Merge "Revert "Add the FLAG_IMMUTABLE flag for creating a PendingIntent"" 2020-10-08 01:42:50 +00:00
Daniel Chapin
ee1360f13c Revert "Add the FLAG_IMMUTABLE flag for creating a PendingIntent"
This reverts commit 334968c113.

Reason for revert: Bug: 170280415

Change-Id: Idaa269406d6c1609c75f0dfba1f7fa9daf979101
2020-10-07 17:47:36 +00:00
TreeHugger Robot
2489494cd3 Merge "Implement advanced device battery prediction" 2020-10-07 02:14:16 +00:00
Hugh Chen
fa75a469da Implement advanced device battery prediction
This CL implements prediction of advanced device to
let users know what time their advanced device will
be out of battery.

Bug: 153706138
Test: make -j42 SettingsGoogle
Change-Id: Iadf2f1fa425ff5f0fa1abed681d82d13c392db62
2020-10-06 17:38:08 +08:00
Sunny Shao
334968c113 Add the FLAG_IMMUTABLE flag for creating a PendingIntent
- Android S+ to specify explicitly either FLAG_MUTABLE or FLAG_IMMUTABLE
  when creating a PendingIntent.

Fixes: 170162598
Fixes: 170162878
Fixes: 170163592
Fixes: 170164316
Fixes: 170164458
Fixes: 170164327
Fixes: 169794524
Fixes: 170165106
Test: build pass and manual test add an account
Change-Id: I0f7b117273647dbe9e146033b8995c8c6f147576
2020-10-06 11:46:08 +08:00
Hugh Chen
cafeab2813 Fix the device on "Media devices" wouldn't update
- This CL use new CachedBluetoothDevice callback instance
  in construct to avoid unregister wrong callback.
- This CL use flag to make sure preference will register
  callback on onAttached() when preference remove callback
  on onPrepareForRemoval() or onDetached().
- Update test case

Bug: 168682778
Bug: 157653997
Test: make -j42 RunSettingsRoboTests
Change-Id: I7a0d9f5332153ee80634e191847b84cd7c380b7d
2020-09-17 08:45:12 +00:00
TreeHugger Robot
168f468c92 Merge "Add permission to protect data when sending broadcast" 2020-09-11 08:20:43 +00:00
Hugh Chen
75dea8ea80 Add permission to protect data when sending broadcast
This CL before, DevicePickerFragment didn't check the
whether 3rd-party app have Bluetooth permission before
sending broadcast. It's will cause the 3rd-party app can
get Bluetooth device information without request permission.

This CL will send broadcast with Bluetooth permission that
make sure the receiver who have Bluetooth permission can get
this Bluetooth device infomation.

Bug: 161716630
Test: verify on test apk to confirm that not showing mac address.
Change-Id: I6662dc38b3491e5ee467058dd74863ecac27cdd7
2020-09-11 15:15:34 +08:00
Hugh Chen
a6aae425bc Fix settings crash
- This CL before, "Previously connected device" didn't
  handle dock device. If user have disconnected dock
  device will cause Settings crash.

  This CL add condition to handle dock device to avoid crash.
- Update test case.

Bug: 167054620
Test: make -j42 RunSettingsRoboTests
Change-Id: I769cee3f589e14a993b00a0ae6ec3ddfba8ef281
2020-09-02 17:14:30 +08:00
timhypeng
9743fed57d Show all devices, including connected ones, into "Previously connected" page
-Add connected devices in "Previously connected" page
-Set active when clicking a connected device

Bug: 147150246
Test: make -j50 RunSettingsRoboTests
Change-Id: I4422cd63c360a4387cedc4f80f34474b42f82a1f
2020-08-05 11:28:15 +00:00
Chen Chen
a9ffaaec62 BluetoothPairingRequest: Add null check for action am: 1805f666e7 am: e8dd64f891
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/12214808

Change-Id: Ic34c9a8730c108d1d67eaeaeccdac2ab9c5ca9dd
2020-07-24 22:25:07 +00:00
Chen Chen
1805f666e7 BluetoothPairingRequest: Add null check for action
Bug: 159728132
Test: Build

Change-Id: I24668e20accf96c7469c9e1ab589b1383ab59d18
2020-07-24 18:15:19 +00:00
Myles Watson
0d31c37df9 Bluetooth: Add pairing initiator extra
Bug: 150156492
Test: pair two devices, unpair on one device, try to reconnect
Change-Id: I96379d0afe5b624f09e2825dedaef8f9883a924c
2020-06-13 07:04:14 -07:00
Jakub Pawlowski
a44860c880 Prevent overlay drawing on top of Bluetooth discovery request dialog am: c48d63752a am: e61467cd6c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11484059

Change-Id: Ib9bde83d8d0d5a81dcde8d7d6723a51d55663610
2020-06-08 06:12:33 +00:00
Jakub Pawlowski
e61467cd6c Prevent overlay drawing on top of Bluetooth discovery request dialog am: c48d63752a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11484059

Change-Id: I3572c16dd2b47189dc26ae4cd99f569d32b6ae2a
2020-06-08 05:55:40 +00:00
Jakub Pawlowski
c48d63752a Prevent overlay drawing on top of Bluetooth discovery request dialog
Bug: 155650356
Change-Id: I9cee6e5bb8cef77aa385d664fe0738db1496ef20
2020-06-04 06:45:16 +00:00
Jakub Pawlowski
3185f80f23 Prevent overlay drawing on top of Bluetooth pairing dialog am: 88815d1456 am: 103cc7cf29
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11484060

Change-Id: Ifbdd0f3dabc0b487bfb5155f786cae6a9980557b
2020-06-03 10:18:46 +00:00
Jakub Pawlowski
103cc7cf29 Prevent overlay drawing on top of Bluetooth pairing dialog am: 88815d1456
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11484060

Change-Id: Ib47c1804cbb29942c33152d72e1019c92f0d3856
2020-06-03 09:59:18 +00:00
hughchen
1df322225b Add bottom padding of profile group on Bluetooth detail page
- This CL add a bottom padding preference to make UI consistency.
- Update test case

Bug: 146522686
Test: make -j42 RunSettingsRoboTests
Change-Id: I525d8a3b71535972755de92924a3c04768f68e63
2020-05-18 13:17:15 +08:00
Jakub Pawlowski
88815d1456 Prevent overlay drawing on top of Bluetooth pairing dialog
Bug: 155648639
Change-Id: I99643ee9084f3a9bc1ad9a459ac27c587d832c91
2020-05-14 09:18:52 +00:00
hughchen
6060bc66e5 Add low battery level for case
- Add low battery level for case, because case and headset have
  different low battery level.
- Update test case

Bug: 154569936
Test: make -j42 RunSettingsRoboTests
Change-Id: Icf045b62992dde8d789e66343764849e43df1933
2020-05-08 15:15:15 +08:00
hughchen
47994dea19 Add log for debug
This CL use flag to decide which log should be show on.
This flag can be dynamic turn on when use below command:
adb shell setprop log.tag."your tag" VERBOSE

Bug: 155121301
Test: manually test
Change-Id: I0f3a28c11f6bd055efc84feb41d646b6c033f5b7
2020-05-05 11:26:28 +08:00
hughchen
828ccaf399 Update low battery level for advance bluetooth device
Bug: 154569936
Test: build pass
Change-Id: I52bb8eea4f69ae55a6902e3afb862aa8c7319785
2020-04-24 11:41:59 +08:00
alictsai
6b76eb0ab6 Device details LCR should be show up " ! " with low battery.
screenshot:
https://screenshot.googleplex.com/f72YS3THutW.png
https://screenshot.googleplex.com/v6uw7XsOs9x.png

Bug: 151187813
Test: make -j42 RunSettingsRoboTests
Change-Id: Iabb4ac54e6f827f54cd7c5512995f185875e4a06
2020-03-27 13:14:01 +08:00
Sunny Shao
3d3757683c Update the OWNER files
Bug: 151179432
Test: manual review
Change-Id: I2bfd917c2bea2d71303ed9aecf29d850f12eec3d
2020-03-11 16:45:14 +08:00
Jason Chiu
130629b1db Show paired devices on Bluetooth device slice card
- support tapping to activate for all available media devices including
  Hearing aid and Headset
- support tapping to connect for previously connected devices

Bug: 149667096
Test: robotest
Change-Id: I25f74b1b20fbb1876200a561775aa675ff60ac37
2020-03-09 17:43:29 +08:00
hughchen
76dcfdedf2 Fix incorrect UI issue of "previously connected devices"
This CL before, the bt device still showing on
"previously connected devices" after forgot that bt device.
It because the list of getMostRecentlyConnectedDevices()
will not include BOND_NONE device. We need to remove the
device that not include in list of getMostRecentlyConnectedDevices() .

This CL add removePreferenceIfNecessary() to check the device whether
is contained in getMostRecentlyConnectedDevices(). If not, remove the
preference.

Bug: 149193092
Test: make -j42 RunSettingsRoboTests
Change-Id: I94bedf222b64d9f05dc6f979b79dbc8794c0f97d
2020-02-10 19:16:56 +08:00
hughchen
1b3f570a67 Fix bluetooth settings force close
This CL include following change:

- Add null check of cacedBluetoothDevice, cachedBluetooth could be null
  if the input BluetoothDevice can't found in
  CachedBluetoothDeviceManager.
- Move addPreference() and removePreference() to update() method,
  because update() will be called to update UI when recevice Bluetooth
  device change event.
- Add test case to test CachedBluetoothDevice null check.

Bug: 149068434
Test: make -j42 RunSettingsRoboTests
Change-Id: I90016bf1175925821b0d9b634c62cf796289a734
2020-02-10 10:45:51 +08:00
TreeHugger Robot
cf4e12bbd9 Merge "Update profile api" 2020-02-06 01:47:19 +00:00
hughchen
eba97c8ce6 Update profile api
The profile will auto connect / disconnect when set enable / disable
profile. This CL remove connect / disconnect method.

Bug: 141582844
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib875d126be0d8483fb539e7ba950242a4f38cf81
2020-02-05 16:04:36 +08:00
hughchen
043e43f059 Listed order on "previously connected" depend on recently connected devices
This CL use Bluetooth api "getMostRecentlyConnectedDevices()" to get
recently connected devices list. Let "previously connected" will list
most recently connected device on the top.

Bug: 130984590
Test: make -j42 RunSettingsRoboTests
Change-Id: I8d425b6da6cb9fe9fd1417937b4cb9a052cd1660
2020-02-03 14:08:12 +08:00
Edgar Wang
e19ee9a01f Revert "Settings search - Navigate user to exact page"
This reverts commit 08f2a58459.

Reason for revert: design changed, we decide to take the user to
the entry after clicking on a search result.
It's opposite with what we did, so we revert related CL first.

Test: robotest

Change-Id: Iadb9a94a7ef7838be34a54499e2d934d6396c336
2020-01-16 14:07:38 +08:00
hughchen
0ab3283ccf Update api name
Use CachedBluetoothDevice.connect() instead of
CachedBluetoothDevice.connect(boolean) to connect
Bluetooth device.

Fixes: 141582844
Test: manually
Change-Id: I8c50678bdfd6de89fb8d56122bfa38bdd5ac5c9d
2020-01-14 16:10:06 +08:00
Jason Chiu
2d609759cd Add preference click metric logs for some special cases
Bug: 137559984
Test: visual, robotest
Change-Id: If8624b49abcd0000487065160ce4a7ba861f234c
2020-01-02 17:45:23 +08:00
TreeHugger Robot
5900c5a6ac Merge "Use flag to confirm whether callback should unregister" 2019-12-30 02:39:03 +00:00
TreeHugger Robot
08bd74c59c Merge "Finish bluetooth detail fragment if device is BOND_NONE" 2019-12-27 03:03:49 +00:00
hughchen
58a99c6dab Use flag to confirm whether callback should unregister
This CL before, this class use isAvailable() to check whether
should register/unregister callback.
UI will be updated when this callback called.
But in one case, the isAvailable() state will not consistent
on onStart() and onStop().
The isAvailable() state will not consistent when user disconnect
device then forgot the device.
It's will cause callback not unregister when meet this case.
Then callback will duplicate call many times cause UI update not smoth.

This CL use flag to confirm the callback will unreigser on onStop().

Bug: 146617530
Bug: 145647143
Test: make -j42 RunSettingsRoboTests
Change-Id: I2b503ca9a7040b94ccc64ae196dad5a228fcbc6a
2019-12-26 14:43:56 +08:00
hughchen
d89518e3c5 Finish bluetooth detail fragment if device is BOND_NONE
This CL is used to check the bluetooth bond state when
fragment is onResume. The bluetooth detail fragment will
finish if the bluetooth bond state is BOND_NONE when
fragment is onResume.

Bug: 146621601
Test: make -j42 RunSettingsRoboTests
Change-Id: I157e1da925dcf527ce2b49ad431079d90b7c4fc3
2019-12-26 11:32:58 +08:00
Edgar Wang
08f2a58459 Settings search - Navigate user to exact page
- remove duplicate index preference
- default set searchable = false when the preference has fragment
- make some fragments indexable

Bug: 143057584
Test: robotest & manual

Change-Id: I4d64f6106d2f92f0a45e8c7e26388677f593f412
2019-12-24 21:04:11 +08:00
Automerger Merge Worker
d8c711d891 Merge "Remove calls to APIs no longer being supported" am: 30a4d24f03 am: 93df3c5ad6 am: 72ad627539
Change-Id: I2e9452f98d9bffd3647329b3b030692aeaa56a33
2019-12-12 21:47:18 +00:00
Automerger Merge Worker
72ad627539 Merge "Remove calls to APIs no longer being supported" am: 30a4d24f03 am: 93df3c5ad6
Change-Id: I2f101ddd172eb36148540821693802c7b0889e37
2019-12-12 21:33:53 +00:00
Rahul Sabnis
9348f31126 Remove calls to APIs no longer being supported
Bug: 143245666
Test: Manual
Change-Id: Ibec2c9d60ec5c90e9e4f0a03b75c54164f50f42d
2019-12-09 16:08:29 -08:00
Automerger Merge Worker
835fa1fd59 Battery icon is too large am: b6b29c1af0
Change-Id: I799cccf2808289b8f080cfa339b3bb35bef2690a
2019-12-06 01:21:24 +00:00
timhypeng
b6b29c1af0 Battery icon is too large
-sync layout from SystemUI

Bug: 141139595
Test: make -j42 RunSettingsRoboTests
Change-Id: I5e165e953682fcfdebf0d06475bb1abd171684d9
(cherry picked from commit c71f996da9)
Merged-In: I5e165e953682fcfdebf0d06475bb1abd171684d9
2019-11-26 12:35:22 +08:00
tim peng
1d07f6e970 Merge "Battery icon is too large" 2019-11-15 05:22:47 +00:00
Raff Tsai
178f8c9f10 Merge "Add take persistable permission for uri" 2019-11-15 03:23:22 +00:00
hughchen
7a2fb4011e Add take persistable permission for uri
Fixes: 144443382
Test: Manual
Change-Id: Iaec788982330355099d7e8551fed0f000377ce8a
2019-11-14 15:02:41 +08:00