1. v2x调用隐藏逻辑
2. 优化
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user