diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 8e9756d758..b59a552525 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -77,6 +77,7 @@
+
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
index 8c00446e99..5e5c66109a 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java
@@ -338,11 +338,13 @@ public class NaviClient implements IMogoNavi {
return;
}
if ( mAimlessModeStatus && !isNaviing() ) {
+ mAMapNavi.startSpeak();
mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED );
mAimlessStatus = true;
Logger.d( TAG, "开启巡航成功" );
} else {
mAimlessStatus = false;
+ mAMapNavi.stopSpeak();
Logger.d( TAG, "开启巡航失败" );
}
}
@@ -353,6 +355,7 @@ public class NaviClient implements IMogoNavi {
return;
}
mAMapNavi.stopAimlessMode();
+ mAMapNavi.stopSpeak();
mAimlessStatus = false;
Logger.d( TAG, "关闭巡航成功" );
}
diff --git a/modules/mogo-module-authorize/src/main/res/values/colors.xml b/modules/mogo-module-authorize/src/main/res/values/colors.xml
index 5886e84810..e32111d451 100644
--- a/modules/mogo-module-authorize/src/main/res/values/colors.xml
+++ b/modules/mogo-module-authorize/src/main/res/values/colors.xml
@@ -3,5 +3,5 @@
#99FFFFFF
#FFFFFF
#FFFFFF
- #7F000000
+ #99000000
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/res/values/colors.xml b/modules/mogo-module-common/src/main/res/values/colors.xml
index 0856fc721d..3b0ff8796d 100644
--- a/modules/mogo-module-common/src/main/res/values/colors.xml
+++ b/modules/mogo-module-common/src/main/res/values/colors.xml
@@ -1,6 +1,6 @@
- #7f000000
+ #99000000
#FFFFFF
#FFFFFF
#FFFFFF
diff --git a/modules/mogo-module-common/src/main/res/values/styles.xml b/modules/mogo-module-common/src/main/res/values/styles.xml
index e12e13d325..047f2a7f55 100644
--- a/modules/mogo-module-common/src/main/res/values/styles.xml
+++ b/modules/mogo-module-common/src/main/res/values/styles.xml
@@ -5,7 +5,7 @@
- @null
- true
- @android:color/transparent
- - 0.4
+ - 0.6
- true
- @null
- @android:color/transparent
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/weather/StrokeTextView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/weather/StrokeTextView.java
new file mode 100644
index 0000000000..65e37ad663
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/weather/StrokeTextView.java
@@ -0,0 +1,101 @@
+package com.mogo.module.extensions.weather;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.text.Layout;
+import android.text.TextPaint;
+import android.util.AttributeSet;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatTextView;
+
+import com.mogo.skin.support.IMogoSkinCompatSupportable;
+import com.mogo.skin.support.helper.MogoSkinCompatTextHelperDelegate;
+
+import java.lang.reflect.Field;
+
+/**
+ * 带边框的textView
+ *
+ * @author tongchenfei
+ */
+public class StrokeTextView extends AppCompatTextView implements IMogoSkinCompatSupportable {
+
+ private MogoSkinCompatTextHelperDelegate textHelperDelegate;
+
+ public StrokeTextView(Context context) {
+ this(context,null);
+ }
+
+ public StrokeTextView(Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public StrokeTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ textHelperDelegate = new MogoSkinCompatTextHelperDelegate(this);
+ }
+
+ @Override
+ public void setTextAppearance(Context context, int resId) {
+ super.setTextAppearance(context, resId);
+ textHelperDelegate.onSetTextAppearance(context, resId);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ int widthMode = MeasureSpec.getMode(widthMeasureSpec);
+ int widthSize = getMeasuredWidth();
+ if (widthMode == MeasureSpec.AT_MOST) {
+ widthSize += 20;
+ Layout mLayout = getLayout();
+ if (mLayout != null) {
+ mLayout.increaseWidthTo(widthSize);
+ }
+ setMeasuredDimension(widthSize, getMeasuredHeight());
+ }
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ int oriColor = getCurrentTextColor();
+ // 先画边框
+ TextPaint paint = getPaint();
+ setCurTextColor(Color.YELLOW);
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setShadowLayer(10F, 0F, 0F, Color.YELLOW);
+ float b = getTextSize() / 20;
+ float shadowWidth = Math.max(b, 2f);
+ paint.setStrokeWidth(shadowWidth);
+ super.onDraw(canvas);
+ // 再画文字
+ setCurTextColor(oriColor);
+ paint.setStyle(Paint.Style.FILL);
+ super.onDraw(canvas);
+ }
+
+ /**
+ * 通过反射直接设置mCurTextColor这个变量,直接调用{@link #setTextColor(int)}会出现重复递归的问题
+ *
+ * @param color 要设置的颜色值
+ */
+ private void setCurTextColor(int color) {
+ try {
+ Field mCurTextColor = TextView.class.getDeclaredField("mCurTextColor");
+ mCurTextColor.setAccessible(true);
+ mCurTextColor.set(this,color);
+ mCurTextColor.setAccessible(false);
+ } catch (NoSuchFieldException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void applySkin() {
+ textHelperDelegate.applySkin();
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index 4446c317a0..6adf068080 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -290,5 +290,4 @@
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="btnShowDrawableTipNoSize,btnShowDrawableTip,btnShowTextTip,btnDebugCtrlNaviView,btnDebugCtrlSubView,btnDebugCtrlTopView,btnDebugAddBottomLayerView" />
-
\ No newline at end of file
diff --git a/modules/mogo-module-main/build.gradle b/modules/mogo-module-main/build.gradle
index 62b7e4e96a..e1ebdfcbef 100644
--- a/modules/mogo-module-main/build.gradle
+++ b/modules/mogo-module-main/build.gradle
@@ -39,6 +39,7 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
+ implementation rootProject.ext.dependencies.callchatprovider
annotationProcessor rootProject.ext.dependencies.aroutercompiler
compileOnly rootProject.ext.dependencies.adasapi
compileOnly rootProject.ext.dependencies.adasconfigapi
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index 713108df6c..0f28fa8859 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -21,6 +21,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.MogoApisHandler;
+import com.mogo.module.common.api.CallChatApi;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.main.cards.MogoModulesManager;
@@ -111,6 +112,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
FloatingViewHandler.init( mFloatingLayout );
mServiceApis.getOnlineCarPanelApi().initContainer( R.id.module_main_id_message_history_fragment_container, this );
+ CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", R.id.module_main_id_message_history_fragment_container, this);
}
// 隐藏布局
@@ -366,6 +368,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mServiceApis.getRefreshStrategyControllerApi().clearAllData();
AIAssist.getInstance( this ).release();
mServiceApis.getOnlineCarPanelApi().clear();
+ CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", 0, null);
ContextHolderUtil.releaseContext();
MogoModulesManager.getInstance().onDestroy();
SchemeIntent.getInstance().clear();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingDetailAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingDetailAdapter.java
index b7a6665727..08c4d3abe2 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingDetailAdapter.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingDetailAdapter.java
@@ -77,17 +77,31 @@ public class V2XSurroundingDetailAdapter extends RecyclerView.Adapter {
- Logger.d(V2XConst.MODULE_NAME, "反馈有用");
+ Logger.d(V2XConst.MODULE_NAME, "反馈有用 position = " + position);
roadReportTrue(exploreWay);
+ showView(true);
});
mUnHeartLikeView.setOnClickCallListener(v -> {
- Logger.d(V2XConst.MODULE_NAME, "反馈无用");
+ Logger.d(V2XConst.MODULE_NAME, "反馈无用 position = " + position);
roadReportErr(exploreWay);
+ showView(true);
});
}
+ private void showView(boolean isAlreadyShow) {
+ if (isAlreadyShow) {
+ mHeartLikeView.setVisibility(View.GONE);
+ mUnHeartLikeView.setVisibility(View.GONE);
+ } else {
+ mHeartLikeView.setVisibility(View.VISIBLE);
+ mUnHeartLikeView.setVisibility(View.VISIBLE);
+ }
+ }
+
/**
* 反馈路况正确
*/
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XFatigueDrivingVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XFatigueDrivingVH.java
index 2da020805c..ed99977aa1 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XFatigueDrivingVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XFatigueDrivingVH.java
@@ -32,7 +32,7 @@ import com.mogo.module.v2x.voice.V2XVoiceManager;
public class V2XFatigueDrivingVH extends V2XBaseViewHolder {
private TextView mTvAddress, mTvAddressDistance;
- private ImageView mIvToNav;
+ private ImageView mIvToNav, mIvClose;
private MarkerExploreWay mNoveltyInfo;
private V2XPushMessageEntity mV2XPushMessageEntity;
@@ -45,7 +45,9 @@ public class V2XFatigueDrivingVH extends V2XBaseViewHolder {
mTvAddress = itemView.findViewById(R.id.tvAddress);
mTvAddressDistance = itemView.findViewById(R.id.tvAddressDistance);
mIvToNav = itemView.findViewById(R.id.ivToNav);
+ mIvClose = itemView.findViewById(R.id.ivClose);
mIvToNav.setOnClickListener(v -> triggerStartNavi(mNoveltyInfo));
+ mIvClose.setOnClickListener(v -> V2XFatigueDrivingScenario.getInstance().close());
// 设置视图状态监听
itemView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/panel/BackRefreshInfo.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/panel/BackRefreshInfo.java
new file mode 100644
index 0000000000..2291ee041c
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/panel/BackRefreshInfo.java
@@ -0,0 +1,10 @@
+package com.mogo.module.v2x.entity.panel;
+
+import java.io.Serializable;
+
+/**
+ * 返回刷新
+ */
+public class BackRefreshInfo implements Serializable {
+
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt
index b2c539f83a..3eb198c1d0 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt
@@ -9,7 +9,6 @@ import android.text.Spanned
import android.text.style.AbsoluteSizeSpan
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan
-import android.util.Log
import android.view.View
import android.widget.ImageView
import android.widget.RadioButton
@@ -31,6 +30,7 @@ import com.mogo.module.v2x.V2XConst.MODULE_NAME
import com.mogo.module.v2x.V2XServiceManager
import com.mogo.module.v2x.adapter.V2XEventPagerAdapter
import com.mogo.module.v2x.adapter.V2XSurroundingDetailAdapter
+import com.mogo.module.v2x.entity.panel.BackRefreshInfo
import com.mogo.module.v2x.entity.panel.SurroundingConstruction
import com.mogo.module.v2x.presenter.EventPanelPresenter
import com.mogo.module.v2x.utils.TrackUtils
@@ -211,6 +211,7 @@ class V2XEventPanelFragment : MvpFragment {
try {
mV2XScenarioHistoryFragment.fromVoice = true
- mRbScenarioHistory?.isChecked = true
+ if (mRbScenarioHistory?.isChecked == true) {
+ mV2XScenarioHistoryFragment.ttsForVoiceCheckout()
+ } else {
+ mRbScenarioHistory?.isChecked = true
+ }
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
@@ -351,7 +356,11 @@ class V2XEventPanelFragment : MvpFragment {
try {
mV2XSurroundingFragment.fromVoice = true
- mRbSurroundingEvent?.isChecked = true
+ if (mRbSurroundingEvent?.isChecked == true) {
+ mV2XSurroundingFragment.ttsForVoiceCheckout()
+ } else {
+ mRbSurroundingEvent?.isChecked = true
+ }
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
@@ -359,7 +368,11 @@ class V2XEventPanelFragment : MvpFragment {
try {
mV2XShareEventsFragment.fromVoice = true
- mRbShareEvents?.isChecked = true
+ if (mRbShareEvents?.isChecked == true) {
+ mV2XShareEventsFragment.ttsForVoiceCheckout()
+ } else {
+ mRbShareEvents?.isChecked = true
+ }
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java
index 6e444aa4f9..58ee3fa1a9 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java
@@ -42,6 +42,7 @@ import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.adapter.V2XShareEventAdapter;
import com.mogo.module.v2x.adapter.V2XSurroundingAdapter;
import com.mogo.module.v2x.adapter.V2XSurroundingDetailAdapter;
+import com.mogo.module.v2x.entity.panel.BackRefreshInfo;
import com.mogo.module.v2x.entity.panel.SurroundingConstruction;
import com.mogo.module.v2x.listener.SurroundingItemClickListener;
import com.mogo.module.v2x.presenter.SurroundingEventPresenter;
@@ -55,6 +56,8 @@ import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.logger.Logger;
import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Collection;
@@ -125,7 +128,6 @@ public class V2XSurroundingFragment extends MvpFragment {
ivCar.setImageResource(R.drawable.icon_car_red)
- ivCarTop.visibility = View.VISIBLE
}
// 取快递
V2XPoiTypeEnum.ALERT_TRAFFIC_EXPRESS -> {
ivCar.setImageResource(R.drawable.v_to_x_marker_express)
- ivBg.visibility = View.GONE
}
// 顺风车
V2XPoiTypeEnum.ALERT_TRAFFIC_TAXI -> {
ivCar.setImageResource(R.drawable.v_to_x_marker_taxi)
- ivBg.visibility = View.GONE
}
}
}
diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_selector_colse.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_selector_close.xml
similarity index 100%
rename from modules/mogo-module-v2x/src/main/res/drawable/v2x_selector_colse.xml
rename to modules/mogo-module-v2x/src/main/res/drawable/v2x_selector_close.xml
diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml
index 728d647def..e6ffe54e9d 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml
@@ -10,7 +10,8 @@
android:paddingTop="@dimen/dp_42"
android:paddingEnd="@dimen/dp_62"
android:paddingBottom="@dimen/dp_42"
- app:roundLayoutRadius="@dimen/dp_40">
+ app:roundLayoutRadius="@dimen/dp_40"
+ tools:layout_height="wrap_content">
@@ -40,6 +41,7 @@
android:id="@+id/tvAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_30"
android:layout_marginBottom="@dimen/dp_20"
android:textColor="@color/v2x_FFF_333"
@@ -69,8 +71,18 @@
android:id="@+id/ivToNav"
android:layout_width="@dimen/module_v2x_event_button_size"
android:layout_height="@dimen/module_v2x_event_button_size"
+ android:layout_marginEnd="@dimen/dp_40"
android:src="@drawable/selector_nav_btn"
app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/ivClose"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml
index cad8477a05..6516a9ead7 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml
@@ -8,69 +8,79 @@
android:paddingStart="@dimen/dp_62"
android:paddingTop="@dimen/dp_42"
android:paddingEnd="@dimen/dp_62"
- android:paddingBottom="@dimen/dp_42">
+ android:paddingBottom="@dimen/dp_42"
+ tools:layout_height="wrap_content">
-
+ app:layout_constraintTop_toTopOf="parent">
-
+
-
+
-
+
+
+
+
+
diff --git a/modules/mogo-module-v2x/src/main/res/layout/view_marker_event_car.xml b/modules/mogo-module-v2x/src/main/res/layout/view_marker_event_car.xml
index 231eec52a2..79c46cd09d 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/view_marker_event_car.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/view_marker_event_car.xml
@@ -24,24 +24,11 @@
android:id="@+id/ivCar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:rotation="90"
+ android:rotation="45"
app:layout_constraintBottom_toBottomOf="@+id/ivBg"
app:layout_constraintEnd_toEndOf="@+id/ivBg"
app:layout_constraintStart_toStartOf="@+id/ivBg"
app:layout_constraintTop_toTopOf="@+id/ivBg"
tools:src="@drawable/v_to_x_warning_car_red" />
-
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_event_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_event_detail.xml
index 028b4ceb1f..79f85e14d1 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/window_road_event_detail.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_event_detail.xml
@@ -24,9 +24,9 @@
android:id="@+id/btnCloseWindow"
android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88"
- android:layout_marginEnd="@dimen/dp_28"
+ android:layout_marginEnd="@dimen/dp_32"
android:layout_marginBottom="@dimen/dp_40"
- android:background="@drawable/v2x_panel_close"
+ android:background="@drawable/v2x_selector_close"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" />
diff --git a/skin/mogo-skin-light/src/main/module-v2x-res/drawable/v2x_selector_colse_light.xml b/skin/mogo-skin-light/src/main/module-v2x-res/drawable/v2x_selector_close_light.xml
similarity index 100%
rename from skin/mogo-skin-light/src/main/module-v2x-res/drawable/v2x_selector_colse_light.xml
rename to skin/mogo-skin-light/src/main/module-v2x-res/drawable/v2x_selector_close_light.xml