Merge branch 'dev_robotaxi-d-app-module_260_220304_2.6.0' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_robotaxi-d-app-module_260_220304_2.6.0

This commit is contained in:
xinfengkun
2022-03-30 10:54:54 +08:00
185 changed files with 2188 additions and 5547 deletions

View File

@@ -38,6 +38,8 @@ class OchBusConst {
// 上报心跳轮询ms
const val LOOP_PERIOD_60S = 60 * 1000L
// 开始服务启动自动驾驶等待时间(埋点上传)
const val LOOP_PERIOD_15S = 15 * 1000L
const val LOOP_PERIOD_1S = 1 * 1000L
const val LOOP_DELAY = 100L
@@ -45,5 +47,14 @@ class OchBusConst {
const val BUS_START_MAP_MAKER = "bus_start_map_maker";
//终点UUID
const val BUS_END_MAP_MAKER = "bus_end_map_maker";
// 埋点key开始服务开启自动驾驶成功/失败)
const val EVENT_KEY_START_SERVICE = "event_key_och_bus_start_service"
const val EVENT_PARAM_SN = "sn"
const val EVENT_PARAM_TIME = "time"
const val EVENT_PARAM_START_NAME = "start_name"
const val EVENT_PARAM_END_NAME = "end_name"
const val EVENT_PARAM_LINE_ID = "line_id"
const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false
}
}

View File

@@ -374,11 +374,6 @@ public abstract class BaseOchBusTabFragment<V extends IView, P extends Presenter
public void showAutopilotBiz() {
getActivity().runOnUiThread(() -> {
ctvAutopilotStatus.setVisibility(View.VISIBLE);
if (isOperationStatus) {
slidePanelView.setVisibility(View.VISIBLE);
} else {
slidePanelView.setVisibility(View.GONE);
}
});
}

View File

@@ -15,10 +15,13 @@ import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
import com.mogo.map.MogoMarkerManager;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.constants.DataTypes;
import com.mogo.och.bus.R;
import com.mogo.och.bus.bean.OchBusStation;
import com.mogo.och.bus.constant.OchBusConst;
@@ -172,34 +175,34 @@ public class OchBusFragment extends BaseOchBusTabFragment<OchBusFragment, OchBus
startStationFlagVisibility = View.VISIBLE;
isArriveAtStartStation = true;
mStartStationFlag.setText(getResources().getString(R.string.bus_arrive_to_end_start));
// CallerLogger.INSTANCE.d("MapMaker= ","起点=");
setOrRemoveMapMaker(true, OchBusConst.BUS_START_MAP_MAKER, startStation.getLat()
, startStation.getLon(), R.drawable.icon_station_start_end);
, startStation.getLon());
setOrRemoveMapMaker(true, OchBusConst.BUS_END_MAP_MAKER, endStation.getLat()
, endStation.getLon(), R.drawable.icon_station_start_end);
, endStation.getLon());
} else if (currentStation > 0 && currentStation < stationList.size() - 1) {// 是否到达站点
// CallerLogger.INSTANCE.d("MapMaker= ","中间=");
isArriveAtStation = true;
// mStartStationFlag.setText(getResources().getString(R.string.bus_arrive_to_end_start1));
setOrRemoveMapMaker(false, OchBusConst.BUS_START_MAP_MAKER, startStation.getLat()
, startStation.getLon(), R.drawable.icon_station_start_end);
, startStation.getLon());
setOrRemoveMapMaker(true, OchBusConst.BUS_END_MAP_MAKER, endStation.getLat()
, endStation.getLon(), R.drawable.icon_station_start_end);
, endStation.getLon());
} else if (currentStation == stationList.size() - 1) {// 是否到达终点
// CallerLogger.INSTANCE.d("MapMaker= ","终点=");
isArriveEndStation = true;
nextStationName = "--";
mStartStationFlag.setText(getResources().getString(R.string.bus_arrive_to_end_end));
startStationFlagVisibility = View.VISIBLE;
endStationFlagVisibility = View.INVISIBLE;
setOrRemoveMapMaker(false, OchBusConst.BUS_START_MAP_MAKER, startStation.getLat()
, startStation.getLon(), R.drawable.icon_station_start_end);
, startStation.getLon());
if (isArrived) {
setOrRemoveMapMaker(false, OchBusConst.BUS_END_MAP_MAKER, endStation.getLat()
, endStation.getLon(), R.drawable.icon_station_start_end);
, endStation.getLon());
} else {
setOrRemoveMapMaker(true, OchBusConst.BUS_END_MAP_MAKER, endStation.getLat()
, endStation.getLon(), R.drawable.icon_station_start_end);
, endStation.getLon());
}
}
@@ -292,11 +295,11 @@ public class OchBusFragment extends BaseOchBusTabFragment<OchBusFragment, OchBus
//移除起点终点
if (null != startStation) {
setOrRemoveMapMaker(false, OchBusConst.BUS_START_MAP_MAKER, startStation.getLat()
, startStation.getLon(), R.drawable.icon_station_start_end);
, startStation.getLon());
}
if (null != endStation) {
setOrRemoveMapMaker(false, OchBusConst.BUS_END_MAP_MAKER, endStation.getLat()
, endStation.getLon(), R.drawable.icon_station_start_end);
, endStation.getLon());
}
}
}
@@ -317,20 +320,25 @@ public class OchBusFragment extends BaseOchBusTabFragment<OchBusFragment, OchBus
*
* @param isAdd
* @param uuid
* @param iconId
*/
private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi, int iconId) {
private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi) {
if (isAdd) {
CallerLogger.INSTANCE.d("setMapMaker= ", uuid + "=latitude=" + lat + ",longitude=" + longi);
MogoMarkerOptions options = new MogoMarkerOptions();
options.anchorColor("#000000");//不设置报错,暂时随便设置个
options.setGps(true);//使用wgs 必须设置true
options.scale(0.15f);
Bitmap bitmap = BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), iconId, null);
options.icon(bitmap);
options.latitude(lat);
options.longitude(longi);
MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options);
MogoMarkerOptions options = new MogoMarkerOptions()
.owner(DataTypes.TYPE_MARKER_ADAS)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.gps(true)
.controlAngle(true)
.icon3DRes(R.raw.start_and_end)
.latitude(lat)
.longitude(longi);
IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options);
marker.setRotateAngle(CallerHDMapManager.INSTANCE.getCenterLineInfo(
longi,lat,-1)
.getAngle()
.floatValue());
}else {
CallerLogger.INSTANCE.d("RemoveMapMaker=",uuid+"=latitude="+lat+",longitude="+longi);
MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).removeMarkers(uuid);

View File

@@ -39,6 +39,7 @@ import com.mogo.och.bus.callback.SlidePannelHideCallback;
import com.mogo.och.bus.constant.OchBusConst;
import com.mogo.och.bus.net.OCHBusServiceManager;
import com.mogo.och.bus.net.OCHServiceCallback;
import com.mogo.och.bus.util.OchBusAnalyticsUtil;
import com.mogo.och.bus.util.PinYinUtil;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
@@ -445,6 +446,9 @@ public class OchBusOrderModel {
CallerLogger.INSTANCE.d( M_BUS + TAG, "开启自动驾驶====" + currentAutopilot.toString()
+" startLatLon="+currentStation.getName()+"endLatLon="+nextStation.getName());
CallerAutoPilotManager.INSTANCE.startAutoPilot(currentAutopilot);
triggerStartServiceEvent(false);
if (mControllerStatusCallback != null) {
mControllerStatusCallback.startOpenAutopilot();
}
@@ -841,4 +845,14 @@ public class OchBusOrderModel {
OchBusModelLoopManager.getInstance().stopHeartbeatLoop();
}
}
public void triggerStartServiceEvent(boolean send) {
if (stationList == null || currentStationIndex >= stationList.size()) {
return;
}
OchBusStation currentStation = stationList.get( currentStationIndex -1);
OchBusStation nextStation = stationList.get( currentStationIndex);
OchBusAnalyticsUtil.triggerStartServiceEvent(send,
currentStation.getName(), nextStation.getName(), currentLineId);
}
}

View File

@@ -194,6 +194,7 @@ public class OchBusPresenter extends Presenter<OchBusFragment>
currentAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING;
// 改变UI自动驾驶状态
mView.onAutopilotStatusChanged(currentAutopilotStatus, isAnimateRunning);
OchBusOrderModel.getInstance().triggerStartServiceEvent(true);
}
isAnimateRunning = false;
break;

View File

