alipay / alipay/SoloPi

[BUG]快速点击时失效

Aperta
#155 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Java
Stelle
6.3k
Fork
1.3k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**Describe the bug / 问题描述**
**点击失效**:
在某些情况下(快速点击),`TouchEventTracker` 解析当前触摸事件时通过 `cmdLine.readUntilSomething()` 拿到的 getEvent 输出有莫名其妙的多余的换行符。
导致 `doContentParse()` 时以回车为分割符分离出的 lines (``String[] lines = result.split("\n");``)变得破碎。
举例:
正常情况应该得到如下的 lines:

```
[ 528400.942517] /dev/input/event4: EV_ABS ABS_MT_TRACKING_ID 00008a1a
[ 528400.942517] /dev/input/event4: EV_KEY BTN_TOUCH DOWN
[ 528400.947728] /dev/input/event4: EV_ABS ABS_MT_POSITION_X 0000040a
[ 528400.942517] /dev/input/event4: EV_ABS ABS_MT_TRACKING_ID 00008a1a
[ 528400.942517] /dev/input/event4: EV_KEY BTN_TOUCH DOWN
[ 528400.947728] /dev/input/event4: EV_ABS ABS_MT_POSITION_X 0000040a
```

异常情况下:

```
[ 528400.942517] /dev/input/event4: EV_ABS ABS_MT_TRACKING_ID 00008a1a
[ 528400.942517] /dev/input/event4:
EV_KEY
BTN_TOUCH DOWN
[ 528400.947728] /dev/input/event4: EV_ABS
ABS_MT_POSITION_X 0000040a
```

这样会导致对每个 line 解析时异常,因此涉及到 BTN_TOUCH DOWN、 ABS_MT_POSITION_X/Y 等最终没能消费成功。
此外,还会引起 `getEventMicroSecond()` 中 `content = content.split("\\[")[1].replace(".", "");`数组越界异常。

**To Reproduce / 复现流程**
举个复现的例子:
点击某处,唤出 Node 的 FunctionView 。
点击窗口之外取消弹窗后迅速点击,尝试唤出 FunctionView,此时就会失败(也就是不会弹出 FunctionView)

**Device Info / 设备信息**
- Manufacturer/生产厂家: 小米
- Device/设备: 小米 10
- OS/系统版本: 基于 Android 10 的 MIUI 12.0.1
- SoloPi Version/SoloPi版本 [e.g. 0.10.1]

**Additional context/其他内容**

不知道这个是不是 Adblib 的 bug,多次测试发现只出现在快速点击的情况下(已经排除掉 SoloPI 主动过滤短时间重复点击的逻辑)。
此外,Minicap 在基于 Android 9 和 Android 10 的 MIUI 上截图必然失败,不考虑个降级方案吗? screencap 啥的

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.