Bug: 5062011
Previously, each GLES20DisplayList would hold onto an instance of
GLES20RecordingCanvas. In turn, each GLES20RecordingCanvas
held onto an SkWriter with a 16Kb buffer along with several other
objects. With one display list per view and hundreds of views,
the overhead could add up to a few megabytes.
Ensured that the GLES20RecordingCanvas is reset as soon as
the display list has been constructed, thereby promptly freeing
the 16Kb buffer.
Changed GLES20DisplayList so that it acquires a GLES20RecordingCanvas
from a pool as needed and recycles it when done.
Removed some dead code and cruft related to the construction of
GLES20Canvas objects in general. Some code was written with the
assumption that the underlying renderer object could change
behind the scenes or might be lazily constructed, but that isn't
actually the case so we can simplify things.
Removed an unnecessary weak reference from GLES20DisplayList
to the View. It isn't actually used anywhere.
Fixed a bug in GLES20DisplayList where isValid() would return
true while the display list was being recorded. This is incorrect
because the native display list might not actually exist. Worse,
even if the native display list does exist, it is stale and
potentially refers to old Bitmaps that have been GC'd (because the
mBitmaps list was cleared when recording started).
Change-Id: Ib12d5483688cb253478edeb0156d34c476c2566b
invalidations.
This includes expand/collapse state.
Add CollapsibleActionView interface. Views can implement this to have
special behavior when they are presented as an expanding/collapsing
action view. This lets SearchView and others take care of fiddly
behavior (focus stealing; opening the IME) automatically without apps
needing to implement this themselves.
Change-Id: Ibbd1eb5fcf3e3a862419e9344ad50f896bd05e36
Also improve how we handle services, keeping track of whether they showed
UI and if so putting them immediately on the LRU list.
Change-Id: I816834668722fc67071863acdb4a7f427a982a08
To profile the looper, run the following command:
adb shell am profile looper start <process> <file>
adb shell am profile looper stop <process>
Change-Id: I781f156e473d7bdbb6d13aaffeeaae88bc01a69f
bug:5062896
Added features to TileProfiler, updated jni interface to allow querying of
arbitrary log data via strings. Depends on the following webkit change:
https://android-git.corp.google.com/g/#change,122779
For new logging jni interface, and logging of invalidates.
Change-Id: I80ba6702b87e86ec76e5b0eafde45f4ef3a80ad3
When the stack returns an incorrect error code, we were going on
in a loop trying auto pairing. Ideally, the stack shouldn't be returning
this incorrect code, but add a fail safe in the userspace code.
Also cap attempts at 2. There is no point trying more than that.
Change-Id: I5bf3ea871b9c2241ae5ac88e9818c9eb847fac92
Bug: 5002925
White list certain messages that can be handled after WebViewCore
was destroyed (specificially pause/resumeTimers, which are per process)
and reject all other messages. This avoids using the undocumented
removeCallbacksAndMessages(null) trick, as well as makes sure PAUSE_TIMERS
and RESUME_TIMERS are processed in the correct order the correct number
of times.
Change-Id: I8c51172e015f923ffeb0816a8ee2ab63219d0f96
1. Added content description to pretty much all animals
in the zoo including buttons in the navigation bar,
notifications and status icons for battery, signal,
data, etc.
2. Rectored to avoid ovelaying views since they block
touch exploratino. In general overlaying views
cause trouble for touch exploration and accessibility
in general.
3. Avoid sending accessibility events in case the user is
touching outside of the StatauBAr panels to avoid
confusion.
4. Added records to accessibility events in the places where
this would help the presentation. So the event comes from
a given "leaf" view and its predecessor is adding a record
to the event for itself to provide more cotext. It is up
to the accessiiblity service to choose how to present that.
bug:4686943
Change-Id: I1c1bd123d828fb10911bca92130e9a05c1f020b3
1. ActivityChooserModel was delegating the rsponsibility for reading
and persisting data to its clients i.e. ActivityChooserView and
the latter was persisting on detach from window. However, it is
not guaranteed that this callback will be received leading to
lack of presistence sometimes. Now the model is responsible for
loading and persisting thus voiding the posisbility a misbehaved
client to cause data loss.
bug:5061638
Change-Id: Ia2b7bb659f7b9abe8869c94b3eaa726ddd4e4fad
This happened when the popup was larger than the screen because of a very long suggestion.
The text will now be ellipsized with a marquee (better than using 2 lines I believe).
Also removed the up layout that was intended to be used when the popup did not fit vertically.
The popup is moved up instead if needed.
Change-Id: Ie741610e74ade10c691614f1c30d0e17b213c698
Also moved customizable settings into Settings.Secure and
added listeners for setting changes into the state machine.
Change-Id: Ia6859c71f7edae13062685867959adc423af4643
The Autofill server is now configured as a system setting. Add
that setting and a method to be called over JNI from the chrome
stack to retrieve it.
See also external/chromium change I3a22ae42402f52207eee2d0d9df64700cb7c9f45
Bug: 4515820
Change-Id: I0aa85c5bef834b1120baaabdc2dd2e4e607a63b6
(a) Call stop() when we've written less than the
AudioTrack buffer. This forces pending buffers to
get mixed.
(b) Introduce a minimum sleep time to avoid spinlocks
if they system is busy
Change-Id: If70937e8b4e8c5d02d7dadc0d3086f97a10eb7ef