1. v2x调用隐藏逻辑

2. 优化
This commit is contained in:
wangcongtao
2020-09-27 10:17:35 +08:00
parent 71923ea2e3
commit 5c592cf079
2 changed files with 24 additions and 24 deletions

View File

@@ -30,14 +30,11 @@ class OnlineCarListPanelProvider implements IMogoOnlineCarListPanelProvider {
@Override
public void showPanel() {
Fragment fragment = null;
if ( ( fragment = isFragmentAdded( ContainerHandler.sAttachContext ) ) != null ) {
if ( fragment instanceof OnlineCarPanelFragment ) {
( ( OnlineCarPanelFragment ) fragment ).refreshPanel();
}
if ( ContainerHandler.sAttachContext == null ) {
return;
}
fragment = new OnlineCarPanelFragment();
Fragment fragment = new OnlineCarPanelFragment();
Logger.d( TAG, "showPanel" );
ContainerHandler.sAttachContext
.getSupportFragmentManager()
.beginTransaction()
@@ -45,20 +42,12 @@ class OnlineCarListPanelProvider implements IMogoOnlineCarListPanelProvider {
.commitNowAllowingStateLoss();
}
private Fragment isFragmentAdded( Context context ) {
if ( !( context instanceof FragmentActivity ) ) {
Logger.w( TAG, "context is not a instance of FragmentActivity" );
return null;
}
Fragment fragment = null;
return ( fragment = ( ( FragmentActivity ) context )
.getSupportFragmentManager()
.findFragmentByTag( TAG ) ) != null && fragment.isAdded()
? fragment : null;
}
@Override
public void hidePanel() {
if ( ContainerHandler.sAttachContext == null ) {
return;
}
Logger.d( TAG, "hidePanel" );
Fragment fragment = ContainerHandler.sAttachContext.getSupportFragmentManager().findFragmentByTag( TAG );
if ( fragment != null ) {
ContainerHandler.sAttachContext

View File

@@ -60,12 +60,7 @@ public class V2XScenarioManager implements IV2XScenarioManager {
V2XUtils.runOnUiThread(() -> {
// 提取之前存储的场景
if (v2XMessageEntity != null) {
try {
// 与其它面板互斥
V2XServiceManager.getMogoOnlineCarListPanelProvider().hidePanel();
} catch (Exception e) {
e.printStackTrace();
}
// 广播给应用内部其它模块
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_ACTION);
@@ -77,27 +72,34 @@ public class V2XScenarioManager implements IV2XScenarioManager {
if (mV2XScenario == null) {
switch (v2XMessageEntity.getType()) {
case V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING:
hidOtherPanel();
mV2XScenario = V2XRoadEventScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING:
hidOtherPanel();
mV2XScenario = V2XSeekHelpScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING:
hidOtherPanel();
mV2XScenario = V2XFatigueDrivingScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING:
hidOtherPanel();
mV2XScenario = V2XPushEventScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_LIVE_CAR_WARNING:
hidOtherPanel();
mV2XScenario = V2XPushLiveCarScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_ANIMATION_WARNING:
hidOtherPanel();
mV2XScenario = V2XAnimationScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP:
mV2XScenario = V2XCarForHelpScenario.getInstance();
break;
case V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING:
hidOtherPanel();
mV2XScenario = V2XIllegalParkScenario.getInstance();
break;
default:
@@ -116,4 +118,13 @@ public class V2XScenarioManager implements IV2XScenarioManager {
});
}
}
private void hidOtherPanel() {
try {
// 与其它面板互斥
V2XServiceManager.getMogoOnlineCarListPanelProvider().hidePanel();
} catch (Exception e) {
e.printStackTrace();
}
}
}