The original bitmap factory is mostly done in native and deals
with the normal android Bitmap class which has been replaced
in the layoutlib by a bitmap that is merely a wrapper around
an AWT BufferedImage.
This new BitmapFactory creates the layoutlib version of
Bitmap all in Java.
Change-Id: Ice8b5d19141a9a43f83349c159201bf85604b3b0
Prevents sending out ConnectivityManager broadcasts when the connection
is repeating the same major state. This means continued wifi scanning
does not generate CM broadcasts (though wifi state broadcasts continue).
bug: 2265222
Dr No approval: jsh
Couple of tweak for multi-touch in WebView.
1. If we can't zoom, don't get in multitouch mode.
This avoid the logo in google.com looks fuzzy.
2. Reset mAnchor after sending VIEW_SIZE_CHANGED.
3. Don't call zoom when finishing multitouch unless
zoom is called before.
4. Change the width for nativeSetSize, which was modified
in the last check-in. The new logic should make both
msn.com and news.google.com looks correct.
5. Use the pressure instead of distance/time to filter
out the jitter just before lifting the finger.
Fix http://b/issue?id=2360032
Currently we just handle a simple pinch action. We
will wait for framework support for more complicated
gesture.
When pinch in the webview, zoom level will be changed
on the fly. But we won't re-wrap the text until user
action like double tap, rotate screen.
Double tap will re-layout the page and wrap the text
to the screen width. We try to keep the spot you
tapped at the same place on the screen after relayout.
If the block after relayout fully fit on the current
screen, we will center it for easy reading.
Fix http://b/issue?id=2360032
Move reset of A2DP suspend state from handleSinkStateChange() in BluetoothA2dpService to
BluetoothA2dp.ACTION_SINK_STATE_CHANGED intent receiver in AudioService.
Previous implementation could cause a false reset of suspend state if a new sink attempted to
connect while A2DP was suspended.
New implementation only resets A2DP suspend state when a new sink is actually connected.
The ETC1 compressed texture format is commonly
supported by OpenGL ES 2.0-capable devices.
This change adds a host-only version of the library. It is used by
the etc1tool.
When ContactHeaderWidget.bindFromPhoneNumber is called with a number
that's not in contacts, onQueryComplete takes a path that doesn't hide
fields that don't apply to the current phone number. As a result, the
user sees the new number, but old data from the previous display (such
as the facebook status). With this change, those fields are hidden.
Fixes bug 2336977.
Change-Id: Ib6253c18dc58c3d28b463c87d5d195a84d613600
This provides a quick fix for http://b/2298803 (if the
in-call UI comes up while the user is holding the
windowshade, the shade sticks in place and the display
becomes unresponsive).
Merged from master (I92a824fe).
TODO: safely restore code to animate the shade closed rather
than simply causing it to disappear.
Change-Id: I53dc76fdfe86636f30f37a223a88d27a5766d3eb
Add new config values to AudioSystem::FOR_DOCK force usage to differenciate car and desk docks.
Use a receiver for the sticky Intent.ACTION_DOCK_EVENT in AudioService to detect the type
of dock and select force usage accordingly.
Modified AudioFlinger duplicating output thread so that audio tracks are not mixed until both outputs (A2DP and hardware) have exited standby mode. This avoids to have one output far ahead of the other and audio frames dropped because the compensation mechanism cannot keep up.
Also calculate the maximum wait time in OutputTrack::write() based the on smallest frame count of all output threads instead of the frame count of the thread the OutputTrack is connected to. This avoids starving the thread with the smallest frame count by waiting too long on the other thread.
Since the frame count was reduced on hardware output to reduce latency the difference between A2DP and hardware outputs frame counts had become problematic.
Also increased the number of overflow buffers to cope with bigger timing differences among outputs.
The problem was a black first frame when creating a surface, or a
garbage frame when the surface was resized.
The cause was lack of synchronization between the render thread and the
UI thread. The UI thread would typically return before the render thread
had a chance to draw its first frame.
The fix was to make the UI thread wait until at least one frame had been
rendered by the rendering thread.
The waiting is done in the surfaceChanged method because we know
that surfaceChanged will be called in both the surface created
and surface changed cases.