When we want the WindowManager to clip our requested width/height
to the display frame, we need to pass DISPLAY_CLIP_VERTICAL/HORIZONTAL.
It seems this behavior was unintentionally applied without this flag
in previous releases.
Bug: 29602363
Change-Id: Ib98060e36efde0dbaabb59a758da5374035dbb62
It turns out that we can let the system to call
InputMethodService#exposeContent(InputContentInfo, EditorInfo), which
added in my previous CL [1], during the IME is calling
InputConnection#commitContent() as follows.
[IME]
InputContentInfo contentInfo = new InputContentInfo(
contentUri,
new ClipDescription(description, new String[]{mimeType}),
linkUrl);
getCurrentInputConnection().commitContent(
inputContentInfo,
InputConnection.INPUT_CONTENT_GRANT_READ_URI_PERMISSION,
null);
[App]
try {
contentInfo.requestPermission();
// Load inputContentInfo.getContentUri() here.
} finally {
contentInfo.releasePermission();
}
This gives us flexibility to let InputConnection#commitContent() do all
the magic for IME developers like other APIs such as
Context#startActivity(), rather than asking them to call one more API to
grant a temporary URI permission like a scenario where
Context#grantUriPermission() is used.
[1]: I2772889ca01f2ecb2cdeed4e04a9319bdf7bc5a6
25e0813e6e
Bug: 29450031
Change-Id: I99536cd58c9984af30b0bafb4a1dd25a26634a2d
Caused by super constructor calling non-final methods
which Toolbar overrides, and then tries to reference
final variables.
BUG: 28806107
Change-Id: Ieaf5f7611dbbf954e49c31e604aa2f7627248615
At the point of showDropDownPosition measure
may have not yet been called and we can't try
and resolve WRAP_CONTENT. ViewRoot will do it for us
and set requestedWidth/Height at an appropriate point.
Bug: 29496188
Change-Id: I99f26612bec800f3e321495b3df3e37b5ffb3152
As shown in below, we have already used commit* naming convention in
InputConnection.
- InputConnection#commitCompletion(CompletionInfo);
- InputConnection#commitCorrection(CorrectionInfo);
- InputConnection#commitText(CharSequence, int);
Hence renaming IC#inputContent() to IC#commitContent() would make the
new method more consistent.
Bug: 29450024
Change-Id: Ica1ba3154795c1bf44e140dfe639b299f83cd8af
For the setClipToScreen case we need constraint to
the available display area, but not to the parent window.
If we don't pass FLAG_LAYOUT_NO_LIMITS, we will be constrained
to the parent window. However when we do pass it, we will
not be constrained to the system insets. So, we can pass
FLAG_LAYOUT_NO_LIMITS and constrain ourselves to the insets
via getWindowVisibleDisplayFrame. We also need to avoid
calling setWidth/Height with these resolved values
so we can preserve the indeterminate values in case
layout changes (e.g. rotation).
Bug: 29166136
Change-Id: I4c7c6204e6bc1cdcf4ad86f7e99e3511d4312ae4
Providing an official protocol for IMEs to insert an image to the
application is something that has been requested from many IME
developers to Android OS. With this CL, IMEs are able to ask
applications to insert a content including image files as follows.
1. An application that opts in to this protocol specifies a list of
supported content MIME types in EditorInfo#contentMimeTypes.
2. When an IME is actively interacting with such an application, the
IME can call InputConnection#insertContent() with a InputContentInfo
that contains content URI, metadata (ClipDescription), and an
optional link URI.
3. The application can read the stream data from the given content URI
to insert the content into somewhere in the application.
Detailed design background can be found in the JavaDoc of
InputConnection#insertContent().
Bug: 22830793
Change-Id: Iaadf934a997ffcd6000a516cc3c1873db56e60ad
This CL fixes a bug in AbsListView where it was not invalidating
children's bounds when AbsListView's bounds change. This was
triggering bugs where if you set padding on a list view, it would
not resize its children.
Bug: 28800232
Change-Id: I81a4e9ea234c395de80efea5ef5e47a71cb95136
am: 92d0316d28
* commit '92d0316d2837baceffb22e1a7eb0e5da50f0a025':
Set StaticLayout.maxLines only when ellipsize is set
Change-Id: I17934afae1d5e8b7fe3b3ad8b4286dd43f68393e
am: 38b5946fae
* commit '38b5946fae50d4e9e8f32c985983d03a4437910d':
Fixed the relative time spoken with accessibility
Change-Id: I51bbe71d2b86cfb8f050882b072092a015573fdb
A partial revert for the CL I5dbc48a6c7f0f4ac4c693d5c95f0a99b989e07f4.
The mentioned CL tried to always set the maxLines attribute of
StaticLayout. However this caused regressions at certain points.
Bug: 28885989
Bug: 28468120
Change-Id: Ic09cb194c8811a06b5d53de50bfb77938b91b88d
The relative time was unclear for certain locales
and even worse 1m was spoken as 1 meter.
Change-Id: Ie172092da27ea8119906b0c301b5569bf3efabbb
Fixes: 28961667
am: e747160509
* commit 'e747160509e71a05430168b1c8a28400b6a18403':
Fix TextView layout reuse when maxLines is set
Change-Id: Iaf30b66b1a328f34d31efe723e394d817f74d65f
When maxLines is set on StaticLayout and the text is wrapped, during
onMeasure TextView couldn’t recognize the wrap in the layout and tried
to reuse the layout which in turn caused width calculation problems.
This CL checks if maxLines is set, and if there is a text cut-off in
order to reuse existing layout.
Bug: 28468120
Change-Id: Ide43df8512a09112715067cbadf29cc64fd53247
am: cfbca5640c
* commit 'cfbca5640ca435e1b501254c9cf8b66746799d7e':
Use ICU's Calendar class in date picker & related classes
Change-Id: Ideb570415bab784778bb12709d04a37ad3c29275
am: 7c8305bcfe
* commit '7c8305bcfeef206e8bd00f20077f8106bb66fa6b':
Use original theme for SuggestsionsPopupWindow
Change-Id: I77ed2205c4dc34786c1b931a00f64187a878395e
When transformation method is set via API, text direction heuristics has
to be reset since for PasswordTransformationMethod it is set to LTR. Not
resetting it causes inconsistencies with the remaining of the TextView.
Bug: 28562779
Change-Id: I225e35e39bde60d4296852ff17b107d5b7b99f8a
am: 0676196be2
* commit '0676196be2657fdf265fa7ad1eae3eecf1bbfebc':
Fixed a bug where the chronometer wasn't updating the time
Change-Id: I16327b27bcfce8eaeb18cbddd420bb134cff1e45