283 Commits

Author SHA1 Message Date
jackqdyulei
1369bf693f Add battery indicator to bluetooth icon
This cl creates BluetoothDeviceLayerDrawable, which contains two
drwable:
1. previous bluetooth device drawable
2. battery drawable showing the battery level

If connected bt device has battery level, we will use this
LayerDrawable both in bluetooth main page and detail page.

Also, battery drawable is reused from BatteryMeterDrawableBase, we
rotate base drawable by 90 degree and update the spec a little bit.

Bug: 63393322
Test: RunSettingsLibRoboTests

Change-Id: I55313940576523dcbeb65a6e20e41289da8a3e0c
Merged-In: I55313940576523dcbeb65a6e20e41289da8a3e0c
2017-08-24 16:51:53 -07:00
Jack He
c219bc9b88 Bluetooth: Add flag for human readable name
* Add hasHumanReadableName() method to CachedBluetoothDevice that
  returns True when BluetoothDevice.getAliasName() is not null nor empty

Bug: 34685932
Test: pair Bluetooth device, send file over Bluetooth, unit tests
Change-Id: I197f3f7f3bcb7d785729473b25638006449ae862
2017-08-24 09:39:55 +00:00
Sundeep Ghuman
a419b9b4db Implement score cache eviction in AccessPoint.
This prevents cached scores from being held indefinitely and used for
SSID fallback logic in WifiTracker (Picker).

Bug: 63073866
Test: runtest --path frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
Change-Id: Ib351d20db30dfd18b69bb1f8e4d4f26fc6b74ef0
Merged-In: Ib351d20db30dfd18b69bb1f8e4d4f26fc6b74ef0
2017-08-23 15:22:28 -07:00
Sundeep Ghuman
6390fa836e Generate fallback speed label in AccessPoint.java
Cache all seen matching ScoredNetworks, and use these networks to
generate a fallback curve. This cache is kept in sync with WifiTracker's
WifiNetworkScoreCache, hence it does not permanently create any new
objects other than the map itself.

Bug: 63073866
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java

Change-Id: I0cdf17f63f0238e0e3a8324190f75d82beaa6672
Merged-In: I0cdf17f63f0238e0e3a8324190f75d82beaa6672
2017-08-15 20:28:48 -07:00
TreeHugger Robot
6a820f2238 Merge "Remove logic for parsing dismiss rule" into oc-mr1-dev 2017-08-08 22:13:11 +00:00
Sundeep Ghuman
d1e449267a Refactor WifiTracker sStaleScanResults.
In ag/2580164, in order to minimize changes, we used mutable static
state in WifiTracker to control cache eviction. This breaks a certain
flow in SetupWizard. This change reverts sStaleScanResults to an
instance member and then pipes the value into the AccessPoint update
call to control cache eviction instead of relying on error prone use of
mutable static state.

Bug: 63479352
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
&&
runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
Manual: See bug

Change-Id: Ia6d79c1904294da69841cbdf6eafbf42fa70f2d0
2017-08-08 09:30:22 -07:00
Sundeep Ghuman
850ec9b235 Merge "Fix race condition / test flakiness." into oc-dr1-dev
am: 0c8e5b6dda

Change-Id: I0e7541f39696e226baf68418ea86ed94cea34827
2017-08-04 21:08:43 +00:00
TreeHugger Robot
0c8e5b6dda Merge "Fix race condition / test flakiness." into oc-dr1-dev 2017-08-04 20:59:34 +00:00
Fan Zhang
c07ae9cf09 Remove logic for parsing dismiss rule
We now still parse dismiss_rule from activity metadata, but intead of
treating it as "first show on Day x, then on day y if user dismiss
suggestion", we simply start showing suggestion on day x. If user
dismisses the suggestion, it's gone forever.

Change-Id: Ia4d14167a407983df22e582f8dbab0c2cc153e1e
Fix: 64297191
Test: robotests
2017-08-03 17:48:11 -07:00
TreeHugger Robot
fca9a47ba8 Merge "SettingsLib: wifi: add support for tracking carrier Wi-Fi APs" into oc-mr1-dev 2017-08-03 04:28:24 +00:00
Sundeep Ghuman
8bf1f86606 Merge "Fix broken robotests." into oc-dr1-dev
am: a048e3c03f

Change-Id: If07fc6d27b94cd515f2b205ab2cd77bd84302942
2017-08-01 22:47:07 +00:00
Peter Qiu
280581b105 SettingsLib: wifi: add support for tracking carrier Wi-Fi APs
Added carrier network info AccessPoint to indicate if a given
AP is associated with a cellular carrier.

Bug: 30988281
Test: manual
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.
java

