From 024235080988869bbbf0c93e58e8b91e8e56ffb3 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 10 Mar 2023 11:23:35 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[Opt]=E6=9B=BF=E6=8D=A2=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E4=B8=AD=E3=80=81=E8=8B=B1=E3=80=81=E9=9F=A9=E5=8F=91=E9=9F=B3?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tts/tts-iflytek/src/main/res/values/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tts/tts-iflytek/src/main/res/values/strings.xml b/tts/tts-iflytek/src/main/res/values/strings.xml index b0dbcd1930..e477a0c3f7 100644 --- a/tts/tts-iflytek/src/main/res/values/strings.xml +++ b/tts/tts-iflytek/src/main/res/values/strings.xml @@ -2,16 +2,16 @@ - xiaoyan + x4_lingxiaoying_en aisjiuxu aisxping aisjinger aisbabyxu - x2_enus_catherine + x2_engam_laura - zhimin + x2_KoKr_Miya \ No newline at end of file From 017a4ca72f58d6ae01ea42801d1614e26757d4ac Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 13 Mar 2023 19:02:17 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[Opt3.0][Fix]=E8=A7=A3=E5=86=B3=E5=85=A8?= =?UTF-8?q?=E8=A7=88=E5=9C=B0=E5=9B=BE=E7=94=BB=E7=BA=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt index 1b8eb5302d..44d265137d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt @@ -111,8 +111,8 @@ object MarkerDrawerManager { ) if (baseDiffDis > diff) { baseDiffDis = diff - // 距离最近的时候判断是否走过,且车行驶是线性连续的1s不会跳点过多 - if (DrivingDirectionUtils.getDegreeOfCar2Poi2(realLon, realLat, latLng.longitude, latLng.latitude, heading) >= 90 && i - lastArrivedIndex < 3) { + // 距离最近的时候判断是否走过 + if (DrivingDirectionUtils.getDegreeOfCar2Poi2(realLon, realLat, latLng.longitude, latLng.latitude, heading) >= 90) { currentIndex = i } } From 7119060d21f17eb40686c14bf33d9b6f7fe09b4b Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 14 Mar 2023 10:56:07 +0800 Subject: [PATCH 3/6] [m1-p-1.1.0] change the speed limit loc to wgs84 --- .../core/function/business/SpeedLimitDataManager.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java index 7d77a80af3..8f02b7a311 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java @@ -5,7 +5,9 @@ import androidx.annotation.Nullable; import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -19,7 +21,7 @@ import java.util.TimerTask; * * @author mogoauto */ -public class SpeedLimitDataManager implements IMoGoChassisLocationGCJ02Listener { +public class SpeedLimitDataManager implements IMoGoChassisLocationWGS84Listener { private final static String TAG = "SpeedLimitDataManager"; private static volatile SpeedLimitDataManager instance; @@ -40,7 +42,7 @@ public class SpeedLimitDataManager implements IMoGoChassisLocationGCJ02Listener } @Override - public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { + public void onChassisLocationWGS84(@Nullable MogoLocation gnssInfo) { mLocation = gnssInfo; } @@ -65,7 +67,7 @@ public class SpeedLimitDataManager implements IMoGoChassisLocationGCJ02Listener } public void start() { - CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this); + CallerChassisLocationWGS84ListenerManager.INSTANCE.addListener(TAG, this); Timer mTimer = new Timer(); mTimer.schedule(new SpeedTimerTask(), 3000, 1000); } From f09dd018e171c235a2b07c101603c55d9c24730a Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 14 Mar 2023 11:51:01 +0800 Subject: [PATCH 4/6] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/data/enums/EventTypeEnumNew.kt | 2 +- .../icon_warning_v2x_changelanes.png | Bin 0 -> 17105 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100755 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_v2x_changelanes.png diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index ff26792172..550ae846f1 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -174,7 +174,7 @@ enum class EventTypeEnumNew( TYPE_USECASE_ID_LCW( 2003.toString(), "变道预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_reverse_overtaking, + poiTypeSrcVr = R.drawable.icon_warning_v2x_changelanes, content = "%s向变道预警", tts = "注意%s后车辆" ),//注意左后车辆/注意右后车辆 diff --git a/core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_v2x_changelanes.png b/core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_v2x_changelanes.png new file mode 100755 index 0000000000000000000000000000000000000000..96ba576d5cfc04a739fd5645d9d08b05743c8007 GIT binary patch literal 17105 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 M07*qoM6N<$f&y#)ga7~l literal 0 HcmV?d00001 From 615512a845df0a013e9c642d4c9af10e819121c4 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 14 Mar 2023 14:12:22 +0800 Subject: [PATCH 5/6] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7LancetX=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index afc1ee4733..4cca99fc4e 100644 --- a/build.gradle +++ b/build.gradle @@ -35,7 +35,7 @@ buildscript { classpath 'com.mogo.cloud:systrace:1.0.1' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' classpath 'com.mogo.sticky:service:1.0.8' - classpath 'io.github.knight-zxw:lancet-plugin:0.0.4_mogo' + classpath 'io.github.knight-zxw:lancet-plugin:0.0.4.5_mogo' // classpath ("com.tencent.matrix:matrix-gradle-plugin:0.6.6") { changing = true } } From 7e3abc88e0cc14af0207ef9faf05dd16b34ed6d4 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 14 Mar 2023 14:14:00 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96UiThreadHandler=E5=92=8CThreadUtils=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E4=B8=BB=E7=BA=BF=E7=A8=8B=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E4=B8=BB=E7=BA=BF=E7=A8=8B=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=98=9F=E5=88=97=E8=BF=87=E5=A4=9A=EF=BC=8C=E9=80=A0=E6=88=90?= =?UTF-8?q?=E5=8D=A1=E9=A1=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bus/util/BusAnalyticsManager.java | 3 +- .../sweeper/util/SweeperAnalyticsManager.java | 3 +- .../mulprocess/OrderServiceImpl.java | 2 +- .../passenger/ui/leftmenu/LeftMenuOpen.kt | 12 +++--- .../ui/video/FloatingDistanceInfoUtils.kt | 4 +- .../utils/TaxiPassengerAnalyticsManager.java | 3 +- .../och/taxi/utils/TaxiAnalyticsManager.java | 3 +- app/build.gradle | 3 ++ .../com/mogo/launcher/lancet/MemoryLeakFix.kt | 6 ++- .../launcher/lancet/ObjectHashCodeProxy.java | 37 ++++++++++++++++++ .../eagle/core/utilcode/util/ThreadUtils.java | 23 ++++++----- .../core/utilcode/util/UiThreadHandler.java | 38 ++++++++----------- 12 files changed, 86 insertions(+), 51 deletions(-) create mode 100644 app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java index a8af2bdb38..b37e399e18 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java @@ -65,8 +65,7 @@ public class BusAnalyticsManager { } private void removeWaitingCallback() { - if (startAutopilotRunnable != null && - UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + if (startAutopilotRunnable != null) { UiThreadHandler.removeCallbacks(startAutopilotRunnable); } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java index 16832a6c2b..b73559496e 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java @@ -68,8 +68,7 @@ public class SweeperAnalyticsManager { if (send) { // 开启成功,上报埋点 - if (startAutopilotRunnable != null && - UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + if (startAutopilotRunnable != null) { UiThreadHandler.removeCallbacks(startAutopilotRunnable); } mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_RESULT, true); diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java index 006be38689..f98ac9cc33 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java @@ -15,7 +15,7 @@ public class OrderServiceImpl extends ILeftMenuService.Stub { @Override public void transmissionIndex(int index) throws RemoteException { CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 transmissionIndex"+index); - UiThreadHandler.getsUiHandler().post(() -> { + UiThreadHandler.post(() -> { OverlayLeftViewUtils.INSTANCE.transmissionIndexGet(index); }); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt index 25e67ec138..3cea1f73ac 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt @@ -123,25 +123,25 @@ object LeftMenuOpen { windowManager?.let { windowManager -> if (it.x > NEGATIVEDEVIATION && movedX > 0) { open?.let { it1 -> - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { it1(windowView, windowManager) } } } else { //更新悬浮球控件位置 - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { windowManager.updateViewLayout(windowView, it) } } if (it.x < OverlayLeftViewUtils.DEVIATION_WIDTH + DEVIATION && movedX < 0) { close?.let { it1 -> - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { it1(windowView, windowManager) } } } else { //更新悬浮球控件位置 - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { windowManager.updateViewLayout(windowView, it) } } @@ -157,14 +157,14 @@ object LeftMenuOpen { if (startX > OverlayLeftViewUtils.DEVIATION_WIDTH / 2 && startX < 0) { //拖动距离大于一半 自动打开 open?.let { - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { it(windowView!!, windowManager) } } } else if (startX < OverlayLeftViewUtils.DEVIATION_WIDTH / 2 && startX >= OverlayLeftViewUtils.DEVIATION_WIDTH) { // 拖动距离小于一半自动关闭 close?.let { - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { it(windowView!!, windowManager) } } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt index 5122739983..41622d9785 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt @@ -177,13 +177,13 @@ object FloatingDistanceInfoUtils { fun setSpeed(speed: Float) { val newSpeed: Int = (Math.abs(speed) * 3.6f).toInt() // 倒车时工控机反馈定位信息中speed为负值 - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { actvSpeed?.text = "$newSpeed" } } fun setDistance(meters:Long,remainDis: String?, disUnit: String, time: Int, arriveTime: String) { - UiThreadHandler.getsUiHandler().post { + UiThreadHandler.post { actvDistancew?.text = "$remainDis" actvDistancewUnit?.text = "距离($disUnit)" actvSurplusTime?.text = "$time" diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java index 5b55a89cca..21ff9ef517 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java @@ -78,8 +78,7 @@ public class TaxiPassengerAnalyticsManager { } private void removeWaitingCallback() { - if (startAutopilotRunnable != null && - UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + if (startAutopilotRunnable != null) { UiThreadHandler.removeCallbacks(startAutopilotRunnable); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java index 51b18b574f..49e2bd29bf 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java @@ -47,8 +47,7 @@ public class TaxiAnalyticsManager { } private void removeWaitingCallback() { - if (startAutopilotRunnable != null && - UiThreadHandler.getsUiHandler().hasCallbacks(startAutopilotRunnable)) { + if (startAutopilotRunnable != null) { UiThreadHandler.removeCallbacks(startAutopilotRunnable); } } diff --git a/app/build.gradle b/app/build.gradle index fcec11c180..b215e3967f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -64,6 +64,9 @@ if (!isAndroidTestBuild()) { memory_leak { enable true } + object_hashcode { + enable true + } } } } diff --git a/app/src/main/java/com/mogo/launcher/lancet/MemoryLeakFix.kt b/app/src/main/java/com/mogo/launcher/lancet/MemoryLeakFix.kt index 5357e485f6..dff034aefa 100644 --- a/app/src/main/java/com/mogo/launcher/lancet/MemoryLeakFix.kt +++ b/app/src/main/java/com/mogo/launcher/lancet/MemoryLeakFix.kt @@ -11,6 +11,7 @@ import androidx.lifecycle.* import androidx.lifecycle.Lifecycle.Event import androidx.lifecycle.Lifecycle.Event.ON_DESTROY import com.knightboost.lancet.api.* +import com.knightboost.lancet.api.Scope.LEAF import com.knightboost.lancet.api.annotations.* import com.knightboost.lancet.api.annotations.Weaver import com.mogo.eagle.core.utilcode.kotlin.* @@ -24,8 +25,9 @@ import java.util.concurrent.ConcurrentHashMap @Group("memory_leak") class MemoryLeakFix { - @Insert - @ImplementedInterface("java.lang.Runnable") + @NameRegex("(com\\.mogo|com\\.zhidao|com\\.elegant|com\\.zhidaoauto|com\\.zhjt).*") + @Insert(mayCreateSuper = true) + @ImplementedInterface("java.lang.Runnable", scope = LEAF) @TargetMethod(methodName = "run") fun runProxy() { if (AccessSyntheticUtils.isTargetAlive(This.get())) { diff --git a/app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java b/app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java new file mode 100644 index 0000000000..136585b373 --- /dev/null +++ b/app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java @@ -0,0 +1,37 @@ +package com.mogo.launcher.lancet; + +import androidx.annotation.Keep; +import com.knightboost.lancet.api.Scope; +import com.knightboost.lancet.api.annotations.Group; +import com.knightboost.lancet.api.annotations.ImplementedInterface; +import com.knightboost.lancet.api.annotations.NameRegex; +import com.knightboost.lancet.api.annotations.ReplaceInvoke; +import com.knightboost.lancet.api.annotations.TargetMethod; +import com.knightboost.lancet.api.annotations.Weaver; +import java.util.concurrent.ConcurrentHashMap; + +@Weaver +@Group("object_hashcode") +@Keep +public class ObjectHashCodeProxy { + + public static final ConcurrentHashMap hashCodes = new ConcurrentHashMap<>(); + + @NameRegex("(com\\.mogo\\.eagle\\.core\\.utilcode\\.util\\.ThreadUtils|com\\.mogo\\.eagle\\.core\\.utilcode\\.util\\.UiThreadHandler)") + @ImplementedInterface(value = "java.lang.Object",scope = Scope.SELF) + @TargetMethod(methodName = "hashCode") + @ReplaceInvoke + public static int hashCodeProxy(Object r) { + Class clazz = r.getClass(); + String className = clazz.getName(); + if (hashCodes.containsKey(className)) { + Integer value = hashCodes.get(className); + if (value != null) { + return value; + } + } + int hashCode = System.identityHashCode(r); + hashCodes.put(className, hashCode); + return hashCode; + } +} 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 841f5bb5a9..40bc4cc367 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 @@ -2,6 +2,7 @@ package com.mogo.eagle.core.utilcode.util; import android.os.Handler; import android.os.Looper; +import android.os.Message; import android.util.Log; import java.util.HashMap; @@ -61,20 +62,24 @@ public final class ThreadUtils { return Looper.myLooper() == Looper.getMainLooper(); } - public static Handler getMainHandler() { - return HANDLER; - } - - public static void runOnUiThread(final Runnable runnable) { + public static void runOnUiThread(final Runnable r) { if (Looper.myLooper() == Looper.getMainLooper()) { - runnable.run(); + r.run(); } else { - HANDLER.post(runnable); + int what = r.hashCode(); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessage(msg); } } - public static void runOnUiThreadDelayed(final Runnable runnable, long delayMillis) { - HANDLER.postDelayed(runnable, delayMillis); + public static void runOnUiThreadDelayed(final Runnable r, long delayMillis) { + int what = r.hashCode(); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessageDelayed(msg, 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 8bfad615ad..b3a65e4f68 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 @@ -2,40 +2,32 @@ package com.mogo.eagle.core.utilcode.util; import android.os.Handler; import android.os.Looper; +import android.os.Message; public class UiThreadHandler { private static final Handler sUiHandler = new Handler( Looper.getMainLooper() ); - private static final Object sToken = new Object(); - - public UiThreadHandler() { - } + private UiThreadHandler() { } public static boolean post( Runnable r ) { - return sUiHandler != null && sUiHandler.post( r ); + int what = r.hashCode(); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessage(msg); } public static boolean postDelayed( Runnable r, long delayMillis ) { - return sUiHandler != null && sUiHandler.postDelayed( r, delayMillis ); + int what = r.hashCode(); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessageDelayed(msg, delayMillis); } - public static Handler getsUiHandler() { - return sUiHandler; - } - - public static boolean postOnceDelayed( Runnable r, long delayMillis ) { - if ( sUiHandler == null ) { - return false; - } else { - sUiHandler.removeCallbacks( r, sToken ); - return sUiHandler.postDelayed( r, delayMillis ); - } - } - - public static void removeCallbacks( Runnable runnable ) { - if ( sUiHandler != null ) { - sUiHandler.removeCallbacks( runnable ); - } + public static void removeCallbacks( Runnable r ) { + int what = r.hashCode(); + sUiHandler.removeMessages(what); } } \ No newline at end of file