- Introduces getLogger() API.
- A logger should run in the client's process. This helps us manage
sessions specific to a client.
- The logger exposes a tokenizer that clients may use to tokenize
strings for logging purposes.
- Logger subclasses need to provide a writeEvent() implementation.
- SelectionEvent is serializable over IPC.
- Logger takes care of the session management. It writes session
specific information into the SelectionEvent.
- We still keep the SmartSelectionEventTracker for now so clients
can slowly move off of it. The plan is to delete it.
- The plan is to include support other event types. e.g. link events.
Bug: 64914512
Bug: 67609167
Test: See topic
Change-Id: Ic9470cf8f969add8a4c6570f78603d0b118956cd
This was surfacing in the android clock with certain locales e.g. fr_CA.
Fixed for all unqiue locale patterns.
Bug: 71572309
Test: manual - changed locale to Fr_CA and made sure clock seperator WAI
Test: atest CtsWidgetTestCases:TextViewTest CtsWidgetTestCases:EditTextTest CtsWidgetTestCases:TextViewFadingEdgeTest FrameworksCoreTests:TextViewFallbackLineSpacingTest FrameworksCoreTests:TextViewTest
Change-Id: Ie43bf9428e8c5ef2fe2e9545cb5a6dada25d6e52
The CL adds the Magnifier#update() method in the public API. The method
is used to refresh the content of the magnifier, whenever this is
desired (usually when there is a chance that the magnifier content
became stale).
The initial plan was that this method would not be included in the
public API. This was relying on a feature request we made to the
graphics team, asking for support to have a callback called whenever the
surface the magnifier is attached to changes. This way, we could
refresh the magnifier content whenever the surface changes, without
requiring the user to call #update(). Once the feature request is
implemented (probably in Q according to the last discussion), we will be
able to deprecate #update().
Bug: 63531115
Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: I62c5794c3227e6a5d36d351c10d6bcf18e1d931a
This CL removes the show/hide API from MediaControlView2 and instead
provides the developer with the same function by calling
setVisibility(View.VISIBLE | View.GONE), and calling the new APIs
set/getTimeout() and requestPlayButtonFocus(). The original Runnable
code has been moved to onVisibilityAggregated() as per API council's
request.
Test: build
Change-Id: If53fb8849b4e086619a9c93c85e61da70272976e
Apps wanting to use a TextClassifier service (instead of an
in-app-process TextClassifier) bind to this service. The service
binds to and reroutes calls to a configured system TextClassifierService.
TextClassifierManagerService manages the lifecycle of the configured
TextClassifierService and binds/unbinds to preserve system health.
A configurable TextClassifierService extends TextClassifierService,
declares an android.textclassifier.TextClassifierService intent, and
requires a permission that is only granted to the system so only the
system may bind to it.
The TextClassifierManagerService implements a similar interface to
TextClassifierService (i.e. ITextClassifierService) but doesn't have to.
This is done for simplicity sake and things may change in the future.
The configuration of the default service is in config.xml.
OEMs may change this with a config overlay.
If no TextClassifierService is specified, the default in app process
TextClassifierImpl is used.
Bug: 67609167
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Test: tbd
Change-Id: I8e7bd6d12aa1a772897529c3b12f47f48757cfe6
This CL does the following 5 things:
1) REMOVE setPrevNextListener API
2) REMOVE show/hideSubtitle API
3) EXPOSE Command related strings as public
4) CHANGE time parameter in show(timeout) from integer to long
5) CHANGE setButtonVisibility(visible) parameter from boolean to int
All changes are based on API review.
Test: build
Change-Id: Ia6ffb454100be6a2f75a145e9d6a87bd88faac0c
Previously, we were only making sure that the magnified content belongs
to the view the magnifier is attached to. However, when the view was
laid out partially outside the screen, we would pixel copy from outside
the surface the view is attached to. This would lead to the user seeing
a distorted content in the magnifier, in cases when the magnified view
lies outside the screen. This CL addresses this issue, by clamping the
pixel copy coordinates inside the surface we copy the magnifier content
from.
Bug: 72039853
Bug: 63531115
Test: bit CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: Iddab05c98b615259938e0d3a3320b98b3b13b246
This CL fixes the positioning of the magnifier window when the magnified
view is attached to a window with non-zero insets in its surface. The
magnifier PopupWindow is a panel window attached to the magnified view's
window, so its positioning has to be computed relative to this window.
However, previously the coordinates were computed relative to the view's
surface.
Bug: 72417421
Bug: 63531115
Test: bit CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: I27aebd210d7596316f48fc55bfd6a37934624916
This CL brings latest MediaControlView2/VideoView2 code from
experimental, and it does the following:
- Fullscreen button support (ag/3490251)
- Set prev/next listener and controlling button visibility (ag/3498244)
Test: Ran VideoViewTest app
Change-Id: I1a64a9c98dcc625b504785728673edbee7b6935d
The goal of this CL is to introduce a way for IMEs to tell
applications about what languages are likely to be used in the text to
be committed, for IMEs that support dynamic language switching
(especially without relying on InputMethodSubtype).
It is already obvious that InputMethodSubtype is not working well for
this use case. We need is a simple, easy, and back-portable way that
can be widely accepted by the ecosystem.
Bug: 7031513
Test: atest CtsInputMethodTestCases
Change-Id: Ie86edafd1ed68b58f702116f561fc448fdbb57a8
There is no other way for a test to inspect whether the
selector drawable will be drawn or not. This adds a hidden
test api to expose it
Bug: 67881712
Test: AbsListViewTest#testSelectorOnScreen
Change-Id: I3b6d25a0c8cb0c5f6c8bfc45eaa2660caa133b7d