Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.
Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
This allows us to avoid exposing the file descriptor of
the event queue; instead, you attach an event queue to
a looper. This will also should allow native apps to be
written without the need for a separate thread, by attaching
the event queue to the main thread's looper and scheduling
their own messages there.
Change-Id: I38489282635895ae2cbfacb88599c1b1cad9b239
Merge commit '5219a82f9d64a7d13401dcf9a0703a0ca2cd842d'
* commit '5219a82f9d64a7d13401dcf9a0703a0ca2cd842d':
Fix a bug that prevented the creation of EGL shared contexts.
Merge commit '8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d' into gingerbread-plus-aosp
* commit '8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d':
Fix a bug that prevented the creation of EGL shared contexts.
Merge commit 'c4be155a540695c42bcd6589604f86d300f4548f'
* commit 'c4be155a540695c42bcd6589604f86d300f4548f':
Add an option to ALooper::start that allows it to call back into java or not.
Merge commit '2cfd8198cc4e1dcdcae52ae8a0c86b871c87a27e' into gingerbread-plus-aosp
* commit '2cfd8198cc4e1dcdcae52ae8a0c86b871c87a27e':
Add an option to ALooper::start that allows it to call back into java or not.
Merge commit 'd15d0e9fd33109f60bd30b26bae782f2fe5531a4'
* commit 'd15d0e9fd33109f60bd30b26bae782f2fe5531a4':
Flush binder buffer after setting raw heap to avoid leaking a reference.
Merge commit '3ef6ebe874022c4ec8fbb00067833a6f636c1e2f' into gingerbread-plus-aosp
* commit '3ef6ebe874022c4ec8fbb00067833a6f636c1e2f':
Flush binder buffer after setting raw heap to avoid leaking a reference.
Merge commit '7df7447112371fb5e46f6084b55ac2ccdfde139d' into gingerbread
* commit '7df7447112371fb5e46f6084b55ac2ccdfde139d':
Flush binder buffer after setting raw heap to avoid leaking a reference.
The problem was:
1. In handleShutter(), thread A in CameraService calls
registerBuffers(IMemoryHeap) and it's received by thread B
in system_server. [transaction 1]
2. While thread A is waiting for the reply, thread B calls
back to thread A to get the id of the heap
(IMemoryHeap.getHeapID). [transaction 2]
3. Thread A replies transaction 2 and is preemptied in kernel.
Thread B gets the reply and finishes registerBuffers and send
reply for transaction 1.
4. When thread A runs again, it gets the reply for transaction 1
and returns to handleShutter().
5. At this point the transaction buffer for transaction 2 (which
holds a reference to IMemoryHeap) is not freed because the
BC_FREE_BUFFER command is kept in thread A's local command
queue and not sent to the kernel.
6. Normally when thread A makes next transaction, the
BC_FREE_BUFFER command will be sent together (piggyback) with
the commands for that transaction. But in this case thread A
is a callback thread from camera driver, so it does not make
any binder calls afterwards, and the IMemoryHeap is never freed
(until the next time handleShutter is called).
Change-Id: I435a258187509bdbbaf353339eb9ea577610cbd2
Merge commit '5c57e03d3dbd474deb73f51b564c4fb929a2a816'
* commit '5c57e03d3dbd474deb73f51b564c4fb929a2a816':
Log full exception when failing to inflate notification view
Merge commit '6ffd9ff07733a855daeda75416cea88e7456e9d6' into gingerbread-plus-aosp
* commit '6ffd9ff07733a855daeda75416cea88e7456e9d6':
Log full exception when failing to inflate notification view
Merge commit '39c921c6e5316696d8c61d1ee465f9b5f894c4ed'
* commit '39c921c6e5316696d8c61d1ee465f9b5f894c4ed':
Get to the point of being able to do native drawing.