This introduces basic infrastructure that should allow content
providers holding complex data to perform on-demand conversion
of their data to streams of various types. It is achieved through
two new content provider APIs, one to interrogate the possible
stream MIME types the provider can return, and the other to
request a stream of data in a particular MIME type.
Because implementations of this will often need to do on-demand
data conversion, there is also a utility intoduced in ContentProvider
for subclasses to easily run a function to write data into a
pipe that is read by the client.
This feature is mostly intended for cut and paste and drag and
drop, as the complex data interchange allowing the source and
destination to negotiate data types and copy (possible large)
data between them. However because it is fundamental facility
of ContentProvider, it can be used in other places, such as for
more advanced GET_CONTENT data exchanges.
An example implementation of this would be in ContactsProvider,
which can now provider a data stream when a client opens certain
pieces of it data, to return data as flat text, a vcard, or other
format.
Change-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2
This matches the previous behavior of java.io.File file and directory creation.
BUG: 2898660
Change-Id: Ie8978a3fc44abfd22f8046e66742e715354220a8
Signed-off-by: Mike Lockwood <lockwood@android.com>
This introduces a whole new way to use PreferenceActivity, as
a container for PreferenceFragments that the user can switch
between from a list of headers.
Change-Id: I1c79b7c78b86790dc460a1414a999aba5de80628
Merge commit 'd2165cfce7911dac66d1195ed9123e79b086d22b' into gingerbread-plus-aosp
* commit 'd2165cfce7911dac66d1195ed9123e79b086d22b':
StrictMode: time violations in Binder calls
Merge commit '84c924a6c53cb63ca018013c9fda0077413d0005' into gingerbread-plus-aosp
* commit '84c924a6c53cb63ca018013c9fda0077413d0005':
Replace several IPCThreadState::get() lookups with one.
Merge commit '070433edee72de5fd9b93ddf055f74277f0deff4'
* commit '070433edee72de5fd9b93ddf055f74277f0deff4':
Add a method to let a properly permissioned app directly
Merge commit '76d9bf52f31b8f31f64348b736422861c90ab463' into gingerbread-plus-aosp
* commit '76d9bf52f31b8f31f64348b736422861c90ab463':
Add a method to let a properly permissioned app directly
Merge commit '8c65ee2d509db7dcb50ce4530d52eb5bdca3f917' into gingerbread
* commit '8c65ee2d509db7dcb50ce4530d52eb5bdca3f917':
Add a method to let a properly permissioned app directly
manipulate the user activity timeout. We should come up
with a better API for this, but this is for a last minute
power manager hack to turn off the screen sooner after a
phone call ends.
Change-Id: I76422f952e3e894c90b3311e7d889899c79cbbaa
We can't use Parcel.writeValue() to write the ParcelFileDescriptor, otherwise
it leaks when returning the value to the caller (the flag gets lost). Change
the way DropBoxManager.Entry gets serialized so that it uses a bit of its own
flags value to track whether the data is a byte[] or a ParcelFileDescriptor.
Modify the dropbox unit test to add extensive checking of Entry serialization
and deserialization under various circumstances, and to include a regression
test to ensure that FD leaking doesn't happen.
Bug: 2847738
Change-Id: I4ccd17dd03ffab234340cd359e6f3510fdf81193
Merge commit 'bc4fcec70f841156f5e7fd16224e88cb3d551ca7'
* commit 'bc4fcec70f841156f5e7fd16224e88cb3d551ca7':
Only print out wake locks in the if the wakelock was held.
Merge commit 'c78f9a0e1ba931988144a52c54bc05a7e1521f67'
* commit 'c78f9a0e1ba931988144a52c54bc05a7e1521f67':
COMMENT ONLY change to add some warnings about ParcelFileDescriptor
Merge commit '29e25bd3418b04e395119bf99abe92898830a796' into gingerbread-plus-aosp
* commit '29e25bd3418b04e395119bf99abe92898830a796':
Only print out wake locks in the if the wakelock was held.
Merge commit '3c1363beec9c142c062d8704b8bef4230b42eae5' into gingerbread-plus-aosp
* commit '3c1363beec9c142c062d8704b8bef4230b42eae5':
COMMENT ONLY change to add some warnings about ParcelFileDescriptor
Merge commit '2f0dc6d9f50ceece294e9db393583e655d3bf781' into gingerbread
* commit '2f0dc6d9f50ceece294e9db393583e655d3bf781':
COMMENT ONLY change to add some warnings about ParcelFileDescriptor
Merge commit '527e9c8f0471666b5b1c461f1a8a710192208e70'
* commit '527e9c8f0471666b5b1c461f1a8a710192208e70':
StrictMode: avoid an allocation in common case
* Unhide StorageService class; hide all the USB-related items
* Add application-visible API to StorageManager for OBB files
* Add class for parceling OBB info across binders (ObbInfo)
* Add a JNI glue class to libutils/ObbFile (ObbScanner)
* Add API to MountService to deal with calling into vold and checking
permissions
Change-Id: I33ecf9606b8ff535f3a2ada83931da6bbef41cfd
Make the initialValue() of the ThreadLocal be null, so checking it doesn't
cause one to be created in the case of an RPC call not using StrictMode.
Change-Id: I3ea19ce444a1b3c39a6e53c5cb5d4faf4b07a6c8
Now, when Thread A has a strict mode policy in effect and does a
Binder call to Thread B (most likely in another process), the strict
mode policy is passed along, but with the GATHER penalty bit set which
overrides other policies and instead gathers all offending stack
traces to a threadlocal which are then written back in the Parcel's
reply header.
Change-Id: I7d4497032a0609b37b1a2a15855f5c929ba0584d
This adds the ability to generate a trivial heap dump on demand. If
the appropriate system properties aren't set, the output file will
instead contain instructions for enabling them.
The data returned by get_malloc_leak_info() is processed and written
to the specified file. The output looks something like:
Android Native Heap Dump v1.0
Total memory: 2981301
Allocation records: 2152
z 1 sz 65557 num 1 bt 8010dd78 afd12618 ...
z 1 sz 52008 num 3 bt 8010dd78 afd12618 ...
z 1 sz 24428 num 1 bt 8010dd78 8010de84 ...
...2149 more...
END
(the "..." is actually the remaining entries in the stack backtrace;
I truncated it here)
"z" indicates whether the allocation was made pre- or post-zygote,
"sz" is the size allocated, and "num" is the number of allocations
made of that size with the specified backtrace.
Change-Id: I2d60f07444fce5f7178b3f51c928c8faa0b051bd
This was mostly cloned from the "am profile" implementation. It's
intended to replace the old "kill -10" approach used by "runhat".
We could really use a native heap dump, so I pass a "managed"
flag through that indicates whether we want to dump the native or
managed heap. We don't currently have a native heap dump-to-file
function, so it currently just logs a warning.
(android.ddm.DdmHandleNativeHeap.getLeakInfo is a good start -- it
copies /proc/maps and then calls get_malloc_leak_info to get some
goodies. Needs some formatting to make it human-readable. I didn't
want to cram all that into this change.)
It would be useful if "am" didn't exit until the heap dump operation
completed, but I'm not sure how to do that.
Bug 2759474.
Change-Id: I46bc98067738d8c72ac0fc10002ca67bb4929271
The guard is compiled out by default because it adds overhead to
android.os.Process.setPriority().
Change-Id: Ibb2a648c6349b381abb7ae62a358888b04fba871
Added ANRs handling.
Added event injection.
Fixed a NPE ActivityManagerServer writing ANRs to the drop box.
Fixed HOME key interception.
Fixed trackball reporting.
Fixed pointer rotation in landscape mode.
Change-Id: I50340f559f22899ab924e220a78119ffc79469b7