The PowerManager lock (which is used in the Battery Saver code) sits
low in the lock hierarchy. NotificationManagerService is higher, so
nothing should call into NotificationManagerService with the
PowerManager lock held. This change calls into NMS on a background
thread so that the call occurs without the PM lock held.
Also fixing the cancel notification bug. We create the notifications
using notifyAsUser(... UserHandle.ALL). The cancel() call wasn't
properly dismissing the notification. Switching to
cancelAsUser(UserHandle.ALL) fixes the issue.
Bug: 145886051
Test: atest BatterySaverStateMachineTest
Test: Manually ensure notification disappears when BS turns on
Change-Id: I3315357e810d92938e4a34929235d233b07deebb
(cherry picked from commit 79a0faf869)
Do not show Bluetooth icon when A2DP, HFP and Hearing
aid profiles are connected but not active.
Other Bluetooth profile will retain the same behavior.
Bug: 144061558
Test: atest com.android.systemui.statusbar
Change-Id: Id0fab356f041e90a7654c8e18185c6aa15e2d4df
Currently, strict mode private DNS does not work on VPNs because
NetworkMonitor does not validate VPNs. When a VPN connects, it
immediately transitions to ValidatedState, skipping private DNS
hostname resolution.
This change makes NetworkMonitor perform private DNS hostname
resolution and evaluation even on VPNs.
In order to ensure that the system always immediately switches to
the VPN as soon as it connects, remove the unvalidated penalty
for VPN networks. This ensures that the VPN score is always 101
and the VPN always outscores other networks as soon as it
connects. Previously, it would only outscore other networks
when no-op validation completed.
Backport of 414b8c8b1c.
Bug: 122652057
Test: atest FrameworksNetTests
Test: manually ran a VPN with private DNS in strict mode
Test: atest android.net.cts.ConnectivityManagerTest com.android.cts.net.HostsideVpnTests
Change-Id: Iaa78a7edcf23755c89d7b354edbc28d37d74d891
Merged-In: Iaa78a7edcf23755c89d7b354edbc28d37d74d891
Support faking out the DNS lookups used by NetworkMonitor to
resolve strict mode DNS, and add more test coverage.
These tests were partly adapted from tests we have in Q but
also contain new coverage. This is because in Q the interface
between ConnectivityService and NetworkMonitor changed
substantially, and it is impractical to backport
NetworkMonitorTest.
Bug: 122652057
Test: atest FrameworksNetTests
Change-Id: I6497b7efa539267576d38d3036eef0af0df4e9cb
Merged-In: Iaa78a7edcf23755c89d7b354edbc28d37d74d891
The overlay was introduced for SysUIGoogle to customize two icons on
docking UI besides charging text, and is no longer needed.
Fixes: 145250100
Test: atest SystemUITests:KeyguardBottomAreaTest
Test: atest SystemUIGoogleTests:DockIndicationControllerTest
Change-Id: If836fe97c3e394cc98f1a05270bd0023e5b57bed
Merged-In: If836fe97c3e394cc98f1a05270bd0023e5b57bed
Makes the "c" in "connecting" lowercase.
Bug: 144172117
Test: compiles
Change-Id: Ib4514d36fc2244f0f04f97f3f67c455089e975b2
Merged-In: Ide9708c87c2a9b3c943744decff639ad1dfde985
See CL with change id (I0680034ed9315aa2c05282524d48faaed066ebd0) for
the meaningful changes/description. This change was reverted in qt-qpr1-dev
in order to fix a bug but never got unreverted due to the qt-dev CL
having the same change-id as the reverted one.
Bug: 119041698
Test: atest NotificationManagerServiceTest
Test: atest ForegroundServiceNotificationListenerTest
Change-Id: I50f16072b0e56ab69aabf8010ffffd172ca7c05a
Add more logs about file state and file permission state upon failing to
read or write a Settings file. In the case of failing to create a parent
directory for the settings file, SettingsState will attempt to create
the folder with Files.createDirectories, which throws more informative
errors.
Bug: 119723324
Test: None
Change-Id: Iec8ed903e109558efc3a98906c68d1579b985232
Make toasts non-clickable
Since enforcement was only on client-side, in Toast class, an app could
use reflection (or other means) to make the Toast clickable. This is a
security vulnerability since it allows tapjacking, that is, intercept touch
events and do stuff like steal PINs and passwords.
This CL brings the enforcement to the system by applying flag
FLAG_NOT_TOUCHABLE.
Test: Construct app that uses reflection to remove flag FLAG_NOT_TOUCHABLE and
log click events. Then:
1) Observe click events are logged without this CL.
2) Observer click events are not logged with this CL.
Bug: 128674520
Change-Id: Ica346c853dcb9a1e494f7143ba1c38d22c0003d0
Make toasts non-clickable
Since enforcement was only on client-side, in Toast class, an app could
use reflection (or other means) to make the Toast clickable. This is a
security vulnerability since it allows tapjacking, that is, intercept touch
events and do stuff like steal PINs and passwords.
This CL brings the enforcement to the system by applying flag
FLAG_NOT_TOUCHABLE.
Test: Construct app that uses reflection to remove flag FLAG_NOT_TOUCHABLE and
log click events. Then:
1) Observe click events are logged without this CL.
2) Observer click events are not logged with this CL.
Bug: 128674520
Change-Id: Ica346c853dcb9a1e494f7143ba1c38d22c0003d0
Merged In: Ica346c853dcb9a1e494f7143ba1c38d22c0003d0
Resolver supports numerous layouts, with optional ViewGroups. Need to
make sure the window inset is applied to the correct view. If there is
a List present, add a footer so that the list scrolls underneath the
navbar.
Test: atest ResolverActivityTest
Bug: 145670872
Change-Id: I94652c5e0068436878a307701b5785f02060b8d6
1. In AccessPoint#updateBestRssiInfo, if bestResult is available, cache if it’s transition mode at new variables.
2. Remove SECURITY_PSK_SAE_TRANSITION & SECURITY_OWE_TRANSITION since we will cache if an Wi-Fi AP is transition mode.
3. Enhance getSecurity(ScanResult result).
For a PSK/SAE transition mode ScanResult, return SAE.
For a open/OWE transition mode ScanResult, return OWE.
4. Enhance all AccessPoint#matches methods
5. Use enhanced AccessPoint#matches to replace AccessPoint#isKeyEqual
6. In WifiTracker#updateAccessPoints, it associates an AccessPoint with a configured WifiConfiguration
I. If an AccessPoint is PSK/SAE transition mode, update it with a configured network
of the same SSID and PSK/SAE security if it’s available. (SAE has higher priority).
II. If an AccessPoint is Open/OWE transition mode, update it with a configured network
of the same SSID and open/OWE security if it’s available. (OWE has higher priority).
Bug: 144320676
Bug: 144320649
Bug: 144325162
Bug: 144321574
Test: atest SettingsLibTests
manual: In Wi-Fi picker
1. Save a PSK network, click a PSK/SAE transition mode AP of the same SSID,
it should connects.
2. Save a SAE network, click a PSK/SAE transition mode AP of the same SSID,
it should connects.
3. For 1. and 2., the transition mode AP should show 'Saved'.
4. For 1. and 2., looking at saved network page, each saved network should
shows correct connection status of the transition mode AP.
Change-Id: Ida858af791bc60f0ccb11025901de2a79eacba3c
Merged-In: I9688f51f4a4b8e3d5c080fb0d0103abb4e3fd79b
Remove the touch listener while destroyed to avoid causing the
IllegalStateException.
Fixes: 144703050
Test: atest CtsAutoFillServiceTestCases
Change-Id: I04b30fa3cef5bea00a4dbd9957cae8246f09a802
(cherry picked from commit 93e1622365)