From b590e3f7621536a71a9bc7cbfaeab4b209a69306 Mon Sep 17 00:00:00 2001 From: chen828 Date: Wed, 28 Sep 2022 13:00:49 +0000 Subject: [PATCH] =?UTF-8?q?update=20uitest/server/server=5Fmain.cpp.=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96swipe=E5=92=8Cfling=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen828 --- uitest/server/server_main.cpp | 36 ++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/uitest/server/server_main.cpp b/uitest/server/server_main.cpp index 89e626a..7b081c8 100644 --- a/uitest/server/server_main.cpp +++ b/uitest/server/server_main.cpp @@ -74,6 +74,7 @@ namespace OHOS::uitest { }; enum GCaseInfo : uint8_t {Type = 0, XPosi, YPosi, X2Posi, Y2Posi, Interval, Length, Velocity }; GTouchop g_touchop = click; + int g_clickEventCount = 0; namespace { std::string g_defaultDir = "/data/local/tmp/layout"; @@ -401,8 +402,14 @@ namespace OHOS::uitest { + pow((g_eventsvector[i].GetDisplayY() - g_eventsvector[j].GetDisplayY()), 2); return distance; } - double getSpeed(int i, int j) const { - double speed = getDistance(i,j)/ pow((g_mmitimesvector[i] - g_mmitimesvector[j]), 2); + double getSpeed(int i, int j) const + { + double speed = 0; + if (is_click) { + speed = GetDistance(i,j)/ pow((g_mmitimesvector[i+click_eventCount] - g_mmitimesvector.back()), TWO); + } else { + speed = GetDistance(i,j)/ pow((g_mmitimesvector[i] - g_mmitimesvector[j]), TWO); + } return speed; } void OnInputEvent(std::shared_ptr pointerEvent) const override @@ -426,29 +433,24 @@ namespace OHOS::uitest { std::cout << "GetPointerItem Fail" << std::endl; } g_eventsvector.push_back(item); - if (pointerEvent->GetPointerAction() == MMI::PointerEvent::POINTER_ACTION_DOWN || - pointerEvent->GetPointerAction() == MMI::PointerEvent::POINTER_ACTION_MOVE) { - g_mmitimesvector.push_back(g_touchtime); - } + g_mmitimesvector.push_back(g_touchtime); if (pointerEvent->GetPointerAction() == MMI::PointerEvent::POINTER_ACTION_UP) { int indexTime = GetMillisTime(); int eventCount = g_eventsvector.size(); int actionInterval = 300; int pressTime = indexTime - g_timesvector.back(); int distance = getDistance(0, eventCount-INDEX_ONE); - int speed = getSpeed(0,eventCount-INDEX_TWO); - float threshold = 0.005; + double speed = GetSpeed(0, eventCount-INDEX_ONE, g_isClick, g_clickEventCount); + float threshold = 0.6; if (eventCount > 2 && (distance > g_maxdistance)) { - if (eventCount > dragMonitor && getDistance(0,dragMonitor) < g_maxdistance && getSpeed(0, dragMonitor) < threshold) { + if (eventCount > dragMonitor && getDistance(0, dragMonitor) < g_maxdistance) { g_touchop = drag; } else if (speed < threshold) { - g_touchop = swipe; + g_touchop = swipe; } else { g_touchop = fling; } - - g_mmitimesvector.clear(); - }else { + } else { if (data.interval > actionInterval && pressTime < pressDuration) { g_touchop = click; } else if (data.interval < actionInterval && pressTime < pressDuration) { @@ -457,6 +459,14 @@ namespace OHOS::uitest { g_touchop = long_click; } } + if (g_touchop == click) { + g_isClick = true; + g_clickEventCount = g_mmitimesvector.size(); + } else { + g_isClick = false; + g_clickEventCount = 0; + g_mmitimesvector.clear(); + } MMI::PointerEvent::PointerItem up_event = g_eventsvector.back(); MMI::PointerEvent::PointerItem down_event = g_eventsvector.front(); data.actionType = g_touchop; -- Gitee