When using aapt dump xmltree to dump an XML which has a content element with newlines, the output contains a
newline. This makes it very difficult, sometimes impossible, to understand what is part of the content, and
what is the meta-data.
We now pass XML content through the same normalizer used for other tags.
Change-Id: I327321520fac563eb32aecaf796f2473866697fc
When an error in fetching a column occurs in your suggestions cursor
adapter this will ensure the stacktrace is logged to provide more
context about what failed.
Change-Id: Iafe4918caebb9b0fb712b758b2d3ace329fd2512
Usage: layoutlib_create --list-deps /path/to/layoutlib.jar
Prints:
- all classes found in the Jar and the types they use (the dependencies).
- all the dependencies missing from the Jar and what uses them.
Change-Id: I8b2674df127e1494feed7a653282e88e4d2f5494
This avoids issues with the encoder's own definition of __inline,
which conflicts with headers brought in by string.h in glibc.
Change-Id: I9e3fbf8d892529940ea67a46e67a9abe71d9c5fa
Introduced system property "mobiledata", which will be
used for default behavior of the mobile data connection
either on/off.
This is analog to how the setting for "dataroaming" is
handeled.
Change-Id: Ifae8822dedfa55a515671014e2e29d43c469e701
How to reproduce:
1) Lock the screen.
2) Open the Phone options menu by long pressing the power
button.
3) Tap "Power off" to display the confirmation dialog.
4) Repeat step 2 and 3 a few times (without closing the
confirmation dialog.
Each time the confirmation dialog is displayed, a new
instance is created. A stack of confirmation dialogs are
created on the screen.
This is fixed by making sure the previous dialog is
dismissed before launching a new dialog.
Change-Id: I6b6c61ccc56364b66eed3528019f761e75bbe268
If an activity has bound servicesor content providers,
updateLruProcessInternalLocked will be called recursively with
the oomAdj flag set, resulting in several recalculations of oomAdj
with unchanged data. Doing it at the end of the top level call to
updateLruProcessInternalLocked should be sufficient.
Change-Id: I95e27011e1d3519f256a9bd756cbb18d43e8db29
There was an earlier fix for a case where the binder
heap would run out of space when calling the
getInstalledPackages. This could happen when there were
a lot of installed packages.
This change adds some test cases to verify that fix.
Change-Id: I8e0c5f674bf2098adcff6d40893f94162961031f
With SDK 10.6 without _DARWIN_UNLIMITED_STREAMS aapt sometimes fails
right away with the error "Too many open files" when calling fopen().
Change-Id: Ifa7bd8a9530d706aa47f98be8186f1aefe943d76
When the app_process is shutting down the main thread will close the
binder fd while pool threads are executing an ioctl (in
IPCThreadState::stopProcess called by AppRuntime::onStarted in
app_main.c).
The binder driver will then return all pending calls in ioctl
without any error and with a command. One of the threads gets a
BR_SPAWN_LOOPER which will create a new thread (the other thread
gets a BR_NOOP). This new thread then calls
vm->AttachCurrentThread. Usually this results in a log entry with
"AndroidRuntime: NOTE: attach of thread 'Binder Thread #3' failed",
but sometimes it also causes a SIGSEGV. This depends on the timing
between the new thread an the main thread that calls DestroyJavaVM
(in AndroidRuntime::start).
If IPCThreadState.cpp is compiled with "#define LOG_NDEBUG 0" the
pool thread will loop and hit the
ALOG_ASSERT(mProcess->mDriverFD >= 0) in
IPCThreadState::talkWithDriver.
Crashes like this has been seen when running the am command and
other commands that use the app_process.
This fix makes sure that any command that is received when the driver
fd is closed are ignored and IPCThreadState::talkWithDriver instead
returns an error which will cause the pool thread to exit and detach
itself from the vm. A check to avoid calling ioctl to a fd with -1
was also added in IPCThreadState::threadDestructor.
Another solution might be to change the binder driver so that it
returns an error when the fd is closed (or atleast not a
BR_SPAWN_LOOPER command). It might also be possible to call exit(0)
which is done when System.exit(0) is called from java.
Change-Id: I3d1f0ff64896c44be2a5994b3a90f7a06d27f429
This change makes it possible for a view to supply a different rectangle than
the drawing rect to be used by the FocusFinder when finding a new view to give
focus to. This is useful if e.g. the total view area is larger than the
interactive area of the view.
The default implementation of getFocusRect() will return getDrawingRect().
The existing behaviour is only changed if getFocusRect() is overridden by a
subclass of android.view.View
Change-Id: I52dd95c6fa296b744e354217051dcec1bb3c8e92