Bug 3416154
The origin of the problem is new display optimisations that enable
a scrollView to be scrolled without calling the onDraw method of its
children. As a result, the handles' positions were not updated on scroll.
DropDown popup menu have an integrated scroll listener that will fix the
problem. Using these indead is the first part of the solution.
The next problem is that when they get hidden, these popups try to move their
parent (the TextView in our case) which creates a scroll conflict. Fixed by
overriding findDropDownPosition.
Finally, when the handles get invisible, a new scroll listener has to be
installed that will show them back in case the view is scrolled back.
This is also an important step to fix Bug 3441308 (selectable text in list
views).
Debugging find outs:
Small optimization in PopupWindow to avoir unregistering then registering
back the listener when it is updated.
getHandle().show(); is not needed since updatePosition will do it through
moveTo().
Change-Id: I6bf6a3649538328257734ed1e651b23b889d65d9
Map the nav slop from device dimensions to content dimensions
so that the nav slop is not scaled when the screen is zoomed.
bug:3465598
Change-Id: I764e7d0ef59107f3f8b3781744df532dd45005b6
Send the LayerAndroid unique id and the current scroll rect during motion up
events and all touch events.
Bug: 3442108
Change-Id: I09a18ded7b7ce15984f61a329b2666f7cfadd0dc
Added support for tracking the mouse position even when the mouse button
is not pressed. To avoid confusing existing applications, mouse movements
are reported using the new ACTION_HOVER_MOVE action when the mouse button
is not pressed.
Added some more plumbing for the scroll wheel axes. The values are
reported to Views but they are not yet handled by the framework.
Change-Id: I1706be850d25cf34e5adf880bbed5cc3265cf4b1
Added API on InputDevice to query the set of axes available.
Added API on KeyEvent and MotionEvent to convert keycodes and axes
to symbolic name strings for diagnostic purposes.
Added API on KeyEvent to query if a given key code is a gamepad button.
Added a new "axis" element to key layout files to specify the
mapping between raw absolute axis values and motion axis ids.
Expanded the axis bitfield to 64bits to allow for future growth.
Modified the Makefile for keyboard prebuilts to run the keymap
validation tool during the build.
Added layouts for two game controllers.
Added default actions for game pad button keys.
Added more tests.
Fixed a bunch of bugs.
Change-Id: I73f9166c3b3c5bcf4970845b58088ad467525525
Bug 3422121
With ellipsize, lines starting with a very long word that does not
fit inside the width were simply ignored. Cut the long word instead.
start - widthStart index offset shift in BiDi.
The original ellipsize-end patch that added '...' after the last
word on end-ellipsized lines has been punted in favor of a true
ellipsize support in I.
I believe the StaticLayout calculateEllipsise is a no-op since textwidth <= avail
by construction: fitWidth and okwidth are < outerWidth. The only exception is the
paraEnd != here case in generate (when not a single character fits in width).
This case is exercised by StaticLayoutTest in cts (width of 8 pixels) and revealed
an offset error in widstart.
All in all, it looks like this code was probably never really tested. I tried some
typical text configuration to make sure these changes improved the situation.
Change-Id: Ibee410bd7db453abf93e10e8beb844eae998922c
Bug 3436027
A movement has to happen recently, and there has to have been a stable
period before this.
Also fixes a problem with the paste popup that could be displayed for very
fast motion since it was only based on time and not on distance.
Change-Id: I02264b4d54e4d1323ebc2d1b5102769ba2d8569a
Bug 3394800
A previous fix called cancel when the window was detached. The cancel/uncancel
mechanism does not actually removes the Blink runnable.
It is indeed more a suspend, which is used when the window loses focus.
The problem here was that uncancel was never called.
Removing the runnable callback instead.
Also rationalized the use of makeBlink and the setting of mShowCursor
Change-Id: I92aac43a891991b7cc98738de0f12332ab16907a
iCalendar RFC http://www.ietf.org/rfc/rfc2445.txt says:
4.1.1 List and Field Separators
Property parameters with values containing a COLON, a SEMICOLON or a
COMMA character MUST be placed in quoted text.
So we must be able to support this.
Bug: 3463510
Change-Id: Ie0463fdc2d5cbc340801cc8cc5b4f00e374f2954
The timers to initiate short press and long press shouldn't
be started if text is selected. Since these presses won't
provide any feedback (e.g., the context menu doesn't show
up), with them disabled, the long press can turn into a
drag.
bug:3440375
Change-Id: I019796334a8f3090922747ae3c9e21d3b87b4a3c