The bug (1947162) is caused by the fact that sometimes, surfaceChanged() is called after onCompletion().
In surfaceChanged(), start() is called automatically. The fix is to use a flag is avoid calling start()
when onCompletion() has been called already.
Merge commit '1f2bb46b9a2762a6f57ca8801d91e9dee002158f'
* commit '1f2bb46b9a2762a6f57ca8801d91e9dee002158f':
Migrate to new keystore with the CertTool lib.
Merge commit '3383df385e208807b1dc5f2956f82a7f75f65fd8'
* commit '3383df385e208807b1dc5f2956f82a7f75f65fd8':
keystore: Provide a generic getter for native components.
Merge commit '2f97e984b52b243a5433596c8c291f35778d6b38'
* commit '2f97e984b52b243a5433596c8c291f35778d6b38':
Make backup agent run in the system process as well.
Merge commit 'e15df4017c3625de700e9f9953073f38898bbc89'
* commit 'e15df4017c3625de700e9f9953073f38898bbc89':
If we can't get the restore set's metadata, don't continue
Merge commit 'fe11ea5e2df4a4414aa266e93179c3098b03a795'
* commit 'fe11ea5e2df4a4414aa266e93179c3098b03a795':
Use 'LOCAL_PATH' instead of 'local_path', so it's easier to see a diff of the two .mk files.
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.
Add the ViewManager class to handle child views within a WebView. This class
attaches and removes the views in the UI thread. It also scales the layout
params based on the scale of the WebView.
Merge commit '9701b3d594868bd6750d5887af560c6295ea091b'
* commit '9701b3d594868bd6750d5887af560c6295ea091b':
Remove the constraint to assign new uid when code path changes for system packages
Merge commit '4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14'
* commit '4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14':
Clean up the last two literal permission string usages
Merge commit 'a642e313988ec7f9e732ead00edbded8b57d7452'
* commit 'a642e313988ec7f9e732ead00edbded8b57d7452':
Adding strings for data root and data files - these are needed
Merge commit 'c7396025e59524e7ef639fd86fc23123939ee91c'
* commit 'c7396025e59524e7ef639fd86fc23123939ee91c':
Return CAMERA_ERROR_SERVER_DIED to camera app when camera service dies (bug 1956726)
is OK, because existing app will have the old value compiled in
as a literal, and so will continue to (not) work in the same
way as before. Add code to media key generator to give a leading
ascii \001 the special meaning of "sort first".
Merge commit '3bc64a2cb97da7bf7dc203416ad6c7d86c5925fc'
* commit '3bc64a2cb97da7bf7dc203416ad6c7d86c5925fc':
WifiManager: Limit the number of WifiLocks that can be active simultaneously.
There are 2 types of vibrations: simple and repeated. Simple vibrations run for
a given length of time while repeated patterns run until canceled or the calling
process dies.
If a vibration is currently running and another request is issued, the newer
request always takes precedence unless the current vibration is a simple one and
the time left is longer than the new request.
If a repeating vibration is running and a new request overrides that vibration,
the current vibration is pushed onto a stack. Once the new vibration completes,
the previous vibration resumes. IBinder tokens are used to identify Vibration
requests which means that multiple calls to Vibrator.vibrate with the same
Vibrator object will override previous vibrations on that object.
1. the certtool.h is modified for avoiding the side effect,
for saving the configuration with wpa_supplicant.
2. put the loadLibrary back in CertTool.java
3. Fix incorrect JNI declarations.