Commit Graph

6230 Commits

Author SHA1 Message Date
Yohei Yukawa
64177e51e4 Merge "Ensure PopupDecorView is not IME-focusable during exit transition." into nyc-dev 2016-03-07 17:47:48 +00:00
Yohei Yukawa
dbd299de2a Ensure PopupDecorView is not IME-focusable during exit transition.
Currently PopupDecorView temporarily gets FLAG_NOT_FOCUSABLE bit during
exit transition.  When doing this we it is important that PopupDecorView
does not have FLAG_ALT_FOCUSABLE_IM bit, because having both
FLAG_NOT_FOCUSABLE and FLAG_ALT_FOCUSABLE_IM means that PopupDecorView
is IME-focusable.

To prevent IMEs from flickering, this CL ensures that PopupDecorView is
not IME-focusable during exit transition.

Bug: 27396330
Change-Id: I0cc81791b826f7d4257f0b6085c028c796fd9536
2016-03-06 22:27:40 -08:00
Keisuke Kuroyanagi
15ae7c1328 Merge "Try to find equivalent SuggestionsSpan when it has been updated." into nyc-dev 2016-03-07 02:48:17 +00:00
Adam Powell
92e84089c4 Merge "Stop ProgressBar animations when not visible" into nyc-dev 2016-03-04 19:27:17 +00:00
Adam Powell
c1bba9b9f8 Stop ProgressBar animations when not visible
Propagate setVisible calls to current drawable. Take window visibility
into account when determining drawable visibility.

Bug 27461595

Change-Id: Ia1de1d1686f26c2cf27630c5bde70f23c2c332bd
2016-03-04 10:15:35 -08:00
Keisuke Kuroyanagi
bd4b217a28 Merge "Refresh action mode always when selection is modified." into nyc-dev 2016-03-04 00:53:59 +00:00
Keisuke Kuroyanagi
c1cd17f918 Merge "Supress SuggestionPopup for original field." into nyc-dev 2016-03-03 23:34:51 +00:00
Seigo Nonaka
71208d6f7b Merge "Fix unexpected ellipsize for long suggestion text." into nyc-dev 2016-03-03 20:20:45 +00:00
Siyamed Sinir
1ca7c80844 Merge "TextView should fade edges according to text." into nyc-dev 2016-03-03 18:43:23 +00:00
Siyamed Sinir
192d3bdaaf Update EditText.setEllipsize JavaDoc
Update EditText.setEllipsize JavaDoc to describe that MARQUEE is not
supported by EditText.

Bug: 26219977
Change-Id: Ibe709f3470a749c0fbb672c8ec33f0835c5d90ec
2016-03-02 14:11:56 -08:00
Yigit Boyar
5ae74b7fa6 Merge "Check if item is selectable before calling on click" into nyc-dev 2016-03-02 00:36:50 +00:00
Yigit Boyar
418d0cf5c9 Check if item is selectable before calling on click
This CL fixes a bug in ListView where it might call onClick on an
un-clickable if a new touch arrives before up timeout.

We could actually consider making child position non-changable
but that will change behavior. This seems safer approach.

Bug: 27198796
Change-Id: I7b15d04efa19d1d760a294bd027f3da3aaa3a445
2016-03-01 16:09:58 -08:00
Alan Viverette
90ed1eca3e Merge "Use Holo date/time picker layouts on very small screens" into nyc-dev 2016-03-01 23:13:43 +00:00
Alan Viverette
6b3f85f87e Use Holo date/time picker layouts on very small screens
If the screen is smaller than "small" then use the Holo picker layouts.
Unifies the SavedState between delegates so that we can seamlessly
transition between them during configuration changes. Pushes the
DatePickerSpinnerDelegate up to the same level as the calendar delegate.

Bug: 27239893
Change-Id: Ida4dc2748d38bd766ae93d12aef15e963921939c
2016-03-01 16:48:04 -05:00
Andreas Gampe
4f655de3de Merge "Frameworks/base: Refactor TextView initialization" into nyc-dev 2016-03-01 18:38:09 +00:00
Seigo Nonaka
f47976e7b4 Fix unexpected ellipsize for long suggestion text.
Unexpected ellipsize issue happens after
Ic8445022634e9130f9462e02bfb08d4877396ba3. By setting match_parent to
ListView, the ListView does not expand to fit the suggestion item.

Thus, explicitly setting the ListView width instead of setting
match_parent or wrap_content.

