Merge branch 'dev2_aiSdk' of http://gitlab.zhidaoauto.com/ecos/yycp-service/Launcher into dev2_aiSdk
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 183 KiB |
|
After Width: | Height: | Size: 186 KiB |
|
After Width: | Height: | Size: 198 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 218 KiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 228 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -1,5 +1,6 @@
|
||||
package com.mogo.module.v2x.scenario.scene.help;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -82,7 +83,7 @@ public class V2XSeekHelpButton implements IV2XButton {
|
||||
tvCancel.setOnClickListener(v -> {
|
||||
doAction();
|
||||
});
|
||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams((int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_640),
|
||||
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
(int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_140));
|
||||
V2XServiceManager.getMogoTopViewManager().addView(topView, layoutParams);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#dd000000" />
|
||||
<solid android:color="#000000" />
|
||||
<corners android:radius="@dimen/dp_20" />
|
||||
</shape>
|
||||
@@ -275,6 +275,7 @@
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:background="@color/v2x_line_color"
|
||||
android:visibility="gone"
|
||||
android:alpha="0.3"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_play"
|
||||
app:layout_constraintStart_toEndOf="@+id/ll_event"
|
||||
|
||||
@@ -1,55 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="@dimen/dp_640"
|
||||
android:layout_height="@dimen/dp_140"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:background="@drawable/bg_v2x_event_bg">
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_20">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_event"
|
||||
android:layout_width="@dimen/dp_100"
|
||||
android:layout_height="@dimen/dp_100"
|
||||
android:layout_marginLeft="@dimen/dp_30"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/icon_car_for_help"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_event"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxWidth="@dimen/dp_480"
|
||||
android:paddingLeft="@dimen/dp_40"
|
||||
android:paddingRight="@dimen/dp_40"
|
||||
android:text="正在为您发起求助"
|
||||
android:textColor="@color/v2x_white"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_event"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_0_5"
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:background="@color/v2x_line_color"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_cancel"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_cancel"
|
||||
android:layout_width="@dimen/dp_140"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="@dimen/dp_640"
|
||||
android:layout_height="@dimen/dp_140"
|
||||
android:gravity="center"
|
||||
android:paddingLeft="@dimen/dp_40"
|
||||
android:paddingRight="@dimen/dp_40"
|
||||
android:text="取消"
|
||||
android:textColor="@color/v2x_car_for_help_cancel"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:alpha="0.7"
|
||||
android:background="@drawable/bg_v2x_event_bg"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_event"
|
||||
android:layout_width="@dimen/dp_100"
|
||||
android:layout_height="@dimen/dp_100"
|
||||
android:layout_marginLeft="@dimen/dp_30"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/icon_car_for_help"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_event"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxWidth="@dimen/dp_480"
|
||||
android:paddingLeft="@dimen/dp_40"
|
||||
android:paddingRight="@dimen/dp_40"
|
||||
android:text="正在为您发起求助"
|
||||
android:textColor="@color/v2x_white"
|
||||
android:textSize="@dimen/dp_32"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/iv_event"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_0_5"
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:alpha="0.3"
|
||||
android:background="@color/v2x_line_color"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_cancel"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_cancel"
|
||||
android:layout_width="@dimen/dp_140"
|
||||
android:layout_height="@dimen/dp_140"
|
||||
android:gravity="center"
|
||||
android:paddingLeft="@dimen/dp_40"
|
||||
android:paddingRight="@dimen/dp_40"
|
||||
android:text="取消"
|
||||
android:textColor="@color/v2x_car_for_help_cancel"
|
||||
android:textSize="@dimen/dp_30"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||