diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_close.png
deleted file mode 100755
index c1381dc44c..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_close.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_item_background_p.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_item_background_p.9.png
deleted file mode 100644
index a5dedc9ca3..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_item_background_p.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_message_background.9.png
deleted file mode 100644
index bf455a0ea2..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-ldpi/module_push_message_background.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_close.png
deleted file mode 100755
index c1381dc44c..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_close.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_item_background_p.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_item_background_p.9.png
deleted file mode 100644
index 5b43f7451d..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_item_background_p.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_message_background.9.png
deleted file mode 100644
index bf455a0ea2..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-mdpi/module_push_message_background.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_close.png
deleted file mode 100755
index bb3e2b1195..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_close.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_dialog_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_dialog_close.png
deleted file mode 100644
index ba03e033d8..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_dialog_close.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_item_background_p.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_item_background_p.9.png
deleted file mode 100644
index 87a3f9179d..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_item_background_p.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_message_background.9.png
deleted file mode 100644
index d4a8803684..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable-xhdpi/module_push_message_background.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_clear_bg.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_clear_bg.xml
deleted file mode 100644
index cb38368310..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_clear_bg.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_close.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_close.png
deleted file mode 100755
index c1381dc44c..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_close.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_content_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_content_background.xml
deleted file mode 100644
index 8091d466be..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_content_background.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_decrease_timer_bkg.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_decrease_timer_bkg.xml
deleted file mode 100644
index 7031a78049..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_decrease_timer_bkg.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_dialog_check_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_dialog_check_background.xml
deleted file mode 100644
index 4d721f27c8..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_dialog_check_background.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background.xml
deleted file mode 100644
index a70936cd5d..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background_origin.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background_origin.xml
deleted file mode 100644
index 0d24d54394..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_item_background_origin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_left_button.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_left_button.xml
deleted file mode 100644
index c17bfd5f97..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_left_button.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_message_background.9.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_message_background.9.png
deleted file mode 100644
index 80ab4b841f..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_message_background.9.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_recycler_item_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_recycler_item_background.xml
deleted file mode 100644
index 2c16e3f684..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_recycler_item_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_right_button.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_right_button.xml
deleted file mode 100644
index 3f828dcc61..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_right_button.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_delay_background.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_delay_background.xml
deleted file mode 100644
index 77a14ee943..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_delay_background.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_ic_message2.png b/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_ic_message2.png
deleted file mode 100644
index 10f53d3374..0000000000
Binary files a/core/function-impl/mogo-core-function-bindingcar/src/main/res/drawable/module_push_ui_ic_message2.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-ldpi/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-ldpi/dimens.xml
deleted file mode 100644
index 5f7d672f98..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-ldpi/dimens.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
- 16dp
- 352dp
- 32dp
- 32dp
- 16.5dp
- 12dp
- 20dp
- 18dp
- 210dp
- 13dp
- 15dp
- 18dp
- 320dp
- 180dp
- 16dp
- 320dp
- 160dp
- 9dp
- 20dp
- 0dp
- 48dp
- 10dp
- 14dp
- 28dp
- 20dp
- 20dp
- 90dp
- 5dp
- 84dp
- 38dp
- 36dp
- 100dp
- 64dp
- 24dp
- 16dp
- 44dp
- 2dp
- 20dp
- 27dp
- 16dp
- 64dp
- 8dp
- 16dp
-
- 22dp
- 27dp
- 14dp
- 1.5dp
- 24dp
- 10dp
- 8dp
- 560dp
- 194dp
- 266dp
- 178dp
- 8dp
- 12dp
- 16dp
- 19dp
- 30dp
- 16dp
- 8dp
- 17dp
- 19dp
- 16dp
- 11dp
- 6dp
- 18dp
- 10dp
- 17dp
- 10dp
- 8dp
- 242dp
- 270dp
- 374dp
- 24dp
- 19dp
- 8dp
- 328dp
- 164dp
- 15dp
- 150dp
- 20dp
- 0dp
- 310dp
- 350dp
- 60dp
- 2dp
- 2dp
- 8dp
- 28dp
- 16dp
- 16dp
- 12dp
- 5dp
- 118dp
- 86dp
- 8dp
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-mdpi/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-mdpi/dimens.xml
deleted file mode 100644
index 5f7d672f98..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-mdpi/dimens.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
- 16dp
- 352dp
- 32dp
- 32dp
- 16.5dp
- 12dp
- 20dp
- 18dp
- 210dp
- 13dp
- 15dp
- 18dp
- 320dp
- 180dp
- 16dp
- 320dp
- 160dp
- 9dp
- 20dp
- 0dp
- 48dp
- 10dp
- 14dp
- 28dp
- 20dp
- 20dp
- 90dp
- 5dp
- 84dp
- 38dp
- 36dp
- 100dp
- 64dp
- 24dp
- 16dp
- 44dp
- 2dp
- 20dp
- 27dp
- 16dp
- 64dp
- 8dp
- 16dp
-
- 22dp
- 27dp
- 14dp
- 1.5dp
- 24dp
- 10dp
- 8dp
- 560dp
- 194dp
- 266dp
- 178dp
- 8dp
- 12dp
- 16dp
- 19dp
- 30dp
- 16dp
- 8dp
- 17dp
- 19dp
- 16dp
- 11dp
- 6dp
- 18dp
- 10dp
- 17dp
- 10dp
- 8dp
- 242dp
- 270dp
- 374dp
- 24dp
- 19dp
- 8dp
- 328dp
- 164dp
- 15dp
- 150dp
- 20dp
- 0dp
- 310dp
- 350dp
- 60dp
- 2dp
- 2dp
- 8dp
- 28dp
- 16dp
- 16dp
- 12dp
- 5dp
- 118dp
- 86dp
- 8dp
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi-2560x1440/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi-2560x1440/dimens.xml
deleted file mode 100644
index 30c6c01239..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi-2560x1440/dimens.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- 230dp
- 230dp
- 230dp
- 30dp
- 21dp
- 34dp
- 33dp
- 2dp
- 120dp
- 30dp
- 55dp
- 42dp
- 208dp
- 394dp
- 42dp
- 567dp
- 100dp
- 20dp
- 34dp
- 34dp
-
-
- 1200dp
- 763dp
- 32dp
- 107dp
- 107dp
- 40dp
- 54dp
- 56dp
- 1000dp
- 33dp
- 43dp
- 20dp
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi/dimens.xml
deleted file mode 100644
index 10045d18f9..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values-xhdpi/dimens.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
- 30dp
- 660dp
- 60dp
- 60dp
- 31dp
- 22dp
- 38dp
- 32dp
- 394dp
- 24dp
- 28dp
- 34dp
- 600dp
- 338dp
- 30dp
- 605dp
- 300dp
- 16dp
- 53dp
- 0dp
- 90dp
- 20dp
- 26dp
- 50dp
- 36dp
- 36dp
- 160dp
- 10dp
- 151dp
- 72dp
- 68dp
- 180dp
- 120dp
- 50dp
- 22dp
- 6dp
- 84dp
-
- 40dp
- 52dp
- 28dp
- 120dp
- 11dp
- 26dp
- 42dp
- 51dp
- 27dp
- 3dp
- 45dp
- 20dp
- 16dp
- 1000dp
- 350dp
- 480dp
- 320dp
- 17dp
- 21dp
- 30dp
- 33dp
- 50dp
- 30dp
- 14dp
- 30dp
- 27dp
- 30dp
- 21dp
- 11dp
- 34dp
- 20dp
- 30dp
- 20dp
- 15dp
- 242dp
- 486dp
- 700dp
- 30dp
- 33dp
- 16dp
- 640dp
- 296dp
- 30dp
- 250dp
- 20dp
- 0dp
- 618dp
- 350dp
- 120dp
- 20dp
- 20dp
- 20dp
- 50dp
- 28dp
- 29dp
- 22dp
- 11dp
- 212dp
- 154dp
- 10dp
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/attr.xml
deleted file mode 100644
index ca8014fc39..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/attr.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/colors.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/colors.xml
deleted file mode 100644
index d01c09cbad..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- #FFFFFFFF
- #FFFFFF
- #B2FFFFFF
- #999999
- #B3FFFFFF
- #5A8EFD
- #E63B4577
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/dimens.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/dimens.xml
deleted file mode 100644
index 12de544c7c..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/dimens.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
- 16dp
- 352dp
- 32dp
- 32dp
- 16.5dp
- 12dp
- 20dp
- 18dp
- 210dp
- 13dp
- 15dp
- 18dp
- 320dp
- 180dp
- 16dp
- 320dp
- 160dp
- 9dp
- 20dp
- 0dp
- 48dp
- 10dp
- 14dp
- 50dp
- 20dp
- 20dp
- 90dp
- 5dp
- 84dp
- 38dp
- 36dp
- 100dp
- 64dp
- 24dp
- 16dp
- 44dp
- 2dp
- 20dp
- 27dp
- 16dp
- 64dp
- 8dp
- 16dp
-
- 22dp
- 27dp
- 14dp
- 1.5dp
- 24dp
- 10dp
- 8dp
- 560dp
- 194dp
- 266dp
- 178dp
- 8dp
- 12dp
- 16dp
- 19dp
- 30dp
- 16dp
- 8dp
- 17dp
- 19dp
- 16dp
- 11dp
- 6dp
- 18dp
- 10dp
- 17dp
- 10dp
- 8dp
- 242dp
- 270dp
- 374dp
- 24dp
- 19dp
- 8dp
- 328dp
- 164dp
- 15dp
- 150dp
- 20dp
- 0dp
- 310dp
- 350dp
- 60dp
- 2dp
- 2dp
- 8dp
- 28dp
- 16dp
- 16dp
- 12dp
- 5dp
- 118dp
- 86dp
- 8dp
-
-
- 34dp
- 567dp
- 100dp
-
- 2dp
- 120dp
- 30dp
- 55dp
- 42dp
- 208dp
-
- 1200dp
- 763dp
- 32dp
- 107dp
- 107dp
- 40dp
- 54dp
- 56dp
- 1000dp
- 33dp
- 43dp
- 20dp
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/strings.xml
deleted file mode 100644
index 648d863848..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
- mogo-core-function-notice
- 清除
- 清空历史消息
- 暂无消息
- 查看
-
diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/styles.xml b/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/styles.xml
deleted file mode 100644
index bb44cc75bc..0000000000
--- a/core/function-impl/mogo-core-function-bindingcar/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/core/function-impl/mogo-core-function-chat/src/main/res/mipmap-hdpi/module_carchatting_launcher_calling_hangup.png b/core/function-impl/mogo-core-function-chat/src/main/res/mipmap-hdpi/module_carchatting_launcher_calling_hangup.png
deleted file mode 100644
index 41e7375716..0000000000
Binary files a/core/function-impl/mogo-core-function-chat/src/main/res/mipmap-hdpi/module_carchatting_launcher_calling_hangup.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-chat/src/main/res/mipmap-ldpi/module_carchatting_launcher_calling_hangup.png b/core/function-impl/mogo-core-function-chat/src/main/res/mipmap-ldpi/module_carchatting_launcher_calling_hangup.png
deleted file mode 100644
index 0fe0ca3fd5..0000000000
Binary files a/core/function-impl/mogo-core-function-chat/src/main/res/mipmap-ldpi/module_carchatting_launcher_calling_hangup.png and /dev/null differ
diff --git a/core/function-impl/mogo-core-function-chat/src/main/res/values-hdpi/dimens.xml b/core/function-impl/mogo-core-function-chat/src/main/res/values-hdpi/dimens.xml
deleted file mode 100644
index 5ac847ff56..0000000000
--- a/core/function-impl/mogo-core-function-chat/src/main/res/values-hdpi/dimens.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- 300dp
- 100dp
- 27dp
- 18dp
- 10dp
- 100dp
- 63dp
-
diff --git a/core/function-impl/mogo-core-function-chat/src/main/res/values-xhdpi/dimens.xml b/core/function-impl/mogo-core-function-chat/src/main/res/values-xhdpi/dimens.xml
deleted file mode 100644
index d370a2b9cf..0000000000
--- a/core/function-impl/mogo-core-function-chat/src/main/res/values-xhdpi/dimens.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- 20dp
-
- 22dp
- 300dp
- 100dp
-
- 18dp
- 27dp
- 16dp
- 9dp
- 100dp
-
-
diff --git a/core/function-impl/mogo-core-function-chat/src/main/res/values-xhdpi-2560x1440/dimens.xml b/core/function-impl/mogo-core-function-chat/src/main/res/values/dimens.xml
similarity index 100%
rename from core/function-impl/mogo-core-function-chat/src/main/res/values-xhdpi-2560x1440/dimens.xml
rename to core/function-impl/mogo-core-function-chat/src/main/res/values/dimens.xml
diff --git a/core/function-impl/mogo-core-function-check/README.md b/core/function-impl/mogo-core-function-check/README.md
index 964c0d761d..4db7fee32b 100644
--- a/core/function-impl/mogo-core-function-check/README.md
+++ b/core/function-impl/mogo-core-function-check/README.md
@@ -34,4 +34,6 @@
版本更新
自动驾驶版本
- 鹰眼版本
\ No newline at end of file
+ 鹰眼版本
+
+功能隐藏 不用适配
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/build.gradle b/core/function-impl/mogo-core-function-devatools/build.gradle
index bdb311df02..f6b29415a9 100644
--- a/core/function-impl/mogo-core-function-devatools/build.gradle
+++ b/core/function-impl/mogo-core-function-devatools/build.gradle
@@ -82,6 +82,8 @@ dependencies {
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.androidxrecyclerview
implementation rootProject.ext.dependencies.flexbox
+ implementation rootProject.ext.dependencies.androidautoSize
+
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
implementation rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.modulecommon
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt
index 3306a57d94..e39af6a257 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt
@@ -152,89 +152,10 @@ internal object BadCaseManager : LifecycleEventObserver {
}else{
ToastUtils.showShort("请勿连续点击,稍后再试")
}
- }
- }
-
- @OptIn(ExperimentalCoroutinesApi::class)
- private fun register() {
- scope?.launch(Dispatchers.Default) {
- while (true) {
- showBadCaseInternal(AutoPilotRecord())
- CallerLogger.d("$M_DEVA$TAG", "---- 开始监听BadCase事件 ----")
- val old = record
- if (old == null || old.consumed) {
- CallerLogger.d("$M_DEVA$TAG", "---- 当前事件已消费 -- value: $old")
- var receive = channel.receive()
- var oldT = record?.toLongTime() ?: 0L
- var newT = receive.toLongTime()
- if (isValid(oldT, newT)) {
- record = receive
- CallerLogger.d("$M_DEVA$TAG", "---- 时间有效,开始展示入口 ---")
- withContext(Dispatchers.Main) {
- showBadCaseInternal(receive)
- }
- continue
- }
- CallerLogger.d("$M_DEVA$TAG", "---- 时间无效,移除管道中无用数据 ---")
- presenter.deleteRecord(receive)
- while (oldT != 0L && newT != 0L && (newT - oldT) >= CASE_EXPIRE_DURATION) {
- oldT = newT
- receive = channel.receive()
- newT = receive.toLongTime()
- presenter.deleteRecord(receive)
- }
- receive.takeIf { it.key != old?.key }?.also {
- CallerLogger.d(
- "$M_DEVA$TAG",
- "record: [$record] is displaying for rest ..."
- )
- record = receive
- withContext(Dispatchers.Main) {
- showBadCaseInternal(it)
- }
- }
- }
- }
- }
- }
-
-
- private fun recoverBadCase() {
- scope?.launchWhenCreated {
- val lastModified = presenter.getLastModified()
- val list = withContext(Dispatchers.IO) {
- try {
- CallerLogger.d("$M_DEVA$TAG", " --- 1 ----")
- CallerLogger.d("$M_DEVA$TAG", "恢复持久化的数据 - 最后修改时间:$lastModified")
- presenter.getUnConsumedRecords()
- .fold(mutableListOf()) { acc, record ->
- if (isValid(lastModified, record.toLongTime())) {
- acc.add(record)
- } else {
- presenter.deleteRecord(record)
- }
- acc
- }
- } catch (t: Throwable) {
- emptyList()
- }
- }
- if (list.isEmpty()) {
- CallerLogger.d("$M_DEVA$TAG", "没有要恢复的数据")
- } else {
- list.forEach {
- CallerLogger.d("$M_DEVA$TAG", "恢复的接管数据:$it")
- channel.send(it)
- }
- }
}
}
- private fun isValid(oldT: Long, newT: Long): Boolean {
- return oldT == 0L || newT == 0L || (newT - oldT >= 0 && (newT - oldT) < CASE_EXPIRE_DURATION)
- }
-
fun onReceiveBadCaseRecord(record: RecordPanelOuterClass.RecordPanel,activity: Activity) {
CallerLogger.d("$M_DEVA$TAG", "收到录包结果回调${record}")
CallerLogger.d("$M_DEVA$TAG", "开始创建被动录包弹窗,window num=${BadCaseConfig.windowNum}")
@@ -251,67 +172,6 @@ internal object BadCaseManager : LifecycleEventObserver {
}
}
- private fun CoroutineScope.showBadCaseInternal(record: AutoPilotRecord) = launch {
- viewHolder?.get()?.also { itx ->
- presenter.updateLastModified(CallerAutopilotVehicleStateListenerManager.getAutopilotTimeStamp())
-
- itx.onClick {
- showBadCaseFloat(
- onDismiss = {
- hideFloat?.invoke()
- hideFloat = null
- },
- onSelect = { reason ->
- val uploadResult = presenter.upload(mutableMapOf().also { itx ->
- itx["carLicense"] = MoGoAiCloudClientConfig.getInstance().sn
- itx["filename"] = record.fileName ?: ""
- itx["filesize"] = record.total.toString()
- itx["key"] = record.key ?: ""
- itx["reason"] = reason.reason ?: ""
- itx["duration"] = record.duration.toInt().toString()
- itx["timestamp"] = record.timestamp
- itx["channel"] = "0"
- })
- if (uploadResult == null || uploadResult.code != 200) {
- it.context.toast("上报失败")
- } else {
- it.context.toast("上报成功")
- record.consumed = true
- withContext(Dispatchers.IO) {
- presenter.deleteRecord(record)
- }
-
- hideFloat?.invoke()
- hideFloat = null
- }
- })
- }
- dismissAfterDelay()?.also { dismissJob = it }
- }
- }
-
- private fun dismissAfterDelay(): Job? {
- dismissJob?.takeIf { it.isActive }?.cancel()
- return scope?.launch {
- delay(CASE_EXPIRE_DURATION)
- record?.also {
- it.consumed = true
- withContext(Dispatchers.IO) {
- presenter.deleteRecord(it)
- }
- }
- }
- }
-
- private fun showBadCaseFloat(onDismiss: () -> Unit, onSelect:suspend (reason: Reason) -> Unit) {
- val activity = viewHolder?.get()?.context as? FragmentActivity ?: throw IllegalStateException("please ensure context is FragmentActivity.")
- BadCaseView(activity).also { itx ->
- itx.register(record, onDismiss, onSelect)
- activity.enqueuePop(itx, 960.PX, WindowManager.LayoutParams.MATCH_PARENT, key = "BadCaseFloatWindow_").also {
- hideFloat = it
- }
- }
- }
override fun onStateChanged(source: LifecycleOwner, event: Event) {
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt
deleted file mode 100644
index c547500c50..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseView.kt
+++ /dev/null
@@ -1,182 +0,0 @@
-package com.zhjt.mogo_core_function_devatools.badcase.biz
-
-import android.annotation.SuppressLint
-import android.content.Context
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.graphics.drawable.GradientDrawable
-import android.graphics.drawable.StateListDrawable
-import android.util.AttributeSet
-import android.util.StateSet
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.core.content.ContextCompat
-import androidx.lifecycle.lifecycleScope
-import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.eagle.core.utilcode.kotlin.*
-import com.mogo.eagle.core.utilcode.rv.divider.CommonDividerItemDecoration
-import com.zhjt.mogo_core_function_devatools.R
-import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse
-import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord
-import kotlinx.android.synthetic.main.layout_badcase_collect.view.*
-import kotlinx.coroutines.launch
-import java.text.SimpleDateFormat
-import java.util.*
-
-internal class BadCaseView: ConstraintLayout {
-
- @Volatile
- private var selectCase: BadCaseResponse.Reason? = null
-
- @Volatile
- private var cases: List? = null
-
- private val presenter by lazy {
- BadCasePresenter()
- }
-
- private var onDismiss: (() -> Unit)? = null
- private var onSelect:(suspend (reason: BadCaseResponse.Reason) -> Unit)? = null
-
- private val scope by lazy {
- lifecycleOwner.lifecycleScope
- }
-
- private var record: AutoPilotRecord? = null
-
- constructor(context: Context) : this(context, null)
-
- constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
-
- @SuppressLint("SetTextI18n")
- constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
- LayoutInflater.from(context).inflate(R.layout.layout_badcase_collect, this, true)
- background = ColorDrawable(Color.parseColor("#F0151D41"))
- isClickable = true
- close?.onClick {
- onDismiss?.invoke()
- }
- //fitsSystemWindows = true
- cancel?.also {
- it.background = shape(solid = Color.parseColor("#3B4577"), radius = 16)
- it.onClick {
- onDismiss?.invoke()
- }
- }
- ok?.also {
- val enabled = gradient(radius = 16.PX, orientation = GradientDrawable.Orientation.LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(35, 146, 252), endColor = Color.rgb(28, 75, 252))
- val disabled = gradient(radius = 16.PX, orientation = GradientDrawable.Orientation.LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(24, 71, 129), endColor = Color.rgb(21, 46, 129))
- it.background = object : StateListDrawable() {}.also { itx ->
- itx.addState(intArrayOf(android.R.attr.state_enabled), enabled)
- itx.addState(StateSet.WILD_CARD, disabled)
- }
- it.onClick {
- selectCase?.run {
- scope.launch {
- onSelect?.invoke(this@run)
- }
- }
- }
- }
- scope.launchWhenCreated {
- time_of_take_over?.text = "接管时间: ${SimpleDateFormat("yyyy.MM.dd HH:mm", Locale.getDefault()).format(record?.toLongTime() ?: System.currentTimeMillis())}"
- showLoading()
- presenter.loadBadCases(true).also {
- cases = it
- refresh(it)
- }
- hideLoading()
- }
- }
-
- private fun refresh(causes: List) {
- cases = causes
- rv_take_over?.let {
- it.layoutManager = LinearLayoutManager(it.context, LinearLayoutManager.VERTICAL, false)
- it.addItemDecoration(
- CommonDividerItemDecoration
- .Builder()
- .verticalInnerSpace(50.PX)
- .build())
- it.adapter = object : RecyclerView.Adapter() {
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BadCaseViewHolder = BadCaseViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.layout_badcase_item, parent, false))
- override fun onBindViewHolder(holder: BadCaseViewHolder, position: Int) {
- val cases = cases
- if (cases == null || cases.isEmpty()) {
- return
- }
- if (position >= cases.size) {
- return
- }
- val case = cases[position]
- holder.bindData(case)
- }
- override fun getItemCount(): Int = cases?.size ?: 0
- }
- }
- }
-
- private fun showLoading() {
- pb?.let {
- it.visibility = View.VISIBLE
- }
- }
-
- private fun hideLoading() {
- pb?.let {
- it.visibility = View.INVISIBLE
- }
- }
-
- private inner class BadCaseViewHolder(item: View) : RecyclerView.ViewHolder(item) {
-
- private val check: ImageView = item.findViewById(R.id.check)
- private val reason: TextView = item.findViewById(R.id.reason)
-
- init {
- check.background = StateListDrawable().also {
- it.addState(intArrayOf(android.R.attr.state_selected), ContextCompat.getDrawable(itemView.context, R.drawable.icon_ap_badcase_check))
- it.addState(StateSet.WILD_CARD, ContextCompat.getDrawable(itemView.context, R.drawable.icon_ap_badcase_default))
- }
- }
-
- @SuppressLint("NotifyDataSetChanged")
- fun bindData(case: BadCaseResponse.Reason) {
- check.isSelected = case.isChecked
- reason.text = case.reason ?: ""
- if (case.isChecked) {
- ok?.isSelected = true
- }
- itemView.onClick {
- case.isChecked = !case.isChecked
- selectCase = case
- cancelOtherChecked(case)
- ok?.isEnabled = hasCheckedItem()
- rv_take_over?.adapter?.notifyDataSetChanged()
- }
- }
-
- private fun hasCheckedItem(): Boolean = cases?.find { it.isChecked } != null
-
- private fun cancelOtherChecked(case: BadCaseResponse.Reason) {
- val cases = cases
- if (cases == null || cases.isEmpty()) {
- return
- }
- cases.filterNot { it == case }.forEach {
- it.isChecked = false
- }
- }
- }
-
- fun register(record: AutoPilotRecord?, onDismiss: () -> Unit, onSelect:suspend (reason: BadCaseResponse.Reason) -> Unit) {
- this.record = record
- this.onDismiss = onDismiss
- this.onSelect = onSelect
- }
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt
index 3a68cd603a..5cc9d5f39f 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt
@@ -35,6 +35,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import mogo.telematics.pad.MessagePad
import com.zhidao.loglib.upload.UploadManager
+import me.jessyan.autosize.utils.AutoSizeUtils
import java.io.File
import java.lang.reflect.Field
@@ -309,7 +310,7 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
SizeUtils.dp2px(10f),
SizeUtils.dp2px(10f),
SizeUtils.dp2px(10f))
- checkBox.textSize = SizeUtils.sp2px(9f).toFloat()
+ checkBox.textSize = AutoSizeUtils.dp2px(mActivity,34f).toFloat()
checkBox.text = it.reason
checkBox.isChecked = it.isChecked
checkBox.setOnCheckedChangeListener(this@PassiveBadCaseWindow)
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt
deleted file mode 100644
index 9931f8ef79..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/FeedbackManager.kt
+++ /dev/null
@@ -1,257 +0,0 @@
-package com.zhjt.mogo_core_function_devatools.feedback
-
-import android.annotation.SuppressLint
-import android.content.Context
-import android.text.TextUtils
-import android.view.View
-import android.view.WindowManager
-import android.widget.TextView
-import androidx.fragment.app.FragmentActivity
-import com.mogo.cloud.passport.MoGoAiCloudClientConfig
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager
-import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
-import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
-import com.mogo.eagle.core.utilcode.kotlin.PX
-import com.mogo.eagle.core.utilcode.kotlin.onDetach
-import com.mogo.eagle.core.utilcode.kotlin.safeCancel
-import com.mogo.eagle.core.utilcode.kotlin.scope
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
-import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
-import com.mogo.eagle.core.utilcode.util.KeyboardUtils
-import com.mogo.eagle.core.utilcode.util.ThreadUtils
-import com.zhjt.mogo_core_function_devatools.R
-import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord
-import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason
-import com.zhjt.mogo_core_function_devatools.badcase.toRecord
-import com.zhjt.mogo_core_function_devatools.ext.enqueuePop
-import com.zhjt.mogo_core_function_devatools.ext.toast
-import com.zhjt.mogo_core_function_devatools.feedback.biz.FeedBackView
-import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase
-import com.zhjt.mogo_core_function_devatools.feedback.biz.impl.FeedbackPresenter
-import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
-import kotlinx.coroutines.*
-import record_cache.RecordPanelOuterClass
-import java.io.File
-import java.text.SimpleDateFormat
-import java.util.*
-import kotlin.Result.Companion
-
-internal object FeedbackManager {
-
- const val TAG = "feedback"
- private var hideFloat: (() -> Unit)? = null
- private val presenter by lazy { FeedbackPresenter() }
-
- fun showFeedbackWindow(ctx: Context) {
- val activity = ctx as? FragmentActivity ?: throw IllegalStateException("please ensure context is FragmentActivity.")
- activity.enqueuePop(FeedBackView(ctx).also { itx ->
- itx.registerCallback(object : IFeedbackCallback {
- override fun onClose(v: View) {
- KeyboardUtils.hideSoftInput(v)
- hideFloat?.invoke()
- }
- override fun onBadCaseItemClicked(reason: Reason) {
- val oldData = itx.adapter.data ?: return
- if (reason.isChecked) {
- return
- }
- reason.isChecked = true
- val badCase = oldData.firstOrNull() as? BadCase
- badCase?.reasons?.filterNot { it.id == reason.id }?.forEach {
- it.isChecked = false
- }
- itx.adapter.notifyItemChanged(0)
- }
- @SuppressLint("SetTextI18n") override fun onStartBadCaseRecord(record: TextView) {
- if (!CallerAutoPilotManager.isConnected()) {
- TipToast.shortTip("请检查车机与域控制器连接是否正常")
- return
- }
- val data = itx.adapter.data ?: return
- val badCase = data.firstOrNull() as? BadCase ?: return
- val checked = badCase.reasons.find { it.isChecked }
- if (checked == null) {
- TipToast.shortTip("请选择一个Case")
- return
- }
-
- record.scope.launch {
- val taskId = presenter.getBadCaseTaskId()
- val listener = object : IMoGoAutopilotRecordListener {
- override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
- super.onAutopilotRecordResult(recordPanel)
- record.scope.launch {
- val newRecord = recordPanel.toRecord()
- CallerLogger.d("${M_DEVA}${TAG}", "-- 收到工控机录制任务回调 -- $recordPanel")
- if (newRecord.type == 1 && newRecord.id == taskId) {
- when(newRecord.stat) {
- 100, 101 -> {
- //成功结束录制
- stopRecordLog(newRecord)
- launch {
- val ret = upload(record.context, badCase, checked, newRecord)
- if (!ret) {
- record.text = "开始录制"
- record.setTag(R.id.feed_back_badcase_tag, 0)
- }
- }
- }
- 300 -> {
- //开始录制
- startRecordLog(newRecord)
- }
- 200 -> {
- TipToast.shortTip("录制失败")
- hideFloat?.invoke()
- }
- }
- }
- }
- }
- }
- CallerAutopilotRecordListenerManager.addListener("Feedback", listener)
- record.onDetach {
- CallerAutopilotRecordListenerManager.removeListener("Feedback")
- hideFloat = null
- }
- record.text = "结束录制"
- record.setTag(R.id.feed_back_badcase_tag, 1)
- record.setTag(R.id.feed_back_badcase_taskid_tag, taskId)
- recordBag(1, taskId)
- launch {
- CallerLogger.d("${M_DEVA}${TAG}", "延时20秒开始....")
- launch {
- var left = 20
- while (left >= 0) {
- record.text = "结束录制(${left}s)"
- delay(1000)
- left--
- }
- }.also {
- record.setTag(R.id.feed_back_badcase_count_down_job, it)
- }
- delay(20000) //延时20秒
- CallerLogger.d("${M_DEVA}${TAG}", "延时20秒结束....")
- record.text = "正在结束录制"
- (record.getTag(R.id.feed_back_badcase_count_down_job) as? Job)?.safeCancel()
- record.setTag(R.id.feed_back_badcase_tag, 2)
- stopRecordBag(1, taskId)
- }.also { itx ->
- itx.invokeOnCompletion {
- if (it is CancellationException) {
- CallerLogger.d("${M_DEVA}${TAG}", "延时任务取消")
- }
- }
- record.setTag(R.id.feed_back_badcase_job, itx)
- }
- }
- }
-
- override fun onStopBadCaseRecord(record: TextView) {
- val tag = (record.getTag(R.id.feed_back_badcase_tag) as? Int) ?: throw IllegalStateException("这个状态不存在")
- if (tag == 2) {
- TipToast.shortTip("正在结束录制,请稍候...")
- return
- }
- val taskId = (record.getTag(R.id.feed_back_badcase_taskid_tag) as? Int) ?: throw IllegalStateException("TaskId 不存在")
- (record.getTag(R.id.feed_back_badcase_job) as? Job)?.safeCancel()
- (record.getTag(R.id.feed_back_badcase_count_down_job) as? Job)?.safeCancel()
- record.text = "正在结束录制"
- record.setTag(R.id.feed_back_badcase_tag, 2)
- record.scope.launch {
- stopRecordBag(1, taskId)
- }
- }
- })
- },
- width = 960.PX,
- height = WindowManager.LayoutParams.MATCH_PARENT,
- key = "FeedBackFloatWindow_",
- onOuterViewClicked = {
- KeyboardUtils.hideSoftInput(it)
- }
- ).also { hideFloat = it }
- }
-
- private fun startRecordLog(record: AutoPilotRecord) {
- val prefix = record.fileName?.split(File.separator)?.last()?.substringBeforeLast(".")?.let { "BadCase-$it" } ?: "BadCase-${SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()).format(Date())}"
- CallerLogger.d("${M_DEVA}${TAG}", "录制Bag开始, 触发录制全量日志 ...")
- CallerLogger.d("${M_DEVA}${TAG}", "全量日志前缀: $prefix")
- CallerDevaToolsManager.startCatchLog(1, prefix)
- }
-
- private fun stopRecordLog(newRecord: AutoPilotRecord) {
- val prefix = newRecord.fileName?.split(File.separator)?.last()?.substringBeforeLast(".")?.let { "BadCase-$it" } ?: "BadCase-${SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault()).format(Date())}"
- CallerLogger.d("${M_DEVA}${TAG}", "录制Bag完成, 触发结束录制全量日志 ...")
- CallerDevaToolsManager.stopCatchLog(prefix)
- }
-
- private suspend fun upload(ctx: Context, badCase: BadCase, checked: Reason, record: AutoPilotRecord): Boolean {
- try {
- val remark = badCase.remark.text
- return presenter.upload(mutableMapOf().also { itx ->
- itx["carLicense"] = MoGoAiCloudClientConfig.getInstance().sn
- itx["filename"] = record.fileName ?: ""
- itx["filesize"] = record.total.toString()
- itx["key"] = record.key ?: ""
- itx["reason"] = checked.reason ?: ""
- itx["duration"] = record.duration.toInt().toString()
- itx["timestamp"] = record.timestamp
- itx["channel"] = "1"
- if (!TextUtils.isEmpty(remark)) {
- itx["remark"] = remark.toString()
- }
- }).let {
- if (it == null || it.code != 200) {
- ctx.toast("上报失败")
- false
- } else {
- ctx.toast("上报成功")
- hideFloat?.invoke()
- true
- }
- }
- } catch (t: Throwable) {
- return false
- }
- }
-
- private suspend fun recordBag(type: Int, id: Int) = suspendCancellableCoroutine {
- val future = ThreadUtils.getIoPool().submit {
- try {
- CallerAutoPilotManager.recordPackage(type, id)
- it.resumeWith(Result.success(Unit))
- } catch (t: Throwable) {
- it.resumeWith(Companion.failure(t))
- }
- }
- it.invokeOnCancellation {
- try {
- future.cancel(true)
- } catch (t: Throwable) {
- t.printStackTrace()
- }
-
- }
- }
-
- private suspend fun stopRecordBag(type: Int, id: Int) = suspendCancellableCoroutine {
- val future = ThreadUtils.getIoPool().submit {
- try {
- CallerAutoPilotManager.stopRecord(type, id)
- it.resumeWith(Result.success(Unit))
- } catch (t: Throwable) {
- it.resumeWith(Companion.failure(t))
- }
- }
- it.invokeOnCancellation {
- try {
- future.cancel(true)
- } catch (t: Throwable) {
- t.printStackTrace()
- }
- }
- }
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt
deleted file mode 100644
index c607b16040..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.zhjt.mogo_core_function_devatools.feedback.biz
-
-import android.content.Context
-import android.graphics.Color
-import android.graphics.Rect
-import android.graphics.drawable.ColorDrawable
-import android.graphics.drawable.GradientDrawable
-import android.util.AttributeSet
-import android.util.Log
-import android.view.*
-import android.widget.EditText
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle.Event.ON_DESTROY
-import androidx.lifecycle.lifecycleScope
-import androidx.recyclerview.widget.LinearLayoutManager
-import com.mogo.eagle.core.utilcode.kotlin.*
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
-import com.zhjt.mogo_core_function_devatools.R
-import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
-import com.zhjt.mogo_core_function_devatools.ext.softKeyboardHeightChanged
-import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager
-import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.FeedbackAdapter
-import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.BadCaseFBViewHolder
-import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback
-import com.zhjt.mogo_core_function_devatools.feedback.biz.impl.FeedbackPresenter
-import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
-import kotlinx.android.synthetic.main.layout_fb.view.*
-
-
-internal class FeedBackView : ConstraintLayout {
-
- private var cb: IFeedbackCallback? = null
- private var softKeyboardCb: (() -> Unit)? = null
- private var editOutRect: Rect = Rect()
- private val presenter by lazy {
- FeedbackPresenter()
- }
- private var rvTransAnimator: ViewPropertyAnimator? = null
-
- private val scope by lazy {
- lifecycleOwner.lifecycleScope
- }
-
- internal val adapter by lazy {
- FeedbackAdapter { itx ->
- if (itx is BadCaseFBViewHolder) {
- itx.itemView.findViewById(R.id.et).also {
- val listener = object : ViewTreeObserver.OnPreDrawListener {
- override fun onPreDraw(): Boolean {
- it.viewTreeObserver.removeOnPreDrawListener(this)
- it.getGlobalVisibleRect(editOutRect)
- return true
- }
- }
- it.viewTreeObserver.addOnPreDrawListener(listener)
- }
- }
- }
- }
-
- constructor(context: Context) : this(context, null)
- constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
- constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
- LayoutInflater.from(context).inflate(R.layout.layout_fb, this, true).also {
- observe(arrayOf(ON_DESTROY)) { itx ->
- if (itx == ON_DESTROY) {
- cb = null
- softKeyboardCb?.invoke()
- }
- }
- }
- background = ColorDrawable(Color.parseColor("#F0151D41"))
- close.onClick {
- cb?.onClose(this)
- }
-
- top_mask?.background = gradient(orientation = GradientDrawable.Orientation.TOP_BOTTOM, startColor = Color.parseColor("#151D41"), endColor = Color.parseColor("#05151D41"))
- rv?.also {
- it.fixGestureConflictForViews(listOf(R.id.et))
- it.itemAnimator?.run {
- changeDuration = 0
- addDuration = 0
- moveDuration = 0
- removeDuration = 0
- }
- it.adapter = adapter
- it.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
- loadFeedbackAndRefresh()
- }
- val activity = context as? FragmentActivity
- activity?.also { itx ->
- itx.softKeyboardHeightChanged {
- CallerLogger.d("${M_DEVA}${FeedbackManager.TAG}", "-- onHeightChanged ---:H -> $it")
- if (it == 0) {
- transitionTo(0)
- } else {
- editOutRect.run {
- transitionTo(-( it - top + height() + 228.PX))
- }
- }
- }.also {
- softKeyboardCb = it
- }
- }
- }
-
- private fun transitionTo(targetY: Int) {
- rv?.also { itx ->
- rvTransAnimator?.cancel()
- itx.animate().translationY(targetY.toFloat()).setDuration(200).also {
- rvTransAnimator = it
- }.start()
- }
- }
-
- private fun loadFeedbackAndRefresh() {
- scope.launchWhenCreated {
- showLoading()
- CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- show loading ---")
- presenter.loadFeedBacks().also {
- CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- data load ${it.joinToString(",")} ---")
- adapter.data = it
- }
- CallerLogger.d("$M_DEVA${BadCaseManager.TAG}", "-- hide loading ---")
- hideLoading()
- }
- }
-
- private fun showLoading() {
- pb?.visibility = View.VISIBLE
- }
-
- private fun hideLoading() {
- pb?.visibility = View.GONE
- }
-
- fun registerCallback(cb: IFeedbackCallback) {
- this.cb = cb
- this.adapter.setCallback(cb)
- }
-
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/FeedbackAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/FeedbackAdapter.kt
deleted file mode 100644
index 4f191769b6..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/FeedbackAdapter.kt
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.zhjt.mogo_core_function_devatools.feedback.biz.adapter
-
-import android.util.Log
-import android.view.ViewGroup
-import androidx.recyclerview.widget.DiffUtil
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion
-import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager
-import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.BadCaseFBViewHolder
-import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.base.FeedbackViewHolder
-import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback
-import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase
-import com.zhjt.mogo_core_function_devatools.feedback.biz.diff.FeedbackDiffCallback
-import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
-
-internal class FeedbackAdapter(val onHolderAttached: (holder: FeedbackViewHolder<*>) -> Unit): RecyclerView.Adapter>() {
-
- companion object {
- const val ITEM_TYPE_BAD_CASE = 0x0101
- }
-
- private var cb: IFeedbackCallback? = null
-
- var data: List? = null
- @Synchronized
- set(value) {
- val result = DiffUtil.calculateDiff(FeedbackDiffCallback(field, value))
- result.dispatchUpdatesTo(this)
- field = value
- }
-
- override fun getItemViewType(position: Int): Int {
- val data = data ?: return super.getItemViewType(position)
- when(val item = data[position]) {
- is BadCase -> {
- CallerLogger.d("${SceneConstant.M_DEVA}${FeedbackManager.TAG}", "item->$item")
- return ITEM_TYPE_BAD_CASE
- }
- }
- return super.getItemViewType(position)
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FeedbackViewHolder {
- when (viewType) {
- ITEM_TYPE_BAD_CASE -> {
- return BadCaseFBViewHolder(cb, parent) as FeedbackViewHolder
- }
- else -> {
- throw IllegalStateException("不支持ViewType: $viewType")
- }
- }
- }
-
- override fun onBindViewHolder(holder: FeedbackViewHolder, position: Int) {
- val item = data?.get(position) ?: return
- holder.onBind(item, position)
- }
-
- override fun getItemCount(): Int = data?.size ?: 0
-
- fun setCallback(cb: IFeedbackCallback) {
- this.cb = cb
- }
-
- override fun onViewAttachedToWindow(holder: FeedbackViewHolder) {
- super.onViewAttachedToWindow(holder)
- onHolderAttached.invoke(holder)
- }
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/BadCaseFBViewHolder.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/BadCaseFBViewHolder.kt
deleted file mode 100644
index c8780f3973..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/BadCaseFBViewHolder.kt
+++ /dev/null
@@ -1,193 +0,0 @@
-package com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh
-
-import android.annotation.SuppressLint
-import android.content.Context
-import android.graphics.Color
-import android.graphics.drawable.GradientDrawable.Orientation.LEFT_RIGHT
-import android.graphics.drawable.StateListDrawable
-import android.text.Selection
-import android.text.TextUtils
-import android.text.TextUtils.TruncateAt.END
-import android.util.StateSet
-import android.util.TypedValue
-import android.view.*
-import android.view.inputmethod.EditorInfo
-import android.widget.EditText
-import android.widget.ImageView
-import android.widget.LinearLayout
-import android.widget.TextView
-import androidx.core.content.ContextCompat
-import com.google.android.flexbox.FlexboxLayout
-import com.mogo.eagle.core.utilcode.kotlin.*
-import com.mogo.eagle.core.utilcode.util.KeyboardUtils
-import com.mogo.eagle.core.utilcode.util.ToastUtils
-import com.zhjt.mogo_core_function_devatools.R
-import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.entity.BadCaseResponse.Reason
-import com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.base.FeedbackViewHolder
-import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback.BadCase
-import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
-import kotlin.Int.Companion
-
-
-@SuppressLint("SetTextI18n")
-internal class BadCaseFBViewHolder(cb: IFeedbackCallback?, parent: ViewGroup): FeedbackViewHolder(cb,
- LayoutInflater
- .from(parent.context)
- .inflate(R.layout.layout_fb_badcase, parent, false)) {
-
- private val flex by lazy {
- itemView.findViewById(R.id.flex)
- }
-
- private val et by lazy {
- itemView.findViewById(R.id.et)
- }
-
- private val etParent by lazy {
- itemView.findViewById(R.id.et_root)
- }
-
- private val words by lazy {
- itemView.findViewById(R.id.words_count)
- }
-
- private var first = false
-
- init {
- itemView.findViewById(R.id.record).also {
- it.background = gradient(radius = 16.PX, orientation = LEFT_RIGHT, centerX = 0.06f, startColor = Color.rgb(35, 146, 252), endColor = Color.rgb(28, 75, 252))
- it.onClick { _ ->
- val flag = (it.getTag(R.id.feed_back_badcase_tag) as? Int) ?: 0
- if (flag == 0) {
- cb?.onStartBadCaseRecord(it)
- } else {
- cb?.onStopBadCaseRecord(it)
- }
- }
- }
-
- etParent.also {
- it.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX)
- }
-
- val action = Runnable { KeyboardUtils.showSoftInput(et) }
- et.onDetach {
- et.removeCallbacks(action)
- }
- et.onClick {
- it.post(action)
- etParent.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX, stroke = Color.parseColor("#5EBFFF"), strokeWidth = 2.PX)
- }
- et.setOnEditorActionListener { _, actionId, _ ->
- if (actionId == EditorInfo.IME_ACTION_DONE) {
- KeyboardUtils.hideSoftInput(et)
- return@setOnEditorActionListener true
- }
- return@setOnEditorActionListener false
- }
- et.maxLines = Int.MAX_VALUE
- et.setHorizontallyScrolling(false)
- et.watch(
- 200,
- onCountChanged = {
- if (first) {
- return@watch
- }
- words.visibility = View.VISIBLE
- words.spannableText(listOf(it.toString(), "/200"), listOf(Color.parseColor("#5EBFFF"), Color.WHITE))
- },
- onTextChanged = {
- if (it?.length ?: 0 > 0) {
- first = false
- }
- data().remark.text = it?.toString() ?: ""
- },
- onReachMaxCountAction = {
- ToastUtils.showShort("已超过最大字符数")
- }
- )
- }
-
- override fun onBind(data: BadCase, position: Int) {
- super.onBind(data, position)
- flex.refresh(data)
- val text = data.remark.text
- if (!TextUtils.isEmpty(text)) {
- et.setText(text)
- et.isCursorVisible = true
- Selection.setSelection(et.text, et.text.length)
- etParent.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX, stroke = Color.parseColor("#5EBFFF"), strokeWidth = 2.PX)
- words.visibility = View.VISIBLE
- } else {
- words.visibility = View.INVISIBLE
- if (!first) {
- first = true
- et.setText("")
- }
- et.isCursorVisible = false
- etParent.background = shape(solid = Color.parseColor("#263869"), radius = 20.PX)
- }
- }
-
- private fun FlexboxLayout.refresh(data: BadCase) {
- val vh = (tag as? Map<*, *> ?: emptyMap()).toMutableMap()
- if (vh.isEmpty()) {
- data.reasons.forEach { itx ->
- val view = getBadCaseView(context)
- val check = view.findViewById(R.id.check)
- check.background = StateListDrawable().also {
- it.addState(intArrayOf(android.R.attr.state_selected), ContextCompat.getDrawable(itemView.context, R.drawable.icon_ap_badcase_check))
- it.addState(StateSet.WILD_CARD, ContextCompat.getDrawable(itemView.context, R.drawable.icon_ap_badcase_default))
- }
- check.isSelected = itx.isChecked
- val reason = view.findViewById(R.id.reason)
- reason.text = itx.reason
- vh[itx] = ViewHolder(check, reason)
- view.onClick {
- cb?.onBadCaseItemClicked(itx)
- }
- view.layoutParams = FlexboxLayout.LayoutParams(FlexboxLayout.LayoutParams.WRAP_CONTENT, FlexboxLayout.LayoutParams.WRAP_CONTENT).also {
- it.flexBasisPercent = 0.5f
- }
- addView(view)
- }
- tag = vh
- } else {
- data.reasons.forEach {
- (vh[it] as? ViewHolder)?.run {
- check.isSelected = it.isChecked
- reason.text = it.reason
- }
- }
- }
- }
-
- private fun getBadCaseView(context: Context): View {
- return LinearLayout(context).also { itx ->
- itx.orientation = LinearLayout.HORIZONTAL
- itx.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
- itx.gravity = Gravity.CENTER_VERTICAL
-
- //ImageView -- check
- val check = ImageView(context)
- check.layoutParams = LinearLayout.LayoutParams(70.PX, 70.PX)
- check.id = R.id.check
- itx.addView(check)
-
- //TextView -- Reason
- val reason = TextView(context)
- reason.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT).also {
- it.marginStart = 30.PX
- it.marginEnd = 20.PX
- }
- reason.setTextColor(Color.WHITE)
- reason.setTextSize(TypedValue.COMPLEX_UNIT_PX, 42.0f)
- reason.maxLines = 1
- reason.ellipsize = END
- reason.id = R.id.reason
- itx.addView(reason)
- }
- }
-
- private data class ViewHolder(val check: ImageView, val reason: TextView)
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/base/FeedbackViewHolder.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/base/FeedbackViewHolder.kt
deleted file mode 100644
index d058d78327..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/adapter/vh/base/FeedbackViewHolder.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.zhjt.mogo_core_function_devatools.feedback.biz.adapter.vh.base
-
-import android.view.View
-import androidx.annotation.CallSuper
-import androidx.recyclerview.widget.RecyclerView
-import com.zhjt.mogo_core_function_devatools.feedback.biz.bean.Feedback
-import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
-import java.util.concurrent.atomic.AtomicReference
-
-internal open class FeedbackViewHolder(internal val cb: IFeedbackCallback?, view: View): RecyclerView.ViewHolder(view) {
-
- private val data by lazy { AtomicReference() }
-
- fun data(): T {
- return data.get()
- }
-
- @CallSuper
- open fun onBind(data: T, position: Int) {
- this.data.set(data)
- }
-}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml
deleted file mode 100644
index d80bfd1432..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_collect.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml
deleted file mode 100644
index c21422045e..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_item.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb.xml
deleted file mode 100644
index 0e990176e6..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb_badcase.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb_badcase.xml
deleted file mode 100644
index 33eaff2573..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_fb_badcase.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_entrance_badcase.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_entrance_badcase.xml
deleted file mode 100644
index 06cc37e8ef..0000000000
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_entrance_badcase.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file