summaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* [3171580] Add transform field to native buffers. (DO NOT MERGE)Mathias Agopian2010-12-032-2/+16
| | | | | | | This field indicate how the content of the buffer needs to be transformed. Change-Id: Ide3e980a90599e931406135693231276626adbbb
* [3171580] don't automatically log GraphicBuffer allocation failuresMathias Agopian2010-12-032-1/+5
| | | | | | | some of these failures are not fatal and even expected in some cases so they should not emit a dump in the log in those cases. Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
* Drop all dispatcher state when dispatcher is disabled.Jeff Brown2010-10-271-0/+3
| | | | | | | | | | | This patch makes the dispatcher drop all of its state when it is disabled (when the screen turns off). This ensures that the dispatcher does not get stuck thinking a pointer is still down if the screen turned off while the user was touching the display (such as a fat touch while hitting the power button). Bug: 3098344 Change-Id: If50ef5804870aa1acd3179fd4b40e3cda58dd39d
* Add unit tests for native input and fix bugs identified.Jeff Brown2010-10-231-5/+23
| | | | | | | | | | | | | | | | | | | | | | Fixed a bug where we would lose the first touch point when swiping out of the virtual key area. Fixed a bug where we would not send an ACTION_MOVE event in cases where individual pointers went down/up and the remaining pointers actually moved. This is important since many applications do not handle pointer movements during ACTION_POINTER_DOWN or ACTION_POINTER_UP. In the case of ACTION_POINTER_UP the movement was completely lost since all pointers were dispatched using their old location rather than the new location. Improved motion event validation to check for duplicate pointer ids. Added an input source constant that was missing from the NDK api but defined in the framework api. Added a timestamp when reporting added/removed devices in EventHub. Bug: 3070082 Change-Id: I3206a030f43b7616e2f48006e5a9d522c4d92e56
* Fix bug where home presses were not poking user activity.Jeff Brown2010-10-181-5/+1
| | | | | | | | | | | | | | | | | We now poke user activity twice: once upon dequeueing an event for dispatch and then again just before we dispatch it. The second poke is to compensate for the fact that it can take a few seconds to identify the dispatch target (if the application is responding slowly) but we want to keep the display from going to sleep for X amount of time after the app gets a chance to actually receive the event. This mirrors pre-Gingerbread behavior. Removed some unnecessary code that filters user activity pokes when sending events to KeyGuard. We don't need this because KeyGuard already tells the power manager to disable user activity. Bug: 3101397 Change-Id: I8c3a77601fdef8f584e84cfdd11aa79da0ff51db
* Add support for secure system overlays. (DO NOT MERGE)Jeff Brown2010-10-151-0/+1
| | | | | | | | | | This change adds a new window type for secure system overlays created by the system itself from non-secure system overlays that might be created by applications that have the system alert permission. Secure views ignore the presence of secure system overlays. Bug: 3098519 Change-Id: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07
* Merge "Improve input device calibration format." into gingerbreadJeff Brown2010-10-151-24/+31
|\
| * Improve input device calibration format.Jeff Brown2010-10-141-24/+31
| | | | | | | | | | | | | | | | | | Added support for calibrating touch size for devices that report size as an area measurement rather than as a width. Fixed some bugs. Bug: 3096045 Change-Id: I30a12e73752883516ed054f8af407204bca45814
* | Merge "Revert to using epoll_wait()." into gingerbreadJeff Brown2010-10-141-4/+4
|\ \
| * | Revert to using epoll_wait().Jeff Brown2010-10-071-4/+4
| | | | | | | | | | | | | | | | | | | | | This change depends on the kernel having been patched to use hrtimers instead of jiffies for scheduling epoll timeouts. Change-Id: I216bc1c4f565e67ebcb3d2ba4280cb615932bb9e
* | | addresses parts of 3096779 and 3097475Mathias Agopian2010-10-141-0/+5
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | 3097475: Animation setting should control the screen on animation 3096779: CRT power-on animation can briefly show the top app instead of lockscreen There is now a parameter that controls wether the ON and/or OFF animation are performed. we also always clear the screen to black on power off, to make sure it won't briefly appear on power on. HOWEVER, 3096779 is not 100% fixed in the case where we're doing the animation because there is a race, where SF doesn't wait (b/c it doesn't know) for the framework to have redrawn the lockscreen. Change-Id: Ie0f02c9225fcdf24b1e8907e268eb7da2c5b0a03
* | Merge "OBB: use PBKDF2 for key generation." into gingerbreadKenny Root2010-10-131-0/+27
|\ \
| * | OBB: use PBKDF2 for key generation.Kenny Root2010-10-131-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Switch to using PBKDF2 for the key generation for OBBs. Any previously generated OBBs will stop being read correctly. A small pbkdf2gen program is available to allow generation of appropriate keys with the salts. Bug: 3059950 Change-Id: If4305c989fd692fd1150eb270dbf751e09c37295
* | | implement part of [3094280] New animation for screen on and screen offMathias Agopian2010-10-131-1/+3
|/ / | | | | | | | | | | add support for screen on animation Change-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238
* | turn off the electron beamMathias Agopian2010-10-121-1/+4
| | | | | | | | Change-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6
* | Fix an event injection bug when the policy is bypassed.Jeff Brown2010-10-112-3/+6
| | | | | | | | | | | | | | | | | | | | Added the concept of a "trusted" event to distinguish between events from attached input devices or trusted injectors vs. other applications. This change enables us to move certain policy decisions out of the dispatcher and into the policy itself where they can be handled more systematically. Change-Id: I4d56fdcdd31aaa675d452088af39a70c4e039970
* | Added more robust tracking and cancelation of events.Jeff Brown2010-10-103-70/+74
|/ | | | | | | | | | | | | | | | | | | | | | This change fixes several issues where events would be dropped in the input dispatch pipeline in such a way that the dispatcher could not accurately track the state of the input device. Given more robust tracking, we can now also provide robust cancelation of input events in cases where an application might otherwise become out of sync with the event stream due to ANR, app switch, policy decisions, or forced focus transitions. Pruned some of the input dispatcher log output. Moved the responsibility for calling intercept*BeforeQueueing into the input dispatcher instead of the input reader and added support for early interception of injected events for events coming from trusted sources. This enables behaviors like injection of media keys while the screen is off, haptic feedback of injected virtual keys, so injected events become more "first class" in a way. Change-Id: Iec6ff1dd21e5f3c7feb80ea4feb5382bd090dbd9
* Switch Looper back to using poll() instead of epoll().Jeff Brown2010-10-071-3/+59
| | | | | | | | | | | | Added a couple of micro-optimizations to avoid calling wake() unnecessarily and reduce JNI overhead slightly. Fixed a minor issue where we were not clearing the "next" field of Messages returned by the MessageQueue so the Message would hold on to its successor and potentially prevent the GC from collecting it if the message were leaked somehow. Change-Id: I488d29417ce0cdd7d0e447cda76ec978ef7f811c
* Make secure views tolerate IME overlays.Jeff Brown2010-10-051-2/+9
| | | | Change-Id: I3cf09b9d91045f4d9c558b4aace482a7b0bbd3d8
* fix [2835280] Add support for cancelling buffers to ANativeWindowMathias Agopian2010-10-043-5/+19
| | | | | | | | | | There is a new ANativeWindow::cancelBuffer() API that can be used to cancel any dequeued buffer, BEFORE it's been enqueued. The buffer is returned to the list of availlable buffers. dequeue and cancel are not mutually thread safe, they must be called from the same thread or external synchronization must be used. Change-Id: I86cc7985bace8b6a93ad2c75d2bef5c3c2cb4d61
* Merge "refactored screenshot code" into gingerbreadMathias Agopian2010-10-042-1/+32
|\
| * refactored screenshot codeMathias Agopian2010-10-042-1/+32
| | | | | | | | | | | | | | | | | | | | | | the core screenshot function now can capture the screen at any lower resolution performing bilinear filtering. we also now have some client code to interface with the screenshot service. it's now possible to request a screenshot at a lower resolution. Change-Id: I33689bba98507ab928d0898b21596d0d2fe4b953
* | Use pread() in ZipFileRO for LinuxKenny Root2010-10-041-7/+17
|/ | | | | | | | | | | | | | | | | AssetManager instances are created by zygote and passed to all its children so that they don't have to individually open frameworks-res.apk. This creates a problem for determining the current file offset when using lseek() on those files, because you can't guarantee the cross-process locking of a mutex. Luckily, Linux implements pread() to get around this suckiness. The problem is that only Linux implements this, so we have to keep the old locking for use on host builds with aapt and friends. aapt doesn't have this same problem of sharing file descriptors across forked processes, so we can keep the local AutoMutex to protect accesses of those files. Change-Id: Ibe9f11499a53fe345f50fbaea438815ec0fd363e
* Merge "ZipFileRO: moar logging and wrap close" into gingerbreadKenny Root2010-10-041-9/+2
|\
| * ZipFileRO: moar logging and wrap closeKenny Root2010-10-011-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | There is apparently still a race upon reading the entry Local File Header that can't be tracked down, so move the LFH check inside the mutex-protected block so we can call lseek again to see where we are when we log an error. Also, close() can fail so use TEMP_FAILURE_RETRY on it so we don't unwittingly leak file descriptors when Mean Mr. EINTR comes a-knocking. Change-Id: I753abad0bd882fe28f7281c406fa76f64393ef4c
* | Wait for initial device scan to finish before updating config.Jeff Brown2010-10-012-8/+14
| | | | | | | | | | | | | | This change narrows the opportunity for a race condition setting the resource Configuration while devices are being updated. Change-Id: I58efa563f4129ab0fce7108511d16a99dff7e451
* | Minor logging changes to input dispatcher to help with debugging.Jeff Brown2010-10-011-2/+6
|/ | | | | | | | Added dumpsys reporting to EventHub. Made the formatting a bit clearer. Added 'Locked' suffix to some internal methods of EventHub. Change-Id: Ic449560bcce378f6361895d27c66854e9724abb0
* Support haptic feedback for virtual keys defined in key layout.Jeff Brown2010-10-013-5/+5
| | | | Change-Id: I83e4108a87332692e03791dc066206becbc7941f
* Move verbose logging of device capabilities to dumpsys.Jeff Brown2010-09-301-7/+10
| | | | Change-Id: I5d55eaebfdf049bd1ac1e7bab2758886cfefc9d7
* Merge "Add suuport for splitting touch events across windows." into gingerbreadJeff Brown2010-09-274-50/+87
|\
| * Add suuport for splitting touch events across windows.Jeff Brown2010-09-264-50/+87
| | | | | | | | | | | | | | | | | | | | This feature is currently used to enable dragging the start and end selection handles of a TextView at the same time. Could be used for other things later. Deleted some dead code in ArrowKeyMovementMethod and CursorControllers. Change-Id: I930accd97ca1ca1917aab8a807db2c950fc7b409
* | Merge changes I1f7c4535,I741c68a2 into gingerbreadMathias Agopian2010-09-241-1/+9
|\ \ | | | | | | | | | | | | | | | * changes: simple test app for screen capture API add support for [1974164] Be able to take a screen shot on the device
| * | add support for [1974164] Be able to take a screen shot on the deviceMathias Agopian2010-09-241-1/+9
| |/ | | | | | | | | | | | | | | | | | | | | screenshots are taken using ISurfaceComposer::captureScreen() which returns the size of the screenshot and an IMemoryHeap containing the data. screenshots have limitations: - they will always fail if a secure window is up on screen - require GL_OES_framebuffer_object extension - in some situation, video planes won't been captured Change-Id: I741c68a2d2984fb139039301c3349e6780e2cd58
* | Add locking around ZIP seekingKenny Root2010-09-241-2/+6
|/ | | | | | | | Since we switched to seeking to the LFH to verify its existence instead of a huge mmap of the file, we have to guarantee that another seek doesn't happen before we finish our read on the LFH. Change-Id: If8135d9cb6f2f5cc4db734eafa4f6b5f6269c62a
* Looper: use pthread_once for TLS key initialization.Jeff Brown2010-09-211-0/+1
| | | | | | | | Also fix a Valgrind complaint by zeroing out the entire epoll event struct since otherwise the data field union would be partly uninitialized (but not in a harmful way). Change-Id: I2091ce517e87fcad7c9caf90e2c5e4854a7ca465
* Looper: Drop default parameters in favor of a safer overload.Jeff Brown2010-09-161-6/+9
| | | | | | | | | | | The idea is that if you're writing code that wants fd/events/data on return from pollOnce() / pollAll() you should really pass in all of those arguments. When I changed the Looper API earlier, it was difficult to ensure that all callers were passing the right parameters since they were relying on default parameters to some degree so usage mistakes would not have been caught by the compiler. Change-Id: I1f2812894270aaf1515017ac1616b6b312d9b565
* Fix app switch latency optimization.Jeff Brown2010-09-161-6/+6
| | | | | | This optimization was broken due to recent changes in how ANRs are handled. Change-Id: Ic99248a12755fadac8d4893e7d305b773e038d3d
* Merge "Input API review." into gingerbreadJeff Brown2010-09-161-2/+2
|\
| * Input API review.Jeff Brown2010-09-141-2/+2
| | | | | | | | | | | | | | Drop currently unsupported input features. Add documentation comments. Change-Id: I407d2e1dd90c5ee82983a3ccf177430d35ee7592
* | Make input dispatcher only ANR for foreground windows.Jeff Brown2010-09-151-89/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Redesigned the input dispatcher's ANR timeout mechanism so it is much closer to Froyo's policy. ANR is only ever signalled if the dispatcher is waiting on a window to finish processing its previous event(s) and there is new pending input. In the old code, we tracked the dispatch timeout separately for each input channel. This was somewhat complicated and also resulted in the situation where applications could ANR long after the user had pushed them into the background. Change-Id: I666ecada0952d4b95f1d67b9f733842b745c7f4b
* | fix a typo where the eventtags code were wrongMathias Agopian2010-09-151-16/+16
|/ | | | Change-Id: I517112a1475c10b71009a0aa9c3894c76a1f270f
* Merge "Replace epoll() with poll() and rename PollLoop to Looper." into ↵Jeff Brown2010-09-145-227/+217
|\ | | | | | | gingerbread
| * Replace epoll() with poll() and rename PollLoop to Looper.Jeff Brown2010-09-145-227/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of this change, consolidated and cleaned up the Looper API so that there are fewer distinctions between the NDK and non-NDK declarations (no need for two callback types, etc.). Removed the dependence on specific constants from sys/poll.h such as POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for the events that it supports. That should help make any future under-the-hood implementation changes easier. Fixed a couple of compiler warnings along the way. Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae
* | Add logging of various important graphics eventsMathias Agopian2010-09-132-0/+74
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are 16 events logged in the event log: SF_APP_DEQUEUE_BEFORE SF_APP_DEQUEUE_AFTER SF_APP_LOCK_BEFORE SF_APP_LOCK_AFTER SF_APP_QUEUE SF_REPAINT SF_COMPOSITION_COMPLETE SF_UNLOCK_CLIENTS SF_SWAP_BUFFERS SF_REPAINT_DONE SF_FB_POST_BEFORE SF_FB_POST_AFTER SF_FB_DEQUEUE_BEFORE SF_FB_DEQUEUE_AFTER SF_FB_LOCK_BEFORE SF_FB_LOCK_AFTER all events log the buffer conserned and a timestamp in microseconds. by default the logging is not enabled, to turn it on: adb shell service call SurfaceFlinger 1006 i31 1 adb shell setprop debug.graphic_log 1 The effect is immediate in SurfaceFlinger, but applications need to be restarted. Change-Id: Ifc2e31f7aed072d9a7dede20ff2ce59231edbec1
* Input dispatcher ANR handling enhancements.Jeff Brown2010-09-125-156/+513
| | | | | | | | | | | | | | | | | | | | | | | This change is essentially a rewrite of the main input dispatcher loop with the target identification folded in. Since the input dispatcher now has all of the window state, it can make better decisions about when to ANR. Added a .5 second deadline for processing app switch keys. This behavior predates Gingerbread but had not previously been ported. Fixed some timing inaccuracies in the ANR accounting that could cause applications to ANR sooner than they should have. Added a mechanism for tracking key and motion events that have been dispatched to a window so that appropriate cancelation events can be synthesized when recovering from ANR. This change helps to keep applications in sync so they don't end up with stuck buttons upon recovery from ANRs. Added more comments to describe the tricky parts of PollLoop. Change-Id: I13dffca27acb436fc383980db536abc4d8b9e6f1
* Fix key repeat delay.Jeff Brown2010-09-081-1/+4
| | | | Change-Id: I6216e082324ee29bf50e37acc673350ca5417c4d
* Add support for secure views.Jeff Brown2010-09-083-8/+31
| | | | | | | | | | | | Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the input manager whenever another visible window is partly or wholly obscured the target of a touch event so that applications can filter touches accordingly. Added a "filterTouchesWhenObscured" attribute to View which can be used to enable filtering of touches when the view's window is obscured. Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
* Modify native ALooper to take an explicit ident.Dianne Hackborn2010-09-071-3/+11
| | | | | | | | The ALooper API now uses an explicit "identifier" for the integer that is returned rather than implicitly using the fd. This allows the APIs that had the fd to be a little more sane. Change-Id: I8507f535ad484c0bdc4a1bd016d87bb09acd7ff0
* Remove incomplete input device enumeration NDK API.Jeff Brown2010-08-311-23/+0
| | | | Change-Id: I32de74ff5fcf0e29179a2aee03ddabd22fa485bb
* Don't propagate StrictMode over one-way Binder calls.Brad Fitzpatrick2010-08-311-1/+5
| | | | | | | | | | | | | | | | | This was causing stack stitching problems where a one-way call with violations followed by a two-way call without violations was getting the previous one-way call's violation stack stitched on to the second caller's stack. The solution is a little more indirect than I would've liked (preserving the binder's onTransact flags until enforceInterface) but was seemingly necessary to work without changing the AIDL compiler. It should also be sufficiently cheap, since no new calls to thread-local IPCThreadState lookups were required. The additional work is just same-thread getter/setters on the existing IPCThreadState. Change-Id: I4b6db1d445c56e868e6d0d7be3ba6849f4ef23ae