Change-Id: I10e44b5e18099c7052a973ea24809e75bb2ba9ea
2017-08-01 13:53:05 -07:00
Sundeep Ghuman
370660915d Fix broken robotests.
In ag/2580164 AccessPoint.java made a reference to WifiTracker, which
in term references WifiNetworkScoreCache. Since the Robolectric in the
platform still has not been updated to support API 26 (Android O), this
caused the test to break.

By definining the class in the test package, the test can be fixed until
proper Android O support is added to the robolectric prebuilts in the
platform code.

Bug: 64217019
Test: make -j40 RunSettingsLibRoboTests
Change-Id: I6cfd5c17d1aba98d43cca4828058493960a7ff79
2017-07-31 18:46:45 -07:00
Eric Schwarzenbach
0b8700f842 Add individual ScanResult speeds to verbose logging.
Moves the individual ScanResult summary string generation out of
getVisibilityStatus into its own method `verboseScanResultSummary`,
to reduce duplication and to enable testing the per-ScanResult speed labeling.

Bug: 63866500
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java

Change-Id: I9583d142a7d50314017154703df4e1ce69fc68aa
2017-07-31 15:46:29 -07:00
Sundeep Ghuman
db2eabbbab Fix race condition / test flakiness.
The potential for a race condition exists in WifiTrackerTest,
which intermittently manifests in APCT. By waiting for all handlers
to be idle before asserting our test verification, we can fix this
flaky test. Also added more verification steps to test code to more
precisely indicate where a test may be failing.

Bug: b/64047370
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java

Change-Id: I597fd7dc29e7f3b0d13c8cdebfa208326a64f507
2017-07-28 15:19:41 -07:00
TreeHugger Robot
3b8ce7c6d7 Merge "Sort APs by Speed label value instead of ranking score." into oc-mr1-dev 2017-07-26 03:41:27 +00:00
Sundeep Ghuman
f5b7da9b32 Merge "Do not evict scan results in cold start." into oc-dr1-dev
am: d68b6dc56b

Change-Id: If442689c6a05ad261a846a5252d9a0256520508e
2017-07-25 23:05:11 +00:00
TreeHugger Robot
d68b6dc56b Merge "Do not evict scan results in cold start." into oc-dr1-dev 2017-07-25 22:41:39 +00:00
Sundeep Ghuman
4205874ec7 Do not evict scan results in cold start.
When starting WifiTracker, show whatever results are available from
platform until new scan results come in. This allows us to show the best
available results from the previous location scan. Once we have resumed
scanning and new scan results come in, the previous logic of evicting
scan results older than 15 seconds applies.

Also prevent unnecessary onConnectedChanged callbacks from being fired,
which may unnecessarily cause UI reloading bars to appear by performing
unnecessary work.

Bug: b/38212080
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java &&
runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java

Change-Id: I3db9d98425b3d2fc66fa0757807a318d0c7456ee
2017-07-24 13:15:23 -07:00
TreeHugger Robot
689359914d Merge "Fix suggestion crash if parser fails to parse dismiss rule" into oc-dr1-dev 2017-07-21 22:59:13 +00:00
Fan Zhang
7b77cf8938 Fix suggestion crash if parser fails to parse dismiss rule
We store a index value in shared pref to figure out when a suggestion
should be displayed next time. However the rule can change due to
various reasons. When the index and the rule itself go out of sync, we
should not crash.

Change-Id: Id3ea88b6d321434e20ac0cd3e2670524c237e24e
Bug: 63908636
Test: robotests
(cherry picked from commit 4d37a1a1e1ca902b8a65bce64fafa0eeea51a4dd)
2017-07-21 22:11:41 +00:00
Fan Zhang
15ea628204 Fix suggestion crash if parser fails to parse dismiss rule
We store a index value in shared pref to figure out when a suggestion
should be displayed next time. However the rule can change due to
various reasons. When the index and the rule itself go out of sync, we
should not crash.

Merged-In: Id3ea88b6d321434e20ac0cd3e2670524c237e24e
Change-Id: Ied4a0359f9bc22ee94ec79c0591d2671a9c31b86
Fix: 63908636
Test: robotests
2017-07-21 12:57:14 -07:00
Glen Kuhne
640f04ef38 Merge "Don't set AccessPoint with WifiInfo.INVALID_RSSI" into oc-dr1-dev
am: 860f185c66

Change-Id: I9069d51fa6214d9b78c04eea6ab6adebff13ca2e
2017-07-21 02:37:58 +00:00
TreeHugger Robot
860f185c66 Merge "Don't set AccessPoint with WifiInfo.INVALID_RSSI" into oc-dr1-dev 2017-07-21 02:30:17 +00:00
Eric Schwarzenbach
f4f3842b02 Sort APs by Speed label value instead of ranking score.
This prevents unintuitive sorting if the ranking score (somehow)
sorts differently from the speed label.

