In Q, app developer would've to wait for InputConnection on Editor before
showSoftInput() could be called. This made API very un-intuitive. While
WIC.show(ime) took care of some of the scenarios, it didn't handle
showing IME from onCreate() i.e. when control is not yet available.
This CL introduces a pending IME show request that waits until IME
control is available.
Test: atest WindowInsetsControllerTests#testShowImeOnCreate
Bug: 153014086
Change-Id: I93dd5790e1fb3d7841ad1323a45cd3bae2d6e9b8
Use an explicit intent and set PendingIntent.FLAG_IMMUTABLE to prevent
someone from modifying the intent from PendingIntent.send(...).
Bug: 153356209
Test: atest AdbNotificationsTest
Test: In bug, install and launch the PoC apk and give it notification
permissions. Then, with USB/Wifi debugging enabled, disconnect and connect
the device to create the adb notification. the PoC apk should not have
permission to display information from
content://com.android.settings.files/my_cache/NOTICE.html.
Change-Id: Ie49aa3cf9b33168cf1435fc2427e95aac7f4609b
(cherry picked from commit 2c03881459)
Exempt-From-Owner-Approval: approved in master
To have a way to verify behavior of more directories, mark more
directory getter APIs @TestApi.
Bug: 148664742
Test: atest SysConfigTest#testStageWhitelist
Change-Id: I2d22412935b24ec4c33d8d1b3a7fbb7df4a08841
Instead, the click listener is set on the app opp container since
clicking on the app opp container results in the same action as clickng on the
individual app icons. As per a11y guidance, only set the click listener
on the container.
Test: manual
Fixes: 153281363
Change-Id: Ic1c2bdb2f77fc459a3a3e997ed494b4bab36a273
In ImeFocusController#onPostWindowFocus -> onViewFocusChanged,
it implies that the view has focus after onPostWindowFocus, this logics
we keep leveraged from IMM#onPostWindowFocus -> focusInLocked() long
ago, which may not always be true as SearchView layout may call
View#clearFocus when size changed after IME switcher shown.
When IME switched and back to app activity, in the above call path,
even activity window focused, and set the fallback focus view as
activity's root view, but the root view is not actually focused,
if we set this view as the next served view, then calling
View#onCreateInputConnection will return null, because it's not an editor.
Use correct view focus state when calling onViewFocusChanged.
Fix: 153612876
Test: manual as below:
1) Launch Files app, taps SearchView EditText
2) switch IMEs with IME switcher dialog
3) see if Password keyboard shown.
4) keeps 2) and 3) several time.
Expected: There is no password keyboard and
the keyboard input is still workable.
Change-Id: I68bb95fc3cbfe1f5992ccf87694b34c3e52bb31f
- First touch on TextView blocks secondary touches on handles.
- First touch on handles blocks later touches on TextView but doesn't block secondary touches on other handles.
Bug: 150995597
Test: manually tested & automation tests:
atest FrameworksCoreTests:EditorCursorDragTest
atest FrameworksCoreTests:TextViewActivityTest
Change-Id: I7717fc061fc81514fc1dad0d3acbc73e683516cf
Map the camera2 CONTROL_ZOOM_RATIO to legacy zoomRatio in Camera.Parameters.
Test: Force Pixel 2 HAL to HAL1, and run testZoomRatioTest
Bug: 149052011
Change-Id: I888c919ae10d3e2882f3df797524a06e2b3be259
Bug: 153103051
A binder cache recompute() function cannot compute a result based on any
data that is not known to the binder server. If the code depends on
local data that can change, then invalidation will not work properly.
The original getState() method returned OFF if the bluetooth service was
unavailable. This computation now occurs in the getStateInternal()
method, outside of the binder cache query() method.
The recompute() method converts RemoteExceptions to RuntimeExceptions.
Then, the conversion is reversed in getStateInternal(). This double
conversion is needed because the cache recompute() method has no throw
spec.
Test: Create a debug image that enables binder cache VERIFY. Run the
following tests:
* atest BluetoothInstrumentationTests
* atest PtsChreTestCases
* atest UserLifecycleTests
* manual testing connecting to bluetooth devices and toggling airplane
mode.
No cache inconsistencies found. No test failures seen.
Change-Id: I93b9742587c4eb695d9a11fc6ab145f6a40a0ece
documentation to refer to BlendMode.SRC_IN
instead of PorterDuff.Mode.SRC_IN
Fixes: 151952140
Test: N/A
Change-Id: Ie4b9a585c2dae49e633f6741180b6749493d069a
- Allow targeting task display area in ActivityOptions.
- Change LaunchParamsController to select preferred task display
area instead of display.
Bug: 152116619
Test: WM CTS and unit tests
Change-Id: I16ab96008e1ce03422f89a0609d3121051261fda
The low profile in DreamService was used to hide the status bar and
navigation bar. Now this is done by
WindowInsetController.hide(systemBars()) in DreamActivity.
Bug: 151749301
Test: m && flash && verify that system bars don't show up
Change-Id: I8fc9ca67262e92422afb472ccd76ec561c90f66d
For incremental installations only, we skip the verification
request broadcast and instead always send a verified broadcast
with the root hash.
Bug: 151240337
Test: Manual. Install APK normally and see the verifier request broadcast is sent
Test: Manual. Install APK incrementally and see verifier request broadcast is not sent, and verified broadcast is sent with root hash
Change-Id: I2599472818b63ea172d2d412741e5540c8a52176
This helps us to debug.
Bug: 154056280
Test: Locally make leashes invalid and check the log format.
Change-Id: Idcde497ffee1f10a4289520e154aa8b39eed1f78
The <extension-sdk> manifest tag was added in ag/1004614 to
allow apps to specify the minimum versions they need of
extension SDKs.
This adds the min extension versions to ParsingPackage.
This will be needed to allow us to perform checks that rollbacks do
not violate the min extension versions of installed apps (see
go/sdk-extensions-and-rollback).
Bug: 152737927
Test: atest PackageParserLegacyCoreTest#testUsesSdk
Change-Id: I2e080e46aaea6de489766dac0d323d7d2c7302ca
Define new atoms to better log and understand various user journeys,
such as user switches, user starts, and user creation.
The UserLifecycleJourneyReported atom defines a user's journey and
holds a user's information such as their user id, user type, and flags
associated with the user. This atom includes a session-id which is used
to link to the UserLifecycleEventOccurred atom which keeps track of
lifycycle events that occur throughout a user's journey. As more user
journeys are defined, there could be more Events added in the future.
Note: the JourneyReported atom can currently be logged more than once
per user journey since there is no record of the user's ongoing journey.
This will be updated in a future CL.
Bug: 146505521
Bug: 150788910
Test: statsd_testdrive 264 265
Change-Id: Iff3847be64d718fb2ec17e58c33d47f7fa4b627a
This CL adds a field relativeAddress to DeviceProductInfo which
contains the device address in the display network. For example,
for HDMI connections the field is populated with the physical address.
Bug: 147994746
Test: adb shell dumpsys display
Change-Id: I87d9fd00bd16abc7594dc3f6b6d4e00c8968af07
CL assigns null to DreamService.mActivity when the DecorView of the
main window is detached (in onViewDetachedFromWindow()). This is also
when the Window is detached, so at that point the DreamService doesn't
care about the DreamActivity.
Fix: 152994058
Test: atest DreamManagerServiceTests
Change-Id: I716f443b2876a2db57df999a551eee31e98ab4f1