Merge commit 'e32edc614e62ac874a969d3cc6bb1e0c0c3f2607'
* commit 'e32edc614e62ac874a969d3cc6bb1e0c0c3f2607':
Fixes#1884152. This change improves how the opaque property is handled with respect to dividers.
If the list is opaque and its background is not, then we want to fill a solid rect where the dividers should be when they are skipped for non-selectable items. When the list is opaque and the background is also opaque, there is no need to draw something in lieu of the dividers since the background will do it for us.
As reported in http://b/issue?id=1398215 MemoryFile did not
munmap(2) the ashmem region after closing it. This
causes the process to leak virtual address space.
This change fixes the problem by calling munmap(2) in
close(). The unmapping is done by a helper method deactivate().
The change also replaces the use of an int for the
file descriptor with a FileDescriptor object to
make sure that we keep track of when the file descriptor
has been closed. I chose to implement it this way because I
will need decativate() and a FileDescriptor object in an
upcoming change that allows sending MemoryFile file
descriptors between processes.
The change also adds a number of tests for the behavior
of close(). The testCloseRead() and testCloseWrite() fail
with the old MemoryFile implementation, and testCloseLeak()
causes a segfault. They all pass now.
These native methods in android.os.MemoryFile throw IOException but their
Java declarations did not include "throws IOException":
native_open(),native_mmap(),native_read(),native_write(),native_pin()
The MemoryFile(String,int) constructor calls native_open and
native_mmap, but does not declare that it throws IOException. The other
Java methods that call the native methods do actually declare that they
throw IOException.
This means that any code that created memory files could throw
an IOException, without knowing about it.
This changes adds "throws IOException" to the native methods and to
the constructor. The constructor change changes the public API, but
maintains binary compatibility. There is some precedent for making
source incompatible source API changes for this sort of thing
(see https://mondrian.corp.google.com/changelist/124214-p9).
The change also makes the native methods static, which
they seem to have been intended to be, as indicated by the
second parameter to the native implementations being named
"clazz".
This requires changes to the Compatibility Test Suite to catch the exceptions.
This is done in https://android-git.corp.google.com/g/2617
Unfortunately that change must be submitted together with this one in order
not to break the build.
Fixes http://b/issue?id=1881829
Merge commit '607384d45fae5c9c2b21c96e4278665c8d7d3006'
* commit '607384d45fae5c9c2b21c96e4278665c8d7d3006':
Converted the angle of OrientedBoundingBox to degrees
Merge commit 'f6355e24f5382356ea197135fdeff827aabfdb90'
* commit 'f6355e24f5382356ea197135fdeff827aabfdb90':
Motorola additions for CDMA support without CdmaSuppConnTracker
The ContactsContract and SocialContract lived previously in the
com.android.providers.contacts2 package, and could not be accessed by
other packages from there without symlinks, which was getting messy. If
it turns out there was a good reason for having the contracts in that
package we may have to move these back, but for now this seems like the
obvious configuration.
Merge commit '1e2e44e900cb9a25d548e27a20d65292a7f321bc'
* commit '1e2e44e900cb9a25d548e27a20d65292a7f321bc':
Fix wifi multicast API for public use.
Revert "Bug fixes and performance improvements"
Merge commit 'b0ded43d3844d9d97c5d554e8ca4ec3ee2c7bbe1'
* commit 'b0ded43d3844d9d97c5d554e8ca4ec3ee2c7bbe1':
Uninstalls the gestures overlay when the letters recognizer cannot be loaded instead of simply dismissing the popup. This is cleaner and reuses the setGestures() method.
Merge commit '8ae3f6190244156bc6e750680654057bd7816309'
* commit '8ae3f6190244156bc6e750680654057bd7816309':
Fix another crash in Gestures, this one caused by the data file
having the wrong version. I made the loader print a message to
the log for this, and made the calling code disable gestures
for the listview instead of crashing.
Merge commit 'f0e7e4a9461ab3daf57ecfec3d25be583380d0d2'
* commit 'f0e7e4a9461ab3daf57ecfec3d25be583380d0d2':
Cause the icon drawables to animate automatically by calling setVisible
* changes:
Cause the icon drawables to animate automatically by calling setVisible false and then true on the drawables. For an AnimationDrawable, this will trigger the desired behavior of 'automatically' starting the animation, which should have been working to begin with according to the intended design of AnimationDrawable (see http://b/1878430 for my description of my correspondence with Romain). For Donut we'll just do this to work around it, but for a later release we need to decide a better story.
Merge commit 'c0139711b0e4a07ad997fb4130c674ed2d90e2fc'
* commit 'c0139711b0e4a07ad997fb4130c674ed2d90e2fc':
Make android_runtime to not include libemoji but use dlopen() instead.
Merge commit '298784cd8a7ed77923bdb51de38c15e4c246a037'
* commit '298784cd8a7ed77923bdb51de38c15e4c246a037':
This just makes it easier to derive from ApplicationErrorReport.
false and then true on the drawables. For an AnimationDrawable, this will
trigger the desired behavior of 'automatically' starting the animation,
which should have been working to begin with according to the intended
design of AnimationDrawable (see http://b/1878430 for my description of
my correspondence with Romain). For Donut we'll just do this to work
around it, but for a later release we need to decide a better story.
Modeled on blocking java.net.Socket and java.net.ServerSocket library.
Public interface is:
public final class BluetoothSocket implements Closeable {
public static BluetoothSocket createRfcommSocket(String address, int port) throws IOException;
public static BluetoothSocket createInsecureRfcommSocket(String address, int port) throws IOException;
public void connect() throws IOException;
public void close() throws IOException;
public String getAddress();
public InputStream getInputStream() throws IOException;
public OutputStream getOutputStream() throws IOException;
}
public final class BluetoothServerSocket implements Closeable {
public static BluetoothServerSocket listenUsingRfcommOn(int port) throws IOException;
public static BluetoothServerSocket listenUsingUnsecureRfcommOn(int port) throws IOException;
public BluetoothSocket accept() throws IOException;
public BluetoothSocket accept(int timeout) throws IOException;
public void close() throws IOException;
}
Merge commit '2a4daf06fb36ff932f9d52962284ba369cee1ce0'
* commit '2a4daf06fb36ff932f9d52962284ba369cee1ce0':
Activity Manager changes the scheduling group of processes.