This change also fixes a broken test in AccessPointTest.java
'testSummaryString_showsSpeedLabel()'.

Bug: 63116984
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java

Change-Id: I4a9e55950541ddbf32e01508484bd40326ef228e
(cherry picked from commit 0b431c9af2324f412edfb329047c5ae9f1ebccd8)
2017-07-20 20:45:31 +00:00
Glen Kuhne
d38708c1ab Don't set AccessPoint with WifiInfo.INVALID_RSSI
This stops the RSSI of an AccessPoint object being updated from WifiInfo
for the current network, when that WifiInfo does not have a valid RSSI.
This occurs when attempting to connect to a network, and the connection
has not yet been established.
Fixes a UI bug where the signal strength would appear to be zero when
attempting to connect to something, or after failing to.

Bug: 63487286
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
Test: Manual. Attempt to connect to network with bad PSK. Observe Signal
strength does not get set to zero.

Change-Id: Ia5343fb6f0935134e6a4f82034de164342fe55d4
2017-07-20 19:11:59 +00:00
TreeHugger Robot
de82accc3a Merge "Use scores from connected AP only." 2017-07-20 01:26:44 +00:00
Sundeep Ghuman
a28050ae42 Use scores from connected AP only.
When connected to a specific base station, show the speed label for that
specific access point, rather than the best label for all similar access
points in the area.

Bug: b/63073866
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java

Change-Id: Ic3b3c5838ca8b43daa226335125bb8046dee3884
2017-07-19 16:30:19 -07:00
Fan Zhang
60b850de5e Add Wifi's security type to contentDescription
Change-Id: I0c1945fd8776814ddf0097c0c1f27ed4dd1c73b2
Fix: 63805288
Test: robotests
2017-07-19 09:22:49 -07:00
Tony Mantler
09bd539969 Merge changes from topic 'AdbEnableController'
* changes:
  Add ADB enable/disable PreferenceController
  Move to newer mockito/robolectric
2017-07-17 20:26:41 +00:00
Tony Mantler
ec4bae9d86 Add ADB enable/disable PreferenceController
Bug: 34203528
Test: EnableAdbControllerTest
Change-Id: I6bff5fccf4a299df3da46a593bc36447945571c3
2017-07-14 15:39:47 -07:00
Tony Mantler
8d167378e3 Move to newer mockito/robolectric
Also fix TileUtilsTest, it broke with the newer mockito

Bug: 34203528
Test: This is the test
Change-Id: I714860795ec0b344cb89a95600a4365893c4f8d7
2017-07-14 15:39:40 -07:00
Jeff Sharkey
43d2a1700b Move "metered" persistence to WifiConfiguration.
For a long time we've had a nasty tangled dependency between Wi-Fi
and NPMS, since they both persisted different details for configured
networks.  As part of preparing for new carrier data plan APIs, move
the tracking of meteredness over to WifiConfiguration.

This also cleans up how meteredness is communicated through
NetworkAgents to rely completely on NET_CAPABILITY_NOT_METERED by
removing the metered flag on NetworkInfo, which has caused confusion
and staleness.

Migrates any existing user-configured metered networks over to
WifiConfiguration once the device finishes booting.

Remove support for NetworkQuotaInfo, since this information can no
longer be made available to apps.  Frustratingly, some apps are
using it, so keep the object around returning stub values, and shame
them in the logs.

Bug: 63391323
Test: builds, boots, Wi-Fi policy is upgraded
Exempt-From-Owner-Approval: Bug 63673347
Change-Id: I64f865ddeb65cfcd330f8d2a847368abdf960a07
2017-07-14 11:46:31 -06:00
Sundeep Ghuman
75f9480341 Do not clear scores during stopTracking.
Bug: b/63034725
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java

Change-Id: Ic15c7f42ec9a3883e8ba34194d9a9410457e4399
(cherry picked from commit 4bb84116636b51bf6925580df569fdeedf6061ae)
2017-07-13 05:52:59 +00:00
Sundeep Ghuman
4bb8411663 Do not clear scores during stopTracking.
Bug: b/63034725
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java

Change-Id: Ic15c7f42ec9a3883e8ba34194d9a9410457e4399
2017-07-12 19:12:30 -07:00
Sundeep Ghuman
45a4fd3c31 Merge "Change initial value of mStaleScanResults to true." into oc-dr1-dev am: e72ec3cab2
am: 335a2d7e3c

Change-Id: I4b09fe0fbcecc562ced0ed2a6793b2ae87b0f731
2017-07-08 03:18:43 +00:00
TreeHugger Robot
e72ec3cab2 Merge "Change initial value of mStaleScanResults to true." into oc-dr1-dev 2017-07-08 03:06:37 +00:00
Sundeep Ghuman
d2b84a8229 Change initial value of mStaleScanResults to true.
In ag/2409026 we introduced a stale scan result bit to prevent callbacks
from sticky broadcasts from occuring until we have fetched the latest
set of scan results. However, this initial value was set to false hence
there is a race condition in which the currently connected network can
still be shown without any other networks, as the scan results have not
yet been processed.