@@ -0,0 +1,55 @@
package com.mogo.och.bus.util;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.eagle.core.function.call.analytics.AnalyticsManager;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.bus.constant.OchBusConst;
import java.util.HashMap;
import java.util.Map;
/**
* OCH Bus埋点工具
*
* Created on 2022/3/24
*/
public class OchBusAnalyticsUtil {
/**
* 触发'滑动出发'埋点流程:
* 滑动出发开启自动驾驶15s内成功则发送成功埋点否则发送失败埋点
* @param send 是否直接发送埋点15s内开启成功则直接发送成功埋点
*/
public static void triggerStartServiceEvent(
boolean send, String startName, String endName, int lineId) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
String dateTime = DateTimeUtils.getTimeText(
System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss);
Map<String, Object> params = new HashMap<>();
params.put(OchBusConst.EVENT_PARAM_SN, sn);
params.put(OchBusConst.EVENT_PARAM_TIME, dateTime);
params.put(OchBusConst.EVENT_PARAM_START_NAME, startName);
params.put(OchBusConst.EVENT_PARAM_END_NAME, endName);
params.put(OchBusConst.EVENT_PARAM_LINE_ID, lineId);
Runnable runnable = () -> {
// 15s内未开启上报失败埋点
params.put(OchBusConst.EVENT_PARAM_START_RESULT, false);
AnalyticsManager.INSTANCE.track(OchBusConst.EVENT_KEY_START_SERVICE, params);
};
if (send) {
// 开启成功,上报埋点
if (runnable != null && UiThreadHandler.getsUiHandler().hasCallbacks(runnable)) {
UiThreadHandler.removeCallbacks(runnable);
}
params.put(OchBusConst.EVENT_PARAM_START_RESULT, true);
AnalyticsManager.INSTANCE.track(OchBusConst.EVENT_KEY_START_SERVICE, params);
} else {
UiThreadHandler.postDelayed(runnable, OchBusConst.LOOP_PERIOD_15S);
}
}
}

Binary file not shown.

View File

@@ -275,6 +275,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
if (mCurrentOCHOrder != null) {
queryCurOrderStatus();
}
recoverNaviInfo();
}
}
@@ -600,6 +601,14 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
naviOrderStartToEnd();
}
/**
* 订单结束或者取消的时候, 刷新导航标识位以及缓存的数据
*/
public void recoverNaviInfo(){
SharedPrefsMgr.getInstance(mContext).remove(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS);
TaxiPassengerNaviToDestinationModel.getInstance(mContext).setFirstcalculateDriveRoute(0);
}
private void runOnUIThread(Runnable executor) {
if (executor == null) {
return;

View File

@@ -140,7 +140,7 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"updateOrderView = "+order.orderStatus);
if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus){
mView.showOrHideServingOrderFragment(false);
recoverNaviInfo();
TaxiPassengerModel.getInstance().recoverNaviInfo();
return;
}
if (TaxiPassengerOrderStatusEnum.ArriveAtStartStation.getCode() == order.orderStatus
@@ -149,7 +149,7 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
return;
}
if (TaxiPassengerOrderStatusEnum.ArriveAtEndStation.getCode() == order.orderStatus){
recoverNaviInfo();
TaxiPassengerModel.getInstance().recoverNaviInfo();
runOnUIThread(() ->{
AIAssist.getInstance(getContext()).speakTTSVoice(getContext().getString(R.string.taxi_p_arrive_end_tts));
});
@@ -165,11 +165,4 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
}
}
/**
* 订单结束或者取消的时候, 刷新导航标识位以及缓存的数据
*/
public void recoverNaviInfo(){
SharedPrefsMgr.getInstance(getContext()).remove(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS);
TaxiPassengerNaviToDestinationModel.getInstance(getContext()).setFirstcalculateDriveRoute(0);
}
}

View File

