diff --git a/app/demo/search.txt b/app/demo/search.txt new file mode 100644 index 0000000..3548a79 --- /dev/null +++ b/app/demo/search.txt @@ -0,0 +1,616 @@ +--------- beginning of crash +2025-10-24 13:23:03.594 28066-28066 AndroidRuntime pid-28066 E FATAL EXCEPTION: main + Process: com.loveerror.bested, PID: 28066 + android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? + at android.view.ViewRootImpl.setView(ViewRootImpl.java:1728) + at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:472) + at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:172) + at android.app.Dialog.show(Dialog.java:979) + at android.app.AlertDialog$Builder.show(AlertDialog.java:1147) + at com.loveerror.bested.button.DragFloatingButton.showTextInputDialog(DragFloatingButton.kt:202) + at com.loveerror.bested.button.DragFloatingButton.showPopupMenu$lambda$2(DragFloatingButton.kt:135) + at com.loveerror.bested.button.DragFloatingButton.$r8$lambda$15zdVLm9enelGjlHBUkG8xSn6vM(Unknown Source:0) + at com.loveerror.bested.button.DragFloatingButton$$ExternalSyntheticLambda0.onMenuItemClick(D8$$SyntheticClass:0) + at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:163) + at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947) + at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:937) + at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:146) + at android.widget.AdapterView.performItemClick(AdapterView.java:330) + at android.widget.AbsListView.performItemClick(AbsListView.java:1441) + at android.widget.AbsListView$PerformClick.run(AbsListView.java:3527) + at android.widget.AbsListView$5.run(AbsListView.java:4672) + at android.os.Handler.handleCallback(Handler.java:966) + at android.os.Handler.dispatchMessage(Handler.java:110) + at android.os.Looper.loopOnce(Looper.java:205) + at android.os.Looper.loop(Looper.java:293) + at android.app.ActivityThread.loopProcess(ActivityThread.java:9986) + at android.app.ActivityThread.main(ActivityThread.java:9975) + at java.lang.reflect.Method.invoke(Native Method) + at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586) + at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240) +2025-10-24 13:23:11.450 28197-28197 AndroidRuntime pid-28197 E FATAL EXCEPTION: main + Process: com.loveerror.bested, PID: 28197 + android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? + at android.view.ViewRootImpl.setView(ViewRootImpl.java:1728) + at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:472) + at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:172) + at android.app.Dialog.show(Dialog.java:979) + at android.app.AlertDialog$Builder.show(AlertDialog.java:1147) + at com.loveerror.bested.button.DragFloatingButton.showTextInputDialog(DragFloatingButton.kt:202) + at com.loveerror.bested.button.DragFloatingButton.showPopupMenu$lambda$2(DragFloatingButton.kt:135) + at com.loveerror.bested.button.DragFloatingButton.$r8$lambda$15zdVLm9enelGjlHBUkG8xSn6vM(Unknown Source:0) + at com.loveerror.bested.button.DragFloatingButton$$ExternalSyntheticLambda0.onMenuItemClick(D8$$SyntheticClass:0) + at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:163) + at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947) + at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:937) + at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:146) + at android.widget.AdapterView.performItemClick(AdapterView.java:330) + at android.widget.AbsListView.performItemClick(AbsListView.java:1441) + at android.widget.AbsListView$PerformClick.run(AbsListView.java:3527) + at android.widget.AbsListView$5.run(AbsListView.java:4672) + at android.os.Handler.handleCallback(Handler.java:966) + at android.os.Handler.dispatchMessage(Handler.java:110) + at android.os.Looper.loopOnce(Looper.java:205) + at android.os.Looper.loop(Looper.java:293) + at android.app.ActivityThread.loopProcess(ActivityThread.java:9986) + at android.app.ActivityThread.main(ActivityThread.java:9975) + at java.lang.reflect.Method.invoke(Native Method) + at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586) + at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240) +2025-10-24 13:23:19.362 28298-28298 AndroidRuntime pid-28298 E FATAL EXCEPTION: main + Process: com.loveerror.bested, PID: 28298 + android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? + at android.view.ViewRootImpl.setView(ViewRootImpl.java:1728) + at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:472) + at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:172) + at android.app.Dialog.show(Dialog.java:979) + at android.app.AlertDialog$Builder.show(AlertDialog.java:1147) + at com.loveerror.bested.button.DragFloatingButton.showTextInputDialog(DragFloatingButton.kt:202) + at com.loveerror.bested.button.DragFloatingButton.showPopupMenu$lambda$2(DragFloatingButton.kt:135) + at com.loveerror.bested.button.DragFloatingButton.$r8$lambda$15zdVLm9enelGjlHBUkG8xSn6vM(Unknown Source:0) + at com.loveerror.bested.button.DragFloatingButton$$ExternalSyntheticLambda0.onMenuItemClick(D8$$SyntheticClass:0) + at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:163) + at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947) + at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:937) + at com.android.internal.view.menu.MenuPopup.onItemClick(MenuPopup.java:146) + at android.widget.AdapterView.performItemClick(AdapterView.java:330) + at android.widget.AbsListView.performItemClick(AbsListView.java:1441) + at android.widget.AbsListView$PerformClick.run(AbsListView.java:3527) + at android.widget.AbsListView$5.run(AbsListView.java:4672) + at android.os.Handler.handleCallback(Handler.java:966) + at android.os.Handler.dispatchMessage(Handler.java:110) + at android.os.Looper.loopOnce(Looper.java:205) + at android.os.Looper.loop(Looper.java:293) + at android.app.ActivityThread.loopProcess(ActivityThread.java:9986) + at android.app.ActivityThread.main(ActivityThread.java:9975) + at java.lang.reflect.Method.invoke(Native Method) + at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586) + at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240) +--------- beginning of system +2025-10-26 16:35:04.301 7627-7627 ActivityThread com.loveerror.bested I Remove activity client record, r= ActivityRecord{f460998 token=android.os.BinderProxy@736f2d2 {com.loveerror.bested/com.loveerror.bested.MainActivity}} token= android.os.BinderProxy@736f2d2 +--------- beginning of main +2025-10-26 16:35:23.791 7627-7627 HwPartPowe...iceFactory com.loveerror.bested I add HwPartPowerOfficeFactoryImpl to memory. +2025-10-26 16:35:23.799 7627-7627 HwEditorHelperImpl com.loveerror.bested D isTouchPositionInHightlight. +2025-10-26 16:35:23.805 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:23.809 7627-7627 Choreographer com.loveerror.bested W Frame time is 24.041914 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:23.812 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:35:23.817 7627-7627 Choreographer com.loveerror.bested W Frame time is 32.391506 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:23.825 7627-7627 Choreographer com.loveerror.bested W Frame time is 40.62964 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:23.834 7627-7627 Choreographer com.loveerror.bested W Frame time is 48.897984 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:23.848 7627-7627 HwEditorHelperImpl com.loveerror.bested D stopLongPressingPreviewAnimation. +2025-10-26 16:35:23.848 7627-7627 HwEditorHelperImpl com.loveerror.bested D removeDrawableView. +2025-10-26 16:35:23.848 7627-7627 HwEditorHelperImpl com.loveerror.bested E removeDrawableView decorview is null. +2025-10-26 16:35:23.856 7627-7627 InputMethodManager com.loveerror.bested I getNextServedViewLocked mCurRootView is android.view.ViewRootImpl@74296fa +2025-10-26 16:35:23.856 7627-7627 InputMethodManager com.loveerror.bested I Starting input: reason=CHECK_FOCUS +2025-10-26 16:35:23.865 7627-7627 InputMethodManager com.loveerror.bested I Starting input: Bind resultString=SUCCESS_WITH_IME_SESSION +2025-10-26 16:35:23.866 7627-7627 Compatibil...geReporter com.loveerror.bested D Compat change id reported: 163400105; UID 10407; state: ENABLED +2025-10-26 16:35:23.867 7627-7627 InputMethodManager com.loveerror.bested I showSoftInput, displayId=-1,callers=android.view.inputmethod.InputMethodManager.showSoftInput:1785 android.view.inputmethod.InputMethodManager.showSoftInput:1723 android.widget.TextView.onTouchEvent:11527 android.view.View.dispatchTouchEvent:14955 +2025-10-26 16:35:23.868 7627-7627 InputMethodManager com.loveerror.bested D showSoftInput() view=android.widget.EditText{cade397 VFED..CL. .F.P..ID 0,0-420,388 aid=1} flags=0 reason=SHOW_SOFT_INPUT +2025-10-26 16:35:23.879 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:35:23.879 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:35:23.928 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:23.928 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:23.930 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:23.930 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:23.936 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_IME on +2025-10-26 16:35:23.938 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets show(ime(), fromIme=true) +2025-10-26 16:35:23.940 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets applyAnimation types:8,show:true, this:android.view.InsetsController@cbad74e +2025-10-26 16:35:23.940 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets controlAnimation types: 8 +2025-10-26 16:35:23.940 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets controlAnimation after canel existing types: 8 +2025-10-26 16:35:23.948 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3009 scene=IME +2025-10-26 16:35:23.948 7627-8056 HwViewRootImpl com.loveerror.bested I Add sceneId 96 topId: 0 +2025-10-26 16:35:23.963 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:23.964 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:23.966 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:23.967 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:24.015 7627-7635 oveerror.beste com.loveerror.bested I Compiler allocated 5042KB to compile void android.view.ViewRootImpl.performTraversals() +2025-10-26 16:35:24.338 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3010 scene=IME +2025-10-26 16:35:24.338 7627-8056 HwViewRootImpl com.loveerror.bested I remove sceneId 96 topId: 0 +2025-10-26 16:35:26.013 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:26.026 7627-7627 Choreographer com.loveerror.bested W Frame time is 15.51419 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:26.033 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:35:26.051 7627-7627 Choreographer com.loveerror.bested W Frame time is 6.726208 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:26.067 7627-7627 Choreographer com.loveerror.bested W Frame time is 24.138264 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:26.098 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:35:26.098 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:35:26.122 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled... +2025-10-26 16:35:26.122 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0 +2025-10-26 16:35:26.127 7627-7627 InputMethodManager com.loveerror.bested I setNextServedViewLocked in view is null +2025-10-26 16:35:26.128 7627-7627 InputMethodManager com.loveerror.bested I FINISH INPUT: mServedView = :android.widget.EditText{cade397 VFED..CL. .F...... 0,0-420,388 aid=1},focus=true,windowFocus=true,autofillUiShowing=false,window=android.view.ViewRootImpl$W@5303461,displayId=0,temporaryDetach=false,hasImeFocus=true +2025-10-26 16:35:26.129 7627-7627 InputMethodManager com.loveerror.bested I getServedView is android.widget.EditText{cade397 VFED..CL. .F...... 0,0-420,388 aid=1} +2025-10-26 16:35:26.129 7627-7627 InputMethodManager com.loveerror.bested I setServedViewLocked in view is null +2025-10-26 16:35:26.131 7627-7627 InputMethodManager com.loveerror.bested I set currentRootView to : null +2025-10-26 16:35:26.148 7627-7692 OpenGLRenderer com.loveerror.bested D endAllActiveAnimators on 0xb400007bf44edc00 (RippleDrawable) with handle 0xb400007c05b85e00 +2025-10-26 16:35:26.163 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0 +2025-10-26 16:35:26.168 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:26.169 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:26.171 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:26.171 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:26.189 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree Start === +2025-10-26 16:35:26.192 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.199 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:35:26.199 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:35:26.222 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.226 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.228 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.230 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.231 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.233 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.235 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.236 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.238 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.240 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.242 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.243 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.245 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I 请输入集团名称 android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.247 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:35:26.248 7627-8073 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End === +2025-10-26 16:35:26.254 7627-8073 System.out com.loveerror.bested I 已填写集团名称: 天猫 +2025-10-26 16:35:26.258 7627-8073 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree Start === +2025-10-26 16:35:26.261 7627-8073 System.out com.loveerror.bested I after 已点击兄弟节点 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.263 7627-8073 System.out com.loveerror.bested I android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.266 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.268 7627-8073 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.271 7627-8073 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.273 7627-8073 System.out com.loveerror.bested I android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.283 7627-8073 System.out com.loveerror.bested I android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.311 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.313 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.343 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.344 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.346 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.351 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.353 7627-8073 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.354 7627-8073 System.out com.loveerror.bested I android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=true] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=true] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.355 7627-8073 System.out com.loveerror.bested I android.widget.Button [text=搜索] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:35:26.355 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=1.23452384164.123412415] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:35:26.356 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0 +2025-10-26 16:35:26.363 7627-8073 System.out com.loveerror.bested I android.widget.TextView [text=返回主页] [desc=] [id=com.ZJMCCMCRM:id/closebtn] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=false] +2025-10-26 16:35:26.363 7627-8073 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree End === +2025-10-26 16:35:27.972 7627-8073 System.out com.loveerror.bested I 点击搜索按钮结果: true +2025-10-26 16:35:53.124 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:53.156 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:35:53.352 7627-7627 MouseWheelSynthesizer com.loveerror.bested D mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100 +2025-10-26 16:35:53.357 7627-7627 ViewRootImpl com.loveerror.bested D ViewUI ViewRootImpl mIsInProductivePCDisplay: false +2025-10-26 16:35:53.375 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:53.375 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:53.382 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:90bfb55 +2025-10-26 16:35:53.382 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:null, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:90bfb55 +2025-10-26 16:35:53.384 7627-7627 InputEventReceiver com.loveerror.bested D dispatchInputInterval 1000000 +2025-10-26 16:35:53.388 7627-7627 HwSoraManager com.loveerror.bested I SORA is disabled for PopupWindow:90bfb55 +2025-10-26 16:35:53.388 7627-7627 mDecorView com.loveerror.bested D invokePopup mDecorView params: width=480, height=1008 +2025-10-26 16:35:53.391 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:35:53.391 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:35:53.392 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0 +2025-10-26 16:35:53.394 7627-7627 ImeFocusController com.loveerror.bested I ViewUI imeDisplayId:0 contextDisplayId:0 +2025-10-26 16:35:53.406 7627-7627 BufferQueueCore com.loveerror.bested D BufferQueueCore: mDebugHwFlow=0, mIsBufferQueueLogVSupport=0. +2025-10-26 16:35:53.407 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:53.407 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:53.413 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:90bfb55 +2025-10-26 16:35:53.413 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:Surface(name=Surface(name=bc96bf3 StatusBar)/@0x711d416 - animation-leash of insets_animation)/@0x19046f8, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:90bfb55 +2025-10-26 16:35:53.418 7627-7692 OpenGLRenderer com.loveerror.bested E Unable to match the desired swap behavior. +2025-10-26 16:35:53.595 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode all the node in jank list is out of time +2025-10-26 16:35:53.597 7627-7692 OpenGLRenderer com.loveerror.bested D disableOutlineDraw is true +2025-10-26 16:35:53.597 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:53.597 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:54.428 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:54.428 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:54.429 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:54.431 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:54.446 7627-7627 Choreographer com.loveerror.bested W Frame time is 0.100186996 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:54.450 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:35:54.488 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:35:54.488 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:35:54.509 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled... +2025-10-26 16:35:54.509 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0 +2025-10-26 16:35:54.509 7627-7627 System.out com.loveerror.bested I Attempting to show text input dialog for: 查询公司是否注册 +2025-10-26 16:35:54.522 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:35:54.522 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:35:54.527 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:35:54.528 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:35:54.545 7627-7627 DecorView[] com.loveerror.bested I pkgName:com.loveerror.bested old windowMode:0 new windoMode:1, isFixedSize:false, isStackNeedCaptionView:true +2025-10-26 16:35:54.563 7627-7627 SmartSlideOverScroller com.loveerror.bested I start init SmartSlideOverScroller and get the overscroller config +2025-10-26 16:35:54.563 7627-7627 SmartSlide...llerConfig com.loveerror.bested I get the overscroller config +2025-10-26 16:35:54.570 7627-7627 HwAdaptiveFrameManager com.loveerror.bested D transmitPackageInfo sHardVelocity=40=617 +2025-10-26 16:35:54.581 7627-7627 SmartSlideOverScroller com.loveerror.bested I start init SmartSlideOverScroller and get the overscroller config +2025-10-26 16:35:54.582 7627-7627 SmartSlide...llerConfig com.loveerror.bested I get the overscroller config +2025-10-26 16:35:54.587 7627-7627 HwAdaptiveFrameManager com.loveerror.bested D transmitPackageInfo sHardVelocity=40=617 +2025-10-26 16:35:54.605 7627-7627 Settings com.loveerror.bested W Setting device_provisioned has moved from android.provider.Settings.Secure to android.provider.Settings.Global. +2025-10-26 16:35:54.605 7627-7627 Dialog com.loveerror.bested I show dialog,width:-2,height:-2 +2025-10-26 16:35:54.608 7627-7627 MouseWheelSynthesizer com.loveerror.bested D mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100 +2025-10-26 16:35:54.609 7627-7627 ViewRootImpl com.loveerror.bested D ViewUI ViewRootImpl mIsInProductivePCDisplay: false +2025-10-26 16:35:54.624 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:54.624 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:54.630 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on +2025-10-26 16:35:54.630 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:null, needAnimation:false, mIsAnimationPending:false, getRootViewTitle: +2025-10-26 16:35:54.632 7627-7627 InputEventReceiver com.loveerror.bested D dispatchInputInterval 1000000 +2025-10-26 16:35:54.636 7627-7627 HwSoraManager com.loveerror.bested I SORA is disabled for +2025-10-26 16:35:54.637 7627-7627 ZrHung.App...rentWindow com.loveerror.bested D TransparentWindow mHungConfigStatus = 0,mHungConfigEnable = 1 +2025-10-26 16:35:54.650 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:54.650 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:54.652 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0 +2025-10-26 16:35:54.670 7627-8265 HiTouch_HiTouchSensor com.loveerror.bested I HiTouch restricted: Sub windows restricted. +2025-10-26 16:35:54.670 7627-8265 HiTouch_Pr...reDetector com.loveerror.bested D onAttached, package=com.loveerror.bested, windowType=2038, mIsHiTouchRestricted=true +2025-10-26 16:35:54.717 7627-7627 BufferQueueCore com.loveerror.bested D BufferQueueCore: mDebugHwFlow=0, mIsBufferQueueLogVSupport=0. +2025-10-26 16:35:54.722 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on +2025-10-26 16:35:54.722 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:Surface(name=Surface(name=bc96bf3 StatusBar)/@0x711d416 - animation-leash of insets_animation)/@0x34f07da, needAnimation:false, mIsAnimationPending:false, getRootViewTitle: +2025-10-26 16:35:54.729 7627-7692 OpenGLRenderer com.loveerror.bested E Unable to match the desired swap behavior. +2025-10-26 16:35:54.770 7627-7692 OpenGLRenderer com.loveerror.bested D disableOutlineDraw is true +2025-10-26 16:35:54.822 7627-7627 ImeFocusController com.loveerror.bested I ViewUI imeDisplayId:0 contextDisplayId:0 +2025-10-26 16:35:54.822 7627-7627 InputMethodManager com.loveerror.bested I set currentRootView to : android.view.ViewRootImpl@86ff871 +2025-10-26 16:35:54.826 7627-7627 InputMethodManager com.loveerror.bested I Starting input: reason=WINDOW_FOCUS_GAIN +2025-10-26 16:35:54.828 7627-7627 InputMethodManager com.loveerror.bested I Starting input: Bind resultString=SUCCESS_WITH_IME_SESSION +2025-10-26 16:35:54.857 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_IME on +2025-10-26 16:35:55.580 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.580 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.581 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.581 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.582 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.582 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.583 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:55.592 7627-7627 Choreographer com.loveerror.bested W Frame time is 16.148571 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:55.594 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:35:55.599 7627-7627 Choreographer com.loveerror.bested W Frame time is 25.643759 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:55.624 7627-7627 Choreographer com.loveerror.bested W Frame time is 16.602488 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:55.633 7627-7627 Choreographer com.loveerror.bested W Frame time is 24.969028 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:55.641 7627-7627 Choreographer com.loveerror.bested W Frame time is 33.334526 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:55.656 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:35:55.656 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:35:56.661 7627-7627 HwEditorHelperImpl com.loveerror.bested D isTouchPositionInHightlight. +2025-10-26 16:35:56.667 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:35:56.694 7627-7627 Choreographer com.loveerror.bested W Frame time is 9.135331 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:35:56.721 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:35:56.724 7627-7627 HwEditorHelperImpl com.loveerror.bested D stopLongPressingPreviewAnimation. +2025-10-26 16:35:56.724 7627-7627 HwEditorHelperImpl com.loveerror.bested D removeDrawableView. +2025-10-26 16:35:56.724 7627-7627 HwEditorHelperImpl com.loveerror.bested E removeDrawableView decorview is null. +2025-10-26 16:35:56.731 7627-7627 InputMethodManager com.loveerror.bested I getNextServedViewLocked mCurRootView is android.view.ViewRootImpl@86ff871 +2025-10-26 16:35:56.731 7627-7627 InputMethodManager com.loveerror.bested I Starting input: reason=CHECK_FOCUS +2025-10-26 16:35:56.739 7627-7627 InputMethodManager com.loveerror.bested I Starting input: Bind resultString=SUCCESS_WITH_IME_SESSION +2025-10-26 16:35:56.741 7627-7627 InputMethodManager com.loveerror.bested I showSoftInput, displayId=-1,callers=android.view.inputmethod.InputMethodManager.showSoftInput:1785 android.view.inputmethod.InputMethodManager.showSoftInput:1723 android.widget.TextView.onTouchEvent:11527 android.view.View.dispatchTouchEvent:14955 +2025-10-26 16:35:56.741 7627-7627 InputMethodManager com.loveerror.bested D showSoftInput() view=android.widget.EditText{f56b832 VFED..CL. .F.P..ID 0,0-420,388 aid=3} flags=0 reason=SHOW_SOFT_INPUT +2025-10-26 16:35:56.751 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:35:56.751 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:35:56.776 7627-7689 OpenGLRenderer com.loveerror.bested D gpu complete is not signaled +2025-10-26 16:35:56.787 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:56.787 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:56.789 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:56.789 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:56.795 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_IME on +2025-10-26 16:35:56.796 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets show(ime(), fromIme=true) +2025-10-26 16:35:56.797 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets applyAnimation types:8,show:true, this:android.view.InsetsController@6828548 +2025-10-26 16:35:56.797 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets controlAnimation types: 8 +2025-10-26 16:35:56.797 7627-7627 InsetsController com.loveerror.bested D ViewUI_insets controlAnimation after canel existing types: 8 +2025-10-26 16:35:56.800 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3009 scene=IME +2025-10-26 16:35:56.800 7627-8056 HwViewRootImpl com.loveerror.bested I Add sceneId 96 topId: 0 +2025-10-26 16:35:56.811 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:56.812 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:56.814 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:35:56.814 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:35:57.193 7627-8056 SceneHelper com.loveerror.bested D notifyState ltpo1.0 push currentPackageName=com.loveerror.bested ltpo10SceneState=3010 scene=IME +2025-10-26 16:35:57.194 7627-8056 HwViewRootImpl com.loveerror.bested I remove sceneId 96 topId: 0 +2025-10-26 16:36:01.506 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:36:01.546 7627-7627 Choreographer com.loveerror.bested W Frame time is 4.911785 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:36:01.552 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:36:01.555 7627-7627 Choreographer com.loveerror.bested W Frame time is 11.886955 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:36:01.570 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:36:01.570 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:36:01.595 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled... +2025-10-26 16:36:01.595 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0 +2025-10-26 16:36:01.598 7627-7627 InputMethodManager com.loveerror.bested I setNextServedViewLocked in view is null +2025-10-26 16:36:01.599 7627-7627 InputMethodManager com.loveerror.bested I FINISH INPUT: mServedView = :android.widget.EditText{f56b832 VFED..CL. .F...... 0,0-420,388 aid=3},focus=true,windowFocus=true,autofillUiShowing=false,window=android.view.ViewRootImpl$W@94a47a8,displayId=0,temporaryDetach=false,hasImeFocus=true +2025-10-26 16:36:01.599 7627-7627 InputMethodManager com.loveerror.bested I getServedView is android.widget.EditText{f56b832 VFED..CL. .F...... 0,0-420,388 aid=3} +2025-10-26 16:36:01.599 7627-7627 InputMethodManager com.loveerror.bested I setServedViewLocked in view is null +2025-10-26 16:36:01.602 7627-7627 InputMethodManager com.loveerror.bested I set currentRootView to : null +2025-10-26 16:36:01.612 7627-7692 OpenGLRenderer com.loveerror.bested D endAllActiveAnimators on 0xb400007b82467c00 (RippleDrawable) with handle 0xb400007b966af380 +2025-10-26 16:36:01.628 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0 +2025-10-26 16:36:01.632 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:01.632 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:01.637 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:01.637 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:01.657 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree Start === +2025-10-26 16:36:01.657 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.675 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:36:01.676 7627-7627 InputMethodManager com.loveerror.bested I mCurRootView is null +2025-10-26 16:36:01.676 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.676 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.676 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.677 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.677 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.678 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.679 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.680 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.680 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.681 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.682 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.682 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.683 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I 请输入集团名称 android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.684 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.685 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.685 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End [find] === +2025-10-26 16:36:01.685 7627-8310 System.out com.loveerror.bested I === targetHint:请输入集团名称 findNodeByHint Tree End === +2025-10-26 16:36:01.710 7627-8310 System.out com.loveerror.bested I 已填写集团名称: 天猫 +2025-10-26 16:36:01.715 7627-8310 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree Start === +2025-10-26 16:36:01.716 7627-8310 System.out com.loveerror.bested I after 已点击兄弟节点 android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.717 7627-8310 System.out com.loveerror.bested I android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.722 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.727 7627-8310 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.738 7627-8310 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.753 7627-8310 System.out com.loveerror.bested I android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.754 7627-8310 System.out com.loveerror.bested I android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.755 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.756 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.756 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.757 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.757 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.757 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.758 7627-8310 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.758 7627-8310 System.out com.loveerror.bested I android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=true] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=true] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.759 7627-8310 System.out com.loveerror.bested I android.widget.Button [text=搜索] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:01.759 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=1.23452384164.123412415] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:01.770 7627-8310 System.out com.loveerror.bested I android.widget.TextView [text=返回主页] [desc=] [id=com.ZJMCCMCRM:id/closebtn] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=false] +2025-10-26 16:36:01.770 7627-8310 System.out com.loveerror.bested I === after 已点击兄弟节点 View Tree End === +2025-10-26 16:36:01.820 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0 +2025-10-26 16:36:17.567 7627-8310 System.out com.loveerror.bested I 点击搜索按钮结果: true +2025-10-26 16:36:46.687 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:36:46.708 7627-7627 Choreographer com.loveerror.bested W Frame time is 3.600421 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:36:46.715 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:36:46.725 7627-7627 Choreographer com.loveerror.bested W Frame time is 3.242608 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:36:46.750 7627-7627 Choreographer com.loveerror.bested W Frame time is 1.568748 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:36:47.075 7627-7627 MouseWheelSynthesizer com.loveerror.bested D mMoveStepInDp: 64, mMoveStepInPixel: 192, mUpTimeDelayed: 100 +2025-10-26 16:36:47.077 7627-7627 ViewRootImpl com.loveerror.bested D ViewUI ViewRootImpl mIsInProductivePCDisplay: false +2025-10-26 16:36:47.097 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:47.097 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:47.109 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:e4a803e +2025-10-26 16:36:47.109 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:null, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:e4a803e +2025-10-26 16:36:47.111 7627-7627 InputEventReceiver com.loveerror.bested D dispatchInputInterval 1000000 +2025-10-26 16:36:47.117 7627-7627 HwSoraManager com.loveerror.bested I SORA is disabled for PopupWindow:e4a803e +2025-10-26 16:36:47.117 7627-7627 mDecorView com.loveerror.bested D invokePopup mDecorView params: width=480, height=1008 +2025-10-26 16:36:47.122 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:36:47.122 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:36:47.123 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0 +2025-10-26 16:36:47.127 7627-7627 ImeFocusController com.loveerror.bested I ViewUI imeDisplayId:0 contextDisplayId:0 +2025-10-26 16:36:47.148 7627-7627 BufferQueueCore com.loveerror.bested D BufferQueueCore: mDebugHwFlow=0, mIsBufferQueueLogVSupport=0. +2025-10-26 16:36:47.151 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:47.152 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:47.162 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl -> ITYPE_STATUS_BAR on PopupWindow:e4a803e +2025-10-26 16:36:47.162 7627-7627 InsetsSourceConsumer com.loveerror.bested D ViewUI_insets setControl mType:0, requestedVisible:true, getLeash:Surface(name=Surface(name=bc96bf3 StatusBar)/@0x711d416 - animation-leash of insets_animation)/@0x6245bb5, needAnimation:false, mIsAnimationPending:false, getRootViewTitle:PopupWindow:e4a803e +2025-10-26 16:36:47.171 7627-7692 OpenGLRenderer com.loveerror.bested E Unable to match the desired swap behavior. +2025-10-26 16:36:47.568 7627-7692 OpenGLRenderer com.loveerror.bested D disableOutlineDraw is true +2025-10-26 16:36:47.570 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:47.570 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:47.572 7627-7641 OpenGLRenderer com.loveerror.bested I Davey! PopupWindow:e4a803e. duration=792ms; Flags=1, FrameTimelineVsyncId=8231734, IntendedVsync=375068874453702, Vsync=375069224453688, InputEventId=0, HandleInputStart=375069230758392, AnimationStart=375069230854746, PerformTraversalsStart=375069230882350, DrawStart=375069644821413, FrameDeadline=375068891120368, FrameInterval=375069230090684, FrameStartTime=16666666, SyncQueued=375069661807350, SyncStart=375069662247454, IssueDrawCommandsStart=375069662391725, SwapBuffers=375069663663079, FrameCompleted=375069667459433, DequeueBufferDuration=17187, QueueBufferDuration=1906771, GpuCompleted=375069666209433, SwapBuffersCompleted=375069667459433, DisplayPresentTime=0, MetaDataFps=0, +2025-10-26 16:36:47.588 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode jank list is null +2025-10-26 16:36:52.551 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:36:52.552 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:36:52.554 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:36:52.556 7627-7627 HwDragEnhancementImpl com.loveerror.bested D handleTimerDrag: false +2025-10-26 16:36:52.562 7627-7627 Choreographer com.loveerror.bested W Frame time is 9.037928 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase. +2025-10-26 16:36:52.568 7627-7627 HwDragEnhancementImpl com.loveerror.bested D Start long press for hw drag enhancement. +2025-10-26 16:36:52.613 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset. +2025-10-26 16:36:52.613 7627-7627 WebViewDragEnhancement com.loveerror.bested D dragReset cacheSize = 0 +2025-10-26 16:36:52.630 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode all the node in jank list is out of time +2025-10-26 16:36:52.641 7627-7627 AudioManager com.loveerror.bested V querySoundEffectsEnabled... +2025-10-26 16:36:52.641 7627-7627 AudioManager com.loveerror.bested I querySoundEffectsEnabled fail id: 0 +2025-10-26 16:36:52.672 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:52.672 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:52.677 7627-7627 InsetsSourceConsumer com.loveerror.bested I ViewUI_insets mSourceControl is null notifyControlRevoked type: 0 +2025-10-26 16:36:52.713 7627-7627 System.out com.loveerror.bested I === View Tree Start === +2025-10-26 16:36:52.715 7627-7627 System.out com.loveerror.bested I android.widget.FrameLayout [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.817 7627-7627 System.out com.loveerror.bested I android.widget.ImageView [text=] [desc=] [id=com.ZJMCCMCRM:id/back] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:52.818 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=全网查询] [desc=] [id=com.ZJMCCMCRM:id/title] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.820 7627-7627 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_left] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:52.822 7627-7627 System.out com.loveerror.bested I android.widget.LinearLayout [text=] [desc=] [id=com.ZJMCCMCRM:id/close_right] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:52.824 7627-7627 System.out com.loveerror.bested I android.webkit.WebView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.826 7627-7627 System.out com.loveerror.bested I android.webkit.WebView [text=全网查询] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=true] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:52.828 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.830 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=view-frame] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.832 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.834 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.836 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.838 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.840 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.842 7627-7627 System.out com.loveerror.bested I android.widget.EditText [text=天猫] [desc=] [id=] [hint=请输入集团名称] [clickable=true] [longClickable=false] [editable=true] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:52.844 7627-7627 System.out com.loveerror.bested I android.widget.Button [text=搜索] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=true] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=true] [enabled=true] [focusable=true] [accessible=false] [visible=true] +2025-10-26 16:36:52.846 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.848 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫技术有限公司(57171447535)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.850 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.852 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.855 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区文一西路969号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.857 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=A1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.859 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.861 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:张慈] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.863 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.865 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=永康市天猫玻璃制品厂(57179481821)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.867 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.872 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.878 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@金华市@永康市@永康城区@总部中心金山大厦3楼] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.884 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=C1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.889 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.894 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:FW陈有双(铁通)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.895 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.901 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫网络有限公司(57171447534)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.907 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.911 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.916 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@余杭区@闲林镇五常开发区@五常大道168号3幢5层506室] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.921 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=C1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.926 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.931 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:黄仕芳(铁通)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.933 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.939 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=诸暨天猫针纺有限公司(57175393059)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.947 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.953 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.960 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@绍兴市@诸暨市@大唐镇@倪村路188号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.974 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=C1] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:52.988 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.003 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:汪玲] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.004 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.019 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫校园技术服务有限公司(57171682712)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.034 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.041 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.049 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@余杭区@闲林镇五常开发区@文一幢5层561室] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.058 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.070 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=潜在客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.080 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.083 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.094 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州天猫优选电子商务有限公司(571711532758)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.112 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.127 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.138 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区五常街道文一西路969号3幢4层495] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.149 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.159 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.177 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.179 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.189 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州天猫车站科技有限公司(57171659038)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.200 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.209 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.217 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区五常街道文一西路969号阿里巴巴西溪园区3号楼5F] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:53.225 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.232 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.243 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:许捷] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.246 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.259 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫技术有限公司温州分公司(57177634893)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.276 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.289 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.304 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@温州市@瓯海区@郭溪街道@金州工业区3楼] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.318 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.333 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.347 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周佳佳] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.352 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.366 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫供应链管理有限公司(57171739022)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.382 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.395 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.408 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@余杭区@闲林镇五常开发区@海创园] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.422 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.436 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.450 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.455 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.469 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=余姚市天猫电器有限公司(57174498257)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.485 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.498 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.509 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@宁波市@余姚市@低塘街道@郑巷村横埭] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.526 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.543 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.559 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:郑蓥] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.563 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.578 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=吴江市庙港华丰纺织厂劳天猫分部(57175478310)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.594 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.608 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.622 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@绍兴市@柯桥区@钱清镇@106县道] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.636 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.650 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.664 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周小红] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.668 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.682 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江天猫机电科技有限公司(571751040074)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.700 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.716 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.730 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省绍兴市诸暨市次坞镇迪奥路13号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.744 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.769 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=潜在客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.787 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周航波] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.794 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.812 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州萧山天猫数码有限公司(571751033322)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.833 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.852 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.871 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@杭州市@萧山区@城厢街道@浙江省杭州市萧山区城厢街道萧绍路1258号二层] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.893 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.917 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.946 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:周宣] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.955 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:53.979 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=绍兴微鲸贸易有限公司天猫部门(57175477320)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.005 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.028 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.047 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@绍兴市@柯桥区@杨汛桥镇@窗帘产业园] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.064 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.084 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.105 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:洪佳铭] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.113 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.135 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州天猫校园技术服务有限公司(571711532880)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.160 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.186 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.216 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省杭州市余杭区五常街道爱橙街2号1幢] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.238 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.260 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.288 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:王懿] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.297 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.322 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=仙居县车品天猫店王奕佳店(57176518906)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.350 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.372 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.396 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@仙居县@官路镇@东张村溪滩街9弄25号] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.420 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.443 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.471 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.480 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.508 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=天台飞天工旗舰店(天猫)(57176521785)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.536 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.565 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.587 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@天台县@坦头镇@鱼山村] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.610 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.634 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.660 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:范晓燕] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.670 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.692 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=杭州怀瑾科技有限公司(电商--千岁好天猫旗舰店)(57176469586)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.716 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.740 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.759 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@椒江区@白云街道@中心大道227号台州移动机房大楼] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.782 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.805 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=离网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.828 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.835 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.857 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=台州市路桥天猫机电设备厂(57176570514)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.880 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.904 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.925 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省@台州市@路桥区@金清镇@文昌路港湾印象斜对面] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.946 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.970 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=在网客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:54.996 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:冯茜茜] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.005 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.032 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=藤原天猫商城(57176518465)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.067 7627-7627 System.out com.loveerror.bested I android.view.View [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.096 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.120 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=浙江省台州市温岭市泽国镇夹屿村双峰大道8(正)] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.145 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=D] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.173 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=潜在客户] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.199 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=归属客户经理:李志涵] [desc=] [id=] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=false] +2025-10-26 16:36:55.207 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=] [desc=] [id=1.23452384164.123412415] [hint=] [clickable=false] [longClickable=false] [editable=false] [focusable=false] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=true] [password=false] [multiple=false] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=false] [accessible=false] [visible=true] +2025-10-26 16:36:55.214 7627-7627 System.out com.loveerror.bested I android.widget.TextView [text=返回主页] [desc=] [id=com.ZJMCCMCRM:id/closebtn] [hint=] [clickable=true] [longClickable=false] [editable=false] [focusable=true] [focus=false] [selected=false] [checkable=false] [checked=false] [scrollable=false] [visibleToUser=false] [password=false] [multiple=true] [accessibilityFocus=false] [package=com.ZJMCCMCRM] [focused=false] [enabled=true] [focusable=true] [accessible=false] [visible=false] +2025-10-26 16:36:55.214 7627-7627 System.out com.loveerror.bested I === View Tree End === +2025-10-26 16:36:55.216 7627-7627 Choreographer com.loveerror.bested I Skipped 152 frames! The application may be doing too much work on its main thread. +2025-10-26 16:36:55.216 7627-7627 RmeSchedManager com.loveerror.bested I init Rme, version is: v1.0 +2025-10-26 16:36:55.245 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][1080,105], mVisible=true} +2025-10-26 16:36:55.246 7627-7627 InsetsController com.loveerror.bested I ViewUI_insets updateState new source: InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,0][0,0], mVisible=false} +2025-10-26 16:36:55.279 7627-7627 HwViewRootImpl com.loveerror.bested I removeInvalidNode jank list is null +2025-10-26 16:37:55.692 7627-7627 WindowManager com.loveerror.bested I trimMemory level: 5 diff --git a/app/src/main/java/com/loveerror/bested/AccessibilityService.kt b/app/src/main/java/com/loveerror/bested/AccessibilityService.kt index c79403c..1ec1b61 100644 --- a/app/src/main/java/com/loveerror/bested/AccessibilityService.kt +++ b/app/src/main/java/com/loveerror/bested/AccessibilityService.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.view.accessibility.AccessibilityEvent import com.loveerror.bested.handler.ZjMccmCrm import com.loveerror.bested.tool.AccessibilityTool +import com.loveerror.bested.tool.RootNodeCallbackImpl import com.loveerror.bested.tool.WebViewTool class UIInspectorService : AccessibilityService() { @@ -15,8 +16,9 @@ class UIInspectorService : AccessibilityService() { override fun onServiceConnected() { super.onServiceConnected() + val rootNodeCallbackImpl = RootNodeCallbackImpl(uiInspectorService = this) // 初始化 ZjMccmCrm - zjMccmCrm = ZjMccmCrm(this) + zjMccmCrm = ZjMccmCrm(rootNodeCallbackImpl) zjMccmCrm.initialize(this) // 设置配置 serviceInfo = createServiceInfo() @@ -36,6 +38,10 @@ class UIInspectorService : AccessibilityService() { or AccessibilityEvent.TYPE_VIEW_FOCUSED or AccessibilityEvent.TYPE_WINDOWS_CHANGED or AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED + or AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED + or AccessibilityEvent.TYPE_VIEW_SCROLLED + or AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED + or AccessibilityEvent.TYPES_ALL_MASK -> { handleWindowChangeOpt(event) } diff --git a/app/src/main/java/com/loveerror/bested/MyApplication.kt b/app/src/main/java/com/loveerror/bested/MyApplication.kt index d15c645..017fc45 100644 --- a/app/src/main/java/com/loveerror/bested/MyApplication.kt +++ b/app/src/main/java/com/loveerror/bested/MyApplication.kt @@ -1,18 +1,14 @@ package com.loveerror.bested import android.app.Application -import android.content.BroadcastReceiver import android.content.Context -import android.content.Intent -import android.content.IntentFilter import android.os.Build import android.provider.Settings +import com.loveerror.bested.button.DragFloatingButton import com.loveerror.bested.button.GlobalFloatingButtonManager -import com.loveerror.bested.task.TaskManager class MyApplication : Application() { private lateinit var buttonManager: GlobalFloatingButtonManager - private lateinit var broadcastReceiver: BroadcastReceiver override fun onCreate() { super.onCreate() instance = this @@ -27,6 +23,11 @@ class MyApplication : Application() { } + fun getFloatingButton(context: Context): DragFloatingButton { + return buttonManager.getFloatingButton(context) + } + + override fun onTerminate() { super.onTerminate() buttonManager.cleanup() // 清理包括广播注销 diff --git a/app/src/main/java/com/loveerror/bested/SelectAccessibility.kt b/app/src/main/java/com/loveerror/bested/SelectAccessibility.kt index ae146d1..799533d 100644 --- a/app/src/main/java/com/loveerror/bested/SelectAccessibility.kt +++ b/app/src/main/java/com/loveerror/bested/SelectAccessibility.kt @@ -1,10 +1,10 @@ package com.loveerror.bested -import android.view.accessibility.AccessibilityNodeInfo -import android.accessibilityservice.AccessibilityService import android.view.accessibility.AccessibilityEvent +import android.view.accessibility.AccessibilityNodeInfo +import com.loveerror.bested.tool.RootNodeCallback -class SelectAccessibility(private val service: UIInspectorService) { +class SelectAccessibility(private val service: RootNodeCallback) { fun handleSelectPopup(event: AccessibilityEvent) { @@ -18,7 +18,7 @@ class SelectAccessibility(private val service: UIInspectorService) { // 延迟一小段时间确保弹窗完全加载 Thread.sleep(500) - val root = service.rootInActiveWindow + val root = service.getRootNodeReceived() if (root != null) { // 查找所有可点击的选项 traverseAndFindOptions(root) @@ -67,7 +67,7 @@ class SelectAccessibility(private val service: UIInspectorService) { } fun selectOptionByText(optionText: String) { - val root = service.rootInActiveWindow + val root = service.getRootNodeReceived() if (root != null) { val optionNodes = root.findAccessibilityNodeInfosByText(optionText) optionNodes.firstOrNull()?.let { node -> diff --git a/app/src/main/java/com/loveerror/bested/button/ActionEvent.kt b/app/src/main/java/com/loveerror/bested/button/ActionEvent.kt index 7426caa..615e4b4 100644 --- a/app/src/main/java/com/loveerror/bested/button/ActionEvent.kt +++ b/app/src/main/java/com/loveerror/bested/button/ActionEvent.kt @@ -2,19 +2,22 @@ package com.loveerror.bested.button enum class ActionEvent { - START_ACTION("com.loveerror.bested.START_ACTION", "启动按钮"), - FILL_ACTION("com.loveerror.bested.FILL_ACTION", "填充表单"), + START_ACTION("com.loveerror.bested.START_ACTION", "去普通建档"), + FILL_ACTION("com.loveerror.bested.FILL_ACTION", "普通建档填充表单"), SET_DATA_SOURCE("com.loveerror.bested.SET_DATA_SOURCE", "设置数据源"), HIDE_FLOATING_BUTTON("com.loveerror.bested.HIDE_FLOATING_BUTTON", "隐藏悬浮按钮"), PRINT_CURRENT_PAGE("com.loveerror.bested.PRINT_CURRENT_PAGE", "打印当前界面"), - QUERY_COMPANY_REGISTER("com.loveerror.bested.QUERY_COMPANY_REGISTER", "查询公司是否注册",isDisplay = true, menuWithText = true), - UNKNOWN("com.loveerror.bested.UNKNOWN", "未知",isDisplay = false); - constructor(event: String, menuName: String, isDisplay: Boolean = true, menuWithText: Boolean= false){ + QUERY_COMPANY_REGISTER("com.loveerror.bested.QUERY_COMPANY_REGISTER", "去全网查询",isDisplay = true), + QUERY_COMPANY_SEARCH_ACTION("com.loveerror.bested.QUERY_COMPANY_SEARCH_ACTION", "查询公司是否注册",isDisplay = true, menuWithText = listOf("companyNames")), + UNKNOWN("com.loveerror.bested.UNKNOWN", "未知",isDisplay = false, enable = false); + + constructor(event: String, menuName: String, isDisplay: Boolean = true, menuWithText: List = emptyList(), enable: Boolean = true){ this.event = event this.menuName = menuName this.menuWithText = menuWithText this.isDisplay = isDisplay + this.enable = enable } val menuName: String @@ -22,7 +25,8 @@ enum class ActionEvent { val isDisplay: Boolean - val menuWithText: Boolean + val menuWithText: List + val enable: Boolean companion object { fun getByMenuName(menuName: String) :ActionEvent { diff --git a/app/src/main/java/com/loveerror/bested/button/CircularProgressDrawable.kt b/app/src/main/java/com/loveerror/bested/button/CircularProgressDrawable.kt new file mode 100644 index 0000000..cb91b37 --- /dev/null +++ b/app/src/main/java/com/loveerror/bested/button/CircularProgressDrawable.kt @@ -0,0 +1,46 @@ +// 新建文件 CircularProgressDrawable.kt +package com.loveerror.bested.button + +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint +import android.graphics.RectF +import android.graphics.drawable.Drawable + +class CircularProgressDrawable : Drawable() { + private var progress = 0 + private val paint = Paint(Paint.ANTI_ALIAS_FLAG) + private val rectF = RectF() + + fun setProgress(progress: Int) { + this.progress = progress.coerceIn(0, 100) + invalidateSelf() + } + + override fun draw(canvas: Canvas) { + val bounds = bounds + rectF.set(bounds) + + // 绘制蓝色背景圆 + paint.style = Paint.Style.FILL + paint.color = Color.BLUE + canvas.drawOval(rectF, paint) + + // 绘制绿色进度扇形 + if (progress > 0) { + paint.color = Color.GREEN + val sweepAngle = 360f * progress / 100f + canvas.drawArc(rectF, -90f, sweepAngle, true, paint) + } + } + + override fun setAlpha(alpha: Int) { + paint.alpha = alpha + } + + override fun setColorFilter(colorFilter: android.graphics.ColorFilter?) { + paint.colorFilter = colorFilter + } + + override fun getOpacity(): Int = android.graphics.PixelFormat.TRANSLUCENT +} \ No newline at end of file diff --git a/app/src/main/java/com/loveerror/bested/button/DragFloatingButton.kt b/app/src/main/java/com/loveerror/bested/button/DragFloatingButton.kt index 1473857..99a1eef 100644 --- a/app/src/main/java/com/loveerror/bested/button/DragFloatingButton.kt +++ b/app/src/main/java/com/loveerror/bested/button/DragFloatingButton.kt @@ -13,8 +13,8 @@ import android.widget.EditText import android.widget.PopupMenu import android.app.Activity import android.content.ContextWrapper -import android.app.Application -import android.widget.Toast +import android.widget.LinearLayout + class DragFloatingButton(context: Context) : View(context) { private val paint = Paint().apply { isAntiAlias = true @@ -31,22 +31,27 @@ class DragFloatingButton(context: Context) : View(context) { init { // 初始化时创建正确的 WindowManager.LayoutParams - layoutParams = WindowManager.LayoutParams( + this.layoutParams = WindowManager.LayoutParams( 150, 150, WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT ) - this.layoutParams = layoutParams } + override fun onDraw(canvas: Canvas) { super.onDraw(canvas) - canvas.let { - // 绘制圆形按钮 - paint.color = Color.BLUE - it.drawCircle(width / 2f, height / 2f, minOf(width, height) / 2f, paint) - // 绘制菜单图标(三个点) + if (isProgressVisible && progressDrawable != null) { + // 设置进度drawable的边界 + progressDrawable?.setBounds(0, 0, width, height) + progressDrawable?.draw(canvas) + } else { + // 绘制原始按钮 + paint.color = Color.BLUE + canvas.drawCircle(width / 2f, height / 2f, minOf(width, height) / 2f, paint) + + // 绘制菜单图标 paint.color = Color.WHITE paint.strokeWidth = 8f val centerX = width / 2f @@ -54,9 +59,9 @@ class DragFloatingButton(context: Context) : View(context) { val dotRadius = 4f val spacing = 12f - it.drawCircle(centerX, centerY - spacing, dotRadius, paint) - it.drawCircle(centerX, centerY, dotRadius, paint) - it.drawCircle(centerX, centerY + spacing, dotRadius, paint) + canvas.drawCircle(centerX, centerY - spacing, dotRadius, paint) + canvas.drawCircle(centerX, centerY, dotRadius, paint) + canvas.drawCircle(centerX, centerY + spacing, dotRadius, paint) } } @@ -83,10 +88,6 @@ class DragFloatingButton(context: Context) : View(context) { windowManager.updateViewLayout(this, layoutParams!!) } -// if (layoutParams == null) { -// layoutParams = this.layoutParams as? WindowManager.LayoutParams -// } - originalX = layoutParams?.x ?: 0 originalY = layoutParams?.y ?: 0 isDragging = false @@ -130,7 +131,7 @@ class DragFloatingButton(context: Context) : View(context) { for (item in ActionEvent.entries){ if (item.isDisplay) { // 检查是否需要文本输入 - if (item.menuWithText) { + if (item.menuWithText.isNotEmpty()) { popup.menu.add(0, item.ordinal, 0, item.menuName).setOnMenuItemClickListener { showTextInputDialog(item) true @@ -144,44 +145,45 @@ class DragFloatingButton(context: Context) : View(context) { // 为不需要文本输入的菜单项设置监听器 popup.setOnMenuItemClickListener { item -> val actionEvent = ActionEvent.entries.find { it.ordinal == item.itemId } - if (actionEvent != null && !actionEvent.menuWithText) { + if (actionEvent != null && actionEvent.menuWithText.isEmpty()) { triggerActionEvent(actionEvent) } true } popup.show() -// popup.setOnMenuItemClickListener { item -> -// val actionEvent = ActionEvent.getByMenuName(item.title.toString()) -// try { -// context.sendBroadcast(android.content.Intent(actionEvent.event).apply { -// setPackage(context.packageName) -// }) -// } catch (e: IllegalArgumentException) { -// // 处理枚举值不存在的情况 -// e.printStackTrace() -// println("枚举值不存在: ${item.title},${actionEvent}, ${e.toString()}") -// } -// true -// } -// -// popup.show() + } private fun showTextInputDialog(actionEvent: ActionEvent) { println("Attempting to show text input dialog for: ${actionEvent.menuName}") + // 根据 actionEvent.menuWithText 创建对应数量的editText 放到一个 linearLayout 中 + val editTexts = arrayListOf() + val linearLayout = LinearLayout(context).apply { + // 设置布局参数 + layoutParams = LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ) + } + for (menuWithText in actionEvent.menuWithText) { + val editText = EditText(context).apply { + inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE + setLines(5) + gravity = Gravity.TOP or Gravity.START + setTextIsSelectable(true) + movementMethod = ScrollingMovementMethod.getInstance() + hint = menuWithText + tag = menuWithText - val editText = EditText(context).apply { - inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE - setLines(5) - gravity = Gravity.TOP or Gravity.START - setTextIsSelectable(true) - movementMethod = ScrollingMovementMethod.getInstance() + } + linearLayout.addView(editText) + editTexts.add(editText) } val dialog = AlertDialog.Builder(context) .setTitle("请输入公司名称") - .setView(editText) + .setView(linearLayout) .setPositiveButton("确定", null) // 先设置为null,稍后手动处理 .setNegativeButton("取消", null) .create() @@ -190,16 +192,22 @@ class DragFloatingButton(context: Context) : View(context) { dialog.setOnShowListener { val positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE) positiveButton.setOnClickListener { - val inputText = editText.text.toString().trim() - // 如果文本为空,则显示提示并不关闭对话框 - if (inputText.isEmpty()) { - // 在EditText下方显示错误提示 - editText.error = "请输入公司名称" - // 不关闭对话框 - return@setOnClickListener + val textWithTags = mutableListOf() + // 遍历editText eeditTexts + for (editText in editTexts) { + val inputText = editText.text.toString().trim() + // 如果文本为空,则显示提示并不关闭对话框 + if (inputText.isEmpty()) { + // 在EditText下方显示错误提示 + editText.error = "请输入"+editText.hint + // 不关闭对话框 + return@setOnClickListener + } + textWithTags.add(TextWithTag(inputText, editText.tag.toString())) } + // 输入有效,触发事件并关闭对话框 - triggerActionEvent(actionEvent, inputText) + triggerActionEvent(actionEvent, textWithTags) dialog.dismiss() } } @@ -210,7 +218,14 @@ class DragFloatingButton(context: Context) : View(context) { dialog.show() } - + class TextWithTag { + var text: String + var tag: String + constructor(text: String, tag: String) { + this.text = text + this.tag = tag + } + } private fun getContextForDialog(): Context? { var currentContext = context @@ -223,14 +238,14 @@ class DragFloatingButton(context: Context) : View(context) { return null } - private fun triggerActionEvent(actionEvent: ActionEvent, textInput: String? = null) { + private fun triggerActionEvent(actionEvent: ActionEvent, textInputs: MutableList = mutableListOf()) { try { val intent = android.content.Intent(actionEvent.event).apply { setPackage(context.packageName) } // 如果有文本输入,添加到Intent中 - textInput?.let { - intent.putExtra("textInput", it) + for(textWithTag in textInputs){ + intent.putExtra(textWithTag.tag, textWithTag.text) } context.sendBroadcast(intent) } catch (e: IllegalArgumentException) { @@ -238,6 +253,32 @@ class DragFloatingButton(context: Context) : View(context) { println("枚举值不存在: $actionEvent, ${e.toString()}") } } + + /// + private var progressDrawable: CircularProgressDrawable? = null + private var isProgressVisible = false + + // 设置进度值 + fun setProgress(progress: Int) { + if (progressDrawable == null) { + progressDrawable = CircularProgressDrawable() + } + progressDrawable?.setProgress(progress) + if (isProgressVisible) { + invalidate() + } + } + + // 显示/隐藏进度条 + fun showProgress(show: Boolean) { + isProgressVisible = show + if (show && progressDrawable == null) { + progressDrawable = CircularProgressDrawable() + } + invalidate() + } + + } diff --git a/app/src/main/java/com/loveerror/bested/button/GlobalFloatingButtonManager.kt b/app/src/main/java/com/loveerror/bested/button/GlobalFloatingButtonManager.kt index 9186af8..6b0f8c9 100644 --- a/app/src/main/java/com/loveerror/bested/button/GlobalFloatingButtonManager.kt +++ b/app/src/main/java/com/loveerror/bested/button/GlobalFloatingButtonManager.kt @@ -18,6 +18,13 @@ class GlobalFloatingButtonManager(private val context: Context) { private var broadcastReceiver: BroadcastReceiver? = null private var isEnabled = true // 添加启用状态标志 + + fun getFloatingButton(context: Context): DragFloatingButton { + if (floatingButton == null) { + floatingButton = DragFloatingButton(context.applicationContext) + } + return floatingButton!! + } fun initialize() { // 注册广播接收器 broadcastReceiver = object : BroadcastReceiver() { diff --git a/app/src/main/java/com/loveerror/bested/handler/FieldName.kt b/app/src/main/java/com/loveerror/bested/handler/FieldName.kt new file mode 100644 index 0000000..6b6f9a0 --- /dev/null +++ b/app/src/main/java/com/loveerror/bested/handler/FieldName.kt @@ -0,0 +1,38 @@ +package com.loveerror.bested.handler + +class FieldName { + + val defaultValue: String + val type: FieldType + + constructor(fieldName: String, hintText: String, defaultValue: String, type: FieldType = FieldType.TEXT){ + this.fieldName = fieldName + this.hintText = hintText + this.defaultValue = defaultValue + this.type = type + } + val fieldName: String + val hintText: String +} + +enum class FieldType { + TEXT, + SELECT, + SEARCH_SELECT, + CHECKBOX, + RADIO, + DATE, + TIME, + NUMBER, + CURRENCY, + EMAIL, + PHONE, + ADDRESS, + URL, + PASSWORD, + FILE, + IMAGE, + VIDEO, + AUDIO, + OTHER +} \ No newline at end of file diff --git a/app/src/main/java/com/loveerror/bested/handler/NormalGroupCreateForm.kt b/app/src/main/java/com/loveerror/bested/handler/NormalGroupCreateForm.kt index fa1413c..5ba85a4 100644 --- a/app/src/main/java/com/loveerror/bested/handler/NormalGroupCreateForm.kt +++ b/app/src/main/java/com/loveerror/bested/handler/NormalGroupCreateForm.kt @@ -1,56 +1,20 @@ package com.loveerror.bested.handler import android.view.accessibility.AccessibilityNodeInfo -import com.loveerror.bested.UIInspectorService import com.loveerror.bested.tool.AccessibilityTool +import com.loveerror.bested.tool.AccessibilityTool.Companion.performBottomSheetSelection import com.loveerror.bested.tool.NodeToolHint import com.loveerror.bested.tool.NodeToolText -import com.loveerror.bested.tool.NodeToolTime +import com.loveerror.bested.tool.RootNodeCallback -class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService){ +class NormalGroupCreateForm(private val rootNodeCallback: RootNodeCallback) { - fun getRootInActiveWindow(): AccessibilityNodeInfo?{ - return uiInspectorService.rootInActiveWindow - } - - class FieldName { - - val fieldName: String - val hintText: String - val defaultValue: String - val type: FieldType - - constructor(fieldName: String, hintText: String, defaultValue: String, type: FieldType = FieldType.TEXT){ - this.fieldName = fieldName - this.hintText = hintText - this.defaultValue = defaultValue - this.type = type - } - } - - enum class FieldType { - TEXT, - SELECT, - SEARCH_SELECT, - CHECKBOX, - RADIO, - DATE, - TIME, - NUMBER, - CURRENCY, - EMAIL, - PHONE, - ADDRESS, - URL, - PASSWORD, - FILE, - IMAGE, - VIDEO, - AUDIO, - OTHER + fun getRootInActiveWindow(): AccessibilityNodeInfo? { + return rootNodeCallback.getRootNodeReceived() } var fields = arrayListOf() + init { fields.add(FieldName("集团名称", "请输入集团名称", "集团abc", FieldType.TEXT)) fields.add(FieldName("证件名称", "证件名称", "jituan", FieldType.TEXT)) @@ -66,11 +30,8 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) fields.add(FieldName("集团等级", "", "D", FieldType.TEXT)) fields.add(FieldName("建筑物名称", "请输入搜索地址", "金牛座", FieldType.SEARCH_SELECT)) fields.add(FieldName("细分客群", "", "其他", FieldType.SELECT)) - - } - /** * 自动填充普通集团建档表单 * @param root AccessibilityNodeInfo根节点 @@ -95,27 +56,46 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) // 先展开分类信息区域 // expandClassificationSection(root) - for(field in fields){ - if (field.type == FieldType.SELECT){ - performBottomSheetSelection(root, field.fieldName, fieldMap[field.fieldName] ?: field.defaultValue) - }else if(field.type == FieldType.TIME){ + for (field in fields) { + if (field.type == FieldType.SELECT) { + AccessibilityTool.performBottomSheetSelection( + rootNodeCallback = rootNodeCallback, + field.fieldName, + fieldMap[field.fieldName] ?: field.defaultValue + ) + } else if (field.type == FieldType.TIME) { // 格式化证件有效期 >2090-11-23 格式化为2090-11-23 - val date = normalizeExpiryDate(fieldMap[field.fieldName] ?: field.defaultValue, field.defaultValue) - performBottomTimeSelection(root, field.fieldName,date) + val date = AccessibilityTool.normalizeExpiryDate( + fieldMap[field.fieldName] ?: field.defaultValue, field.defaultValue + ) + AccessibilityTool.performBottomTimeSelection( + rootNodeCallback, + field.fieldName, + date + ) - }else if (field.type == FieldType.SEARCH_SELECT){ - performBottomSearchSelection(root, field.fieldName, field.hintText, fieldMap[field.fieldName] ?: field.defaultValue) - }else{ - fillEditTextByHintText(root,fieldMap[field.fieldName] ?: field.defaultValue, field.fieldName, field.hintText) + } else if (field.type == FieldType.SEARCH_SELECT) { + AccessibilityTool.performBottomSearchSelection( + rootNodeCallback, field.fieldName, + field.hintText, fieldMap[field.fieldName] ?: field.defaultValue + ) + } else { + AccessibilityTool.fillEditTextByHintText( + root, fieldMap[field.fieldName] ?: field.defaultValue, field.fieldName, + field.hintText + ) } } - AccessibilityTool.printViewTree(uiInspectorService.rootInActiveWindow,"after 已点击兄弟节点") - var rootNew = uiInspectorService.rootInActiveWindow + AccessibilityTool.printViewTree( + rootNodeCallback.getRootNodeReceived(), + "after 已点击兄弟节点" + ) + var rootNew = rootNodeCallback.getRootNodeReceived() - var peopleCountNode = NodeToolText.findNodeByText(rootNew,"请输入人数") + var peopleCountNode = NodeToolText.findNodeByText(rootNew, "请输入人数") - if (peopleCountNode == null){ + if (peopleCountNode == null) { println("未找到员工数输入框") // 使用示例 val targetNode = NodeToolText.findNodeByText(root, "分类信息") @@ -132,13 +112,17 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) } else { println("未找到可点击的兄弟节点") } - rootNew = uiInspectorService.rootInActiveWindow - peopleCountNode = NodeToolText.findNodeByText(rootNew,"请输入人数") + rootNew = rootNodeCallback.getRootNodeReceived() + peopleCountNode = NodeToolText.findNodeByText(rootNew, "请输入人数") } - fillEditText(peopleCountNode, fieldMap["员工数"] ?: "1","员工数") + AccessibilityTool.fillEditText(peopleCountNode, fieldMap["员工数"] ?: "1", "员工数") // fillEditTextByHintText(rootNew,fieldMap["员工数"] ?: "1", "员工数", "请输入人数") - clickToOpenBottomSheetAddress(root, "请点击此处打点","浙江省杭州市余杭区高顺路8号五常西溪软件园金牛座A座") + clickToOpenBottomSheetAddress( + root, + "请点击此处打点", + "浙江省杭州市余杭区高顺路8号五常西溪软件园金牛座A座" + ) // 示例:点击"集团状态"触发底部选择,选择"在网集团" // fillCompanyNameField(root, groupName) @@ -147,19 +131,23 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) } // 打点 - private fun clickToOpenBottomSheetAddress(root: AccessibilityNodeInfo, triggerText: String,address: String) { + private fun clickToOpenBottomSheetAddress( + root: AccessibilityNodeInfo, + triggerText: String, + address: String + ) { // val triggerNode = NodeToolText.findNodeByText(root, triggerText) // 父级的可点击 - if (triggerNode != null ) { + if (triggerNode != null) { AccessibilityTool.performClick(triggerNode) println("已点击打点按钮") } else { println("未找到打点按钮") return } - if(!checkTextViewWithRetry()){ + if (!checkTextViewWithRetry()) { println("未找到宽带选址") return } @@ -176,7 +164,7 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) } Thread.sleep(3000) var clickFirst = findTargetElement(getRootInActiveWindow()) - if(clickFirst == null){ + if (clickFirst == null) { println("clickFirst is null") return } @@ -184,13 +172,14 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) Thread.sleep(3000) var searchButton = NodeToolText.findNodeByText(getRootInActiveWindow(), "搜索") - if(searchButton ==null){ + if (searchButton == null) { println("未找到搜索按钮") return } // 获取搜索 按钮 前面挨着的 android.widget.EditText [text=] [desc=] [id=search] 元素 - val searchEditText = NodeToolText.findPreviousSiblingNode(searchButton, "android.widget.EditText") - if (searchEditText == null){ + val searchEditText = + NodeToolText.findPreviousSiblingNode(searchButton, "android.widget.EditText") + if (searchEditText == null) { println("未找到搜索框") return } @@ -206,19 +195,19 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) searchButton = NodeToolText.findNodeByText(getRootInActiveWindow(), "搜索") - if(searchButton ==null){ + if (searchButton == null) { println("未找到搜索按钮") return } var resultNode = NodeToolText.findNextSiblingNode(searchButton.parent) - if(resultNode == null){ + if (resultNode == null) { println("未找到下一个节点") return } - var nodeA =NodeToolText.findNodeByText(resultNode,"五常西溪软件园金牛座-A座") - if(nodeA == null){ + var nodeA = NodeToolText.findNodeByText(resultNode, "五常西溪软件园金牛座-A座") + if (nodeA == null) { println("未找到五常西溪软件园金牛座-A座") return } @@ -226,14 +215,14 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) AccessibilityTool.performClick(nodeA) Thread.sleep(3000) - AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow()) + AccessibilityTool.dismissPopupByClickingMask(getRootInActiveWindow()) // Thread.sleep(2000) // AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow()) Thread.sleep(2000) - var newAddress = NodeToolText.findNodeByText(getRootInActiveWindow(),"新增") - if(newAddress == null){ + val newAddress = NodeToolText.findNodeByText(getRootInActiveWindow(), "新增") + if (newAddress == null) { println("未找到新增") return } @@ -241,18 +230,18 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) Thread.sleep(3000) - performBottomSheetSelection(getRootInActiveWindow(), "区县","余杭区") + performBottomSheetSelection(rootNodeCallback, "区县", "余杭区") Thread.sleep(1000) - performBottomSheetSelection(getRootInActiveWindow(), "街道","五常街道") + performBottomSheetSelection(rootNodeCallback, "街道", "五常街道") Thread.sleep(1000) val addressDetail = NodeToolHint.findNodeByHint(getRootInActiveWindow(), "请输入详细地址") - if(addressDetail == null){ + if (addressDetail == null) { println("未找到详细地址") return } AccessibilityTool.inputText(addressDetail, "五常西溪软件园金牛座-A座4层101号") Thread.sleep(1000) - AccessibilityTool.dismissPopupByClickingMask( getRootInActiveWindow()) + AccessibilityTool.dismissPopupByClickingMask(getRootInActiveWindow()) Thread.sleep(1000) } @@ -291,259 +280,22 @@ class NormalGroupCreateForm (private val uiInspectorService: UIInspectorService) return false // 5次尝试后仍未找到 } - private fun performBottomSearchSelection( - root: AccessibilityNodeInfo, - fieldName: String, - hintText: String , - searchWord: String, - ){ - try { - // 1. 点击触发元素打开搜索对话框 - clickToOpenBottomSheet(root, fieldName) - - // 2. 等待对话框完全显示 - Thread.sleep(1000) - - // 3. 获取更新后的根节点 - val newRoot = getRootInActiveWindow() ?: root - - // 4. 查找搜索输入框 - val searchEditText = NodeToolHint.findNodeByHint(newRoot, hintText) - if (searchEditText != null && searchEditText.isEditable) { - // 5. 输入搜索关键词 - AccessibilityTool.inputText(searchEditText, searchWord) - println("已在搜索框中输入: $searchWord") - AccessibilityTool.performSearchEnter(searchEditText) - // 6. 等待搜索结果加载 - Thread.sleep(5000) - - // 7. 选择第一个搜索结果(如果有) - selectFirstSearchResult(newRoot) - } else { - println("未找到搜索输入框或输入框不可编辑") - } - } catch (e: Exception) { - println("搜索选择操作失败: ${e.message}") - } - } - - private fun selectFirstSearchResult(root: AccessibilityNodeInfo) { - // 查找可点击的搜索结果项 - // 根据UI树,搜索结果可能在 "没有更多了..." 之前 - val searchResult = findClickableSearchResult(root) - if (searchResult != null && searchResult.isClickable) { - AccessibilityTool.ensureNodeVisible(searchResult) - AccessibilityTool.performClick(searchResult) - println("已选择第一个搜索结果") - - // 点击确认按钮 - Thread.sleep(500) - val confirmButton = NodeToolText.findNodeByText(root, "确认") - ?: NodeToolText.findNodeByText(root, "确定") - if (confirmButton?.isClickable == true) { - AccessibilityTool.performClick(confirmButton) - println("已点击确认按钮") - } - } else { - println("未找到可点击的搜索结果") - } - } - - private fun findClickableSearchResult(root: AccessibilityNodeInfo): AccessibilityNodeInfo? { - // 遍历查找可点击的搜索结果项 - // 这里可以根据具体的UI结构进行调整 - return NodeToolText.findNodeByText(root, "金牛座") // 示例匹配 - } - - private fun normalizeExpiryDate(dateString: String, defaultValue: String="2090-11-23", maxValue: String="2090-11-23"): String { - // 如果不是日期格式,返回默认值 - if (!dateString.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) { - return defaultValue // 默认值 - } - - // 比较日期是否大于最大值 - val inputDate = dateString.replace("-", "").toIntOrNull() ?: 0 - val maxDateValue = maxValue.replace("-", "").toIntOrNull() ?: 20901123 - - return if (inputDate > maxDateValue) { - maxValue // 限制最大值 - } else { - dateString // 保持原值 - } - } - - - private fun performBottomTimeSelection( - root: AccessibilityNodeInfo, - fieldName: String, - date: String, - ) { - - // 校验格式是否为日期格式 - if (!date.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) { - throw IllegalArgumentException("Invalid date format. Please provide a date in the format YYYY-MM-DD.") - } - // 解析出年、月、日 - val (year, month, day) = date.split("-") - - // 1. 点击触发元素打开底部对话框 - clickToOpenBottomSheet(root, fieldName) - - // 2. 等待对话框完全显示 - Thread.sleep(1000) - - NodeToolTime.selectDateWithRetry(root, year, month, day, - { getRootInActiveWindow() }) - } - - - // 点击可点击的触发元素来显示底部选择对话框 - fun clickToOpenBottomSheet(root: AccessibilityNodeInfo, triggerText: String) { - val triggerNode = NodeToolText.findNodeByText(root, triggerText) - if (triggerNode != null && triggerNode.isClickable) { - AccessibilityTool.ensureNodeVisible(triggerNode) - AccessibilityTool.performClick(triggerNode) - Thread.sleep(1000) // 等待对话框弹出 - }else{ - - var parent = triggerNode?.parent - while (parent != null) { - if (parent.isClickable) { - AccessibilityTool.ensureNodeVisible(parent) - AccessibilityTool.performClick(parent) - return - } - parent = parent.parent - } - } - } - // 完整流程:点击触发 -> 选择选项 - fun performBottomSheetSelection(root: AccessibilityNodeInfo?, triggerText: String, optionText: String) { - if(root == null){ - return - } - // 1. 点击触发元素打开底部对话框 - clickToOpenBottomSheet(root, triggerText) - // 2. 等待对话框完全显示 - Thread.sleep(1000) - - // 3. 选择目标选项 - selectOptionFromBottomSheet(optionText) - - // 4. 明确点击确认按钮 dubbo check - val newRoot = uiInspectorService.rootInActiveWindow - clickConfirmButton(newRoot) - Thread.sleep(500) // 等待确认操作完成 - } - - // 在底部对话框中选择指定选项 - fun selectOptionFromBottomSheet(optionText: String, confirm: Boolean = true) { - // 获取更新后的根节点 - val newRoot = uiInspectorService.rootInActiveWindow - - // 查找并点击选项 - val optionNode = NodeToolText.findNodeByText(newRoot, optionText) - if (optionNode != null) { - AccessibilityTool.ensureNodeVisible(optionNode) - if (optionNode.isClickable) { - AccessibilityTool.performClick(optionNode) - println("已选择底部选项: $optionText") - - // 根据需要点击确认或取消按钮 - if (confirm) { - clickConfirmButton(newRoot) - } else { - clickCancelButton(newRoot) - } - } - } else { - println("未找到底部选项: $optionText") - } - } - - - // 点击确认按钮 - private fun clickConfirmButton(root: AccessibilityNodeInfo): Boolean { - val confirmButton = NodeToolText.findNodeByText(root, "确定") - ?: NodeToolText.findNodeByText(root, "确认") - - println("查找确认按钮: ${confirmButton != null}") - if (confirmButton != null) { - println("确认按钮属性 - clickable: ${confirmButton.isClickable}, visibleToUser: ${confirmButton.isVisibleToUser}") - if (confirmButton.isClickable) { - AccessibilityTool.ensureNodeVisible(confirmButton) - AccessibilityTool.performClick(confirmButton) - println("已点击确认按钮") - return true - } else { - println("确认按钮不可点击") - } - } else { - println("未找到确认按钮") - // 打印当前界面树以便调试 - AccessibilityTool.printViewTree(root, "确认按钮未找到时的界面树") - } - return false - } - - // 点击取消按钮 - private fun clickCancelButton(root: AccessibilityNodeInfo) { - val cancelButton = NodeToolText.findNodeByText(root, "取消") - if (cancelButton != null && cancelButton.isClickable) { - AccessibilityTool.performClick(cancelButton) - println("已点击取消按钮") - } - } - - private fun expandClassificationSection(root: AccessibilityNodeInfo) { - var peopleCountNode = NodeToolText.findNodeByText(root, "请输入人数") - if (peopleCountNode == null) { - println("未找到员工数输入框") - val targetNode = NodeToolText.findNodeByText(root, "分类信息") - val nextSibling = NodeToolText.findNextSiblingNode(targetNode) - - if (nextSibling != null && nextSibling.isClickable) { - AccessibilityTool.ensureNodeVisible(nextSibling) - AccessibilityTool.performClick(nextSibling) - Thread.sleep(2000) - println("已点击兄弟节点") - } else { - println("未找到可点击的兄弟节点") - } - } - } /** * 填写集团名称字段 * 根据UI树分析,查找hint为"请输入集团名称"的EditText并填入值 */ private fun fillGroupNameField(root: AccessibilityNodeInfo, value: String) { - fillEditTextByHintText(root,value, "集团名称","请输入集团名称") + AccessibilityTool.fillEditTextByHintText(root, value, "集团名称", "请输入集团名称") } private fun fillCompanyNameField(root: AccessibilityNodeInfo, value: String) { - fillEditTextByHintText(root,value, "证件名称","证件名称") + AccessibilityTool.fillEditTextByHintText(root, value, "证件名称", "证件名称") } - private fun fillEditTextByHintText(root: AccessibilityNodeInfo, value: String, fieldName : String, hintText: String) { - var editTextNode = NodeToolHint.findNodeByHint(root, hintText) - fillEditText(editTextNode,value,fieldName) - } - private fun fillEditText(editText: AccessibilityNodeInfo?, value: String, fieldName : String) { - if (editText == null) { - return - } - - if (editText.isEditable) { - AccessibilityTool.inputText(editText, value) - println("已填写$fieldName: $value") - } else { - println("未找到${fieldName}输入框或输入框不可编辑") - } - } /** * 选择集团状态 diff --git a/app/src/main/java/com/loveerror/bested/handler/SearchCompanyForm.kt b/app/src/main/java/com/loveerror/bested/handler/SearchCompanyForm.kt new file mode 100644 index 0000000..5752322 --- /dev/null +++ b/app/src/main/java/com/loveerror/bested/handler/SearchCompanyForm.kt @@ -0,0 +1,387 @@ +package com.loveerror.bested.handler + +import android.content.Intent +import android.os.Handler +import android.os.Looper +import android.view.accessibility.AccessibilityNodeInfo +import com.loveerror.bested.button.DragFloatingButton +import com.loveerror.bested.tool.AccessibilityTool +import com.loveerror.bested.tool.AccessibilityTool.Companion.performBottomSheetSelection +import com.loveerror.bested.tool.CsvTool +import com.loveerror.bested.tool.NodeToolHint +import com.loveerror.bested.tool.NodeToolText +import com.loveerror.bested.tool.RootNodeCallback +import com.loveerror.bested.tool.StorageTool +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale + + +class SearchCompanyForm(private val rootNodeCallback: RootNodeCallback, + private val floatingButton: DragFloatingButton? = null) { + + var fields = arrayListOf() + init { + fields.add(FieldName("集团名称", "请输入集团名称", "", FieldType.TEXT)) + } + fun getRootInActiveWindow(): AccessibilityNodeInfo?{ + return rootNodeCallback.getRootNodeReceived() + } + fun autoFillForm(root: AccessibilityNodeInfo, intent: Intent) { + + val companyNames = intent.getStringExtra("companyNames") + if (companyNames.isNullOrEmpty()) { + return + } + // split by \n and trim and ignore empty + val companies = companyNames.split("\n").map { it.trim() }.filter { it.isNotEmpty() }.distinct() + + if(companies.isEmpty()){ + return + } + + val resultsAll = arrayListOf() + + + // 添加进度跟踪 + val totalCompanies = companies.size + println("开始搜索 $totalCompanies 个公司...") + + for ((index, company) in companies.withIndex()) { + + // 使用ASCII进度条显示进度 + val progress = ((index + 1) * 100 / totalCompanies) + updateProgress(progress) + println(" 正在搜索: $company") + println("进度: $progress% ($index+1/$totalCompanies) - 正在搜索: $company") + + + val fieldMap = mapOf( + "集团名称" to company, + ) + + // 搜索公司 + val results = searchCompany(root,fieldMap) + if(results.isEmpty()){ + resultsAll.add(CompanyInfo(company,"N", "", "", "", + AddressInfo("", "", "", "", detail = ""), + "", "", "")) + continue + } + + // for results to set item.searchName = company + for (item in results) { + item.searchName = company + item.isArchived = "X "+item.manager + } + resultsAll.addAll( results) + + // 可选:添加延迟避免请求过于频繁 + if (index < companies.size - 1) { + Thread.sleep(500) // 每个搜索之间间隔500ms + } + + } + + // 显示100%完成进度 + updateProgress(100) + println("搜索完成,共找到 ${resultsAll.size} 条记录") + writeResultsToCsv(resultsAll) + + + } + + interface ProgressCallback { + fun onProgressUpdate(current: Int, total: Int, message: String) + } + + private fun updateProgress(progress: Int) { + // 更新控制台进度条 + printProgressBar(progress) + + Handler(Looper.getMainLooper()).postDelayed({ + // 更新悬浮按钮进度(如果可用) + floatingButton?.showProgress(true) + floatingButton?.setProgress(progress) + }, 500) + + } + private fun printProgressBar(progress: Int, width: Int = 30) { + val completed = (width * progress / 100) + val bar = "[" + "█".repeat(completed) + "░".repeat(width - completed) + "] $progress%" + print("\r$bar") + if (progress == 100) println() // 完成后换行 + } + + private fun searchCompany( + root: AccessibilityNodeInfo, + fieldMap: Map + ): List { + for(field in fields){ + if (field.type == FieldType.SELECT){ + performBottomSheetSelection(rootNodeCallback, field.fieldName, fieldMap[field.fieldName] ?: field.defaultValue) + }else if(field.type == FieldType.TIME){ + // 格式化证件有效期 >2090-11-23 格式化为2090-11-23 + val date = AccessibilityTool.normalizeExpiryDate(fieldMap[field.fieldName] ?: field.defaultValue, field.defaultValue) + AccessibilityTool.performBottomTimeSelection(rootNodeCallback, field.fieldName,date) + + }else if (field.type == FieldType.SEARCH_SELECT){ + AccessibilityTool.performBottomSearchSelection(rootNodeCallback, field.fieldName, + field.hintText, fieldMap[field.fieldName] ?: field.defaultValue) + }else{ + AccessibilityTool.fillEditTextByHintText(root,fieldMap[field.fieldName] ?: field.defaultValue, field.fieldName, + field.hintText + ) + } + } + val searchInput = NodeToolHint.findNodeByHint(getRootInActiveWindow(), "请输入集团名称") + if (searchInput == null) { + println("未找到搜索输入框") + return emptyList() + } + +// AccessibilityTool.fillEditTextByHintText(root,"天买", "请输入集团名称", +// "请输入集团名称" +// ) + + Handler(Looper.getMainLooper()).postDelayed({ + AccessibilityTool.performSearchEnter(searchInput) + }, 500) + Thread.sleep(1000) + for(i in 0..20){ + val loading = NodeToolText.findNodeByText(getRootInActiveWindow(), "加载中") + if (loading == null) { + break + } + println() + println("等待加载完成") + Thread.sleep(1000) + } + + val root = getRootInActiveWindow() + if (root == null) { + println("未找到根节点") + return listOf() + } + val results = parseSearchResults(root) + + + println(results) + return results +// val searchResult = NodeToolText.findNodeByText(getRootInActiveWindow(), "查询结果") + // 写入CSV文件 + + + } + + + + // 在 SearchCompanyForm 类中修改 writeResultsToCsv 方法 + private fun writeResultsToCsv(results: List) { + val csvTool = CsvTool() + + // 生成包含时间戳的文件名 + val timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss_SSS", Locale.getDefault()).format(Date()) + val fileName = "company_results_$timeStamp.csv" + + // 获取存储路径 + val filePath = StorageTool.getStorageFilePath(fileName) + + // 定义表头 + val headers = listOf("搜索公司名称","建档", + "公司名称", "公司ID", "完整地址", "省份", "城市", + "区域", "街道", "详细地址", "客户类型", "客户状态", "客户经理" + ) + + // 写入CSV文件 + csvTool.writeToFile( + data = results, + filePath = filePath, + headers = headers + ) { companyInfo -> + listOf( + companyInfo.searchName, + companyInfo.isArchived, + companyInfo.name, + companyInfo.companyId, + companyInfo.address, + companyInfo.addressInfo.province, + companyInfo.addressInfo.city, + companyInfo.addressInfo.district, + companyInfo.addressInfo.street, + companyInfo.addressInfo.detail, + companyInfo.customerType, + companyInfo.customerStatus, + companyInfo.manager + ) + } + + println("CSV文件已保存至: $filePath") + } + + + + fun parseSearchResults(root: AccessibilityNodeInfo): List { + val results = ArrayList() + + // 查找所有包含公司信息的容器节点 + // 根据日志分析,每个结果项都是一个 android.view.View 容器 + + // 这里需要根据实际UI结构调整查找逻辑 + val resultContainers = findAllResultContainers(root) + + for (container in resultContainers) { + val (companyName, companyId) = extractCompanyNameAndId(extractChildText(container, 0)) + val address = extractChildText(container, 2) + val companyInfo = CompanyInfo( + searchName = "", + isArchived = "X", + name = companyName, + companyId= companyId, + address = address, + addressInfo = parseAddress(address), + customerType = extractChildText(container, 3), + customerStatus = extractChildText(container, 4), + manager = extractMangerName(extractChildText(container, 5)), + ) + if(companyInfo.name.isEmpty()){ + println() + println("未找到公司名称:"+ companyInfo) + continue + } + results.add(companyInfo) + } + + return results + } + + private fun extractCompanyNameAndId(text: String): Pair { + if (text.isEmpty()) return Pair("", "") + + // 使用正则表达式匹配公司名称和ID + val regex = "(.+)\\((\\d+)\\)".toRegex() + val matchResult = regex.find(text) + + return if (matchResult != null) { + val companyName = matchResult.groupValues[1].trim() + val companyId = matchResult.groupValues[2].trim() + Pair(companyName, companyId) + } else { + println("未匹配到公司名称和ID: $text") + Pair("", "") + } + } + + private fun extractMangerName(text: String): String { + if (text.isEmpty()) return "" + + // 使用正则表达式提取"归属客户经理:"后的姓名 + val regex = "归属客户经理:(.+)".toRegex() + val matchResult = regex.find(text) + + return if (matchResult != null) { + matchResult.groupValues[1].trim() + } else { + println("未匹配到客户经理信息: $text") + "" + } + } + + data class CompanyInfo( + var searchName: String, + // 是否建档 + var isArchived: String, + val name: String, + val companyId: String, + val address: String, + val addressInfo: AddressInfo, + val customerType: String, + val customerStatus: String, + val manager: String + ) + + private fun parseAddress(address: String): AddressInfo { + if (address.isEmpty()) return AddressInfo("", "", "", "", "") + + // 按 "@" 分割地址 + val parts = address.split("@") + + return when (parts.size) { + 5 -> { + // 完整格式: 省@市@区@街道@详细地址 + AddressInfo( + province = parts[0], + city = parts[1], + district = parts[2], + street = parts[3], + detail = parts[4] + ) + } + in 1..4 -> { + // 不完整格式处理 + println("地址格式不完整: $address") + AddressInfo( + province = if (parts.size > 0) parts[0] else "", + city = if (parts.size > 1) parts[1] else "", + district = if (parts.size > 2) parts[2] else "", + street = if (parts.size > 3) parts[3] else "", + detail = "" + ) + } + else -> { + // 超过5个部分的情况 + println("地址格式异常: $address") + AddressInfo("", "", "", "", "") + } + } + } + + data class AddressInfo( + val province: String, + val city: String, + val district: String, + val street: String, + val detail: String + ) + + // 需要实现的具体解析辅助方法 + private fun findAllResultContainers(root: AccessibilityNodeInfo): List { + // 实现查找所有结果容器的逻辑 + // 可以根据特定的布局特征识别结果项 + // + val searchBtn = NodeToolText.findNodeByText(root, "搜索") + val endNode = NodeToolText.findNodeByText(root,"没有更多了") +// if (node == null || node.parent == null) return null + + val parent = searchBtn?.parent + if (parent == null) return emptyList() + + val childCount = parent.childCount + var found = false + val list = ArrayList() + for (i in 0 until childCount) { + val child = parent.getChild(i) + if (found && child != null) { + list.add(child) + } + if (child == searchBtn) { + found = true + } + if(child == endNode){ + break + } + } + + return list // 没有找到兄弟节点 + } + + private fun extractChildText(container: AccessibilityNodeInfo, idx: Int): String { + // 移除重复定义的idx变量 + if(container.childCount >= idx+1){ + val child = container.getChild(idx) // 先获取子节点 + return child?.text?.toString() ?: "" // 对子节点进行空值检查 + } + return "" + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRM.kt b/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRM.kt index c30602f..393b24a 100644 --- a/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRM.kt +++ b/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRM.kt @@ -8,33 +8,29 @@ import android.os.Build import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityNodeInfo import androidx.core.content.ContextCompat +import com.loveerror.bested.MyApplication import com.loveerror.bested.SelectAccessibility -import com.loveerror.bested.UIInspectorService import com.loveerror.bested.button.ActionEvent +import com.loveerror.bested.button.DragFloatingButton import com.loveerror.bested.tool.AccessibilityTool import com.loveerror.bested.tool.NodeToolText +import com.loveerror.bested.tool.RootNodeCallback -class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { +class ZjMccmCrm(private val rootNodeCallback: RootNodeCallback) { private lateinit var selectAccessibility: SelectAccessibility private var broadcastReceiver: BroadcastReceiver? = null fun initialize(context: Context) { - val listOfActionEvent = listOf( - ActionEvent.START_ACTION, - ActionEvent.FILL_ACTION, -// ActionEvent.SET_DATA_SOURCE, -// ActionEvent.HIDE_FLOATING_BUTTON, - ActionEvent.PRINT_CURRENT_PAGE - ) + val listOfActionEvent = ActionEvent.entries.filter { it.enable } // 注册广播接收器 broadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { when (intent.action) { ActionEvent.START_ACTION.event -> { - startJobAsync() + startJobAsync(intent) } ActionEvent.FILL_ACTION.event -> { @@ -42,7 +38,26 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { } ActionEvent.PRINT_CURRENT_PAGE.event -> { - AccessibilityTool.printViewTree(uiInspectorService.rootInActiveWindow) + AccessibilityTool.printViewTree(rootNodeCallback.getRootNodeReceived()) + } + + ActionEvent.QUERY_COMPANY_REGISTER.event -> { + + + val stateMachine = ZJMCCMCRMStateMachine(rootNodeCallback) + + stateMachine.navigateToSearchCompanyPage(intent) +// if (companyName != null) { +// val queryCompanyRegister = QueryCompanyRegister(uiInspectorService) +// queryCompanyRegister.queryCompanyRegister(companyName) +// } + } + + ActionEvent.QUERY_COMPANY_SEARCH_ACTION.event -> { + // 通过全局管理器获取 + val floatingButton = MyApplication.getInstance().getFloatingButton(context) + + searchCompanyActionAsync(intent,floatingButton) } else -> { @@ -52,6 +67,8 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { } + + } @@ -60,7 +77,7 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { registerReceiver(filter, context) } - selectAccessibility = SelectAccessibility(uiInspectorService) + selectAccessibility = SelectAccessibility(rootNodeCallback) // selectAccessibility.handleSelectPopup(event) @@ -94,14 +111,25 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { if (root == null) { return@Thread } - var normalGroupCreateForm = NormalGroupCreateForm(uiInspectorService) + val normalGroupCreateForm = NormalGroupCreateForm(rootNodeCallback) normalGroupCreateForm.autoFillForm(root) }.start() } + + private fun searchCompanyActionAsync(intent: Intent, floatingButton: DragFloatingButton) { + Thread { + val root = rootInActiveWindow() + if (root == null) { + return@Thread + } + val searchCompanyForm = SearchCompanyForm(rootNodeCallback,floatingButton) + searchCompanyForm.autoFillForm(root, intent) + }.start() + } fun someOptEvent(event: AccessibilityEvent?){ // 获取根节点 - val root = uiInspectorService.rootInActiveWindow + val root = rootNodeCallback.getRootNodeReceived() if (root != null) { val editText = AccessibilityTool.findEditTextAfterLabel(root, "集团名称") @@ -115,10 +143,10 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { } } - private fun startJobAsync() { + private fun startJobAsync(intent: Intent) { - val stateMachine = ZJMCCMCRMStateMachine(uiInspectorService) - stateMachine.navigateToNormalGroupCreatePage() + val stateMachine = ZJMCCMCRMStateMachine(rootNodeCallback) + stateMachine.navigateToNormalGroupCreatePage(intent) } @@ -135,7 +163,7 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { private var lastViewTreeHash: Int = 0 private fun rootInActiveWindow(): AccessibilityNodeInfo? { - val root = uiInspectorService.rootInActiveWindow + val root = rootNodeCallback.getRootNodeReceived() return root } private fun handleContentChange() { @@ -217,6 +245,10 @@ class ZjMccmCrm(private val uiInspectorService: UIInspectorService) { return NodeToolText.hasNodeWithText(root,"普通建档","集团状态","证件名称") } + fun isCompanySearchPage(root: AccessibilityNodeInfo): Boolean { + return NodeToolText.hasNodeWithText(root,"全网查询","搜索") + } + } diff --git a/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRMStateMachine.kt b/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRMStateMachine.kt index 76481f7..d160b11 100644 --- a/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRMStateMachine.kt +++ b/app/src/main/java/com/loveerror/bested/handler/ZJMCCMCRMStateMachine.kt @@ -1,17 +1,23 @@ package com.loveerror.bested.handler +import android.content.Intent import android.view.accessibility.AccessibilityNodeInfo -import com.loveerror.bested.UIInspectorService import com.loveerror.bested.tool.AccessibilityTool +import com.loveerror.bested.tool.RootNodeCallback -class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) { +class ZJMCCMCRMStateMachine(private val rootNodeCallback: RootNodeCallback) { private var currentState: ZJMCCMCRMState = ZJMCCMCRMState.UNKNOWN private var targetState: ZJMCCMCRMState = ZJMCCMCRMState.UNKNOWN - private val zjMccmCrm = ZjMccmCrm(uiInspectorService) + private val zjMccmCrm = ZjMccmCrm(rootNodeCallback) - fun navigateToNormalGroupCreatePage() { + fun navigateToNormalGroupCreatePage(intent: Intent) { targetState = ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE - executeWorkflow() + executeWorkflow(intent) + } + + fun navigateToSearchCompanyPage(intent: Intent) { + targetState = ZJMCCMCRMState.SEARCH_COMPANY_PAGE + executeWorkflow(intent) } // 定义状态转换映射 @@ -19,18 +25,20 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.GROUP_ALL_APPS_LIST) to ::handleHomePageToGroupAllAppsList, Pair(ZJMCCMCRMState.GROUP_ALL_APPS_LIST, ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE) to ::handleAllAppsListToGroupCreateSelectPage, Pair(ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE, ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE) to ::handleGroupCreateSelectPageToNormalGroupCreatePage, - Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.SEARCH_COMPANY_PAGE) to ::handleHomePageToSearchCompanyPage - ) - private fun executeWorkflow() { +// Pair(ZJMCCMCRMState.HOME_PAGE, ZJMCCMCRMState.GROUP_ALL_APPS_LIST) to ::handleHomePageToSearchCompanyPage, + Pair(ZJMCCMCRMState.GROUP_ALL_APPS_LIST, ZJMCCMCRMState.SEARCH_COMPANY_PAGE) to ::handleAllAppsListToSearchCompanyPage, + + ) + private fun executeWorkflow(intent : Intent?) { Thread { - executeWorkflowInner() + executeWorkflowInner(intent) return@Thread }.start() } - private fun executeWorkflowInner() { + private fun executeWorkflowInner(intent: Intent?) { val root = getRootInActiveWindow() if (root == null) { @@ -43,9 +51,14 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) // 更新当前状态 updateState(root) + + var count = 100 // && while (targetState != ZJMCCMCRMState.UNKNOWN && currentState != targetState) { - + count-- + if(count <= 0){ + println("无法从当前状态导航到目标状态") + break } // 检查是否可以导航到目标状态 if (!canNavigateToTarget()) { println("无法从当前状态导航到目标状态") @@ -72,8 +85,11 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) // 使用状态映射执行相应动作 val transitionHandler = stateTransitionMap[Pair(currentState, nextState)] if (transitionHandler != null) { - transitionHandler.invoke(root) + transitionHandler.invoke(root,intent) currentState = nextState + }else{ + println("无法从当前状态导航到目标状态") + break } updateState(root) @@ -81,7 +97,7 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) } private fun getRootInActiveWindow(): AccessibilityNodeInfo? { - return uiInspectorService.rootInActiveWindow + return rootNodeCallback.getRootNodeReceived() } @@ -93,6 +109,10 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) // 从任何状态都可以导航到 NORMAL_GROUP_CREATE_PAGE true } + ZJMCCMCRMState.SEARCH_COMPANY_PAGE -> { + // 从任何状态都可以导航到 SEARCH_COMPANY_PAGE + true + } else -> false } } @@ -108,6 +128,14 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) else -> ZJMCCMCRMState.UNKNOWN } } + ZJMCCMCRMState.SEARCH_COMPANY_PAGE -> { + // 确定到达目标状态的下一个必要步骤 + when (currentState) { + ZJMCCMCRMState.HOME_PAGE -> ZJMCCMCRMState.GROUP_ALL_APPS_LIST + ZJMCCMCRMState.GROUP_ALL_APPS_LIST -> ZJMCCMCRMState.SEARCH_COMPANY_PAGE + else -> ZJMCCMCRMState.UNKNOWN + } + } else -> ZJMCCMCRMState.UNKNOWN } } @@ -119,26 +147,30 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) zjMccmCrm.isGroupAllAppsList(root) -> ZJMCCMCRMState.GROUP_ALL_APPS_LIST zjMccmCrm.isGroupCreateSelectPage(root) -> ZJMCCMCRMState.GROUP_CREATE_SELECT_PAGE zjMccmCrm.isNormalGroupCreatePage(root) -> ZJMCCMCRMState.NORMAL_GROUP_CREATE_PAGE + zjMccmCrm.isCompanySearchPage(root) -> ZJMCCMCRMState.SEARCH_COMPANY_PAGE else -> ZJMCCMCRMState.UNKNOWN } } - private fun handleHomePageToGroupAllAppsList(root: AccessibilityNodeInfo) { + private fun handleHomePageToGroupAllAppsList(root: AccessibilityNodeInfo,intent: Intent?) { AccessibilityTool.printViewTree(root) AccessibilityTool.clickButtonByText(root, "常用功能", "全部") println("常用功能 全部 clicked") Thread.sleep(1000) } - private fun handleAllAppsListToGroupCreateSelectPage(root: AccessibilityNodeInfo) { + private fun handleAllAppsListToGroupCreateSelectPage(root: AccessibilityNodeInfo,intent: Intent?) { AccessibilityTool.printViewTree(root) - val updatedRoot = uiInspectorService.rootInActiveWindow + val updatedRoot = rootNodeCallback.getRootNodeReceived() + if(updatedRoot== null){ + return + } AccessibilityTool.clickButtonByText(updatedRoot, "集团新建") Thread.sleep(10 * 1000) } - private fun handleGroupCreateSelectPageToNormalGroupCreatePage(root: AccessibilityNodeInfo) { + private fun handleGroupCreateSelectPageToNormalGroupCreatePage(root: AccessibilityNodeInfo,intent: Intent?) { AccessibilityTool.printViewTree(root, "before普通建档") AccessibilityTool.clickButtonByText(root, "普通建档") Thread.sleep(15 * 1000) @@ -146,7 +178,13 @@ class ZJMCCMCRMStateMachine(private val uiInspectorService: UIInspectorService) AccessibilityTool.printViewTree(root, "after普通建档") } - private fun handleHomePageToSearchCompanyPage(root: AccessibilityNodeInfo) { + private fun handleAllAppsListToSearchCompanyPage(root: AccessibilityNodeInfo,intent: Intent?) { +// val companyName = intent?.getStringExtra("textInput") +// if (companyName == null) { +// println("companyName is null") +// return +// } + AccessibilityTool.printViewTree(root) AccessibilityTool.clickButtonByText(root, "全网查询") println("全网查询 clicked") diff --git a/app/src/main/java/com/loveerror/bested/tool/AccessibilityTool.kt b/app/src/main/java/com/loveerror/bested/tool/AccessibilityTool.kt index 004bb8e..f56f63d 100644 --- a/app/src/main/java/com/loveerror/bested/tool/AccessibilityTool.kt +++ b/app/src/main/java/com/loveerror/bested/tool/AccessibilityTool.kt @@ -8,6 +8,259 @@ import android.view.accessibility.AccessibilityNodeInfo class AccessibilityTool { companion object { + fun fillEditTextByHintText(root: AccessibilityNodeInfo, value: String, fieldName : String, hintText: String) { + val editTextNode = NodeToolHint.findNodeByHint(root, hintText) + fillEditText(editTextNode,value,fieldName) + } + + fun fillEditText(editText: AccessibilityNodeInfo?, value: String, fieldName : String) { + if (editText == null) { + return + } + + if (editText.isEditable) { + AccessibilityTool.inputText(editText, value) + println("已填写$fieldName: $value") + } else { + println("未找到${fieldName}输入框或输入框不可编辑") + } + } + fun performBottomSearchSelection( + rootNodeCallback: RootNodeCallback, + fieldName: String, + hintText: String , + searchWord: String, + ){ + try { + // 1. 点击触发元素打开搜索对话框 + AccessibilityTool.clickToOpenBottomSheet(rootNodeCallback.getRootNodeReceived(), fieldName) + + // 2. 等待对话框完全显示 + Thread.sleep(1000) + + // 3. 获取更新后的根节点 + val newRoot = rootNodeCallback.getRootNodeReceived() + + if (newRoot == null){ + return + } + // 4. 查找搜索输入框 + val searchEditText = NodeToolHint.findNodeByHint(newRoot, hintText) + if (searchEditText != null && searchEditText.isEditable) { + // 5. 输入搜索关键词 + AccessibilityTool.inputText(searchEditText, searchWord) + println("已在搜索框中输入: $searchWord") + AccessibilityTool.performSearchEnter(searchEditText) + // 6. 等待搜索结果加载 + Thread.sleep(5000) + + // 7. 选择第一个搜索结果(如果有) + selectFirstSearchResult(rootNodeCallback) + } else { + println("未找到搜索输入框或输入框不可编辑") + } + } catch (e: Exception) { + println("搜索选择操作失败: ${e.message}") + } + } + + private fun findClickableSearchResult(root: AccessibilityNodeInfo): AccessibilityNodeInfo? { + // 遍历查找可点击的搜索结果项 + // 这里可以根据具体的UI结构进行调整 + return NodeToolText.findNodeByText(root, "金牛座") // 示例匹配 + } + private fun selectFirstSearchResult(rootNodeCallback: RootNodeCallback) { + + val root = rootNodeCallback.getRootNodeReceived() + if(root == null){ + return + } + // 查找可点击的搜索结果项 + // 根据UI树,搜索结果可能在 "没有更多了..." 之前 + val searchResult = findClickableSearchResult(root) + if (searchResult != null && searchResult.isClickable) { + AccessibilityTool.ensureNodeVisible(searchResult) + AccessibilityTool.performClick(searchResult) + println("已选择第一个搜索结果") + + // 点击确认按钮 + Thread.sleep(500) + val confirmButton = NodeToolText.findNodeByText(root, "确认") + ?: NodeToolText.findNodeByText(root, "确定") + if (confirmButton?.isClickable == true) { + AccessibilityTool.performClick(confirmButton) + println("已点击确认按钮") + } + } else { + println("未找到可点击的搜索结果") + } + } + + fun performBottomTimeSelection( + rootNodeCallback: RootNodeCallback, + fieldName: String, + date: String, + ) { + + // 校验格式是否为日期格式 + if (!date.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) { + throw IllegalArgumentException("Invalid date format. Please provide a date in the format YYYY-MM-DD.") + } + // 解析出年、月、日 + val (year, month, day) = date.split("-") + + // 1. 点击触发元素打开底部对话框 + clickToOpenBottomSheet(rootNodeCallback.getRootNodeReceived(), fieldName) + + // 2. 等待对话框完全显示 + Thread.sleep(1000) + + NodeToolTime.selectDateWithRetry(rootNodeCallback, year, month, day) + } + + fun normalizeExpiryDate(dateString: String, defaultValue: String="2090-11-23", maxValue: String="2090-11-23"): String { + // 如果不是日期格式,返回默认值 + if (!dateString.matches(Regex("\\d{4}-\\d{2}-\\d{2}"))) { + return defaultValue // 默认值 + } + + // 比较日期是否大于最大值 + val inputDate = dateString.replace("-", "").toIntOrNull() ?: 0 + val maxDateValue = maxValue.replace("-", "").toIntOrNull() ?: 20901123 + + return if (inputDate > maxDateValue) { + maxValue // 限制最大值 + } else { + dateString // 保持原值 + } + } + + fun performBottomSheetSelection(rootNodeCallback: RootNodeCallback, triggerText: String, optionText: String) { + val root = rootNodeCallback.getRootNodeReceived() + if(root == null){ + return + } + // 1. 点击触发元素打开底部对话框 + clickToOpenBottomSheet(root, triggerText) + + // 2. 等待对话框完全显示 + Thread.sleep(1000) + + // 3. 选择目标选项 + selectOptionFromBottomSheet(rootNodeCallback,optionText) + + // 4. 明确点击确认按钮 dubbo check + clickConfirmButton(rootNodeCallback) + Thread.sleep(500) // 等待确认操作完成 + } + + // 点击可点击的触发元素来显示底部选择对话框 + fun clickToOpenBottomSheet(root: AccessibilityNodeInfo?, triggerText: String) { + if (root == null) { + return + } + val triggerNode = NodeToolText.findNodeByText(root, triggerText) + if (triggerNode != null && triggerNode.isClickable) { + AccessibilityTool.ensureNodeVisible(triggerNode) + AccessibilityTool.performClick(triggerNode) + Thread.sleep(1000) // 等待对话框弹出 + }else{ + + var parent = triggerNode?.parent + while (parent != null) { + if (parent.isClickable) { + AccessibilityTool.ensureNodeVisible(parent) + AccessibilityTool.performClick(parent) + return + } + parent = parent.parent + } + } + } + + // 在底部对话框中选择指定选项 + fun selectOptionFromBottomSheet(rootNodeCallback: RootNodeCallback,optionText: String, confirm: Boolean = true) { + // 获取更新后的根节点 + val newRoot = rootNodeCallback.getRootNodeReceived() + if (newRoot == null) { + return + } + + // 查找并点击选项 + val optionNode = NodeToolText.findNodeByText(newRoot, optionText) + if (optionNode != null) { + AccessibilityTool.ensureNodeVisible(optionNode) + if (optionNode.isClickable) { + AccessibilityTool.performClick(optionNode) + println("已选择底部选项: $optionText") + + // 根据需要点击确认或取消按钮 + if (confirm) { + clickConfirmButton(rootNodeCallback) + } else { + clickCancelButton(newRoot) + } + } + } else { + println("未找到底部选项: $optionText") + } + } + + + // 点击确认按钮 + private fun clickConfirmButton(rootNodeCallback: RootNodeCallback): Boolean { + val root = rootNodeCallback.getRootNodeReceived() + if (root == null) { + return false + } + val confirmButton = NodeToolText.findNodeByText(root, "确定") + ?: NodeToolText.findNodeByText(root, "确认") + + println("查找确认按钮: ${confirmButton != null}") + if (confirmButton != null) { + println("确认按钮属性 - clickable: ${confirmButton.isClickable}, visibleToUser: ${confirmButton.isVisibleToUser}") + if (confirmButton.isClickable) { + AccessibilityTool.ensureNodeVisible(confirmButton) + AccessibilityTool.performClick(confirmButton) + println("已点击确认按钮") + return true + } else { + println("确认按钮不可点击") + } + } else { + println("未找到确认按钮") + // 打印当前界面树以便调试 + AccessibilityTool.printViewTree(root, "确认按钮未找到时的界面树") + } + return false + } + + // 点击取消按钮 + private fun clickCancelButton(root: AccessibilityNodeInfo) { + val cancelButton = NodeToolText.findNodeByText(root, "取消") + if (cancelButton != null && cancelButton.isClickable) { + AccessibilityTool.performClick(cancelButton) + println("已点击取消按钮") + } + } + + private fun expandClassificationSection(root: AccessibilityNodeInfo) { + val peopleCountNode = NodeToolText.findNodeByText(root, "请输入人数") + if (peopleCountNode == null) { + println("未找到员工数输入框") + val targetNode = NodeToolText.findNodeByText(root, "分类信息") + val nextSibling = NodeToolText.findNextSiblingNode(targetNode) + + if (nextSibling != null && nextSibling.isClickable) { + AccessibilityTool.ensureNodeVisible(nextSibling) + AccessibilityTool.performClick(nextSibling) + Thread.sleep(2000) + println("已点击兄弟节点") + } else { + println("未找到可点击的兄弟节点") + } + } + } fun dismissPopupByClickingMask(root: AccessibilityNodeInfo?) { if (root == null) return // 方法1: 查找最大的可点击背景视图 @@ -113,27 +366,32 @@ class AccessibilityTool { return false } - + private fun imeEnter(searchEditText: AccessibilityNodeInfo): Boolean{ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + if(searchEditText.performAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_IME_ENTER.id)){ + println("已通过 IME_ENTER 执行搜索") + return true + } + } + return false + } fun performSearchEnter(searchEditText: AccessibilityNodeInfo) { try { + if(imeEnter(searchEditText)){ + println("performSearchEnter 已通过 IME_ENTER 执行搜索") + return + } // 方法1: 使用 ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE 发送回车 val arguments = Bundle() arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "\n") if (searchEditText.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments)) { println("已发送回车键执行搜索") return + } else { + println("通过 ACTION_SET_TEXT 发送回车失败") } - // 方法2: 如果上述方法失败,尝试使用 IME_ACTION - if (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - searchEditText.performAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_IME_ENTER.id) - } else { - TODO("VERSION.SDK_INT < R") - } - ) { - println("已通过 IME_ENTER 执行搜索") - return - } + } catch (e: Exception) { println("执行搜索操作失败: ${e.message}") } diff --git a/app/src/main/java/com/loveerror/bested/tool/CsvTool.kt b/app/src/main/java/com/loveerror/bested/tool/CsvTool.kt new file mode 100644 index 0000000..fb3de88 --- /dev/null +++ b/app/src/main/java/com/loveerror/bested/tool/CsvTool.kt @@ -0,0 +1,62 @@ +package com.loveerror.bested.tool + +class CsvTool { + /** + * 将数据列表写入CSV文件 + * @param data 数据列表 + * @param filePath 文件路径 + * @param headers 表头列表 + * @param rowMapper 行映射函数,将每个对象转换为CSV行数据 + */ + fun writeToFile( + data: List, + filePath: String, + headers: List, + rowMapper: (T) -> List + ) { + if (data.isEmpty()) return + + try { + java.io.FileWriter(filePath).use { writer -> + // 写入表头 + writer.write(headers.joinToString(",") + "\n") + + // 写入数据行 + data.forEach { item -> + val row = rowMapper(item).joinToString(",") { escapeCsvField(it) } + writer.write(row + "\n") + } + } + } catch (e: java.io.IOException) { + e.printStackTrace() + } + } + + /** + * CSV字段转义处理 + */ + private fun escapeCsvField(field: String): String { + return if (field.contains(",") || field.contains("\"") || field.contains("\n")) { + "\"" + field.replace("\"", "\"\"") + "\"" + } else { + field + } + } +} + +/** + * val csvTool = CsvTool() + * val persons = listOf( + * Person("张三", 25, "北京"), + * Person("李四", 30, "上海") + * ) + * + * // 简单使用 + * csvTool.writeToFile( + * data = persons, + * filePath = "persons.csv", + * headers = listOf("姓名", "年龄", "城市") + * ) { person -> + * listOf(person.name, person.age.toString(), person.city) + * } + */ \ No newline at end of file diff --git a/app/src/main/java/com/loveerror/bested/tool/NodeToolTime.kt b/app/src/main/java/com/loveerror/bested/tool/NodeToolTime.kt index 8bd6099..3ff73ae 100644 --- a/app/src/main/java/com/loveerror/bested/tool/NodeToolTime.kt +++ b/app/src/main/java/com/loveerror/bested/tool/NodeToolTime.kt @@ -4,12 +4,15 @@ import android.view.accessibility.AccessibilityNodeInfo class NodeToolTime { companion object { - fun selectDateWithRetry(root: AccessibilityNodeInfo, year: String, month: String, day: String, getUpdatedRoot: () -> AccessibilityNodeInfo?, maxRetries: Int = 3): Boolean { + fun selectDateWithRetry(rootNodeCallback: RootNodeCallback?, year: String, month: String, day: String, maxRetries: Int = 3): Boolean { + if(rootNodeCallback == null) + return false + for (i in 0 until maxRetries) { try { - if (isTimePickerVisible(getUpdatedRoot())) { - selectDate(root, year, month, day,getUpdatedRoot) + if (isTimePickerVisible(rootNodeCallback.getRootNodeReceived())) { + selectDate(rootNodeCallback, year, month, day) return true } else { Thread.sleep(1000) @@ -21,21 +24,23 @@ class NodeToolTime { } return false } - fun selectDate(root: AccessibilityNodeInfo, year: String, month: String, day: String, getUpdatedRoot: () -> AccessibilityNodeInfo?) { + fun selectDate(rootNodeCallback: RootNodeCallback?, year: String, month: String, day: String) { + val root = rootNodeCallback?.getRootNodeReceived() ?: return + try { // 选择年份 selectYear(root, year) Thread.sleep(500) // 等待动画完成 // 重新获取根节点以确保获取到更新后的UI树 - val updatedRoot = getUpdatedRoot() // 需要实现获取更新后根节点的方法 + val updatedRoot = rootNodeCallback.getRootNodeReceived() // 需要实现获取更新后根节点的方法 // 选择月份 selectMonth(updatedRoot ?: root, month) Thread.sleep(500) // 再次更新根节点 - val finalRoot = getUpdatedRoot() ?: updatedRoot ?: root + val finalRoot = rootNodeCallback.getRootNodeReceived() ?: updatedRoot ?: root // 选择日期 selectDay(finalRoot, day) diff --git a/app/src/main/java/com/loveerror/bested/tool/RootNodeCallback.kt b/app/src/main/java/com/loveerror/bested/tool/RootNodeCallback.kt new file mode 100644 index 0000000..d577471 --- /dev/null +++ b/app/src/main/java/com/loveerror/bested/tool/RootNodeCallback.kt @@ -0,0 +1,15 @@ +package com.loveerror.bested.tool + +import android.view.accessibility.AccessibilityNodeInfo +import com.loveerror.bested.UIInspectorService + +fun interface RootNodeCallback { + fun getRootNodeReceived(): AccessibilityNodeInfo +} + +class RootNodeCallbackImpl(private var uiInspectorService: UIInspectorService) : RootNodeCallback { + + override fun getRootNodeReceived(): AccessibilityNodeInfo { + return uiInspectorService.rootInActiveWindow + } +} \ No newline at end of file diff --git a/app/src/main/java/com/loveerror/bested/tool/StorageTool.kt b/app/src/main/java/com/loveerror/bested/tool/StorageTool.kt new file mode 100644 index 0000000..b8ceb36 --- /dev/null +++ b/app/src/main/java/com/loveerror/bested/tool/StorageTool.kt @@ -0,0 +1,29 @@ +package com.loveerror.bested.tool + +import android.os.Environment +import java.io.File + +class StorageTool { + companion object{ + fun getStorageFilePath(fileName: String): String { + // 检查外部存储是否可用 + val externalStorageState = Environment.getExternalStorageState() + val isExternalStorageAvailable = externalStorageState == Environment.MEDIA_MOUNTED + + // 优先使用外部存储(SD卡) + val directory = if (isExternalStorageAvailable) { + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + } else { + // 使用内部存储的下载目录 + File(Environment.getExternalStorageDirectory(), "Download") + } + + // 确保目录存在 + if (!directory.exists()) { + directory.mkdirs() + } + + return File(directory, fileName).absolutePath + } + } +} \ No newline at end of file