fix#优化调整UI

This commit is contained in:
wujifei
2021-04-15 11:08:58 +08:00
parent 8201a6830a
commit 9a0f4f874d
31 changed files with 164 additions and 111 deletions

View File

@@ -40,61 +40,61 @@ abstract class StatusChangedAdapter implements IMogoStatusChangedListener {
private boolean mIsFirstAccOn = true;
@Override
public final void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
switch ( descriptor ) {
public final void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
switch (descriptor) {
case USER_INTERACTED:
onUserInteracted( isTrue );
onUserInteracted(isTrue);
break;
case SEARCH_UI:
onSearchUIShow( isTrue );
onSearchUIShow(isTrue);
break;
case MAIN_PAGE_RESUME:
onMainPageResumeStatusChanged( isTrue );
onMainPageResumeStatusChanged(isTrue);
break;
case MAIN_PAGE_IS_BACKGROUND:
onMainPageIsBackgroundStatusChanged( isTrue );
onMainPageIsBackgroundStatusChanged(isTrue);
break;
case SEEK_HELPING:
onSeekHelpingStatusChanged( isTrue );
onSeekHelpingStatusChanged(isTrue);
break;
case ACC_STATUS:
onAccStatusChanged( isTrue );
onAccStatusChanged(isTrue);
break;
case VR_MODE:
onVrModeChanged( isTrue );
onVrModeChanged(isTrue);
break;
case TOP_VIEW:
onTopViewStatusChanged( isTrue );
onTopViewStatusChanged(isTrue);
break;
}
}
public void onUserInteracted( boolean userInteracted ) {
if ( userInteracted ) {
MogoServices.getInstance().restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT );
public void onUserInteracted(boolean userInteracted) {
if (userInteracted) {
MogoServices.getInstance().restartAutoRefreshAtTime(ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT);
}
}
public abstract void onSearchUIShow( boolean visible );
public abstract void onSearchUIShow(boolean visible);
public void onMainPageResumeStatusChanged( boolean resume ) {
if ( resume ) {
public void onMainPageResumeStatusChanged(boolean resume) {
if (resume) {
MogoServices.getInstance().registerInternalUnWakeupWords();
if ( !mIsMainPageFirstResume ) {
MogoServices.getInstance().restartAutoRefreshAtTime( 2_000L );
if (!mIsMainPageFirstResume) {
MogoServices.getInstance().restartAutoRefreshAtTime(2_000L);
}
mIsMainPageFirstResume = false;
LauncherCardRefresher.getInstance( AbsMogoApplication.getApp() ).stop();
LauncherCardRefresher.getInstance(AbsMogoApplication.getApp()).stop();
MogoServices.getInstance().playAppTts();
} else {
MogoServices.getInstance().unregisterInternalUnWakeupWords();
MogoServices.getInstance().stopAutoRefreshStrategy();
}
VrModeController.getInstance().onMainPageResumeStatusChanged( resume );
VrModeController.getInstance().onMainPageResumeStatusChanged(resume);
}
public void onMainPageIsBackgroundStatusChanged( boolean isBackground ) {
if ( isBackground ) {
public void onMainPageIsBackgroundStatusChanged(boolean isBackground) {
if (isBackground) {
closeAllPanel();
}
}
@@ -104,76 +104,79 @@ abstract class StatusChangedAdapter implements IMogoStatusChangedListener {
*/
private void closeAllPanel() {
if ( mCallProviderResponse == null ) {
if (mCallProviderResponse == null) {
mCallProviderResponse = new ICallChatResponse() {
@Override
public void hideUserWindowError( @NotNull String errorMsg ) {
public void hideUserWindowError(@NotNull String errorMsg) {
}
};
}
MogoApisHandler.getInstance().getApis().getShareManager().dismissShareDialog();
MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().hidePanel();
MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSettingStatus( false );
MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSettingStatus(false);
MogoApisHandler.getInstance().getApis().getEventPanelManager().hidePanel();
if ( mCarsChattingProvider == null ) {
mCarsChattingProvider = ( ICarsChattingProvider ) ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation();
if (mCarsChattingProvider == null) {
mCarsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation();
}
if ( mCarsChattingProvider != null ) {
mCarsChattingProvider.hideUserWindow( TAG, AbsMogoApplication.getApp(), mCallProviderResponse );
if (mCarsChattingProvider != null) {
mCarsChattingProvider.hideUserWindow(TAG, AbsMogoApplication.getApp(), mCallProviderResponse);
}
}
public void onSeekHelpingStatusChanged( boolean isSeekingHelping ) {
CarIconDisplayStrategy.getInstance().changeCarIconStatus( isSeekingHelping );
notifySeekHelpingStatusChanged( isSeekingHelping );
public void onSeekHelpingStatusChanged(boolean isSeekingHelping) {
CarIconDisplayStrategy.getInstance().changeCarIconStatus(isSeekingHelping);
notifySeekHelpingStatusChanged(isSeekingHelping);
}
private void notifySeekHelpingStatusChanged( boolean seekHelpingStatus ) {
Intent intent = new Intent( "com.mogo.launcher.adas.app" );
private void notifySeekHelpingStatusChanged(boolean seekHelpingStatus) {
Intent intent = new Intent("com.mogo.launcher.adas.app");
try {
JSONObject data = new JSONObject();
data.put( "object", "辅助驾驶" );
data.put( "action", seekHelpingStatus ? "2" : "1" );
data.put( "des", "自身故障报警" );
data.put( "v2x_warning_type", "20007" );// 后台返回
intent.putExtra( "data", data.toString() );
AbsMogoApplication.getApp().sendBroadcast( intent );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
data.put("object", "辅助驾驶");
data.put("action", seekHelpingStatus ? "2" : "1");
data.put("des", "自身故障报警");
data.put("v2x_warning_type", "20007");// 后台返回
intent.putExtra("data", data.toString());
AbsMogoApplication.getApp().sendBroadcast(intent);
} catch (Exception e) {
Logger.e(TAG, e, "error.");
}
}
public void onAccStatusChanged( boolean accOn ) {
if ( accOn ) {
if ( mIsFirstAccOn ) {
public void onAccStatusChanged(boolean accOn) {
if (accOn) {
if (mIsFirstAccOn) {
mIsFirstAccOn = false;
return;
}
MogoServices.getInstance().initLocationServiceProcess( AbsMogoApplication.getApp() );
MogoServices.getInstance().initLocationServiceProcess(AbsMogoApplication.getApp());
MogoApisHandler.getInstance().getApis().getAdasControllerApi().showADAS();
MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ).start();
MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers();
UiThreadHandler.postDelayed( () -> {
MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp()).start();
MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).removeMarkers();
UiThreadHandler.postDelayed(() -> {
MogoServices.getInstance().refreshStrategy();
}, 3_000L );
}, 3_000L);
} else {
MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ).stop();
MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers();
MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp()).stop();
MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).removeMarkers();
}
}
public void onVrModeChanged( boolean isVrMode ) {
VrModeController.getInstance().onVrModeChanged( isVrMode );
public void onVrModeChanged(boolean isVrMode) {
VrModeController.getInstance().onVrModeChanged(isVrMode);
if (MarkerServiceHandler.getMogoStatusManager().isSeekHelping()) {
onSeekHelpingStatusChanged(true);
}
}
public void onTopViewStatusChanged( boolean visible ) {
if ( visible ) {
public void onTopViewStatusChanged(boolean visible) {
if (visible) {
return;
}
try {
MapMarkerManager.getInstance().onCloseCurrentSelectedMarker();
} catch ( Exception e ) {
Logger.e( TAG, e, "onTopViewStatusChanged" );
} catch (Exception e) {
Logger.e(TAG, e, "onTopViewStatusChanged");
}
}
}

View File

@@ -81,6 +81,35 @@ public class CarIconDisplayStrategy {
R.drawable.module_service_ic_warning_circle_orange_00046
};
// F 系列才有这个帧动画
public static final int[] sFrameVr = {
R.drawable.module_service_ic_car_for_help_0000,
R.drawable.module_service_ic_car_for_help_0001,
R.drawable.module_service_ic_car_for_help_0002,
R.drawable.module_service_ic_car_for_help_0003,
R.drawable.module_service_ic_car_for_help_0004,
R.drawable.module_service_ic_car_for_help_0005,
R.drawable.module_service_ic_car_for_help_0006,
R.drawable.module_service_ic_car_for_help_0007,
R.drawable.module_service_ic_car_for_help_0008,
R.drawable.module_service_ic_car_for_help_0009,
R.drawable.module_service_ic_car_for_help_0010,
R.drawable.module_service_ic_car_for_help_0011,
R.drawable.module_service_ic_car_for_help_0012,
R.drawable.module_service_ic_car_for_help_0013,
R.drawable.module_service_ic_car_for_help_0014,
R.drawable.module_service_ic_car_for_help_0015,
R.drawable.module_service_ic_car_for_help_0016,
R.drawable.module_service_ic_car_for_help_0017,
R.drawable.module_service_ic_car_for_help_0018,
R.drawable.module_service_ic_car_for_help_0019,
R.drawable.module_service_ic_car_for_help_0020,
R.drawable.module_service_ic_car_for_help_0021,
R.drawable.module_service_ic_car_for_help_0022,
R.drawable.module_service_ic_car_for_help_0023,
R.drawable.module_service_ic_car_for_help_0024
};
private static volatile CarIconDisplayStrategy sInstance;
private IMogoMarker mSeekHelpingMarker;
@@ -165,6 +194,7 @@ public class CarIconDisplayStrategy {
switch (msg.what) {
case MSG_SEEK_HELPING_ANIM:
try {
stopAnim();
playAnim();
} catch (Exception e) {
e.printStackTrace();
@@ -191,13 +221,20 @@ public class CarIconDisplayStrategy {
private void playAnim() {
try {
for (int i : sFrame) {
mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
if (MarkerServiceHandler.getMogoStatusManager().isVrMode()) {
for (int i : sFrameVr) {
mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
}
} else {
for (int i : sFrame) {
mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
}
}
mSeekHelpingMarker = MarkerServiceHandler.getMarkerManager().addMarker(TAG,
new MogoMarkerOptions()
.icons(mBitmapFrames)
.period(1)
.period(20)
.zIndex(0)
.autoManager(false)
.anchor(0.5f, 0.5f)