Loading NOTICE +21 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ The Android Open Source Project (http://source.android.com). ========================================================================= Apache Commons Copyright 1999-2004 The Apache Software Foundation Copyright 1999-2006 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). Loading Loading @@ -53,6 +53,26 @@ Media Codecs These files are Copyright 1998 - 2009 PacketVideo, but released under the Apache2 License. ========================================================================= == NOTICE file corresponding to the section 4 d of == == the Apache License, Version 2.0, == == in this case for the TagSoup code. == ========================================================================= This file is part of TagSoup and is Copyright 2002-2008 by John Cowan. TagSoup is licensed under the Apache License, Version 2.0. You may obtain a copy of this license at http://www.apache.org/licenses/LICENSE-2.0 . You may also have additional legal rights not granted by this license. TagSoup is distributed in the hope that it will be useful, but unless required by applicable law or agreed to in writing, TagSoup is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied; not even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ Loading include/ui/InputDispatcher.h +1 −5 Original line number Diff line number Diff line Loading @@ -109,9 +109,6 @@ struct InputTarget { // (ignored for KeyEvents) float xOffset, yOffset; // The window type of the input target. int32_t windowType; // The subset of pointer ids to include in motion events dispatched to this input target // if FLAG_SPLIT is set. BitSet32 pointerIds; Loading Loading @@ -1018,8 +1015,7 @@ private: void addWindowTargetLocked(const InputWindow* window, int32_t targetFlags, BitSet32 pointerIds); void addMonitoringTargetsLocked(); bool shouldPokeUserActivityForCurrentInputTargetsLocked(); void pokeUserActivityLocked(nsecs_t eventTime, int32_t eventType); void pokeUserActivityLocked(const EventEntry* eventEntry); bool checkInjectionPermission(const InputWindow* window, const InjectionState* injectionState); bool isWindowObscuredAtPointLocked(const InputWindow* window, int32_t x, int32_t y) const; bool isWindowFinishedWithPreviousInputLocked(const InputWindow* window); Loading libs/ui/InputDispatcher.cpp +28 −40 Original line number Diff line number Diff line Loading @@ -340,6 +340,11 @@ void InputDispatcher::dispatchOnceInnerLocked(nsecs_t keyRepeatTimeout, mInboundQueue.dequeue(entry); mPendingEvent = entry; } // Poke user activity for this event. if (mPendingEvent->policyFlags & POLICY_FLAG_PASS_TO_USER) { pokeUserActivityLocked(mPendingEvent); } } // Now we have an event to dispatch. Loading Loading @@ -686,11 +691,6 @@ bool InputDispatcher::dispatchKeyLocked( // Dispatch the key. dispatchEventToCurrentInputTargetsLocked(currentTime, entry, false); // Poke user activity. if (shouldPokeUserActivityForCurrentInputTargetsLocked()) { pokeUserActivityLocked(entry->eventTime, POWER_MANAGER_BUTTON_EVENT); } return true; } Loading Loading @@ -753,31 +753,6 @@ bool InputDispatcher::dispatchMotionLocked( // Dispatch the motion. dispatchEventToCurrentInputTargetsLocked(currentTime, entry, false); // Poke user activity. if (shouldPokeUserActivityForCurrentInputTargetsLocked()) { int32_t eventType; if (isPointerEvent) { switch (entry->action) { case AMOTION_EVENT_ACTION_DOWN: eventType = POWER_MANAGER_TOUCH_EVENT; break; case AMOTION_EVENT_ACTION_UP: eventType = POWER_MANAGER_TOUCH_UP_EVENT; break; default: if (entry->eventTime - entry->downTime >= EVENT_IGNORE_DURATION) { eventType = POWER_MANAGER_TOUCH_EVENT; } else { eventType = POWER_MANAGER_LONG_TOUCH_EVENT; } break; } } else { eventType = POWER_MANAGER_BUTTON_EVENT; } pokeUserActivityLocked(entry->eventTime, eventType); } return true; } Loading Loading @@ -829,6 +804,8 @@ void InputDispatcher::dispatchEventToCurrentInputTargetsLocked(nsecs_t currentTi assert(eventEntry->dispatchInProgress); // should already have been set to true pokeUserActivityLocked(eventEntry); for (size_t i = 0; i < mCurrentInputTargets.size(); i++) { const InputTarget& inputTarget = mCurrentInputTargets.itemAt(i); Loading Loading @@ -1338,7 +1315,6 @@ void InputDispatcher::addWindowTargetLocked(const InputWindow* window, int32_t t target.flags = targetFlags; target.xOffset = - window->frameLeft; target.yOffset = - window->frameTop; target.windowType = window->layoutParamsType; target.pointerIds = pointerIds; } Loading @@ -1351,7 +1327,6 @@ void InputDispatcher::addMonitoringTargetsLocked() { target.flags = 0; target.xOffset = 0; target.yOffset = 0; target.windowType = -1; } } Loading Loading @@ -1418,19 +1393,32 @@ String8 InputDispatcher::getApplicationWindowLabelLocked(const InputApplication* } } bool InputDispatcher::shouldPokeUserActivityForCurrentInputTargetsLocked() { for (size_t i = 0; i < mCurrentInputTargets.size(); i++) { if (mCurrentInputTargets[i].windowType == InputWindow::TYPE_KEYGUARD) { return false; void InputDispatcher::pokeUserActivityLocked(const EventEntry* eventEntry) { int32_t eventType = POWER_MANAGER_BUTTON_EVENT; if (eventEntry->type == EventEntry::TYPE_MOTION) { const MotionEntry* motionEntry = static_cast<const MotionEntry*>(eventEntry); if (motionEntry->source & AINPUT_SOURCE_CLASS_POINTER) { switch (motionEntry->action) { case AMOTION_EVENT_ACTION_DOWN: eventType = POWER_MANAGER_TOUCH_EVENT; break; case AMOTION_EVENT_ACTION_UP: eventType = POWER_MANAGER_TOUCH_UP_EVENT; break; default: if (motionEntry->eventTime - motionEntry->downTime >= EVENT_IGNORE_DURATION) { eventType = POWER_MANAGER_TOUCH_EVENT; } else { eventType = POWER_MANAGER_LONG_TOUCH_EVENT; } break; } } return true; } void InputDispatcher::pokeUserActivityLocked(nsecs_t eventTime, int32_t eventType) { CommandEntry* commandEntry = postCommandLocked( & InputDispatcher::doPokeUserActivityLockedInterruptible); commandEntry->eventTime = eventTime; commandEntry->eventTime = eventEntry->eventTime; commandEntry->userActivityEventType = eventType; } Loading Loading
NOTICE +21 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ The Android Open Source Project (http://source.android.com). ========================================================================= Apache Commons Copyright 1999-2004 The Apache Software Foundation Copyright 1999-2006 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). Loading Loading @@ -53,6 +53,26 @@ Media Codecs These files are Copyright 1998 - 2009 PacketVideo, but released under the Apache2 License. ========================================================================= == NOTICE file corresponding to the section 4 d of == == the Apache License, Version 2.0, == == in this case for the TagSoup code. == ========================================================================= This file is part of TagSoup and is Copyright 2002-2008 by John Cowan. TagSoup is licensed under the Apache License, Version 2.0. You may obtain a copy of this license at http://www.apache.org/licenses/LICENSE-2.0 . You may also have additional legal rights not granted by this license. TagSoup is distributed in the hope that it will be useful, but unless required by applicable law or agreed to in writing, TagSoup is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied; not even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ Loading
include/ui/InputDispatcher.h +1 −5 Original line number Diff line number Diff line Loading @@ -109,9 +109,6 @@ struct InputTarget { // (ignored for KeyEvents) float xOffset, yOffset; // The window type of the input target. int32_t windowType; // The subset of pointer ids to include in motion events dispatched to this input target // if FLAG_SPLIT is set. BitSet32 pointerIds; Loading Loading @@ -1018,8 +1015,7 @@ private: void addWindowTargetLocked(const InputWindow* window, int32_t targetFlags, BitSet32 pointerIds); void addMonitoringTargetsLocked(); bool shouldPokeUserActivityForCurrentInputTargetsLocked(); void pokeUserActivityLocked(nsecs_t eventTime, int32_t eventType); void pokeUserActivityLocked(const EventEntry* eventEntry); bool checkInjectionPermission(const InputWindow* window, const InjectionState* injectionState); bool isWindowObscuredAtPointLocked(const InputWindow* window, int32_t x, int32_t y) const; bool isWindowFinishedWithPreviousInputLocked(const InputWindow* window); Loading
libs/ui/InputDispatcher.cpp +28 −40 Original line number Diff line number Diff line Loading @@ -340,6 +340,11 @@ void InputDispatcher::dispatchOnceInnerLocked(nsecs_t keyRepeatTimeout, mInboundQueue.dequeue(entry); mPendingEvent = entry; } // Poke user activity for this event. if (mPendingEvent->policyFlags & POLICY_FLAG_PASS_TO_USER) { pokeUserActivityLocked(mPendingEvent); } } // Now we have an event to dispatch. Loading Loading @@ -686,11 +691,6 @@ bool InputDispatcher::dispatchKeyLocked( // Dispatch the key. dispatchEventToCurrentInputTargetsLocked(currentTime, entry, false); // Poke user activity. if (shouldPokeUserActivityForCurrentInputTargetsLocked()) { pokeUserActivityLocked(entry->eventTime, POWER_MANAGER_BUTTON_EVENT); } return true; } Loading Loading @@ -753,31 +753,6 @@ bool InputDispatcher::dispatchMotionLocked( // Dispatch the motion. dispatchEventToCurrentInputTargetsLocked(currentTime, entry, false); // Poke user activity. if (shouldPokeUserActivityForCurrentInputTargetsLocked()) { int32_t eventType; if (isPointerEvent) { switch (entry->action) { case AMOTION_EVENT_ACTION_DOWN: eventType = POWER_MANAGER_TOUCH_EVENT; break; case AMOTION_EVENT_ACTION_UP: eventType = POWER_MANAGER_TOUCH_UP_EVENT; break; default: if (entry->eventTime - entry->downTime >= EVENT_IGNORE_DURATION) { eventType = POWER_MANAGER_TOUCH_EVENT; } else { eventType = POWER_MANAGER_LONG_TOUCH_EVENT; } break; } } else { eventType = POWER_MANAGER_BUTTON_EVENT; } pokeUserActivityLocked(entry->eventTime, eventType); } return true; } Loading Loading @@ -829,6 +804,8 @@ void InputDispatcher::dispatchEventToCurrentInputTargetsLocked(nsecs_t currentTi assert(eventEntry->dispatchInProgress); // should already have been set to true pokeUserActivityLocked(eventEntry); for (size_t i = 0; i < mCurrentInputTargets.size(); i++) { const InputTarget& inputTarget = mCurrentInputTargets.itemAt(i); Loading Loading @@ -1338,7 +1315,6 @@ void InputDispatcher::addWindowTargetLocked(const InputWindow* window, int32_t t target.flags = targetFlags; target.xOffset = - window->frameLeft; target.yOffset = - window->frameTop; target.windowType = window->layoutParamsType; target.pointerIds = pointerIds; } Loading @@ -1351,7 +1327,6 @@ void InputDispatcher::addMonitoringTargetsLocked() { target.flags = 0; target.xOffset = 0; target.yOffset = 0; target.windowType = -1; } } Loading Loading @@ -1418,19 +1393,32 @@ String8 InputDispatcher::getApplicationWindowLabelLocked(const InputApplication* } } bool InputDispatcher::shouldPokeUserActivityForCurrentInputTargetsLocked() { for (size_t i = 0; i < mCurrentInputTargets.size(); i++) { if (mCurrentInputTargets[i].windowType == InputWindow::TYPE_KEYGUARD) { return false; void InputDispatcher::pokeUserActivityLocked(const EventEntry* eventEntry) { int32_t eventType = POWER_MANAGER_BUTTON_EVENT; if (eventEntry->type == EventEntry::TYPE_MOTION) { const MotionEntry* motionEntry = static_cast<const MotionEntry*>(eventEntry); if (motionEntry->source & AINPUT_SOURCE_CLASS_POINTER) { switch (motionEntry->action) { case AMOTION_EVENT_ACTION_DOWN: eventType = POWER_MANAGER_TOUCH_EVENT; break; case AMOTION_EVENT_ACTION_UP: eventType = POWER_MANAGER_TOUCH_UP_EVENT; break; default: if (motionEntry->eventTime - motionEntry->downTime >= EVENT_IGNORE_DURATION) { eventType = POWER_MANAGER_TOUCH_EVENT; } else { eventType = POWER_MANAGER_LONG_TOUCH_EVENT; } break; } } return true; } void InputDispatcher::pokeUserActivityLocked(nsecs_t eventTime, int32_t eventType) { CommandEntry* commandEntry = postCommandLocked( & InputDispatcher::doPokeUserActivityLockedInterruptible); commandEntry->eventTime = eventTime; commandEntry->eventTime = eventEntry->eventTime; commandEntry->userActivityEventType = eventType; } Loading