I manually verified this CL does not revive Issue 27341560 or
unexpected ellipsize for shorter text.

Bug: 27341560
Change-Id: I69b258687b4bf5510d9b2c3e690c88106bf893f5
2016-03-01 17:24:07 +00:00
Jorim Jaggi
8175846ed6 Fix popup window calculation for multi-window
If ignoreBottomDecorations=true, the display size was extracted from
the resources. However, this didn't work if the parent window was in
multi-window, as all the calculations went wrong. Instead, introduce
View.getWindowDisplayFrame which returns the "full" frame of the task
the window is currently in, without any insets, and use that to
calculate the bottom edge.

Bug: 26255254
Change-Id: I8b235b335775022ae399ee082d1200aa76cc047c
2016-03-01 09:00:29 +00:00
Keisuke Kuroyanagi
d319450307 Try to find equivalent SuggestionsSpan when it has been updated.
Suggestion pickup was canceled when SuggestionsSpan corresponding
to the suggestion cannot be found.
This was a problem when suggestion is selected in extracted mode.
Selection is cleared just before creating SuggestionsPopup.
The selection update is reported to the original EditText and it
will invoke TextView#setExtractedText of the extracted one.
In this method, SuggestionSpans are replaced with the new
SuggestionSpans that usually have the same contents as the old
SuggestionSpans.

This CL re-enables "Replace" item in extracted mode.

Bug: 22038802

Change-Id: I74bb813b110fb2f633b8578790d14039755f2d79
2016-02-29 16:41:46 -08:00
Keisuke Kuroyanagi
bec9715905 Refresh action mode always when selection is modified.
Text action mode was not correctly updated when the selection
is modified by keyboard, app or IME.
With this CL, Editor#refreshTextActionMode is called always when
selection is updated. This method properly starts, stops or
invalidates text action mode if selection was modified outside of
cursor controllers.

Bug: 10527362
Bug: 22937774

Change-Id: Ic025c109539c3b59638226be4c4c9adf5ea0c38c
2016-02-29 16:41:46 -08:00
Keisuke Kuroyanagi
4a696ac7ca Supress SuggestionPopup for original field.
Previously, popup window or insertion handle could be shouwn at
a strange position as they could be shown for the original input
field in full screen extracted mode.
This CL stops showing SuggestionPopup for the original input field
in full screen extracted mode.

Bug: 22038802
Bug: 27313458
Change-Id: I585913328182d996f0201c53c028a1991f7b435b
2016-02-29 16:41:38 -08:00
Andreas Gampe
ddc1397eba Frameworks/base: Refactor TextView initialization
To allow static initialization of a number of View classes based
on TextView, refactor the initialization of the font cache to be
explicit from the zygote.

Bug: 27265238
Change-Id: I1b71086d3f49d8b3e72eea2bf8359351d25fc0fd
2016-02-29 11:13:01 -08:00
Aurimas Liutikas
7849a3d785 Fix crash when restoring SearchView.
I forgot to include Parcelable.Creator when I added SearchView
iconified state saving.

Bug: 27357167
Change-Id: Ia96490aa9c12c4042f50ba4b1aeb7422b37a1d4c
2016-02-26 15:27:31 -08:00
Selim Cinek
a94742c7f9 Merge "Added convenience methods to use chronometer countdown methods" into nyc-dev 2016-02-26 19:05:04 +00:00
Siyamed Sinir
c066127526 TextView should fade edges according to text.
TextView should decide which edge to fade by checking if and where the
text is cut. This CL updates fading edge strength related functions
accordingly.

Bug: 10918591
Change-Id: I57aa964cfbbb44289c52eea99c05c77750dce1cd
2016-02-25 16:53:58 -08:00
Selim Cinek
81c23aac78 Added convenience methods to use chronometer countdown methods
Bug: 27343480
Change-Id: Iea4d0259ba8c3ab91fec5ee04ea4b39e5dd988bf
2016-02-25 16:23:13 -08:00
Alan Viverette
7970894a9c Revert "Fix exit transition and dismiss callback for popup exit transition"
This reverts most of commit 21d361806c, which
broke too many expectations in both apps and framework widgets. We need to
find a safer way to handle the exit transition callback.

