Bug #115181

【BSP】【EVT2】【1/10】快速向右滑动音量,不能够滑动到100%

Added by CDTS_TEST 刘勇 over 2 years ago. Updated over 2 years ago.

Status:CLOSEDStart date:2023-01-09
Priority:HighDue date:2023-02-14
Assignee:移动测试一组_CDTS 刘强% Done:

10%

Category:CD-FW
Target version:-
Need_Info:-- Found Version:FlatBuild_HH_VX1_MCE_FSE.M.D.user.01.00.X101.202301080304
Resolution:FIXED Degrated:--
Severity:Major Verified Version:
Reproducibility:Occasionally Fixed Version:
Test Type:ST Root cause:从EventHub读取的坐标没有问题,但是在android_view_InputEventReceiver.cpp#consumeEvents转化坐标时出现了异常,由于JNI层调查困难,直接在上层规避此问题

Description

【前提条件】
1.设备刷机
2."开发者选项”->开启"显示点按操作反馈"和开启"指针位置"

【测试步骤】
1.快速向右滑动"音量"进度条从静音到100%(0.6秒)内完成

【预期结果】
1.音量能够滑动至100%

【实际结果】
1.低概率出现,滑动到95%(见截图),且触点已超过音量进度条。偶现跳转到100%后又跳转会95%

【复现概率】
低概率

中科创达软件股份有限公司20230109-160952.jpg (94.6 KB) CDTS_TEST 刘勇, 2023-01-09 16:14

Touch-f.txt Magnifier (4.84 MB) CDTS_TEST 刘勇, 2023-01-09 16:14

screen-20230215-021223.mp4 (8.29 MB) 移动测试一组_CDTS 刘强, 2023-02-15 19:17

%e4%b8%ad%e7%a7%91%e5%88%9b%e8%be%be%e8%bd%af%e4%bb%b6%e8%82%a1%e4%bb%bd%e6%9c%89%e9%99%90%e5%85%ac%e5%8f%b820230109-160952

History

#1 Updated by CD BSP-杜磊 over 2 years ago

  • Status changed from New to ASSIGNED
  • Assignee changed from CD BSP-杜磊 to CD FW詹朝林

#2 Updated by CD BSP-杜磊 over 2 years ago

  • Assignee changed from CD FW詹朝林 to CD FW 曹覃刚

#3 Updated by CD FW 曹覃刚 over 2 years ago

  • Due date set to 2023-01-20
  • Category changed from BSP to CD-FW

#4 Updated by CD FW 曹覃刚 over 2 years ago

  • Due date changed from 2023-01-20 to 2023-02-03

#5 Updated by CD FW 曹覃刚 over 2 years ago

■ 当前的状态
1.当滑动速度过快时会出现这个问题
2.不仅限于音量的调节,测试过三方应用的seekbar,有同样的问题

■ 分析过程
seekbar的共通问题, 猜测可能是由如下原因导致
硬件或硬件驱动存在问题,导致上传的move事件存在问题,大概率

■ 下一步解析计划
定位问题的原因

#6 Updated by CD FW 曹覃刚 over 2 years ago

  • Category changed from CD-FW to BSP
  • Assignee changed from CD FW 曹覃刚 to CD BSP-杜磊

Hi 磊哥
■ 问题发生的条件
1.当滑动速度过快时会出现这个问题
2.不仅限于音量的调节,测试过三方应用的seekbar,有同样的问题,这与上层view的实现没有关系

■ 我的分析
通过复写seekbar的事件分发方法,得到下列日志
正常时:
normal:
01-12 18:41:27.285 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_DOWN, actionButton=0, id0=0, x0=577.0, y0=33.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=69018806, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=86322370 }
01-12 18:41:27.300 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=577.0, y0=33.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018818, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=520207177 }
01-12 18:41:27.325 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=581.92175, y0=31.769562, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=69018846, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=807356331 }
01-12 18:41:27.348 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=597.5467, y0=29.408875, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018869, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=799919784 }
01-12 18:41:27.368 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=618.82794, y0=26.90799, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=69018886, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=597182299 }
01-12 18:41:27.385 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=649.58984, y0=24.472809, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018902, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=859824179 }
01-12 18:41:27.398 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=714.16064, y0=23.517487, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018919, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=526459506 }
01-12 18:41:27.415 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=792.7516, y0=24.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018936, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=578206172 }
01-12 18:41:27.431 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=885.75085, y0=26.721191, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018953, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=111520845 }
01-12 18:41:27.448 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=994.51575, y0=32.83423, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=69018970, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=324499859 }
01-12 18:41:27.465 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=1090.9684, y0=41.589874, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=69018986, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=812945960 }
01-12 18:41:27.498 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=1138.0, y0=48.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=69019003, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=116898864 }
01-12 18:41:27.524 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_UP, actionButton=0, id0=0, x0=1138.0, y0=48.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=69019051, downTime=69018806, deviceId=3, source=0x5002, displayId=0, eventId=796325273 }

