Bug #111677
测试 Test-IT #110867: V1.0测试功能汇总
测试 Test-IT #110887: AF-V1.0功能测试-手势-任务管理器
【AF】【EVT】【手势交互】-底部上滑无法打开任务管理器
Status: | CLOSED | Start date: | 2022-09-02 | |
---|---|---|---|---|
Priority: | High | Due date: | 2022-09-04 | |
Assignee: | CD Test赵飞 | % Done: | 100% | |
Category: | CD-APP | |||
Target version: | - | |||
Need_Info: | Found Version: | - | ||
Resolution: | FIXED | Degrated: | ||
Severity: | Critical | Verified Version: | ||
Reproducibility: | Every time | Fixed Version: | 2022-09-03 | |
Test Type: | CT | Root cause: | 编码问题 |
Description
测试版本:FlatBuild_VX1_MCE_xx.xx_FSE.R.userdebug.0.0.0.20220901.alpha_008.zip
【前提条件】
1、设备已开机
2、处于桌面或任意一个应用页面
【测试步骤】
1、手指从屏幕底部向上滑动并短暂停留
2、使用投屏工具显示画面,用鼠标从底部向上滑动并短暂停留,模拟屏幕上的触控
【预期结果】
屏幕上的操作和投屏工具上的操作,都能打开任务管理器
【实际结果】
1、以上操作匀无法打开任务管理器
2、8.31号的DB版本,该功能正常可用(FlatBuild_VX1_MCE_xx.xx_FSE.D.userdebug.0.0.0.20220831.alpha.zip)
【复现率】
必现
History
#1 Updated by CD Test赵飞 almost 3 years ago
- Tracker changed from 测试 Test-IT to Bug
#2 Updated by CD FW-王伟 almost 3 years ago
- Assignee changed from CD FW-王伟 to CD APP-王营
- Severity set to Critical
- Reproducibility set to Every time
- Test Type set to CT
- Found Version set to -
#3 Updated by CD FW-鲁凯峰 almost 3 years ago
■ Current state
底部无法上滑打开历史记录界面是由于SystemUI默认把QuickSettings展开显示了,导致Launcher滑动时判断出错,没有对手势进行处理。
■ My Analyze
当在Launcher的底部向上滑动的时候,首先收到Input事件的在TouchInteractionService#onInputEvent
TouchInteractionService#onInputEvent
1.当收到ACTION_DOWN事件的时候,会调用newConsumer去创建一个新的InputConsumer对象
private void onInputEvent(InputEvent ev) { ... if (action == ACTION_DOWN || isMultPointer) { ... if (!mDeviceState.isOneHandedModeActive() && mRotationTouchHelper.isInSwipeUpTouchRegion(event) || isMultPointer) { // Clone the previous gesture state since onConsumerAboutToBeSwitched might trigger // onConsumerInactive and wipe the previous gesture state ... mConsumer = newConsumer(prevGestureState, mGestureState, event); // 创建新的InputConsumer对象 ActiveGestureLog.INSTANCE.addLog("setInputConsumer: " + mConsumer.getName()); mUncheckedConsumer = mConsumer; //赋值给mUncheckedConsumer } //回调给对应的InputConsumer mUncheckedConsumer.onMotionEvent(event); .... }
2. 在newConsumer创建新的InputConsumer对象时,会根据canStartSystemGesture的状态来判断是否要创建一个新的InputConsumer对象,还是获取默认的InputConsumer对象
private InputConsumer newConsumer(GestureState previousGestureState, GestureState newGestureState, MotionEvent event) { boolean canStartSystemGesture = mDeviceState.canStartSystemGesture(); ... // When there is an existing recents animation running, bypass systemState check as this is // a followup gesture and the first gesture started in a valid system state. InputConsumer base = canStartSystemGesture || previousGestureState.isRecentsAnimationRunning() ? newBaseConsumer(previousGestureState, newGestureState, event) : getDefaultInputConsumer(); }
对比正常和非正常的现象,canStartSystemGesture的值不一样
正常情况:canStartSystemGesture = true
非正常情况:canStartSystemGesture = false
3.在canStartSystemGesture的判断中,会根据mSystemUiStateFlags的状态来判断是否可以开始系统手势的处理
public boolean canStartSystemGesture() { boolean canStartWithNavHidden = (mSystemUiStateFlags & SYSUI_STATE_NAV_BAR_HIDDEN) == 0 || (mSystemUiStateFlags & SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY) != 0 || mRotationTouchHelper.isTaskListFrozen(); return canStartWithNavHidden && (mSystemUiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED) == 0 && (mSystemUiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0 && (mSystemUiStateFlags & SYSUI_STATE_MAGNIFICATION_OVERLAP) == 0 && ((mSystemUiStateFlags & SYSUI_STATE_HOME_DISABLED) == 0 || (mSystemUiStateFlags & SYSUI_STATE_OVERVIEW_DISABLED) == 0); }
通过对比正常和非正常的情况的log可以看出,SYSUI_STATE_QUICK_SETTINGS_EXPANDED是不一样的
非正常情况:
09-02 03:35:22.235 11275 11275 D TouchInteractionService: onInputEvent : 0
09-02 03:35:22.239 11275 11275 D lukaifeng: canStartWithNavHidden : true
09-02 03:35:22.240 11275 11275 D lukaifeng: SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED : true
09-02 03:35:22.240 11275 11275 D lukaifeng: SYSUI_STATE_QUICK_SETTINGS_EXPANDED : false
09-02 03:35:22.240 11275 11275 D lukaifeng: SYSUI_STATE_MAGNIFICATION_OVERLAP : true
09-02 03:35:22.240 11275 11275 D lukaifeng: SYSUI_STATE_HOME_DISABLED : true
09-02 03:35:22.240 11275 11275 D lukaifeng: SYSUI_STATE_OVERVIEW_DISABLED : true
09-02 03:35:22.240 11275 11275 D lukaifeng: canStartSystemGesture : false
正常情况:
09-02 03:34:24.493 11275 11275 D lukaifeng: canStartWithNavHidden : true
09-02 03:34:24.493 11275 11275 D lukaifeng: SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED : true
09-02 03:34:24.493 11275 11275 D lukaifeng: SYSUI_STATE_QUICK_SETTINGS_EXPANDED : true
09-02 03:34:24.494 11275 11275 D lukaifeng: SYSUI_STATE_MAGNIFICATION_OVERLAP : true
09-02 03:34:24.494 11275 11275 D lukaifeng: SYSUI_STATE_HOME_DISABLED : true
09-02 03:34:24.494 11275 11275 D lukaifeng: SYSUI_STATE_OVERVIEW_DISABLED : true
09-02 03:34:24.494 11275 11275 D lukaifeng: canStartSystemGesture : true
SYSUI_STATE_QUICK_SETTINGS_EXPANDED是由SystemUI设置的,这个因为SystemUI布局的调整要把Quick Settings Pannel默认打开,所以造成mSystemUiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED != 0
整个上滑动流程如下:
TouchInteractionService#onInputEvent
OverviewInputConsumer#onMotionEvent
BaseDragLayer#proxyTouchEvent
BaseDragLayer.java#findControllerToHandleTouch
NoButtonQuickSwitchTouchController.java#onControllerTouchEvent
BaseSwipeDetector.java#onTouchEvent
BaseSwipeDetector.java#setState
NoButtonQuickSwitchTouchController#setupAnimators
■ Submit UR
在Launcher中去掉SYSUI_STATE_QUICK_SETTINGS_EXPANDED的判断
https://dev.thundercomm.com/gerrit/c/general/platform/packages/apps/Launcher3/+/146453
#4 Updated by CD APP-王营 almost 3 years ago
- Status changed from New to RESOLVED
- Assignee changed from CD APP-王营 to CD Test赵飞
- % Done changed from 0 to 80
- Fixed Version set to 2022-09-03
此问题已修复,代码已入库,请在0903的DB版本上验证此问题。
#5 Updated by CDTS_TEST 王成 almost 3 years ago
- Status changed from RESOLVED to VERIFIED
- % Done changed from 80 to 100
#6 Updated by CDTS_TEST 王成 almost 3 years ago
- Status changed from VERIFIED to CLOSED
#7 Updated by CD TPM-申艳艳 almost 3 years ago
- Category set to CD-APP
#8 Updated by CD FW-王伟 over 2 years ago
ID | Project | Branch | Uploader |
146453 | general/platform/packages/apps/Launcher3 | Pre_figure_turbox-c2130c-la1.1-qssi12-dev | ying.wang@thundersoft.com |
FW: Launcher: Fix gesture can not open Recent 1.Fix gesture can not open Recent. TC-RID: 1201-0205302 IssueID: TS-R-BUG-111677 Change-Id: I5f993ff9f3c9baa2134b4e8e254fa9e9e3a272ad |
#9 Updated by CD APP-王营 over 2 years ago
- Resolution set to FIXED
- Root cause set to 编码问题