Bug: 27359366
Bug: 27353218
Change-Id: I769ac7a25cb900c50e857839ca0563fbc5a3cb16
2016-02-25 16:57:08 -05:00
Sunny Goyal
c1a3181d8d Merge "Fixing the parent check loop to allow RemoteViewsFrameLayout" into nyc-dev 2016-02-25 18:10:38 +00:00
Sunny Goyal
b880d167a6 Fixing the parent check loop to allow RemoteViewsFrameLayout
Bug: 27328093
Change-Id: I0f6ae8e95f952d40589eafb912ba188d15d7624c
2016-02-25 09:07:37 -08:00
Seigo Nonaka
6d2b3ac67c Merge "Show selection handles at the correct position for view transformation" into nyc-dev 2016-02-25 05:59:19 +00:00
Alan Viverette
5249bd296d Merge "Fix exit transition and dismiss callback for popup exit transition" into nyc-dev 2016-02-24 23:22:21 +00:00
Alan Viverette
21d361806c Fix exit transition and dismiss callback for popup exit transition
We should run the transition only when the anchor root IS attached,
and we should only call the dismiss callback when the animation has
completed and the window has been removed.

Bug: 25323707
Bug: 26647820
Change-Id: I2bcdc901885d4c0a6c48c2b2c949797def1d7512
2016-02-24 15:34:11 -05:00
Adrian Roos
5dd685f24c Fix broken remote inputs
Bug: 22452379
Change-Id: Ibcf0cf23e9f163b37270d42629de01083e12643c
2016-02-24 12:05:51 -08:00
Seigo Nonaka
2f229ca27b Show selection handles at the correct position for view transformation
The selection handles are implemented based on PopupWindow hence it is
necessary to calculate the transformed location from the TextView's
local coordinates.

This CL only addresses the selection handle locations. Many
functionalities (e.g. selection handle moving direction, handle angle)
doesn't work on transformed view since many components are calculated
on the TextView's local coordinates.

Bug: 24902578
Change-Id: Iaa5fd2812969d097e3bf3219a818ffbc67aaef54
2016-02-24 12:56:36 +09:00
Selim Cinek
ed1a33cc86 Made the Chronometer able to count downwards
Bug: 26862188
Change-Id: I3a4a34ffccdbcbcb8001b1894ce47bb75b11821d
2016-02-22 15:56:56 -08:00
Keisuke Kuroyanagi
f2629d481e Merge "Make drag shadow grapheme cluster aware." into nyc-dev 2016-02-22 19:40:13 +00:00
Keisuke Kuroyanagi
5396d7eb13 Make drag shadow grapheme cluster aware.
[start, min(end, DRAG_SHADOW_MAX_TEXT_LENGTH)) was used to make drag
shadow. It ignores grapheme cluster, so unexpected shadow was created for
characters that contain multiple code units.

Bug: 23097276
Change-Id: Ic7d34ec02ea04a3f17337e4253babac87ef3b03c
2016-02-22 19:37:26 +00:00
Chris Banes
6cb9b20b7b Fix rounding error in SeekBar tickmark drawing
There are instances where an int calculation would result
in a loss of precision and rounding error. Fixed by
using a float instead.

Change-Id: I595872f00552a7fd717a1754c1d8f5a50d776621
2016-02-22 16:13:26 +00:00
Yohei Yukawa
116d872d9c Merge "Introduce InputConnection#getHandler()." into nyc-dev 2016-02-19 02:36:50 +00:00
Deepanshu Gupta
491523d52c LayoutLib fixes for N
Moves LayoutLib to Java 8 - YAY!
Fix delegates

Change-Id: I098996e43e330e995d33f12df1c16355bbc02f0f
2016-02-18 02:10:24 +00:00
Sunny Goyal
a086f0436a Using AppWidgetHostView in RemoteViewsAdapter instead of managing the RemoteViews inflation itself
Change-Id: If6dd8a778096a07c58b543efe892bbffbe24098f
(cherry picked from commit 89699a2811)
2016-02-17 18:08:46 +00:00
Sunny Goyal
4ea5484266 Changing hashmaps to sparseArrays and other similar conversions
Change-Id: I1905120a2dc109e8f383b973e599e2c23e005d0e
(cherry picked from commit c7ccff4b20)
2016-02-17 18:07:40 +00:00
Siyamed Sinir
afe3cd1aaf Merge "Ellipsized and Non-ellipsized baselines should be same." into nyc-dev 2016-02-16 22:37:54 +00:00
Siyamed Sinir
715589fb46 Ellipsized and Non-ellipsized baselines should be same.
This CL make sure that ellipsized and non-ellipsized text have the
same baseline.
- TextView did not set the maxLines for StaticLayout when ellipsized
is false. This resulted in height and baseline calculation
discrepancies between ellipsized and non-ellipsized TextViews using
StaticLayout.
- For single line TextViews when a text is not ellipsized
BoringLayout is used, and when text is ellipsized StaticLayout is
used. Because of the bottom padding added to the last line of
StaticLayout, those two did not have the same baseline.