问题发生时:
01-12 18:40:34.512 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_DOWN, actionButton=0, id0=0, x0=608.0, y0=34.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=68966032, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=494344280 }
01-12 18:40:34.538 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=608.0, y0=34.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=68966059, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=205377627 }
01-12 18:40:34.554 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=608.0, y0=32.76999, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966075, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=494868632 }
01-12 18:40:34.571 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=608.0, y0=32.76999, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966092, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=176140587 }
01-12 18:40:34.587 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=608.0, y0=32.76999, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966109, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=165854478 }
01-12 18:40:34.604 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=629.1369, y0=39.406036, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=68966125, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=366882695 }
01-12 18:40:34.638 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=800.3111, y0=67.27191, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=68966160, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=1070325658 }
01-12 18:40:34.655 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=925.511, y0=76.897095, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966176, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=861998327 }
01-12 18:40:34.673 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=1084.4767, y0=82.56378, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=2, eventTime=68966193, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=1058644787 }
01-12 18:40:34.688 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=1238.4961, y0=85.83948, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966209, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=274929179 }
01-12 18:40:34.705 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=1414.0, y0=101.5, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966225, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=286953440 }
01-12 18:40:34.722 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_MOVE, actionButton=0, id0=0, x0=1545.5, y0=127.5, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=1, eventTime=68966243, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=127277533 }
01-12 18:40:34.762 16921 16921 D cqg0129 : TestSeekBar onTouchEvent event = MotionEvent { action=ACTION_UP, actionButton=0, id0=0, x0=1478.0, y0=117.0, toolType0=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=68966288, downTime=68966032, deviceId=3, source=0x5002, displayId=0, eventId=24245025 }

差异点在于,滑动后离开屏幕的点(ACTION_UP),相较于前一个点的位置。(由于是水平向右滑动,主要检查X坐标的点位)
正常时->ACTION_UP的X坐标点与前一个ACTION_MOVE的X坐标点相同或者差距很小
异常时->ACTION_UP的X坐标点与前一个ACTION_MOVE的X坐标点,差距较大,有几十的像素点,且小于前一个ACTION_MOVE的X点。 这个导致了跳转回到之前点位的问题

结合发生的条件以及分析
滑动过快时,上报滑动事件的坐标点存在异常

■ 下一步解析计划
请BSP的同学帮助检查,滑动过快时,上报事件坐标点异常的问题

#7 Updated by CD BSP-杜磊 over 2 years ago

  • Assignee changed from CD BSP-杜磊 to CD FW 曹覃刚
  • % Done changed from 0 to 10

HI, 覃刚,

通过adb shell getevent -rlt 来查看tp的上报坐标,发生此问题时,未出现tp掉点,且x轴坐标是一直变大的,未出现跳点。帮忙查看上层android是否有对坐标做处理。
[ 2273.859351] /dev/input/event2: EV_KEY BTN_TOUCH DOWN
[ 2273.859351] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 1
[ 2273.866088] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 000007d6
[ 2273.866088] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 00000198
[ 2273.866088] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 148
[ 2273.876309] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 000007ec
[ 2273.876309] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 00000195
[ 2273.876309] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 97
[ 2273.886796] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 00000822
[ 2273.886796] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 0000018d
[ 2273.886796] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 95
[ 2273.897388] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 0000086b
[ 2273.897388] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 00000186
[ 2273.897388] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 94
[ 2273.907823] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 000008c2
[ 2273.907823] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 0000017f
[ 2273.907823] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 95
[ 2273.918308] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 00000925
[ 2273.918308] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 95
[ 2273.928653] /dev/input/event2: EV_ABS ABS_MT_POSITION_X 00000991
[ 2273.928653] /dev/input/event2: EV_ABS ABS_MT_POSITION_Y 00000184
[ 2273.928653] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 96
[ 2273.965899] /dev/input/event2: EV_ABS ABS_MT_TRACKING_ID ffffffff
[ 2273.965899] /dev/input/event2: EV_KEY BTN_TOUCH UP
[ 2273.965899] /dev/input/event2: EV_SYN SYN_REPORT 00000000 rate 26

