To make autofill works on non-touch device such as TV, allow
fill ui window to gain window focus. Fill ui window does not
need IME. When IME and fill ui window are both shown, fill ui
window will intercept keyevent before IME.
Since autofill window will steal window focus from app window,
we no longer uses View.onWindowFocused() for enter/exit event.
Switched to use Activity onResume/onPause. When view
notifyViewEntered or notifyViewExited called when Activity is paused,
it will be ignored. Before Activity goes to pause state,
notifyViewExited() is fired on focus view, after Activity leaves
pause state, notifyViewEntered() is fired on focus view.
In CTS testDatasetAuthTwoFieldsUserCancelsFirstAttempt, the
authentication activity finishes itself in onCreate() which will not
produce onPause/onResume in app activity, but it will produce window
focus loss/gain event. Since we switch from window focus to activity
onResume/onPause, we will be missing a show fill ui when return from
the never shown authentication activity. To solve this problem,
we added special code when receive ActivityResult from authentication
activity where we check if the authenticate activity never causes
onStop event, where we should issue an extra ACTION_VIEW_ENTERED
event to show fill ui.
Test: passed all existing autofilltest CTS on sailfish
atest CtsAutoFillServiceTestCases
Bug: 70181616
Change-Id: Iafe4dca3be8f049fa6dfd34bac13ccb030c583b6
This introduces a more stable way of setting a remote animation
than using overridePendingTransition: An activity can register
a set of remote animations which is broke down by transition type.
Whenever the activity is involved into such a transition, the
remote animation will be started.
Remote animations take precedence over regular animations, and
prefixOrderIndex in the hierarchy decides precedence within
multiple apps that set remote animation definitions such that
higher apps override lower apps.
Bug: 64674361
Test: go/wm-smoke
Test: Use with launcher
Change-Id: Id300ff62d9f60966ea2609168f6a02860b3de7af
Adds the ability for another app to control an entire app
transition. It does so by creating an ActivityOptions object that
contains a RemoteAnimationAdapter object that describes how the
animation should be run: Along of some meta-data, this object
contains a callback that gets invoked from WM when the transition
is ready to be started.
Window manager supplies a list of RemoteAnimationApps into the
callback. Each app contains information about the app as well as
the animation leash. The controlling app can modify the leash like
any other surface, including the possibility to synchronize
updating the leash's surface properties with a frame to be drawn
using the Transaction.deferUntil API.
When the animation is done, the app can invoke the finished
callback to get WM out of the animating state, which will also
clean up any closing apps.
We use a timeout of 2000ms such that a buggy controlling app can
not break window manager forever (duration subject to change).
Test: go/wm-smoke
Test: RemoteAnimationControllerTest
Bug: 64674361
Change-Id: I34e0c9a91b28badebac74896f95c6390f1b947ab
Content changes to panes are reported as window
state changes.
Changes to aggregated visibility are also reported
as window state changes.
Window state changes can now have content change
types.
Bug: 37479815
Test: Adding CTS tests in linked CL.
Change-Id: I35ef946398cac869b0f736708cb39ae96ab3ddb7
Replace the FLAG2_LAYOUT_IN_DISPLAY_CUTOUT flag with a
dedicated layoutInDisplayCutout field; given the change
in behavior of SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN with respect
to the display cutout, apps that request this now also need
a way to request the same behavior as FLAG_FULLSCREEN.
Broadly, there's three categories of apps:
1) Apps that want to make dedicated use of the cutout
area -> no letterbox ever
2a) Apps that hide the status bar, but don't expect the
cutout to be there cutting into their content
-> we want those to get letterboxed
b) Some apps may only be transiently fullscreen, but always
want to get letterboxed
-> we want those to get letterboxed even if not currently
fullscreen
3) Apps that never go fullscreen, and just draw the status
bar background in the cutout area (i.e. the most common type
of app)
-> these need to get letterboxed whenever the cutout and
status bar don't coincide (under our current guidelines
that's only in fullscreen and landscape)
To cover each use case, we have:
ALWAYS: Always allow the app to draw into the cutout, never letterbox it; covers 1
NEVER: Never allow the app to draw into the cutout, always letterbox it; covers 2a and 2b
DEFAULT: Allow the app to draw into the cutout if that area is covered by the status bar
anyways. This does the right thing for most existing apps (2a and 3).
Bug: 65689439
Test: atest PhoneWindowManagerLayoutTest
Change-Id: Ib8d551251e9be4ef9d580ca2151bf40a9678acae
This is a follow up CL to a recent CL [1], which aimed to move several
APIs only for InputMethodService from InputMethodManager to
InputMethodService.
This CL removes InputMethodService#hideSoftInputFromInputMethod(),
which is exactly the same as InputMethodService#requestHideSelf() that
is already available as a public API for IME developers.
This CL also virtually renames
InputMethodService#showSoftInputFromInputMethod() to
InputMethodService#requestShowSelf(), which has existed as a
private method but not been exposed to IME developers yet.
[1]: I3163f3cbe557c85103ca287bee0874a3b4194032
d8d03a8e1b
Bug: 70282603
Test: atest CtsInputMethodTestCases
Change-Id: If6a786c5774805d041ea9672ef2721e4a38df7fc
Otherwise, Checkstyle keeps nagging us with the following lint warning
whenever we touch the lines around them.
Must include @java.lang.Override annotation when {@inheritDoc}
Javadoc tag exists.
This CL also re-format the license header just to make Checkstyle
happy.
This is purely a no-op style change. There must be no behavior change.
Test: prebuilts/checkstyle/checkstyle.py -f frameworks/base/core/java/android/view/inputmethod/InputConnectionWrapper.java
Change-Id: I3d7cef4e6c1407a6c6d8ee75c0d8b75943d8701c
Otherwise, Checkstyle keeps nagging us whenever we touch lines around
them.
This CL also re-formats the license header and keep all the lines
within 100 colmun just to make Checkstyle happy.
This is purely a no-op style change. There must be no behavior change.
Test: prebuilts/checkstyle/checkstyle.py -f frameworks/base/core/java/android/view/inputmethod/InputConnection.java
Change-Id: Ie0f43f545d8056884c5d20a601d0a501187062c7
This is a safe refactoring that should have no behavior change in
terms of semantics and performance characteristics.
Test: make -j checkbuild
Change-Id: I30b40c483e490ff42c1c707233ca5cc7b67da28f
This means that, by default, nothing gets initial focus
in touch-mode.
In order to have something focused in touch mode at
activity start, an app must explicitly provide a
<requestFocus /> tag. Since this tag uses the "default"
focus mechanism, it can be placed in a parent and focus
will go to whatever view is the default focusable in
that hierarchy.
This takes effect for targetApi >= P
Bug: 34520588
Test: Added CTS tests in View_InitialFocusTest
Change-Id: I74839bb86079558eaa5c96de52220a7d2c47d901
When enabled via launcher, the home button is able to be be pulled to
the right side to send events to launcher via binder calls of when the
quick scrub operation starts, ends and progress changes between each
interval. Launcher will use this information to determine how the
recents apps are laid out with vibration feedback.
When the home button is pulled and released under 150ms, quick switch
will occur. A binder call will tell launcher to switch to the previous
app used.
While quick scrub or switch is active, launcher will not get any nav
bar motion events, only events for quick scrub and switch.
Bug: 67957962
Bug: 70180755
Test: enable new experience via launcher settings
Change-Id: I344f5d67f259ff454205ea4d2e95140f783d3b5c
- EntityConfidence is no longer generic because it doesn't mix well with
being Parcelable.
- Deprecated OnClick listeners in TextClassification as they can't be
parceled. (Outright removed the secondary listeners that were not part
of any release)
- Classes that were present in previous releases have their parceling
factored out into ParcelableWrapper helper classes for backwards
compatibility.
Bug: 67609167
Test: Added
Change-Id: I820ca4abc6b80f90007ab4424bc5df2a14f797b0
- KEYCODE_ALL_APPS which was introduced late in O is now a
proper & valid keycode in P
Bug: 64935695
Test: Manual: ALL_APPS: adb shell input keyevent 284
Test: also tested with --longpress for these keys
Change-Id: If56c5b87f88e927c52468485b790581fa19ad48b
Adds the possibility of presenting a custom message on
the keyboard if you're trying to dismiss the keyguard.
This is particularly useful when you're showing the
bouncer because custom authentication (SmarLock)
failed.
Test: launch FLAG_SHOW_WHEN_LOCKED activity and
call KeyguardManager#requestDismissKeyguard
Fixes: 63940122
Change-Id: I0d88c0e59521887efa56d74874062b2b14970e4e
Panes are a distinct portion of a window. Adding APIs to
support this concept.
Bug: 62231686
Test: Adding a new CTS test to verify that this value is
communicated properly to accessibility services.
Change-Id: I6edd08ec90e40640e71f5a3df292e8f15d5bcda4
Adds a config resource to configure the main display's cutout and
dispatches it from the LocalDisplayAdapter.
WindowManager's DisplayContent then transforms it to match the current
rotation.
Also fixes an issue in EmulatedDisplayCutout where the Path was never
reset and changes the color to black. Also fixes the RoundedCorners
overlay such that it can layout within the cutout area.
Test: atest CoordinateTransformsTest DisplayContentTests
Bug: 65689439
Change-Id: If39c8ea3cb55c761517f270dcca292682c0918ad
* changes:
Clipping to the top roundness when scrolling
Made the notification side paddings consistent
Changing messaging style and overall visual adoption
Improved the MessagingStyle API with Person
Added People to the Notification API
I found A11yEvents hard to parse in logs as they take ~3 lines on my
30" monitor, most of which denoting fields that rarely differ from default.
This CL adds an opt-in debug flag to not print default-valued fields, which
dramatically cuts down the noise when trying to parse logs.
Test: enable DEBUG in A11yManager, and observe logcat
Change-Id: I979200194ee3597c1a8501195437b4d4b8e21514
The messaging style is changed to a bubble-less design.
In addition are we also updating a few spacings in
order for it to look nicer / more balanced.
Test: manual
Change-Id: I43326bd8a23cd1f1d5964d2d6740fde99d29c7e4
..and also extract common code into a common superclass
This also preserves the order of the throttled events
(TYPE_VIEW_SCROLLED & TYPE_WINDOW_CONTENT_CHANGED) with regards to the rest
of events by flushing any pending throttled events immediately if another
event is requested to be sent.
Test: ensure no new a11y CTS failures
Change-Id: I948a16716521974393aaa1cf822d0a0324e9ce3a