By changing the initial value to true, we address this race condition.

Bug: b/62493360
Test:  runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java

Change-Id: I5f2108e17d2c549e2176ccf64e640fbd4808b5f1
2017-07-07 17:50:44 -07:00
Joe LaPenna
a6ded21add Revert "Change initial value of mStaleScanResults to false."
This reverts commit bd5410fa4845b9975e8544071d5e590adf5db0f0.

Reason for revert: Changelist description was incorrect, which can cause issues when debugging and reading commit logs, in the future.

Change-Id: Ic70c5f1822ab6f1b77486097fadcf3bdf3484e32
2017-07-07 20:44:51 +00:00
Sundeep Ghuman
bd5410fa48 Change initial value of mStaleScanResults to false.
In ag/2409026 we introduced a stale scan result bit to prevent callbacks
from sticky broadcasts from occuring until we have fetched the latest
set of scan results. However, this initial value was set to true hence
there is a race condition in which the currently connected network can
still be shown without any other networks, as the scan results have not
yet been processed.

By changing the initial value to false, we address this race condition.

Bug: b/62493360
Test:  runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java

Change-Id: I82ff8d6c547f1bec4ebfe9b768e6b12435a400ee
2017-07-06 14:03:43 -07:00
Sundeep Ghuman
94f5aecadd Merge "Fix NPE on network forget from details page." into oc-dr1-dev am: e59ba746f1
am: 58b665f4b5

Change-Id: I9b7e87ef5f398189666b747471eeee5f197403be
2017-07-06 05:31:03 +00:00
TreeHugger Robot
e59ba746f1 Merge "Fix NPE on network forget from details page." into oc-dr1-dev 2017-07-06 05:16:14 +00:00
Jack He
cba3a9dc39 Bluetooth: Display battery level of connected devices am: 6258aae548
am: 199849631b

Change-Id: I56f073605bc0f4223a1c0f3a385977e2b7c44879
2017-07-06 03:29:48 +00:00
Sundeep Ghuman
d911da3adc Fix NPE on network forget from details page.
Forgetting a network from the wifi network details page throws an NPE in
WifiSettings when the details fragment exits, crashing the app.

Bug: b/63351286
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java

Change-Id: I749ecbda5654ff7a86ffe4c38ca74ebe338923f0
2017-07-05 20:08:26 -07:00
Jack He
6258aae548 Bluetooth: Display battery level of connected devices
* Add handler for BluetoothDevice.ACTION_BATTERY_LEVEL_CHANGED intent
* Check battery level information when UI is updated
* Show battery level in Quick Settings connected device summary line
* Show battery level in Bluetooth Settings connected device summary line
* Show battery level in Bluetooth device details page device summary
  line
* Add unit test for CachedBluetoothDevice, change HeadsetProfile and
  HidProfile to not final to enable mocking

Bug: 35874078
Test: make, unit test, connect to remote devices, connect/disconnect
      profiles
Change-Id: I729048cace73aab29337a8002a2897d2acf22fa6
2017-07-06 01:22:52 +00:00
Sundeep Ghuman
8111fdb208 Merge "Remove IPC calls from synchronized block." into oc-dr1-dev am: 6829db0cb6
am: e26118d84c

Change-Id: I4e28ee323606976d7b224c62b7bfcb30b1671bc1
2017-06-30 02:05:30 +00:00
TreeHugger Robot
6829db0cb6 Merge "Remove IPC calls from synchronized block." into oc-dr1-dev 2017-06-30 01:50:48 +00:00
Sundeep Ghuman
db7de0f051 Merge "Move generatePreferenceKey to AccessPointPreference." into oc-dr1-dev am: 635575d579
am: b7c4518d57

Change-Id: I7da1349402f57d94f450a0d1d4e85864a1fafb5d
2017-06-30 00:12:32 +00:00
Sundeep Ghuman
42134c05d5 Merge "Move TestAccessPointBuilder." into oc-dr1-dev am: 80139bfc4d
am: 2a3219af74

Change-Id: I131be0573105670b8230f41f77fce83cac6b82ba
2017-06-29 20:43:43 +00:00
Sundeep Ghuman
7c32aa3039 Move generatePreferenceKey to AccessPointPreference.
This allows it to be reused in the SavedAccessPointsWifiSettings.

Bug: b/62374459
Test: make -j40 RunSettingsLibRoboTests
Change-Id: Id137f56ceafe461d217c0eee6b571ccfa4eaff1f
2017-06-29 12:51:48 -07:00