#8 Updated by CD FW 曹覃刚 over 2 years ago

  • Category changed from BSP to CD-FW

#9 Updated by CD FW 曹覃刚 over 2 years ago

  • Due date changed from 2023-02-03 to 2023-02-09

#10 Updated by CD FW 曹覃刚 over 2 years ago

  • Due date changed from 2023-02-09 to 2023-02-14
  • Assignee changed from CD FW 曹覃刚 to CD FW-鲁凯峰

#11 Updated by CD FW-鲁凯峰 over 2 years ago

■ Current conclusion
问题已经解决

■ My analysis
从EventHub读取的坐标没有问题,但是在android_view_InputEventReceiver.cpp#consumeEvents转化坐标时出现了异常,由于JNI层调查困难,直接在上层规避此问题

不在AbsSeekBar的ACTION_UP事件中处理坐标来更新SeekBar的Progress

■ Submit URL
https://dev.thundercomm.com/gerrit/c/general/platform/frameworks/base/+/180600

#12 Updated by IoT scm over 2 years ago

Gerrit Merge Information
ID Project Branch Uploader
180600 general/platform/frameworks/base Pre_figure_turbox-c2130c-la1.1-qssi12-dev
AF:QuickSettings: fix seekbar scroll back
when fast moving seekbar, it will fall back
TC-RID: 1201-0201903
IssueID: TS-R-BUG-115181
Change-Id: I1751b436b0bf70ab253f6ddbf593e28773605f51

#13 Updated by CD FW-鲁凯峰 over 2 years ago

  • Status changed from ASSIGNED to RESOLVED
  • Assignee changed from CD FW-鲁凯峰 to CDTS_TEST 刘勇
  • Resolution changed from -- to FIXED
  • Root cause set to 从EventHub读取的坐标没有问题,但是在android_view_InputEventReceiver.cpp#consumeEvents转化坐标时出现了异常,由于JNI层调查困难,直接在上层规避此问题

#14 Updated by CDTS_TEST 王成 over 2 years ago

  • Assignee changed from CDTS_TEST 刘勇 to 移动测试一组_CDTS 刘强

#15 Updated by 移动测试一组_CDTS 刘强 over 2 years ago

  • File screen-20230215-021223.mp4 added
  • Status changed from RESOLVED to VERIFY_FAILED
  • Assignee changed from 移动测试一组_CDTS 刘强 to CD FW-鲁凯峰

验证版本:FlatBuild_HH_VX1_MCE_FSE.M.D.user.01.00.X101.202302150106
验证结果:仍然复现
详情见附件视频最后一次验证

#16 Updated by CD FW 曹覃刚 over 2 years ago

  • Assignee changed from CD FW-鲁凯峰 to 移动测试一组_CDTS 刘强

Hi 强哥
问题本身现象,回弹的问题已经修复

视频中滑动位置与蓝色轨迹偶尔有差距的现象是正常的,且无法改善的,基于下列原因
1.对比联想的板子,一样的有这个现象,是原生现象,请参考飞书提供给您的截图
2.用户根本无法感知到这一现象,对用户的使用没有任何影响
3.这一现象发生的条件,需要快速滑动,即使快速滑动,也很少会出现

#17 Updated by 移动测试一组_CDTS 刘强 over 2 years ago

  • Status changed from VERIFY_FAILED to VERIFIED

根据以上验证结果和RD备注,回弹问题已经修复,关闭此issue

#18 Updated by 移动测试一组_CDTS 刘强 over 2 years ago

  • Status changed from VERIFIED to CLOSED

Also available in: Atom PDF