Bug: 18864800
Change-Id: I5dbc48a6c7f0f4ac4c693d5c95f0a99b989e07f4
2016-02-12 18:23:37 -08:00
Yohei Yukawa
612cce92ad Introduce InputConnection#getHandler().
Currently there is an internal hidden class named
ControlledInputConnectionWrapper which works as a proxy in the
application process to receive incoming binder calls from input method
and dispatch those method calls again on an appropriate thread.
Although this is a kind of implementation details, basically you can see
the same design everywhere in the Android.

Currently ControlledInputConnectionWrapper is initialized with
view.getHandler(), where the view here is the View which was used to
call View#onCreateInputConnection().  This is actually a reasonable
behavior because we have generally assumed that there the only
reasonable way to implement InputConnection is to extend
BaseInputConnection, which is designed to be able to work only on the
UI-thread associated with the target view.

However, on Android N and onward, we are going to ensure that
BaseInputConnection can be re-implemented on top of public APIs [1].
Although most of applications should not try to do that, for certain
applications such as web browsers and WebView it may make sense to let
custom InputConnection implementation run with a custom Handler so that
the application can respond to the IME without blocking the UI thread.

To do that, this CL introduces a new method
InputConnection#getHandler(), which changes nothing as long as it
returns null, but if it returns non-null Handler, InputMethodManager
will use it to initialize ControlledInputConnectionWrapper.

Note that InputConnection#getHandler() is not for IME developers.
It just returns null when called in the IME process.

 [1] See Bug 24688781 for details.

Bug: 26945674
Change-Id: Id9e579bb3e2966986cdcb1c34bc8cacfeca2e1a9
2016-02-11 17:47:33 -08:00
Aurimas Liutikas
13fdea05b3 Start saving iconified state of SearchView.
Bug: 27113484
Change-Id: Ifbde47c9af7c5460390e278a5af674f0c8654c2a
2016-02-11 18:13:11 +00:00
Adrian Roos
9b123cf9bb Make actions extend over the whole action rail
Bug: 26767249
Change-Id: I3c67f1de40b218aa21f0a1f68bda1032c0804a14
2016-02-10 18:39:40 +00:00
Siyamed Sinir
f4aa7d2e8a Merge "Clamp EditText cursor in the drawable boundaries." into nyc-dev 2016-02-08 23:16:49 +00:00
Siyamed Sinir
217c0f71df Clamp EditText cursor in the drawable boundaries.
EditText tried to draw outside of the padding boundaries because of a
cursor positioning issue in RTL. This CL removes that fix and instead
clamps the cursor position if cursor is outside of the clipped view
boundary.

Bug: 23397961
Change-Id: Id5f1fbe2a0f571100c89b21758fbb81b14d5da57
2016-02-08 22:41:26 +00:00
Siyamed Sinir
027711904b Do not save TextView text when freezesText is false
Currently TextView state is saved whenever selection is set even if
freezesText is false. This causes inconsistencies with the described
behavior for the attribute. This CL updates the behavior as:
- Always save the text for EditText
- Always save the selection if there are any.
- Do not save the text for TextView if freezesText is false.
- During onRestoreInstanceState if selection is out of the text
  boundaries, do not restore the selection.

Bug: 22076905
Change-Id: I5e05d343e752a7d106c8881993e4d95ae21a38ce
(cherry picked from commit 8535836673)
2016-02-08 22:23:25 +00:00
Adam Powell
2af189a0a7 Preserve compatibility for ViewGroup#showContextMenuForChild
Have the new showContextMenuForChild(View, float, float) call through
to the old showContextMenuForChild(View) before recursing up to its
parent. This ensures that existing apps with custom views that
override the old method still get called as expected if they implement
custom behavior.

Unlike some other similar circumstances we aren't implementing this to
be bidirectional as the new behavior doesn't need to be triggered by
invoking the old. If the older method is invoked explicitly we will
still show old-style dialog context menus instead of the newer popup
style since we won't have a good place to visually anchor a popup.

Bug 26919262

Change-Id: Ie09f922d322b5a24789c7867820c4bc43824c385
(cherry picked from commit 759a4c5400)
2016-02-08 18:59:28 +00:00