The calculateLocalPaths() method of UsageGraph converts a set of paths
in (milliseconds, percent) coordinates into the actual pixel values that
will be used for drawing. For the most part this is a one to one
process, but not always: input points that are too closely spaced to
draw accurately are skipped. The last point in the path, however, is
never skipped, in order to ensure that the graph ends at the correct
location.
The previous implementation of this method had a bug: the y-coordinates
of points that were skipped would be stored indefinitely (in the local
variable pendingYLoc) and then added back at the very end of the path
(under the condition i == mPaths.size() - 1 && pendingYLoc !=
PATH_DELIM). Under the right conditions, this led to the strange uptick
at the end of the graph seen in the associated bug.
This CL fixes the problem and attempts to make the logic slightly
clearer. It also adds tests, one of which (_similarPointMiddle) fails
for the previous code.
In more detail, previously pendingXLoc was used to hold the last x
coordinate seen, while pendingYLoc was used to hold the last *skipped* y
coordinate, or PATH_DELIM otherwise. The difference between these was
somewhat subtle and hard to understand from a quick read of the code,
and there was a bug: pendingYLoc never got reset to PATH_DELIM even if
later points were added. In this CL I have removed the pendingLoc
variables in favor of a single lx/ly pair, which always holds the local
coordinates of the most recent point, and I added an explicit boolean
skippedLastPoint to track whether the point (lx, ly) has already been
added or was skipped.
Bug: 64065296
Test: make RunSettingsRoboTests
Change-Id: I45ccffea1280d851bfae5143c2e84d188e133731
These classes are used for accessibility service. Also
add a new Availablity type.
Bug: 62022517
Test: Build
Change-Id: Ia2ff72dd04fd99b17809822907746c2411cecb62
The BatteryEntry need a background thread to update the
package name and icon. However in InstalledAppDetails we
don't have this thread and it is unnecessary because we
already has the package name.
This cl:
1. Use the mPackageName from InstalledAppDetails directly in
BatteryEntry
2. Double check the defaultPackageName in AdvancedPowerUsageDetail,
use packageName from sipper if default is null
This cl is cherry picked from oc-dr to fix the test breakage.
Bug: 64127162
Test: RunSettingsRoboTests
Change-Id: I5d21afca17f177817976758c28ed86b3a10e95eb
1. Wakeup alarm detector
Because we cannot distinguish it between foreground and background
2. Bluetooth unoptimized scanning detector
There is a bug in framework that may undercount the scanning time
Bug: 63390581
Bug: 63964363
Test: RunSettingsRoboTests
Change-Id: Ia762f580462823e8eddccbeb12dec3876b0ef47a
- when creating the dashboard data, pass the sublist of suggestions to
cap the total number of suggestions to be shown to 5.
- if user swipe away the suggestion, it will only remove the suggestion
from the suggestion adapater, and will not trigger rebuilding the whole
UI.
Change-Id: I3bbc08bb67c411ff5671a837efa40da0ac885983
Merged-In: I1efabeb2a805c670007c631d3ccb0fdfbde7b55a
Fix: 64072051
Test: make RunSettingsRoboTests
Check for valid activity when trying to access the action bar as the
activity can become null when in monkey test.
Change-Id: I684d873b9eabb9d8461e99bb4385d411a48c0c52
Fix: 64084651
Test: make RunSettingsRoboTests
- when creating the dashboard data, pass the sublist of suggestions to
cap the total number of suggestions to be shown to 5.
- if user swipe away the suggestion, it will only remove the suggestion
from the suggestion adapater, and will not trigger rebuilding the whole
UI.
Bug: 64072051
Change-Id: I1efabeb2a805c670007c631d3ccb0fdfbde7b55a
Fix: 63309218
Test: make RunSettingsRoboTests
Due to substantial risk in landing the "retain profiles" flow that
would otherwise occur if the user elected not to wipe eSIM profiles
during a factory reset, we no longer expose this option to users
through the UI. Instead, we show affected users messaging indicating
that their eSIM will be wiped unconditionally.
The underlying plumbing is retained to keep the change small and to
make it easier to revert back to a checkbox when the rest of the
platform supports it.
Change-Id: Ida7df14d81ffc4cb6b4b414928d3ce7e5c78594b
Fixes: 64081853
Test: TreeHugger
Fixes an issue where other instances of WifiDialog were being launched
fullscreen. Creates static methods for creating fullscreen and modal
WifiDialogs to make the style more explicit.
Bug: 63889135
Test: make -j40 RunSettingsRoboTests
Change-Id: I2200b5d7f817b9f69a6abb73bf2c04ea24556d19
If we only toggle the app type in battery settings, don't update
the header. Then it won't have flicker in battery header.
Bug: 64065456
Test: RunSettingsRoboTest
Change-Id: If1cfa745f723f808ad9c5fd921be797acd3199ba
Should exit the summary handling if sensor is not available.
Change-Id: I5918fa5ac614db48fc2c41e1de555d1ba6928bd4
Fix: 64039312
Test: make RunSettingsRoboTests
When we're failing to connect to a wifi access point due to an incorrect
password, we want to allow an intent from a notification to open up the
wifi settings page and bring up the dialog for entering a different
password. We already have code in settings to do this for not-yet-saved
access points, so this CL just changes it slightly to also allow it for
saved access points.
Unfortunately WifiSettings can't be tested with Robolectric due to it
not supporting PreferenceScreen, so this adds a test to
WifiSettingsUiTest. There were some existing test failures in that file
which I've fixed while I was in there:
-The TestAccessPointBuilder class wasn't being found at runtime because
it was getting stripped out at build time due to not being used in
settings.
-The changingSecurityStateOnApShouldNotCauseMultipleListItems test was
asserting that we don't end up with multiple entries for the same SSID
in the access point list when changing the security state for the AP,
but it was accidentally passing multiple AP's with the same name the
first time.
Bug: 33245941
Test: runtest --path WifiSettingsUiTest.java
Change-Id: I16c9c8b0d8380a0e26f9b23df6a8d012af6a2476
Merged-In: I929ca6892242059df157c01d6e9ea30e8d1c5e78
* 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
Check whether the wallpaper picker is enabled in
WallpaperPreferenceController.isAvailable() instead of always returning
true.
Change-Id: I85fb90ad783e5be008c9343a0804893604814bd1
Merged-In: Ie3a4a68b728ccab1a7aa50c0018a5153907c49b4
Merged-In: I1afba6639a2b94f9d57f546c220f417092f92387
Fix: 63939450
Test: make RunSettingsRoboTests