From 37a9c29b32f47de84a5c653987690e1b7c835bc2 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 19 Apr 2024 17:18:22 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.0]=20[getActivity=20=E6=94=B9=E4=B8=BAUiTh?= =?UTF-8?q?read]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bus/fragment/BaseBusTabFragment.java | 53 +++++++++-------- .../mogo/och/bus/fragment/BusFragment.java | 30 +++++----- .../ui/BusPassengerRouteFragment.java | 13 +++-- .../fragment/BaseShuttleTabFragment.java | 53 +++++++++-------- .../och/shuttle/fragment/ShuttleFragment.java | 30 +++++----- .../ui/BusPassengerRouteFragment.java | 13 +++-- .../mogo/och/taxi/ui/BaseTaxiTabFragment.java | 57 +++++++++++-------- 7 files changed, 142 insertions(+), 107 deletions(-) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 82d2864654..0018c661ea 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -322,10 +322,13 @@ public abstract class BaseBusTabFragment * @param text 指定的文字 */ public void showSlidePanel(String text) { - getActivity().runOnUiThread(() -> { - slidePanelView.setText(text); - slidePanelView.setVisibility(View.VISIBLE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setText(text); + slidePanelView.setVisibility(View.VISIBLE); + } + },UiThreadHandler.MODE.QUEUE); setArrivedClickable(false); } @@ -335,23 +338,29 @@ public abstract class BaseBusTabFragment * @param isClickable */ public void setArrivedClickable(boolean isClickable) { - getActivity().runOnUiThread(() -> { - tvArrived.setEnabled(isClickable); - if (isClickable) { - tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); - } else { - tvArrived.setTextColor(getResources().getColor(R.color.bus_arrived_btn_un_clickable_color)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + tvArrived.setEnabled(isClickable); + if (isClickable) { + tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); + } else { + tvArrived.setTextColor(getResources().getColor(R.color.bus_arrived_btn_un_clickable_color)); + } } - }); + },UiThreadHandler.MODE.QUEUE); } /** * 隐藏滑动按钮 */ public void hideSlidePanel() { - getActivity().runOnUiThread(() -> { - slidePanelView.setVisibility(View.GONE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setVisibility(View.GONE); + } + },UiThreadHandler.MODE.QUEUE); } public void playDI() { @@ -364,9 +373,12 @@ public abstract class BaseBusTabFragment * @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中 */ public void onAutopilotStatusChanged(int autopilotStatus) { - getActivity().runOnUiThread(() -> { - changeAutopilotBtnView(autopilotStatus, isAnimateRunning); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + changeAutopilotBtnView(autopilotStatus, isAnimateRunning); + } + },UiThreadHandler.MODE.QUEUE); } public void setAutopilotBtnStatus(int autopilotStatus) { @@ -443,19 +455,12 @@ public abstract class BaseBusTabFragment * 隐藏【自动驾驶】按钮 */ public void hideAutopilotBiz() { - getActivity().runOnUiThread(() -> { -// ctvAutopilotStatus.setVisibility(View.GONE); -// slidePanelView.setVisibility(View.GONE); - }); } /** * 展示【自动驾驶】按钮 */ public void showAutopilotBiz() { -// getActivity().runOnUiThread(() -> { -// ctvAutopilotStatus.setVisibility(View.VISIBLE); -// }); } public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() { diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 5c3a324424..bda3e60a12 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -25,6 +25,7 @@ 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.util.ActivityUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.overlay.IMoGoOverlayManager; import com.mogo.map.overlay.core.Level; import com.mogo.map.overlay.point.Point; @@ -191,20 +192,23 @@ public class BusFragment extends BaseBusTabFragment return; } - getActivity().runOnUiThread(() -> { - if (stationList == null) { - // 获取小巴数据失败 - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (stationList == null) { + // 获取小巴数据失败 + return; + } + + showStationsPanel(); + showOrHideSwitchLineBtn(false); + + mLineName.setText(lineName); + mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); + // 渲染小巴路线数据 + updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); } - - showStationsPanel(); - showOrHideSwitchLineBtn(false); - - mLineName.setText(lineName); - mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); - // 渲染小巴路线数据 - updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); - }); + },UiThreadHandler.MODE.QUEUE); } private void updateBusStationStatus(List stationList, diff --git a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java index 2c4f6750f7..eb9e0d1eb0 100644 --- a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java @@ -427,12 +427,15 @@ public class BusPassengerRouteFragment extends } public void onAutopilotStatusChanged(int status) { - getActivity().runOnUiThread(() -> { - // 3. 其他过程直接更新 - if (mPrevAPStatus != status){ - AutopilotStatusChanged(status); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + // 3. 其他过程直接更新 + if (mPrevAPStatus != status){ + AutopilotStatusChanged(status); + } + mPrevAPStatus = status; } - mPrevAPStatus = status; }); } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java index bc36b1fb57..78da1aee41 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java @@ -324,10 +324,13 @@ public abstract class BaseShuttleTabFragment { - slidePanelView.setText(text); - slidePanelView.setVisibility(View.VISIBLE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setText(text); + slidePanelView.setVisibility(View.VISIBLE); + } + }, UiThreadHandler.MODE.QUEUE); setArrivedClikable(false); } @@ -337,23 +340,29 @@ public abstract class BaseShuttleTabFragment { - tvArrived.setEnabled(isClickable); - if (isClickable) { - tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); - } else { - tvArrived.setTextColor(getResources().getColor(R.color.bus_arrived_btn_un_clickable_color)); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + tvArrived.setEnabled(isClickable); + if (isClickable) { + tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); + } else { + tvArrived.setTextColor(getResources().getColor(R.color.bus_arrived_btn_un_clickable_color)); + } } - }); + }, UiThreadHandler.MODE.QUEUE); } /** * 隐藏滑动按钮 */ public void hideSlidePanel() { - getActivity().runOnUiThread(() -> { - slidePanelView.setVisibility(View.GONE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + slidePanelView.setVisibility(View.GONE); + } + }, UiThreadHandler.MODE.QUEUE); } public void playDI() { @@ -366,9 +375,12 @@ public abstract class BaseShuttleTabFragment { - changeAutopilotBtnView(autopilotStatus, isAnimateRunning); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + changeAutopilotBtnView(autopilotStatus, isAnimateRunning); + } + }, UiThreadHandler.MODE.QUEUE); } public void setAutopilotBtnStatus(int autopilotStatus) { @@ -450,19 +462,12 @@ public abstract class BaseShuttleTabFragment { -// ctvAutopilotStatus.setVisibility(View.GONE); -// slidePanelView.setVisibility(View.GONE); - }); } /** * 展示【自动驾驶】按钮 */ public void showAutopilotBiz() { -// getActivity().runOnUiThread(() -> { -// ctvAutopilotStatus.setVisibility(View.VISIBLE); -// }); } public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() { diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java index a5981c29a6..70269a4e3d 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java @@ -25,6 +25,7 @@ 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.util.ActivityUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.overlay.IMoGoOverlayManager; import com.mogo.map.overlay.core.Level; import com.mogo.map.overlay.point.Point; @@ -198,20 +199,23 @@ public class ShuttleFragment extends BaseShuttleTabFragment { - if (stationList == null) { - // 获取小巴数据失败 - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (stationList == null) { + // 获取小巴数据失败 + return; + } + + showStationsPanel(); + showOrHideSwitchLineBtn(false); + + mLineName.setText(lineName); + mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); + // 渲染小巴路线数据 + updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); } - - showStationsPanel(); - showOrHideSwitchLineBtn(false); - - mLineName.setText(lineName); - mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime); - // 渲染小巴路线数据 - updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived); - }); + },UiThreadHandler.MODE.QUEUE); } private void updateBusStationStatus(List stationList, diff --git a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java index f6dd5f98bf..be3349ed89 100644 --- a/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/shuttle/passenger/src/main/java/jinlv/com/mogo/och/shuttle/passenger/ui/BusPassengerRouteFragment.java @@ -339,12 +339,15 @@ public class BusPassengerRouteFragment extends } public void onAutopilotStatusChanged(int status) { - getActivity().runOnUiThread(() -> { - // 3. 其他过程直接更新 - if (mPrevAPStatus != status){ - AutopilotStatusChanged(status); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + // 3. 其他过程直接更新 + if (mPrevAPStatus != status){ + AutopilotStatusChanged(status); + } + mPrevAPStatus = status; } - mPrevAPStatus = status; }); } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index d68f85acb0..bf8c2ca079 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -362,20 +362,23 @@ public abstract class BaseTaxiTabFragment { - if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { - // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { + // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading + return; + } + if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) { + // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false + startAutopilotDone(true); + return; + } + // 3. 其他过程直接更新 + startOrStopLoadingAnim(false); + autopilotStatusAnimchanged(status); } - if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) { - // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false - startAutopilotDone(true); - return; - } - // 3. 其他过程直接更新 - startOrStopLoadingAnim(false); - autopilotStatusAnimchanged(status); - }); + },UiThreadHandler.MODE.QUEUE); } public void stopAnimAndUpdateBtnStatus() { @@ -523,15 +526,20 @@ public abstract class BaseTaxiTabFragment { + UiThreadHandler.post(new Runnable() { + @Override + public void run() { flStationPanelContainer.setVisibility(View.GONE); - }); + }},UiThreadHandler.MODE.QUEUE); } public void showPanel() { - getActivity().runOnUiThread(() -> { - flStationPanelContainer.setVisibility(View.VISIBLE); - }); + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + flStationPanelContainer.setVisibility(View.VISIBLE); + } + },UiThreadHandler.MODE.QUEUE); } public View getPanelView() { @@ -552,12 +560,15 @@ public abstract class BaseTaxiTabFragment { - if (tvOperationStatus == null) { - return; + UiThreadHandler.post(new Runnable() { + @Override + public void run() { + if (tvOperationStatus == null) { + return; + } + tvOperationStatus.setVisibility(visible); } - tvOperationStatus.setVisibility(visible); - }); + },UiThreadHandler.MODE.QUEUE); } protected void showAmapNaviToStationFragment(boolean isShow) {