diff --git a/app/config/urlConfig.json b/app/config/urlConfig.json index adb70908aa..1179ea5438 100644 --- a/app/config/urlConfig.json +++ b/app/config/urlConfig.json @@ -54,7 +54,7 @@ "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com/arch/", "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com/", "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s", + "bind_driver_qr_url": "https://och-mini-eh.zhidaozhixing.com?pipe=ehsafety&sn=%1$s", "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" }, "demo": { @@ -89,7 +89,7 @@ "socket_tech_url": "https://och-driver-yt.zhidaozhixing.com/arch/", "eagle_mis_url": "https://och-hailing-yt.zhidaozhixing.com/", "eagle_dns_url": "https://och-hailing-yt.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s", + "bind_driver_qr_url": "https://och-mini-yt.zhidaozhixing.com?pipe=ytsafety&sn=%1$s", "chart_socket_url":"" }, "demo": { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt index 0bf5097f02..28c772f1db 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt @@ -70,7 +70,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxBean: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ when (category) { MsgCategory.NOTICE -> { MsgBoxConfig.noticeList.add(msgBoxBean) @@ -98,7 +98,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( driverMsgBoxBubbleAdapter?.setData(dataList) } } - } + }, UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java index 42044644ee..171817dd7d 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java @@ -53,6 +53,18 @@ public final class ThreadUtils { private static Executor sDeliver; + public enum MODE { + /** + * 多次post同一个Runnable对象,只会执行最后一次 + */ + LATEST, + + /** + * 多次post,在主线程消息队列中排队执行 + */ + QUEUE + } + /** * Return whether the thread is the main thread. * @@ -63,23 +75,40 @@ public final class ThreadUtils { } public static void runOnUiThread(final Runnable r) { + runOnUiThread(r, MODE.LATEST); + } + + public static void runOnUiThread(final Runnable r, MODE mode) { if (Looper.myLooper() == Looper.getMainLooper()) { r.run(); } else { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - HANDLER.removeMessages(what); - Message msg = Message.obtain(HANDLER, r); - msg.what = what; - HANDLER.sendMessage(msg); + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessage(msg); + } else { + HANDLER.post(r); + } } } public static void runOnUiThreadDelayed(final Runnable r, long delayMillis) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - HANDLER.removeMessages(what); - Message msg = Message.obtain(HANDLER, r); - msg.what = what; - HANDLER.sendMessageDelayed(msg, delayMillis); + runOnUiThreadDelayed(r, delayMillis, MODE.LATEST); + } + + public static void runOnUiThreadDelayed(final Runnable r, long delayMillis, MODE mode) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessageDelayed(msg, delayMillis); + } else { + HANDLER.postDelayed(r, delayMillis); + } + } /** diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java index a8fc918cda..e4d3f8803a 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java @@ -10,24 +10,58 @@ public class UiThreadHandler { private UiThreadHandler() { } + public enum MODE { + /** + * 多次post同一个Runnable对象,只会执行最后一次 + */ + LATEST, + + /** + * 多次post,在主线程消息队列中排队执行 + */ + QUEUE + } + public static boolean post( Runnable r ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); - Message msg = Message.obtain(sUiHandler, r); - msg.what = what; - return sUiHandler.sendMessage(msg); + return post(r, MODE.LATEST); + } + + public static boolean post(Runnable r, MODE mode) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessage(msg); + } + return sUiHandler.post(r); } public static boolean postDelayed( Runnable r, long delayMillis ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); - Message msg = Message.obtain(sUiHandler, r); - msg.what = what; - return sUiHandler.sendMessageDelayed(msg, delayMillis); + return postDelayed(r, delayMillis, MODE.LATEST); + } + + public static boolean postDelayed( Runnable r, long delayMillis, MODE mode ) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessageDelayed(msg, delayMillis); + } + return sUiHandler.postDelayed(r, delayMillis); } public static void removeCallbacks( Runnable r ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); + removeCallbacks(r, MODE.LATEST); + } + + public static void removeCallbacks( Runnable r, MODE mode ) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + } else { + sUiHandler.removeCallbacks(r); + } } } \ No newline at end of file