@@ -366,6 +366,18 @@ public class TaxiPassengerServingOrderFragment extends
TaxiPassengerModel.getInstance().naviOrderStartToEnd();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden){//fragment 隐藏, 导航取消
clearPolyline();
TaxiPassengerNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
}else { //fragment 显示, 导航开始
TaxiPassengerModel.getInstance().naviOrderStartToEnd();
}
}
@Override
public void onPause() {
super.onPause();

View File

@@ -30,7 +30,8 @@ class OCHTaxiConst {
// 上报心跳轮询ms
const val LOOP_PERIOD_60S = 60 * 1000L
// 开始服务启动自动驾驶等待时间(埋点上传)
const val LOOP_PERIOD_15S = 15 * 1000L
// 轮询查询进行中/待服务订单的间隔时间 2秒
const val LOOP_PERIOD_2S = 2 * 1000L
// 轮询查询新到预约单 1秒
@@ -48,5 +49,15 @@ class OCHTaxiConst {
//演示V 测试:内测
const val DEMO_USER = "V"
const val TEST_USER = "内测"
// 埋点key开始服务开启自动驾驶成功/失败)
const val EVENT_KEY_START_SERVICE = "event_key_och_taxi_start_service"
const val EVENT_PARAM_SN = "sn"
const val EVENT_PARAM_TIME = "time"
const val EVENT_PARAM_START_NAME = "start_name"
const val EVENT_PARAM_END_NAME = "end_name"
const val EVENT_PARAM_ORDER_NUMBER = "order_num"
const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false
}
}

View File

@@ -51,6 +51,7 @@ import com.mogo.och.taxi.constant.OrderStatusEnum;
import com.mogo.och.taxi.constant.OrderTypeEnum;
import com.mogo.och.taxi.network.OCHTaxiServiceCallback;
import com.mogo.och.taxi.network.OCHTaxiServiceManagerNew;
import com.mogo.och.taxi.utils.OchTaxiAnalyticsUtil;
import com.mogo.och.taxi.utils.OrderUtil;
import com.mogo.och.taxi.utils.PinYinUtil;
import com.mogo.service.IMogoServiceApis;
@@ -809,6 +810,10 @@ public class MogoOCHTaxiModelNew {
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters)
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
OchTaxiAnalyticsUtil.triggerStartServiceEvent(false,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
if (DebugConfig.isDebug()) {
// TipToast.shortTip("Start autopilot!");
}
@@ -1005,6 +1010,10 @@ public class MogoOCHTaxiModelNew {
// 当高频返回autopilot 2时不重复调用订单状态变更
mPrevAPStatus = state; // 每个状态单独赋值解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态
updateOCHOrderStatus(OrderStatusEnum.OnTheWayToEndStation);
OchTaxiAnalyticsUtil.triggerStartServiceEvent(true,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
if (FunctionBuildConfig.isDemoMode) {
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后置true
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
@@ -1039,6 +1048,8 @@ public class MogoOCHTaxiModelNew {
@Override
public void onAutopilotArriveAtStation(MessagePad.ArrivalNotification data) {
CallerLogger.INSTANCE.i(M_TAXI + TAG, "onAutopilotArriveAtStation = " + data.toString());
if (data == null || !checkCurrentOCHOrder()
|| (getCurOrderStatus() == OrderStatusEnum.ArriveAtEndStation)) {
return;
@@ -1070,7 +1081,7 @@ public class MogoOCHTaxiModelNew {
* @param models
*/
public void updateOrderRoute(List<MessagePad.Location> models) {
if (null == mCurrentOCHOrder) return;
List<OrderRouteUpdateReqBean.Result> points = CoordinateConverterFrom84ForList(mContext,models);
OCHTaxiServiceManagerNew.getInstance().updateOrderRoute(mContext, mCurrentOCHOrder.orderNo

View File

@@ -22,12 +22,15 @@ import com.amap.api.navi.model.NaviLatLng;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.MogoMarkerManager;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.constants.DataTypes;
import com.mogo.och.taxi.callback.IOCHTaxiNaviChangedCallback;
import com.mogo.och.taxi.constant.OCHTaxiConst;
import com.mogo.och.taxi.constant.OrderStatusEnum;
@@ -368,35 +371,36 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem
showNotice(mActivity.getString(R.string.module_och_taxi_new_order));
startNaviToStartStation(false, mOrderStartStationLat, mOrderStartStationLng);
showOrHideNavi(true);
setOrRemoveMapMaker(true, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(true,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(true, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint);
setOrRemoveMapMaker(true,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint);
break;
case Cancel:
mOrderCancel.setVisibility(View.VISIBLE);
showNotice(mActivity.getString(R.string.module_och_taxi_order_cancel));
showOrHideNavi(false);
setOrRemoveMapMaker(false, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(false,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(false, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint);
setOrRemoveMapMaker(false,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint);
break;
case ArriveAtStartStation:
mOrderCancel.setVisibility(View.VISIBLE);
showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text));
showOrHideNavi(false);
setOrRemoveMapMaker(true, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(true,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(true, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint);
setOrRemoveMapMaker(true,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint);
break;
case OnTheWayToEndStation:
// showNotice("欢迎使用蘑菇智行");
mOrderCancel.setVisibility(View.VISIBLE);
showOrHideNavi(false);
setOrRemoveMapMaker(false, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(true,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(false, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint);
setOrRemoveMapMaker(true,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint);
break;
case ArriveAtEndStation:
mOrderCancel.setVisibility(View.GONE);
showNotice(mActivity.getString(R.string.module_och_taxi_order_complete_1));
showOrHideNavi(false);
setOrRemoveMapMaker(false,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.drawable.icon_station_start_end);
setOrRemoveMapMaker(false, OCHTaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint);
setOrRemoveMapMaker(false,OCHTaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint);
break;
case JourneyCompleted:
mOrderCancel.setVisibility(View.GONE);
@@ -522,20 +526,27 @@ public class OCHTaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implem
* @param isAdd
* @param uuid
* @param station
* @param iconId
*/
private void setOrRemoveMapMaker(boolean isAdd, String uuid, List<Double> station, int iconId){
private void setOrRemoveMapMaker(boolean isAdd, String uuid, List<Double> station){
if (isAdd){
CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= ",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0));
MogoMarkerOptions options = new MogoMarkerOptions();
options.anchorColor("#000000");//不设置报错,暂时随便设置个
options.setGps(true);//使用wgs 必须设置true
options.scale(0.15f);
Bitmap bitmap = BitmapFactory.decodeResource(mActivity.getResources(), iconId, null);
options.icon(bitmap);
options.latitude(station.get(1));
options.longitude(station.get(0));
MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options);
CallerLogger.INSTANCE.d(M_TAXI + "setMapMaker= ",uuid+"=latitude="
+station.get(1)+",longitude="+station.get(0));
MogoMarkerOptions options = new MogoMarkerOptions()
.owner(DataTypes.TYPE_MARKER_ADAS)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.gps(true)
.controlAngle(true)
.icon3DRes(R.raw.start_and_end)
.latitude(station.get(1))
.longitude(station.get(0));
IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options);
marker.setRotateAngle(CallerHDMapManager.INSTANCE.getCenterLineInfo(
station.get(0),station.get(1),-1)
.getAngle()
.floatValue());
}else {
CallerLogger.INSTANCE.d(M_TAXI + "RemoveMapMaker=",uuid+"=latitude="+station.get(1)+",longitude="+station.get(0));
MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .removeMarkers(uuid);

View File

@@ -0,0 +1,55 @@
package com.mogo.och.taxi.utils;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.eagle.core.function.call.analytics.AnalyticsManager;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.taxi.constant.OCHTaxiConst;
import java.util.HashMap;
import java.util.Map;
/**
* OCH Taxi埋点工具
*
* Created on 2022/3/24
*/
public class OchTaxiAnalyticsUtil {
/**
* 触发'开始服务'埋点流程:
* 点击开始服务开启自动驾驶15s内成功则发送成功埋点否则发送失败埋点
* @param send 是否直接发送埋点15s内开启成功则直接发送成功埋点
*/
public static void triggerStartServiceEvent(
boolean send, String startName, String endName, String orderNo) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
String dateTime = DateTimeUtils.getTimeText(
System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss);
Map<String, Object> params = new HashMap<>();
params.put(OCHTaxiConst.EVENT_PARAM_SN, sn);
params.put(OCHTaxiConst.EVENT_PARAM_TIME, dateTime);
params.put(OCHTaxiConst.EVENT_PARAM_START_NAME, startName);
params.put(OCHTaxiConst.EVENT_PARAM_END_NAME, endName);
params.put(OCHTaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo);
Runnable runnable = () -> {
// 15s内未开启上报失败埋点
params.put(OCHTaxiConst.EVENT_PARAM_START_RESULT, false);
AnalyticsManager.INSTANCE.track(OCHTaxiConst.EVENT_KEY_START_SERVICE, params);
};
if (send) {
// 开启成功,上报埋点
if (runnable != null && UiThreadHandler.getsUiHandler().hasCallbacks(runnable)) {
UiThreadHandler.removeCallbacks(runnable);
}
params.put(OCHTaxiConst.EVENT_PARAM_START_RESULT, true);
AnalyticsManager.INSTANCE.track(OCHTaxiConst.EVENT_KEY_START_SERVICE, params);
} else {
UiThreadHandler.postDelayed(runnable, OCHTaxiConst.LOOP_PERIOD_15S);
}
}
}

Binary file not shown.

View File

@@ -19,7 +19,7 @@ adb pull /sdcard/Android/data/com.mogo.launcher.f/log/20211022
// (新的HMI)使用命令行触发 V2X 预警场景
// 顶部弹窗场景,控制展示
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow true --es tag "200011" --ei v2xType 20011 --es alertContent "测试外部传入数据" --es ttsContent "测试TTS"
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow true --es tag "200012" --ei v2xType 20012 --es alertContent "测试外部传入数据2" --es ttsContent "测试TTS2"
// 关闭顶部弹窗
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow false --es tag "200011"

16
TestHmiWarning.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
for index in `seq 300`;
do
b=$(( $index % 2 ))
if [ $b = 0 ]
then
echo "200011"
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow true --es tag "200011" --ei v2xType 20011 --es alertContent "测试外部传入数据1" --es ttsContent "测试TTS1"
else
echo "200012"
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow true --es tag "200012" --ei v2xType 20012 --es alertContent "测试外部传入数据2" --es ttsContent "测试TTS2"
fi
sleep 0.5
done
echo -e "\033[32m 恭喜你完成了所有 测试脚本 \033[0m"

View File

@@ -15,12 +15,13 @@ if (!isAndroidTestBuild()) {
logLevel "DEBUG"
}
}
//if (!isAndroidTestBuild()) {
// apply plugin: 'chain.log.hook'
// hooklog{
// enableLoggerToServer true
// }
//}
if (!isAndroidTestBuild()) {
apply plugin: 'chain.log.hook'
hooklog{
enableTraceToServer false
enableLoggerToLocal true
}
}
//if (!isAndroidTestBuild()) {
// apply plugin: 'apm-plugin'
@@ -232,8 +233,6 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
implementation rootProject.ext.dependencies.boostmultidex
compileOnly rootProject.ext.dependencies.adasapi
compileOnly rootProject.ext.dependencies.adasconfigapi
debugImplementation rootProject.ext.dependencies.debugleakcanary
releaseImplementation rootProject.ext.dependencies.releaseleakcanary

View File

@@ -58,5 +58,5 @@ dependencies {
// api "com.zhidao.support.adas:high:1.2.1.2_bate21"
implementation 'org.greenrobot:eventbus:3.2.0'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.mogo.cloud:telematic:1.3.31'
implementation 'com.mogo.cloud:telematic:1.3.50'
}

View File

@@ -21,7 +21,7 @@ buildscript {
maven {
url "https://artifact.bytedance.com/repository/byteX/"
}
mavenCentral()
// mavenCentral()
google()
}
dependencies {
@@ -57,7 +57,7 @@ allprojects {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
mavenCentral()
// mavenCentral()
maven { url 'http://nexus.zhidaoauto.com/repository/maven-releases/' }
maven { url 'http://nexus.zhidaoauto.com/repository/maven-public/' }
maven {

View File

@@ -27,6 +27,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.telematic.MogoProtocolMsg
import com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA
import com.mogo.telematic.MogoProtocolMsg.SYNC_MODE_STATUS
import com.mogo.telematic.NSDNettyManager
import com.mogo.telematic.client.listener.NettyClientListener
import com.mogo.telematic.client.status.ConnectState
@@ -56,7 +57,7 @@ class MoGoAutopilotProvider :
get() = TAG
override fun init(context: Context) {
MoGoHandAdasMsgManager.getInstance()
MoGoHandAdasMsgManager.getInstance(context)
CallerLogger.i("$M_ADAS_IMPL$TAG", "初始化工控机连接……")
mContext = context
// 初始化ADAS 域控制器
@@ -90,13 +91,9 @@ class MoGoAutopilotProvider :
override fun onChannelConnect(channel: Channel?) {
val socketAddress = channel?.remoteAddress().toString()
CallerLogger.d("$M_ADAS_IMPL$TAG", "Client ip is:${socketAddress}")
synchronized(this@MoGoAutopilotProvider) {
NSDNettyManager.getInstance().selectChannel(channel)
var byteArray = if(FunctionBuildConfig.isDemoMode) byteArrayOf(1) else byteArrayOf(0)
NSDNettyManager.getInstance().sendMogoProtocolMsgToClient(MogoProtocolMsg(3, byteArray.size, byteArray)
) {
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步美化模式状态是否成功:${it.isSuccess}")
}
val byteArray = if(FunctionBuildConfig.isDemoMode) byteArrayOf(1) else byteArrayOf(0)
NSDNettyManager.getInstance().sendMsgToSpecifiedClient(MogoProtocolMsg(SYNC_MODE_STATUS, byteArray.size, byteArray), channel) {
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步美化模式状态是否成功:${it.isSuccess}")
}
}
@@ -210,6 +207,13 @@ class MoGoAutopilotProvider :
}, 1000, TimeUnit.MILLISECONDS)
}
/**
* 断开与工控机的连接
*/
override fun disconnectIpc() {
AdasManager.getInstance().disconnect()
}
override fun onMapCollectStart(cmdId: Int, cmdTime: Long) {
val result = recordPackage(2, cmdId)
CallerLogger.d("$M_ADAS_IMPL$TAG", "开始记录包: [$cmdId, $result]")
@@ -328,7 +332,7 @@ class MoGoAutopilotProvider :
var byteArray = if (isEnable) byteArrayOf(1) else byteArrayOf(0)
if (NSDNettyManager.getInstance().isServerStart) {
NSDNettyManager.getInstance()
.sendMsgToAllClients(MogoProtocolMsg(3, byteArray.size, byteArray))
.sendMsgToAllClients(MogoProtocolMsg(SYNC_MODE_STATUS, byteArray.size, byteArray))
} else {
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步美化模式状态时司机端Server未启动")
}
@@ -368,4 +372,13 @@ class MoGoAutopilotProvider :
override fun isConnected(): Boolean {
return AdasManager.getInstance().ipcConnectionStatus == IPC_CONNECTION_STATUS.CONNECTED
}
/**
* 获取协议版本
*/
override fun getProtocolVersion(): Int {
return AdasManager.getInstance().protocolVersion
}
}

View File

@@ -10,11 +10,15 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_C
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.invokeArriveAtStation
@@ -35,7 +39,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.module.common.MogoApisHandler
import com.mogo.module.common.datacenter.SnapshotLocationDataCenter
import com.mogo.module.service.MarkerServiceHandler
import com.zhidao.support.adas.high.AdasManager
import com.zhidao.support.adas.high.OnAdasListener
import com.zhidao.support.adas.high.bean.IPCUpgradeStateInfo
@@ -64,6 +67,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
//车前引导线
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY,
linkCode = CHAIN_LINK_ADAS,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY,
@@ -94,8 +98,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
//感知物体
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
paramIndexes = [0, 1],
@@ -112,8 +116,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
//自车定位信息
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE,
paramIndexes = [0, 1],
@@ -127,16 +131,27 @@ class MoGoAdasListenerImpl : OnAdasListener {
MogoApisHandler.getInstance().apis.adasControllerApi.lastLon = gnssInfo.longitude
MogoApisHandler.getInstance().apis.adasControllerApi.satelliteTime =
java.lang.Double.valueOf(gnssInfo.satelliteTime).toLong()
if (1 == FunctionBuildConfig.gpsProvider) {
CallerMapUIServiceManager.getMapUIController()?.syncLocation2Map(
gnssInfo
)
SnapshotLocationDataCenter.getInstance().syncAdasLocationInfo(gnssInfo)
}
//根据加速度判断 是否刹车
CallerAutopilotVehicleStateListenerManager.invokeAutopilotBrakeLightByAcceleration(gnssInfo.acceleration)
}
}
//自车状态(底盘),车灯等。
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE,
linkCode = CHAIN_LINK_ADAS,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
override fun onVehicleState(
header: MessagePad.Header,
vehicleState: VehicleStateOuterClass.VehicleState?
@@ -151,8 +166,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
//自动驾驶状态
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS,
paramIndexes = [0, 1],
@@ -189,8 +204,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
//监控
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN,
paramIndexes = [0, 1],
@@ -222,28 +237,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
}
//数据采集badCase
@ChainLog(
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
override fun onRecordResult(
header: MessagePad.Header,
recordPanel: RecordPanelOuterClass.RecordPanel?
) {
if (recordPanel != null) {
invokeAutopilotRecordResult(recordPanel)
}
}
//全局路径规划
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE,
paramIndexes = [0, 1],
@@ -258,23 +255,41 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
}
//预警信息
//数据采集badCase
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
override fun onRecordResult(
header: MessagePad.Header,
recordPanel: RecordPanelOuterClass.RecordPanel?
) {
if (recordPanel != null) {
invokeAutopilotRecordResult(recordPanel)
}
}
//预警信息
// @ChainLog(
// linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
// linkCode = CHAIN_LINK_ADAS,
// endpoint = PAD,
// nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN,
// paramIndexes = [0, 1],
// clientPkFileName = "sn"
// )
override fun onWarn(header: MessagePad.Header, warn: MessagePad.Warn?) {
invokeAutopilotWarnMessage(warn)
}
//到站回调
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE,
paramIndexes = [0, 1],

View File

@@ -1,18 +1,23 @@
package com.mogo.eagle.core.function.autopilot.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.constants.MoGoConfig;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager;
import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.module.common.drawer.IdentifyDataDrawer;
import com.zhidao.support.obu.ami.AmiClientManager;
import org.jetbrains.annotations.NotNull;
@@ -22,46 +27,86 @@ import chassis.Chassis;
import mogo.telematics.pad.MessagePad;
import record_cache.RecordPanelOuterClass;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_DEVA;
public class MoGoHandAdasMsgManager implements
IMoGoAutopilotIdentifyListener,
IMoGoAutopilotVehicleStateListener,
IMoGoAutopilotCarConfigListener {
IMoGoAutopilotCarConfigListener{
private final String TAG = "AdasEventManager";
private static volatile MoGoHandAdasMsgManager moGoHandAdasMsgManager;
private Context mContext;
private MoGoHandAdasMsgManager() {
private MoGoHandAdasMsgManager(Context context) {
CallerAutopilotIdentifyListenerManager.INSTANCE.addListener(TAG, this);
CallerAutopilotVehicleStateListenerManager.INSTANCE.addListener(TAG, this);
CallerAutopilotCarConfigListenerManager.INSTANCE.addListener(TAG, this);
mContext = context;
}
public static MoGoHandAdasMsgManager getInstance() {
public static MoGoHandAdasMsgManager getInstance(Context context) {
if (moGoHandAdasMsgManager == null) {
synchronized (MoGoHandAdasMsgManager.class) {
if (moGoHandAdasMsgManager == null) {
moGoHandAdasMsgManager = new MoGoHandAdasMsgManager();
moGoHandAdasMsgManager = new MoGoHandAdasMsgManager(context);
}
}
}
return moGoHandAdasMsgManager;
}
private int turnLightTimes = 0;
private boolean isOnTurnLight = false;
private int turnLight = 0;
private volatile boolean isShowTurnLight = false;
private int brakeLight = -1;
private int setTurnLightState(int turn_light) {
if (turn_light == 0) {
if (isOnTurnLight) {
if (turnLightTimes >= 10) {
isOnTurnLight = false;
turnLight = 0;
}
turnLightTimes++;
}
} else if (turn_light == 1) {
turnLightTimes = 0;
isOnTurnLight = true;
turnLight = 1;
} else if (turn_light == 2) {
turnLightTimes = 0;
isOnTurnLight = true;
turnLight = 2;
}
return turnLight;
}
@Override
public void onAutopilotLightSwitchData(Chassis.LightSwitch lightSwitch) {
//can数据转发 转向灯状态 0是正常 1是左转 2是右转
// if (lightSwitch != null) {
// int turnLightNum = lightSwitch.getNumber();
// AmiClientManager.getInstance().setTurnLightState(turnLightNum);
// //设置转向灯
// CallerHmiManager.INSTANCE.showTurnLight(turnLightNum);
// }
if (lightSwitch != null) {
int state = setTurnLightState(lightSwitch.getNumber());
if (state == 1 || state == 2) {
isShowTurnLight = true;
CallerHmiManager.INSTANCE.showBrakeLight(0);
} else {
isShowTurnLight = false;
}
// CallerLogger.INSTANCE.d(M_DEVA + TAG, "onAutopilotLightSwitchData -- newState:" + state + ",oldState:" + lightSwitch.getNumber());
CallerHmiManager.INSTANCE.showTurnLight(state);
}
}
@Override
public void onAutopilotBrakeLightData(boolean brakeLight) {
//设置刹车信息 TODO 需要添加转向和删除的优先级
// CallerHmiManager.INSTANCE.showBrakeLight(brakeLight ? 1 : 0);
// CallerLogger.INSTANCE.d(M_DEVA + TAG, "onAutopilotBrakeLightData -- brakeLight = $brakeLight ---$isShowTurnLight");
// if (!isShowTurnLight) {
// CallerHmiManager.INSTANCE.showBrakeLight(brakeLight ? 1 : 0);
// }
}
@Override
@@ -91,10 +136,28 @@ public class MoGoHandAdasMsgManager implements
@Override
public void onAutopilotCarConfig(@NotNull MessagePad.CarConfigResp carConfigResp) {
// if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.getMacAddress())) {
// CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo(carConfigResp.getMacAddress());
// }
if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.getMacAddress())) {
CallerLogger.INSTANCE.d(M_DEVA + TAG, " carConfigResp.getMacAddress() = " + carConfigResp.getMacAddress() + "--mac = " + carConfigResp.getMacAddress().replaceAll(".{2}(?=.)", "$0:"));
CallerBindingcarManager.getBindingcarProvider().getBindingcarInfo(carConfigResp.getMacAddress());
}
}
/**
* 根据加速度判断是否刹车
* @param acceleration
*/
@Override
public void onAutopilotBrakeLightByAcceleration(double acceleration) {
//设置刹车信息
if (acceleration < SharedPrefsMgr.getInstance(mContext).getFloat(MoGoConfig.BRAKE_ACCELERATION_THRESHOLD,-2.5F)) {
brakeLight = 1;
} else {
brakeLight = 0;
}
// CallerLogger.INSTANCE.d(M_DEVA + TAG, "onAutopilotBrakeLightByAcceleration -- acceleration = " + acceleration);
if (!isShowTurnLight) {
CallerHmiManager.INSTANCE.showBrakeLight(brakeLight);
}
}
}

View File

@@ -1,26 +1,30 @@
package com.mogo.eagle.core.function.bindingcar;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack;
import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingcarProvider;
import com.mogo.eagle.core.function.bindingcar.network.BindingcarNetWorkManager;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import org.jetbrains.annotations.NotNull;
/**
* @author Jing
* @description 云公告公告
* @since: 10/27/21
* @author lixiaopeng
* @description 绑定sn
* @since: 3/26/22
*/
@Route(path = MogoServicePaths.PATH_BINDING_CAR)
public class BindingcarProvider implements IMoGoBindingcarProvider {
private Context mContext;
private volatile String mAddress;
@NotNull
@Override
@@ -30,6 +34,7 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
@Override
public void onDestroy() {
}
@Override
@@ -38,21 +43,20 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
}
/**
* TODO 获取,每次连接请求一次
* 获取macaddress,每次连接请求一次
*
* @param macAddress
*/
@Override
public void getBindingcarInfo(String macAddress) {
// Log.d("liyz", "macAddress = " + macAddress);
// BindingcarNetWorkManager.getInstance().getBindingcarInfo(macAddress);
mAddress = macAddress;
BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress);
}
@Override
public void modifyCarInfo(BindingcarCallBack callBack) {
BindingcarNetWorkManager.getInstance().modifyBindingcar("",callBack);
BindingcarNetWorkManager.getInstance().modifyBindingcar(mAddress, callBack);
}
}

View File

@@ -2,11 +2,11 @@ package com.mogo.eagle.core.function.bindingcar.network;
import com.mogo.eagle.core.data.bindingcar.BindingcarInfo;
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo;
import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
@@ -22,8 +22,8 @@ public interface BindingcarApiService {
* @return {@link BindingcarInfo}
*/
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/pad/selectPadByMac")
Observable<BindingcarInfo> getBindingcarInfo(@Body RequestBody requestBody);
@POST("pad/selectPadByMac")
Observable<BindingcarInfo> getBindingcarInfo(@Header("access_token") String access_token, @Body RequestBody requestBody);
/**
* 绑定和修改绑定车机
@@ -31,7 +31,7 @@ public interface BindingcarApiService {
* @return {@link ModifyBindingcarInfo}
*/
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/pad/updatePadByMac")
Observable<ModifyBindingcarInfo> modifyBindingcarInfo(@Body RequestBody requestBody);
@POST("pad/updatePadByMac")
Observable<ModifyBindingcarInfo> modifyBindingcarInfo(@Header("access_token") String access_token, @Body RequestBody requestBody);
}

View File

@@ -1,14 +1,18 @@
package com.mogo.eagle.core.function.bindingcar.network;
import android.util.Log;
import android.content.Context;
import com.mogo.cloud.network.RetrofitFactory;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.eagle.core.data.bindingcar.BindingcarInfo;
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo;
import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
import com.mogo.eagle.core.network.utils.GsonUtil;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.module.common.constants.HostConst;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -19,19 +23,18 @@ import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* @author Jing
* @description 云公告网络请求
* @since: 10/28/21
* @author lixiaopeng
* @description 绑定车机网络请求
* @since: 3/25/22
*/
public class BindingcarNetWorkManager {
private static volatile BindingcarNetWorkManager requestNoticeManager;
private final BindingcarApiService mBindingcarApiService;
private String token = "c4a2f30cebf64972bcd11577e1c07f86"; //中台做了接口适配需要这个token
private static final String TAG = "BindingcarNetWorkManager";
private BindingcarNetWorkManager() { //TODO
// mBindingcarApiService = RetrofitFactory.INSTANCE.getInstance(NetConstants.DEVA_HOST)
// .create(BindingcarApiService.class);
mBindingcarApiService = RetrofitFactory.INSTANCE.getInstance("http://cmdb.ee-private-dev.myghost.zhidaoauto.com/")
private BindingcarNetWorkManager() {
mBindingcarApiService = MoGoRetrofitFactory.getInstance(HostConst.BINDING_SN_HOST)
.create(BindingcarApiService.class);
}
@@ -46,85 +49,84 @@ public class BindingcarNetWorkManager {
return requestNoticeManager;
}
/**
* 获取绑定的车辆信息
*
* @param macAddress mac地址 TODO
*
* @param macAddress mac地址
*/
public void getBindingcarInfo(String macAddress) {
public void getBindingcarInfo(Context context, String macAddress) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
BindingcarRequest request = new BindingcarRequest(sn, "48:b0:2d:3a:9c:19");
BindingcarRequest request = new BindingcarRequest(macAddress, sn);
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
mBindingcarApiService.getBindingcarInfo(requestBody)
mBindingcarApiService.getBindingcarInfo(token, requestBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BindingcarInfo>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.d("liyz", "getBindingcarInfo onSubscribe -----> ");
}
@Override
public void onNext(@NonNull BindingcarInfo info) {
if (info != null && info.getData() != null) {
Log.d("liyz", "getBindingcarInfo onNext info.getData() =" + info.getData().toString());
CallerLogger.INSTANCE.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString());
if (info.getData().getCompare() == 0) {
CallerHmiManager.INSTANCE.showBindingcarDialog();
} else if (info.getData().getCompare() == 3) {
CallerHmiManager.INSTANCE.showModifyBindingcarDialog();
}
SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_MODE_TYPE, info.data.getSeries());
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.d("liyz", "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
CallerLogger.INSTANCE.e(TAG, "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
}
@Override
public void onComplete() {
Log.d("liyz", "getBindingcarInfo onComplete");
}
});
}
/**
* 绑定和修改绑定车辆 TODO
* 绑定和修改绑定车辆
* mac: 48:b0:2d:3a:9c:19
*/
public void modifyBindingcar(String macAddress, BindingcarCallBack callBack) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
BindingcarRequest request = new BindingcarRequest(sn, "48:b0:2d:3a:9c:19");
BindingcarRequest request = new BindingcarRequest(macAddress, sn);
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
mBindingcarApiService.modifyBindingcarInfo(requestBody)
mBindingcarApiService.modifyBindingcarInfo(token, requestBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ModifyBindingcarInfo>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.d("liyz", "modifyBindingcar onSubscribe -----> ");
}
@Override
public void onNext(@NonNull ModifyBindingcarInfo info) {
if (info.getData() != null) {
if (info != null) {
callBack.callBackResult(info);
CallerLogger.INSTANCE.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString());
}
Log.d("liyz", "modifyBindingcar onNext info " + info.toString());
}
@Override
public void onError(@NonNull Throwable e) {
Log.d("liyz", "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
CallerLogger.INSTANCE.e(TAG, "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage());
}
@Override
public void onComplete() {
Log.d("liyz", "modifyBindingcar onComplete ");
}
});
}
}

View File

@@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.chat.facade.ui
import android.content.Context
import android.media.AudioManager
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
@@ -28,10 +29,7 @@ import com.mogo.eagle.core.function.chat.facade.OnInComingCallback
import com.mogo.eagle.core.function.chat.facade.bridge.BridgeApi
import com.mogo.eagle.core.function.chat.facade.utils.log
import com.mogo.eagle.core.function.chat.facade.voice.VoiceControlFacade.REQUEST_CLOUD_VOICE_CALL
import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope
import com.mogo.eagle.core.utilcode.kotlin.observe
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.kotlin.*
import com.mogo.eagle.core.utilcode.mogo.glide.GlideRoundedCornersTransform
import com.mogo.eagle.core.utilcode.mogo.glide.GlideRoundedCornersTransform.CornerType.LEFT
import kotlinx.coroutines.*
@@ -247,10 +245,9 @@ internal class CallChatWindowManager {
context.resources.getDimension(R.dimen.module_call_chat_state_incoming_hawk_eye_width).toInt(),
context.resources.getDimension(R.dimen.module_call_chat_state_incoming_hawk_eye_height).toInt())
.also {
val x = context.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_x)
val y = context.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_y)
it.leftMargin = x.toInt()
it.topMargin = y.toInt()
it.gravity = Gravity.BOTTOM or Gravity.START
it.marginStart = 40.PX
it.bottomMargin = 168.PX
}
}
@@ -370,8 +367,9 @@ internal class CallChatWindowManager {
context.resources.getDimension(R.dimen.module_call_chat_state_hawk_eye_height).toInt()
)
.also {
it.leftMargin = context.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_x).toInt()
it.topMargin = context.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_y).toInt()
it.gravity = Gravity.BOTTOM or Gravity.START
it.marginStart = 40.PX
it.bottomMargin = 168.PX
}
}

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_callchatting_shape_gradient_blue_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_callchatting_shape_gradient_blue_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_16" />
<gradient
android:angle="0"
android:endColor="#1F7EFF"
android:startColor="#1E57A4" />
</shape>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_16" />
<gradient
android:angle="0"
android:endColor="#1363A4"
android:startColor="#164079" />
</shape>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_callchatting_user_pop_call_bg_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_callchatting_user_pop_call_bg_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_16" />
<gradient
android:angle="0"
android:endColor="#585E8B"
android:startColor="#4A4C70" />
</shape>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_16" />
<gradient
android:angle="0"
android:endColor="#383C5E"
android:startColor="#373856" />
</shape>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_30" />
<solid android:color="#F710121E" />
</shape>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_carchatting_team_fragment_close_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_carchatting_team_fragment_close_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_30" />
<gradient
android:angle="180"
android:endColor="#3F4057"
android:startColor="#5E6079" />
</shape>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="@dimen/module_call_chat_team_invitation_hawk_eye_bg_corner"
android:bottomLeftRadius="@dimen/module_call_chat_team_invitation_hawk_eye_bg_corner"/>
<gradient
android:angle="135"
android:endColor="#22E2FE"
android:startColor="#005CFF" />
</shape>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_carchatting_team_invitation_hawk_eye_join_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_carchatting_team_invitation_hawk_eye_join_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_carchatting_team_invitation_hawk_eye_refuse_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_carchatting_team_invitation_hawk_eye_refuse_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_carchatting_team_invitation_join_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_carchatting_team_invitation_join_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_carchatting_team_invitation_refuse_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_carchatting_team_invitation_refuse_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_11" />
<gradient
android:angle="180"
android:endColor="#1DAAA5"
android:startColor="#37DED9" />
</shape>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/module_carchatting_team_quit_normal" android:state_pressed="false" />
<item android:drawable="@drawable/module_carchatting_team_quit_pressed" android:state_pressed="true" />
</selector>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_23" />
<solid android:color="#FF1F2131" />
</shape>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_11" />
<gradient
android:angle="180"
android:endColor="#4E5069"
android:startColor="#4E5069" />
</shape>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/dp_11" />
<gradient
android:angle="180"
android:endColor="#256BFF"
android:startColor="#5CC1FF" />
</shape>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<gradient
android:endColor="#595FA2"
android:startColor="#43508E"></gradient>
<size
android:width="@dimen/dp_80"
android:height="@dimen/dp_80" />
</shape>

View File

@@ -1,42 +0,0 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/module_call_chat_team_fragment_margin"
android:elevation="@dimen/dp_10"
android:background="@drawable/module_carchatting_team_fragment_bg"
android:clickable="true"
android:padding="@dimen/module_call_chat_team_fragment_padding">
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="@dimen/module_call_chat_team_fragment_close_view_height"
android:gravity="center_vertical"
android:text="车队人数"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_team_fragment_num_text_size"
app:layout_constraintBaseline_toBaselineOf="@+id/iv_close"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="@dimen/module_call_chat_team_fragment_close_view_width"
android:layout_height="@dimen/module_call_chat_team_fragment_close_view_height"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/module_carchatting_team_fragment_close"
tools:ignore="ContentDescription" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_teammates"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="@dimen/module_call_chat_team_fragment_teammates__margin_top"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_close" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -2,261 +2,55 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/module_carchatting_rl_call_view"
android:clickable="true"
android:focusable="true"
android:layout_width="@dimen/module_call_chat_state_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_state_hawk_eye_height"
android:background="@drawable/module_carchatting_vr_calling_bg"
android:orientation="vertical">
android:background="@drawable/module_carchatting_vr_calling_bg">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_match_init_view"
android:layout_width="@dimen/module_call_chat_view_match_width"
android:layout_height="@dimen/module_call_chat_state_hawk_eye_height"
android:background="@drawable/module_callchatting_shape_gradient_blue"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
<ImageView
android:id="@+id/module_carchatting_call_head"
android:layout_width="@dimen/module_call_chat_calling_iv_hawk_eye_width_height"
android:layout_height="@dimen/module_call_chat_calling_iv_hawk_eye_width_height"
android:scaleType="centerInside"
android:src="@mipmap/module_carchatting_hawk_eye_default_head_img"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:layout_width="@dimen/module_call_chat_match_iv_width"
android:layout_height="@dimen/module_call_chat_match_iv_height"
android:layout_marginStart="@dimen/dp_16"
android:src="@mipmap/module_callchatting_match"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_call_hangUp"
android:layout_width="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:scaleType="centerInside"
android:src="@mipmap/module_carchatting_launcher_calling_hangup"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/module_call_chat_view_margin_end"
android:text="@string/module_car_chat_match_tip"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_match_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_matching_view"
android:layout_width="@dimen/module_call_chat_state_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_state_hawk_eye_height"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_30"
android:text="@string/module_car_chat_matching"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_matching_textsize"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/module_carchatting_tv_cancel_match"
android:layout_width="@dimen/module_call_chat_state_hawk_eye_height"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/module_car_chat_matching_cancel"
android:textColor="@color/module_carchatting_red_color"
android:textSize="@dimen/module_call_chat_matching_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/module_call_chat_match_view_line_margin_top_bottom"
android:layout_marginBottom="@dimen/module_call_chat_match_view_line_margin_top_bottom"
android:background="@color/module_carchatting_match_line"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/module_carchatting_tv_cancel_match"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_call_view"
android:layout_width="@dimen/module_call_chat_state_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_state_hawk_eye_height"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/module_carchatting_call_head"
android:layout_width="@dimen/module_call_chat_calling_iv_hawk_eye_width_height"
android:layout_height="@dimen/module_call_chat_calling_iv_hawk_eye_width_height"
android:clickable="true"
android:scaleType="centerInside"
android:src="@mipmap/module_carchatting_hawk_eye_default_head_img"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_call_hangUp"
android:layout_width="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:scaleType="centerInside"
android:src="@mipmap/module_carchatting_launcher_calling_hangup"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/module_carchatting_call_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:text="@string/module_car_chat_matching_wait"
android:textColor="@color/module_carchatting_hawk_eye_status_color"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_time_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/module_carchatting_call_nickname" />
<TextView
android:id="@+id/module_carchatting_call_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_22"
android:layout_marginTop="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_name_size"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_call_head"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_team_rl_view"
android:layout_width="@dimen/module_call_chat_state_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_state_hawk_eye_height"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/module_carchatting_iv_team_quit"
android:layout_width="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_marginRight="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:src="@drawable/module_carchatting_team_quit"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/module_carchatting_team_ll_head"
android:layout_width="@dimen/module_call_chat_team_ll_head_width"
android:layout_height="@dimen/module_call_chat_state_hawk_eye_height"
android:gravity="center"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/module_carchatting_team_num"
android:layout_width="@dimen/module_call_chat_team_num_width"
android:layout_height="@dimen/module_call_chat_team_num_width"
android:background="@drawable/module_carchatting_vr_team_num_bg"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_team_num_text_size"
android:visibility="gone" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head0"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_1_5"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head1"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_1"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head2"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_0_5"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head3"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin4"
android:layout_marginTop="@dimen/module_call_chat_team_head_view_top_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_0_1"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head4"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin"
android:layout_marginTop="@dimen/module_call_chat_team_head_view_top_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_0"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
</LinearLayout>
<TextView
android:id="@+id/module_carchatting_team_tv_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/module_call_chat_team_info_margin_bottom"
android:text="@string/module_car_chat_team_info"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_call_chat_team_info_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_team_ll_head" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_call_chat_team_chatting_margin_top"
android:text="@string/module_car_chat_team_calling"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_team_chatting_text_size"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_team_ll_head"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/module_carchatting_call_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:text="@string/module_car_chat_matching_wait"
android:textColor="@color/module_carchatting_hawk_eye_status_color"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_time_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/module_carchatting_call_nickname" />
<TextView
android:id="@+id/module_carchatting_call_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_22"
android:layout_marginTop="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_name_size"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_call_head"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,257 +0,0 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/module_call_chat_state_width"
android:layout_height="@dimen/module_call_chat_state_height"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_match_init_view"
android:layout_width="@dimen/module_call_chat_view_match_width"
android:layout_height="@dimen/module_call_chat_state_height"
android:background="@drawable/module_callchatting_shape_gradient_blue"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="@dimen/module_call_chat_match_iv_width"
android:layout_height="@dimen/module_call_chat_match_iv_height"
android:layout_marginStart="@dimen/module_call_chat_match_iv_left_margin"
android:src="@mipmap/module_callchatting_match"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/module_call_chat_view_margin_end"
android:text="@string/module_car_chat_match_tip"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_match_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_matching_view"
android:layout_width="@dimen/module_call_chat_state_width"
android:layout_height="@dimen/module_call_chat_state_height"
android:background="@drawable/module_carchatting_launcher_calling_bg"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_call_chat_match_view_left_margin"
android:text="@string/module_car_chat_matching"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_matching_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/module_carchatting_tv_cancel_match"
android:layout_width="90px"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/module_call_chat_match_view_right_margin"
android:gravity="center"
android:text="@string/module_car_chat_matching_cancel"
android:textColor="@color/module_carchatting_red_color"
android:textSize="@dimen/module_call_chat_matching_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/module_call_chat_match_view_line_margin_top_bottom"
android:layout_marginEnd="@dimen/module_call_chat_match_view_right_margin"
android:layout_marginBottom="@dimen/module_call_chat_match_view_line_margin_top_bottom"
android:background="@color/module_carchatting_match_line"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/module_carchatting_tv_cancel_match"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_call_view"
android:layout_width="@dimen/module_call_chat_state_width"
android:layout_height="@dimen/module_call_chat_state_height"
android:background="@drawable/module_carchatting_launcher_calling_bg"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/module_carchatting_call_head"
android:layout_width="@dimen/module_call_chat_calling_iv_width_height"
android:layout_height="@dimen/module_call_chat_calling_iv_width_height"
android:layout_marginStart="@dimen/module_call_chat_calling_iv_margin_left_right"
android:clickable="true"
android:src="@mipmap/module_carchatting_default_head_img"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_call_hangUp"
android:layout_width="@dimen/module_call_chat_calling_iv_width_height"
android:layout_height="@dimen/module_call_chat_calling_iv_width_height"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_margin_left_right"
android:src="@mipmap/module_carchatting_launcher_calling_hangup"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/module_carchatting_call_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/module_call_chat_calling_text_margin_top_bottom"
android:text="@string/module_car_chat_matching_wait"
android:textColor="@color/module_carchatting_status_color"
android:textSize="@dimen/module_call_chat_calling_text_time_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/module_carchatting_call_nickname" />
<TextView
android:id="@+id/module_carchatting_call_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_22"
android:layout_marginTop="@dimen/module_call_chat_calling_text_margin_top_bottom"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_calling_text_name_size"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_call_head"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_team_rl_view"
android:layout_width="@dimen/module_call_chat_state_width"
android:layout_height="@dimen/module_call_chat_state_height"
android:background="@drawable/module_carchatting_launcher_calling_bg"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/module_carchatting_team_ll_head"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/module_call_chat_state_height"
android:gravity="center"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head0"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_1_5"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head1"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_1"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head2"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_0_5"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head3"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin4"
android:layout_marginTop="@dimen/module_call_chat_team_head_view_top_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_0_1"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head4"
android:layout_width="@dimen/module_call_chat_team_head_view_width"
android:layout_height="@dimen/module_call_chat_team_head_view_height"
android:layout_marginLeft="@dimen/module_call_chat_team_head_view_left_margin"
android:layout_marginTop="@dimen/module_call_chat_team_head_view_top_margin"
android:src="@mipmap/module_carchatting_default_head_img"
android:translationZ="@dimen/dp_0"
android:visibility="gone"
app:civ_border_color="#FFFFFF"
app:civ_border_width="2dp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_call_chat_team_calling_left_margin"
android:layout_marginTop="@dimen/module_call_chat_team_calling_top_margin"
android:text="@string/module_car_chat_team_calling"
android:textColor="@color/module_carchatting_nick_color"
android:textSize="@dimen/module_call_chat_team_calling_size"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/module_carchatting_team_tv_info"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_team_ll_head" />
<TextView
android:id="@+id/module_carchatting_team_tv_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_call_chat_team_info_left_margin"
android:layout_marginBottom="@dimen/module_call_chat_team_info_bottom_margin"
android:text="@string/module_car_chat_team_info"
android:textColor="@color/module_carchatting_status_color"
android:textSize="@dimen/module_call_chat_team_info_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_team_ll_head" />
<ImageView
android:id="@+id/module_carchatting_iv_team_quit"
android:layout_width="@dimen/module_call_chat_team_quit_view_width"
android:layout_height="@dimen/module_call_chat_team_quit_view_height"
android:layout_marginRight="@dimen/module_call_chat_team_quit_right_margin"
android:src="@drawable/module_carchatting_team_quit"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -2,79 +2,69 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/module_carchatting_rl_incoming_view"
android:layout_width="@dimen/module_call_chat_state_incoming_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_state_incoming_hawk_eye_height"
android:background="@drawable/module_carchatting_vr_calling_bg"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/module_carchatting_rl_incoming_view"
android:layout_width="@dimen/module_call_chat_state_incoming_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_state_incoming_hawk_eye_height"
android:visibility="visible"
app:layout_constraintLeft_toLeftOf="parent"
<ImageView
android:id="@+id/module_carchatting_call_head"
android:layout_width="@dimen/module_call_chat_incoming_aisdk_tag_width"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@drawable/module_carchatting_aicloud_incoming"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_call_head"
android:layout_width="@dimen/module_call_chat_incoming_aisdk_tag_width"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@drawable/module_carchatting_aicloud_incoming"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_incoming_answer"
android:layout_width="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:layout_marginRight="@dimen/module_call_chat_state_incoming_hawk_eye_call_margin_right"
android:clickable="true"
android:scaleType="centerInside"
android:src="@mipmap/module_callchatting_launcher_incoming_answer"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/module_carchatting_incoming_hangUp"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_incoming_answer"
android:layout_width="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:layout_marginRight="@dimen/module_call_chat_state_incoming_hawk_eye_call_margin_right"
android:clickable="true"
android:scaleType="centerInside"
android:src="@mipmap/module_callchatting_launcher_incoming_answer"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/module_carchatting_incoming_hangUp"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_incoming_hangUp"
android:layout_width="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:clickable="true"
android:scaleType="centerInside"
android:src="@mipmap/module_callchatting_launcher_incoming_hangup"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_incoming_hangUp"
android:layout_width="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_incoming_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_calling_iv_hawk_eye_margin_left_right"
android:clickable="true"
android:scaleType="centerInside"
android:src="@mipmap/module_callchatting_launcher_incoming_hangup"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/module_carchatting_call_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/module_call_chat_state_incoming_hawk_eye_margin_left"
android:layout_marginBottom="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:text="请求语音通话..."
android:textColor="@color/module_carchatting_hawk_eye_status_color"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_time_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/module_carchatting_call_head" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:text="云平台"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_name_size"
app:layout_constraintStart_toStartOf="@+id/module_carchatting_call_time"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/module_carchatting_call_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/module_call_chat_state_incoming_hawk_eye_margin_left"
android:layout_marginBottom="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:text="请求语音通话..."
android:textColor="@color/module_carchatting_hawk_eye_status_color"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_time_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/module_carchatting_call_head" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_call_chat_calling_text_hawk_eye_margin_top_bottom"
android:text="云平台"
android:textColor="@android:color/white"
android:textSize="@dimen/module_call_chat_calling_text_hawk_eye_name_size"
app:layout_constraintStart_toStartOf="@+id/module_carchatting_call_time"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,74 +0,0 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/module_call_chat_team_invitation_hawk_eye_width"
android:layout_height="@dimen/module_call_chat_team_invitation_hawk_eye_height"
android:background="@drawable/module_carchatting_team_invitation_hawk_eye_bg"
android:elevation="@dimen/dp_8">
<ImageView
android:layout_width="@dimen/dp_121"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_31"
android:layout_marginTop="@dimen/dp_22"
android:layout_marginBottom="@dimen/dp_42"
android:background="@drawable/module_carchatting_team_invitation_hawk_eye_header_bg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_civ_head"
android:layout_width="@dimen/dp_121"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_31"
android:layout_marginTop="@dimen/dp_22"
android:layout_marginBottom="@dimen/dp_42"
android:src="@drawable/module_carchatting_team_invitation_hawk_eye_head_default"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_iv_join"
android:layout_width="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_marginEnd="@dimen/module_call_chat_team_invitation_join_hawk_eye_margin_right"
android:layout_marginBottom="@dimen/dp_21"
android:src="@drawable/module_carchatting_team_invitation_hawk_eye_join"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/module_carchatting_iv_refuse"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_iv_refuse"
android:layout_width="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_height="@dimen/module_call_chat_hawk_eye_circle_btn_size"
android:layout_marginBottom="@dimen/dp_21"
android:layout_marginEnd="@dimen/module_call_chat_team_invitation_hawk_eye_padding"
android:src="@drawable/module_carchatting_team_invitation_hawk_eye_refuse"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/module_carchatting_tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_call_chat_team_invitation_content_margin_left"
android:text="车友邀请你加入车队!"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_team_invitation_content_text_size"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_21"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_civ_head" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,75 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/module_call_chat_team_invitation_height"
android:layout_margin="@dimen/module_common_shadow_width_pos"
android:background="@drawable/module_carchatting_team_invitation_bg"
android:elevation="@dimen/dp_8">
<ImageView
android:id="@+id/module_carchatting_civ_head"
android:layout_width="@dimen/module_call_chat_team_invitation_height"
android:layout_height="@dimen/module_call_chat_team_invitation_height"
android:src="@drawable/module_carchatting_team_invitation_head_default"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/module_carchatting_tv_title"
android:layout_width="@dimen/module_call_chat_team_invitation_title_width"
android:layout_height="@dimen/module_call_chat_team_invitation_title_height"
android:layout_marginLeft="@dimen/module_call_chat_team_invitation_title_margin_left"
android:layout_marginTop="@dimen/module_call_chat_team_invitation_title_margin_top"
android:background="@drawable/module_carchatting_team_invitation_title_bg"
android:gravity="center"
android:text="车队邀请"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_team_invitation_title_text_size"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_civ_head"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/module_carchatting_tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/module_call_chat_team_invitation_content_margin_left"
android:layout_marginBottom="@dimen/module_call_chat_team_invitation_content_margin_bottom"
android:text="车友邀请你加入车队!"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_team_invitation_content_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_civ_head" />
<ImageView
android:id="@+id/module_carchatting_iv_join"
android:layout_width="@dimen/module_call_chat_team_invitation_join_width"
android:layout_height="@dimen/module_call_chat_team_invitation_join_height"
android:layout_marginRight="@dimen/module_call_chat_team_invitation_join_margin_right"
android:src="@drawable/module_carchatting_team_invitation_join"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/module_carchatting_iv_refuse"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/module_carchatting_iv_refuse"
android:layout_width="@dimen/module_call_chat_team_invitation_join_width"
android:layout_height="@dimen/module_call_chat_team_invitation_join_height"
android:layout_marginRight="@dimen/module_call_chat_team_invitation_padding"
android:src="@drawable/module_carchatting_team_invitation_refuse"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>

View File

@@ -1,49 +0,0 @@
<?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="match_parent"
android:layout_height="@dimen/module_call_chat_team_teammate_height"
android:layout_marginTop="@dimen/module_call_chat_team_teammate_margin"
android:layout_marginBottom="@dimen/module_call_chat_team_teammate_margin"
android:background="@drawable/module_carchatting_team_teammate_bg"
android:padding="@dimen/module_call_chat_team_teammate_padding">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/module_carchatting_civ_head"
android:layout_width="@dimen/module_call_chat_team_teammate_head_width"
android:layout_height="@dimen/module_call_chat_team_teammate_head_height"
android:src="@mipmap/module_carchatting_default_head_img"
app:civ_border_color="#4cffffff"
app:civ_border_width="@dimen/module_call_chat_state_head_border"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/module_carchatting_tv_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/module_call_chat_team_teammate_nickname_margin_left"
android:text="昵称"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_team_teammate_nickname_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/module_carchatting_civ_head"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/module_carchatting_tv_identity"
android:layout_width="@dimen/module_call_chat_team_teammate_identity_width"
android:layout_height="@dimen/module_call_chat_team_teammate_identity_height"
android:background="@drawable/module_carchatting_team_teammate_follower_bg"
android:gravity="center"
android:text="身份"
android:textColor="@color/module_carchatting_white_color"
android:textSize="@dimen/module_call_chat_team_teammate_identity_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,105 +0,0 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/module_call_chat_user_state_x"
android:layout_height="@dimen/module_call_chat_user_state_y"
android:orientation="vertical">
<ImageView
android:id="@+id/moduleCallChatBg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY" />
<ImageView
android:id="@+id/moduleCallChatCoverBg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@mipmap/module_carchatting_user_cover_bg" />
<ImageView
android:id="@+id/moduleCallChatUserClose"
android:layout_width="@dimen/module_call_chat_state_close_icon_width"
android:layout_height="@dimen/module_call_chat_state_close_icon_width"
android:layout_marginLeft="@dimen/module_call_chat_state_close_margin"
android:layout_marginTop="@dimen/module_call_chat_state_close_margin"
android:src="@drawable/module_carchatting_team_fragment_close"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/moduleCallChatUserHead"
android:layout_width="@dimen/module_call_chat_state_user_head_width"
android:layout_height="@dimen/module_call_chat_state_user_head_width"
android:layout_marginTop="@dimen/module_call_chat_state_head_margin_top"
android:src="@mipmap/module_carchatting_default_head_img"
app:civ_border_color="#E8EEF9"
app:civ_border_width="@dimen/module_call_chat_state_head_border"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/moduleCallChatUserNickName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_call_chat_state_nick_name_margin_top"
android:text="杨超越"
android:textColor="@color/module_carchatting_nick_color"
android:textSize="@dimen/module_call_chat_state_nick_name_size"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/moduleCallChatUserHead" />
<com.mogo.module.common.view.CustomRatingBar
android:id="@+id/moduleCallChatRatingBar"
style="@style/customHeartHeartRatingBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_call_chat_state_rating_margin_top"
android:isIndicator="true"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/moduleCallChatUserNickName"
tools:visibility="visible" />
<com.mogo.module.carchatting.view.DrawableTextView
android:id="@+id/moduleCallChatUserJoinTeam"
android:layout_width="@dimen/module_call_chat_user_caller_x"
android:layout_height="@dimen/module_call_chat_state_caller_height"
android:layout_marginLeft="@dimen/module_call_chat_state_caller_margin_left_right"
android:layout_marginBottom="@dimen/module_call_chat_state_caller_margin_bottom"
android:background="@drawable/module_callchatting_shape_gradient_blue"
android:drawableLeft="@mipmap/module_callchatting_user_join_team"
android:drawablePadding="@dimen/module_call_chat_state_caller_drawable_padding"
android:gravity="center_vertical"
android:text="@string/module_car_chat_user_join_team"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_call_chat_state_caller_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
tools:visibility="visible" />
<TextView
android:id="@+id/moduleCallChatUserCaller"
android:layout_width="@dimen/module_call_chat_user_caller_x"
android:layout_height="@dimen/module_call_chat_state_caller_height"
android:layout_marginRight="@dimen/module_call_chat_state_caller_margin_left_right"
android:layout_marginBottom="@dimen/module_call_chat_state_caller_margin_bottom"
android:background="@drawable/module_callchatting_user_pop_call_bg"
android:drawableLeft="@mipmap/module_callchatting_user_caller"
android:drawablePadding="@dimen/module_call_chat_state_caller_drawable_padding"
android:gravity="center_vertical"
android:paddingLeft="@dimen/module_call_chat_state_caller_padding_left"
android:text="@string/module_car_chat_user_caller"
android:textColor="@color/module_carchatting_nick_color"
android:textSize="@dimen/module_call_chat_state_caller_text_size"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Some files were not shown because too many files have changed in this diff Show More