A small optimization to the resource code, to not re-parse the framework
resources every time we build a new AssetManager. Instead, you can now
construct a ResTable from a previously created one... of course, like the
existing code for using the data in-place, you can't delete the original
ResTable until you have deleted the one that has been constructed from it.
Merge commit 'c7396025e59524e7ef639fd86fc23123939ee91c'
* commit 'c7396025e59524e7ef639fd86fc23123939ee91c':
Return CAMERA_ERROR_SERVER_DIED to camera app when camera service dies (bug 1956726)
Merge commit '2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac'
* commit '2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac':
Less logging in some places. More in others.
Merge commit '58ebdcc06eca06741460a7db2be4b79e3865eb88'
* commit '58ebdcc06eca06741460a7db2be4b79e3865eb88':
fix [1947273] the DimLayer causes the whole screen to update during transactions
It turns out this was not a problem in the resource code at all. Rather,
the system process has a cache of pre-loaded attributes it uses to avoid
continually reloading things as it needs them. Well it turns out this
cache wasn't flushed after a package was uninstalled or a configuration
changed, so you could re-install an app where you change its style resources
so its theme now points to one that is inconsistent in the cache.
This is mostly a problem for developers, where they continually install
new versions of an app where resources have changed. This could possibly
show up when updating an app on a normal phone, although the problem would
eventually correct itself since this cache uses weak references.
Anyway, the cache is now reworked to be flushed appropriately.
This change also includes an update to aapt to be able to dump the
contents of bags in resources.
we can't use a texture of 1/4th of the screen for the dim layer, because the mdp internal input resultion is alwyas integers and for very small blits of a couple pixels the scale factor can get way out of range, for instance for a 7 pixels source, the scale factor would be either 7 (7/1) or 3.5 (7/2) instead of 4 (7/1.75). This caused the mdp to fail in some cases and revert to software. we now always use a texture of the actual screen size, so the problem will never happen. This burns 300KB of pmem instead of 21KB. On devices with a larger screen we might want to use a smaller texture and tile it by hand.
Merge commit 'd09f86ce175fad6ddbd446363f327dfa0575a1d2'
* commit 'd09f86ce175fad6ddbd446363f327dfa0575a1d2':
Better (and less) logging from backup.
Add an extra null terminator. String8::unlockBuffer is
Merge commit '72eb0acad5cffc57ce5006f6deab29ee259e461e'
* commit '72eb0acad5cffc57ce5006f6deab29ee259e461e':
Expand support for different screen sizes.
* changes:
Better (and less) logging from backup.
Add an extra null terminator. String8::unlockBuffer is supposed to be doing this, but it's not and I can't figure out why. This makes BackupHelperDispatcher able to read the keys correctly.
Applications can now declare that they support small, normal, or
large screens. Resource selection can also be done based on these
sizes. By default, pre-Donut apps are false for small and large,
and Donut or later apps are assumed to support all sizes. In either
case they can use <supports-screens> in their manifest to declare
what they actually support.
Merge commit 'c44989d6c7bcc761fb37f54fd37aac2070ba8e5e'
* commit 'c44989d6c7bcc761fb37f54fd37aac2070ba8e5e':
move ui/Time.cpp to core/jni, since this is the only place it is used
Merge commit 'df65b60ce33e5a56815864f8f0713e25378fa649'
* commit 'df65b60ce33e5a56815864f8f0713e25378fa649':
Only report "unknown metadata" once per restore helper
Merge commit '54118adb3766fdf73a409102b88d7494bb6889a3'
* commit '54118adb3766fdf73a409102b88d7494bb6889a3':
Put back LOGP -> printf in the backup helper code
Merge commit '3d7b8d1aa6a362292f56defbe8fb2d5653f79282'
* commit '3d7b8d1aa6a362292f56defbe8fb2d5653f79282':
Use a ref-counted callback interface for Camera.
This allows the camera service to hang onto the callback interface
until all callbacks have been processed. This prevents problems
where pending callbacks in binder worker threads are processed
after the Java camera object and its associated native resources
have been released.
Bug 1884362
This change adds a fixed-size metadata block at the head of each file's content
entity. The block is versioned, and fixed-size on the theory that it might be
nice to be able to recover the content (if not the full metadata) of the files
if we're ever confronted with data backed up some hypothetical future helper
that stored expanded metadata.
The net effect is that now on restore, we assign the same access mode to the
file that it originally had when backed up.
Also, some of the code was failing to properly free transient heap-based buffers
when it encountered errors. This has been fixed with the addition of a tiny
stack-based object whose job it is to free() its designated pointer from its
destructor.
Merge commit '11b157790234d3d2f116ce4c7ed1d3d00fb78bc3'
* commit '11b157790234d3d2f116ce4c7ed1d3d00fb78bc3':
Add file mode to the file-backup saved state blobs
This change puts the file's access mode into the saved-state blob used by the
file backup helpers. The tests have been updated for the new blob content
format.
What this change *doesn't* do is actually backup/restore the file mode. This
change is a prerequisite for that, but mode preservation in backup/restore will
require adding metadata to the backup data stream itself, so will be approached
a bit more carefully.
(Also fixed one outright bug in the test program: ReadEntityData() had been
changed to return a ssize_t union of either a byte-count or a negative number
indicating error, but the test program was still assuming that nonzero == error,
and was spuriously failing.)
Merge commit '72be40490951d3f9d0ada16fcf5288d0c3306d88'
* commit '72be40490951d3f9d0ada16fcf5288d0c3306d88':
fix warnings that will show up with GCC 4.4 (in master)
Merge commit '1585bd24c10d16351f89e32dddbfa799f18db6bd'
* commit '1585bd24c10d16351f89e32dddbfa799f18db6bd':
Report densities in badging, debugging for nine patch bug.
The aapt tool now reports all available densities like it already did
for locales. Also this includes more resource data output, which I
was using to examine bug #1867049 (which at this point I am unable to
reproduce).
Merge commit '16ce3504c5bf98d95d5c36001f755bb4b15253c9'
* commit '16ce3504c5bf98d95d5c36001f755bb4b15253c9':
Make RestoreHelper and friends also write out the snapshot state.
Merge commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982'
* commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982':
Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.
In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop
This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.
A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
Merge commit '2fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2'
* commit '2fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2':
Fix some backup reader/writer issues; make local transport do backup
Fix the jni initializer.
Add RestoreFileHelper, BackupDataInput, and add java wrappers for the methods on BackupDataOutput.
Fix bug #1812041: activity manager crash with bad args.
Journal backup requests so that they won't be lost in a crash
Fix data connection issues.
Merge commit '78f0f8cb2efe9410127c39201e240f6d438eb53c'
* commit '78f0f8cb2efe9410127c39201e240f6d438eb53c':
Make the file backup helper not crash if a file you requested
Fix SharedPrefsBackupHelper so it doesn't hard code the paths to the files.
StringArray is used in two places in framework/base and in the Sim. Ideally we should get rid of it and use Vector<String8> instead of creating new code.
Merge commit '2a3188672ab2b65c0ce7c9c598a463e382c47696'
* commit '2a3188672ab2b65c0ce7c9c598a463e382c47696':
rename a few files to camel-case, add copyright notices
now, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).
Merge commit 'b61ae351256518add7bcb40e0bf18337dd87195c'
* commit 'b61ae351256518add7bcb40e0bf18337dd87195c':
log the geomerty of surfaces causing an out of memory in SurfaceFlinger.
Merge commit 'd9cc7659fa9b8544e2a3ca7b7040fbd79afdf7ea'
* commit 'd9cc7659fa9b8544e2a3ca7b7040fbd79afdf7ea':
Fix issue 1883666: Audio coming from the music player stopped suddenly
The problem comes from the code handling the automatic change of audio routing to speaker when notifications are played. The music is also muted while the sound is forced to speaker.
To avoid truncating the end of the notification, a delay is inserted between the end of the notification and the restoration of the audio routing. If a new notification starts during this delay, the current music mute state read and saved before muting music corresponds to the forced mute due to previous notification. When the new notification ends, the mute state restored is muted and music stream stays muted for ever.
The fix consists in reading and saving music mute state only if the audio routing has been restored (check that mForcedRoute is back to 0).
- return "const" objects for overloaded operators to disallow constructs like: (a+b) = c;
- don't return references to non-static members, it's not always safe.
- Point.cpp was empty, so get rid of it
- make sure that all binder Bn classes define a ctor and dtor in their respective library.
This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.
This is also cleaner, should we want these ctor/dtor to do something one day.
- same change as above for some Bp classes and various other non-binder classes
- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.
- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere
- IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16
- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.
The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
This change is the first part of a fix for issue 1846343, :
- Added new enum values for input sources in AudioRecord and MediaRecorder for voice uplink, downlink and uplink+downlink sources.
- renamed streamType to inputSource in all native functions handling audio record.
A second change is required in opencore author driver and android audio input to completely fix the issue.
Added missing include sys/time.h for utimes.
Detects when stat64 uses a timespec for the modif and access times
and work around the missing st_*time_nsec.
Apologies for the whitespace changes, emacs removed them automatically.
Merge commit 'd50a458bb291801ab9fdc119301bc7b84b42a6e3'
* commit 'd50a458bb291801ab9fdc119301bc7b84b42a6e3':
Fix a major bug in Bundle when unparcelling from AIDL.
There was a serious problem in the Bundle(Parcel) and readFromParcel() methods,
where it wasn't doing the copying of the Parcel that Parcel.readBundle() does
and is a basic requirement for it to work correctly.
This re-arranges the code to make all of these functions (hopefully) correct.
Also fix a problem in Parcel where we were not duping fds when copying data from
one Parcel to another.
Merge commit 'e29146158b6048936671decc060d398a68333fc0'
* commit 'e29146158b6048936671decc060d398a68333fc0':
Hook up the backup data writer, and add a utility to read the backup data files.
Merge commit 'a59aba8cd88b8f98fa4de2a903899bc6ac9f73e8'
* commit 'a59aba8cd88b8f98fa4de2a903899bc6ac9f73e8':
Update more references to openInputStream in support classes.
Modify AudioFlinger to use updated openInputStream factory method.
Merge commit 'e85bb9ebcce85b8c7a0e0ccb5116cd25bf684727'
* commit 'e85bb9ebcce85b8c7a0e0ccb5116cd25bf684727':
Add the backup data file writer C++ class.
Merge commit '4535e40544aeb957d44fad75fbe5676effe03689'
* commit '4535e40544aeb957d44fad75fbe5676effe03689':
Implement the C++ class to write the backed up file data.