Merge remote-tracking branch 'origin/qa_1.1.7' into qa_1.1.7

This commit is contained in:
tongchenfei
2020-11-09 14:12:47 +08:00
11 changed files with 216 additions and 64 deletions

View File

@@ -106,7 +106,7 @@ TTS_NOOP_VERSION=2.0.6
######## 外部依赖引用
# 车聊聊
CARCHATTING_VERSION=2.0.0
CARCHATTING_VERSION=2.0.2
# 车聊聊接口
CARCHATTINGPROVIDER_VERSION=1.4.1
# loglib

View File

@@ -30,6 +30,8 @@ public class MarkerExploreWay implements Serializable {
//上报类型1-用户上报2-后台上报 3-三方上报
private String uploadType;
private boolean fabulous;
// http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=42321443
// 1 需要用户判断是否拥堵 进行UGC问答
private int infoCheckNode;
@@ -200,6 +202,14 @@ public class MarkerExploreWay implements Serializable {
this.infoCheckNode = infoCheckNode;
}
public boolean isFabulous() {
return fabulous;
}
public void setFabulous(boolean fabulous) {
this.fabulous = fabulous;
}
@Override
public String toString() {
return "MarkerExploreWay{" +
@@ -218,6 +228,7 @@ public class MarkerExploreWay implements Serializable {
", userInfo=" + userInfo +
", items=" + items +
", uploadType='" + uploadType + '\'' +
", fabulous=" + fabulous +
", infoCheckNode=" + infoCheckNode +
'}';
}

View File

@@ -0,0 +1,51 @@
package com.mogo.module.common.entity;
import com.mogo.utils.sqlite.annotation.DbDatabase;
import com.mogo.utils.sqlite.annotation.DbField;
import com.mogo.utils.sqlite.annotation.DbTable;
/**
* V2X 被点赞的事件
*
* @author donghongyu
*/
@DbDatabase(dbName = "MoGoScenario.db")
@DbTable(tableName = "tb_event_zan")
public class V2XEventZanData {
/**
* 事件ID
*/
@DbField(fieldName = "eventId")
public String eventId;
/**
* 触发时间
*/
@DbField(fieldName = "triggerTime")
public Long triggerTime;
public String getEventId() {
return eventId;
}
public void setEventId(String eventId) {
this.eventId = eventId;
}
public Long getTriggerTime() {
return triggerTime;
}
public void setTriggerTime(Long triggerTime) {
this.triggerTime = triggerTime;
}
@Override
public String toString() {
return "V2XEventZanData{" +
"eventId=" + eventId +
", triggerTime=" + triggerTime +
'}';
}
}

View File

@@ -39,6 +39,7 @@ object UploadHelper {
// }
// } else {
if (ServiceApisManager.serviceApis.statusManagerApi.isUploading) {
Logger.d("UploadHelper", "upload is going -- ")
// 上报即成功,当前还有正在上报的事件,仅做界面展示,不做具体操作
ServiceApisManager.serviceApis.tanluUiApi.shareSuccess(type.eventType, type.location)
} else {
@@ -59,6 +60,7 @@ object UploadHelper {
} else {
// 没网就直接提示失败
Logger.e("UploadHelper", "upload not net ")
AIAssist.getInstance(context).speakTTSVoice("分享失败,请检查网络")
TipToast.tip("分享失败,请检查网络", TipDrawable(context.resources.getDrawable(R.drawable.module_share_upload_fail)))
}
@@ -72,7 +74,6 @@ object UploadHelper {
if (shareItemSum < VOICE_ALERT_COUNT) {
Log.d("UploadHelper", "shareItemSum = $shareItemSum --- intervalTime = $intervalTime --type = ${type}")
var time = System.currentTimeMillis()
Log.d("UploadHelper", "time = $time ")
if (intervalTime == 0.toLong()) {
SharedPrefsMgr.getInstance(context).putLong(KEY_CLICK_SHARE_ITEM_TIME, time)
SharedPrefsMgr.getInstance(context).putInt(KEY_CLICK_SHARE_ITEM_BUTTON, ++shareItemSum)

View File

@@ -1,6 +1,5 @@
package com.mogo.module.v2x.adapter.holder;
import android.content.Intent;
import android.util.Log;
import android.view.View;
@@ -16,19 +15,20 @@ import com.mogo.map.navi.MogoTraffic;
import com.mogo.module.carchattingprovider.ICarsChattingProvider;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.V2XEventZanData;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.utils.ChartingUtil;
import com.mogo.module.v2x.utils.RoadConditionUtils;
import com.mogo.module.v2x.utils.TimeUtils;
import com.mogo.module.v2x.utils.TrackUtils;
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
import com.zhidao.carchattingprovider.MogoDriverInfo;
import java.util.HashMap;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
/**
@@ -68,10 +68,18 @@ public abstract class V2XBaseViewHolder<T>
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已点赞", null);
showTip("已点赞");
if (noveltyInfo != null) {
// 调用网络API接口
V2XServiceManager.getV2XMarkerService()
.getV2XRefreshModel()
.giveLikeLiveVideo(null, noveltyInfo.getSn());
V2XEventZanData v2XEventZanData = new V2XEventZanData();
v2XEventZanData.setEventId(noveltyInfo.getInfoId());
v2XEventZanData.setTriggerTime(TimeUtils.getNowMills());
V2XSQLiteUtils.saveEventZanLocalStory(v2XEventZanData);
// 上报数据统计
TrackUtils.trackV2xRoadEvent(
noveltyInfo.getInfoId(),
noveltyInfo.getSn(),
@@ -84,23 +92,23 @@ public abstract class V2XBaseViewHolder<T>
}
public void triggerIVReportHead(MarkerExploreWay noveltyInfo) {
Log.d(TAG,"点击头像"+mCarsChattingProvider);
Log.d(TAG, "点击头像" + mCarsChattingProvider);
try {
mCarsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation();
MogoDriverInfo mogoDriverInfo = new MogoDriverInfo();
int ageNumber = noveltyInfo.getUserInfo().getAgeNumber();
mogoDriverInfo.setAge(ageNumber);
String gender = noveltyInfo.getUserInfo().getGender();
mogoDriverInfo.setGender(gender != null ? gender:null);
mogoDriverInfo.setGender(gender != null ? gender : null);
String sn = noveltyInfo.getUserInfo().getSn();
mogoDriverInfo.setSn(sn != null ? sn:"");
mogoDriverInfo.setSn(sn != null ? sn : "");
String name = noveltyInfo.getUserInfo().getUserName();
mogoDriverInfo.setUserName(name != null ? name:"");
mogoDriverInfo.setUserName(name != null ? name : "");
mogoDriverInfo.setUserHead(noveltyInfo.getUserInfo().getUserHead());
mCarsChattingProvider.showUserWindow(MODULE_NAME, mogoDriverInfo, this.itemView.getContext());
} catch (Exception e) {
Log.d(TAG,"点击头像发生错误--triggerIVReportHead"+e);
Log.d(TAG, "点击头像发生错误--triggerIVReportHead" + e);
e.printStackTrace();
}
}

View File

@@ -24,10 +24,9 @@ import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarScenario;
import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventScenario;
import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventWindow;
import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoCarScenario;
import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoWindow;
import com.mogo.module.v2x.utils.ChartingUtil;
import com.mogo.module.v2x.utils.EventTypeUtils;
import com.mogo.module.v2x.utils.SpanUtils;
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
import com.mogo.module.v2x.view.HeartLikeView;
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
import com.mogo.module.v2x.voice.V2XVoiceConstants;
@@ -256,7 +255,12 @@ public class V2XRoadEventVH extends V2XBaseViewHolder<V2XEventShowEntity> {
ivEventReportTrue.setVisibility(GONE);
ivEventReportErr.setVisibility(GONE);
ivEventZan.setVisibility(VISIBLE);
if (V2XSQLiteUtils.isZanEvent(mNoveltyInfo.getInfoId())) {
ivEventZan.setVisibility(GONE);
} else {
ivEventZan.setVisibility(VISIBLE);
}
// 用户上报的才会展示拨打电话
if (!TextUtils.isEmpty(mNoveltyInfo.getUploadType())

View File

@@ -1,10 +1,12 @@
package com.mogo.module.v2x.utils;
import com.mogo.commons.network.Utils;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerUserInfo;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.Util;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
import com.zhidao.carchattingprovider.ICallChatResponse;
@@ -62,6 +64,16 @@ public class ChartingUtil {
*/
public static void isOnLine(String sn, ChartStatusListener chartStatusListener) {
try {
String isMe = Utils.getSn();
if (isMe.equals(sn)) {
Logger.d("", "是我的分享");
if (chartStatusListener != null) {
chartStatusListener.canCall(false);
return;
}
} else {
Logger.d("", "不是我的分享");
}
V2XServiceManager.getCarsChattingProvider().isOnLine(
"CAR_CALL_TO_" + V2XConst.MODULE_NAME,
V2XUtils.getApp(),

View File

@@ -1,5 +1,6 @@
package com.mogo.module.v2x.utils;
import com.mogo.module.common.entity.V2XEventZanData;
import com.mogo.module.common.entity.V2XHistoryScenarioData;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.fragment.V2XEventPanelFragment;
@@ -21,6 +22,11 @@ public class V2XSQLiteUtils {
*/
private static SQLIDao<V2XHistoryScenarioData> mScenarioHistoryDao;
/**
* 点赞数据管理
*/
private static SQLIDao<V2XEventZanData> mV2XEventZanDao;
/**
* 场景数据管理
*/
@@ -36,6 +42,21 @@ public class V2XSQLiteUtils {
return mScenarioHistoryDao;
}
/**
* 点赞数据管理
*/
public static SQLIDao<V2XEventZanData> getV2XEventZanDao() {
if (mV2XEventZanDao == null) {
synchronized (V2XSQLiteUtils.class) {
if (mV2XEventZanDao == null) {
mV2XEventZanDao = SQLDaoFactory.Companion.getInstance()
.getBaseDao(V2XUtils.getApp(), V2XEventZanData.class);
}
}
}
return mV2XEventZanDao;
}
/**
* 删除数据库中存储的昨天的数据
*/
@@ -153,4 +174,48 @@ public class V2XSQLiteUtils {
e.printStackTrace();
}
}
/**
* 存储本地数据
*
* @param v2XEventZanData 要存储的场景
*/
public static void saveEventZanLocalStory(V2XEventZanData v2XEventZanData) {
try {
if (!isZanEvent(v2XEventZanData.eventId)) {
// 进行数据库存储
V2XSQLiteUtils.getV2XEventZanDao().insert(v2XEventZanData);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 判断是否已经存在
*
* @param eventId 要判断的事件ID
* @return true-已存在false-没存在
*/
public static boolean isZanEvent(String eventId) {
try {
// 查询数据库,判断是否存在
for (V2XEventZanData eventZanDatum : getEventZanData()) {
if (eventZanDatum.eventId.equals(eventId)) {
return true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* 查询当天的V2X数据
*/
public static List<V2XEventZanData> getEventZanData() {
return getV2XEventZanDao().query(new V2XEventZanData());
}
}

View File

@@ -18,7 +18,7 @@ import com.mogo.module.v2x.R;
*
* @author donghongyu
*/
public class HeartLikeView extends LinearLayout {
public class HeartLikeView extends LinearLayout implements Animator.AnimatorListener {
private ImageView mIllegalParkingLike;
private AnimatorSet mAnimatorSet;
@@ -46,36 +46,36 @@ public class HeartLikeView extends LinearLayout {
mAnimatorSet = (AnimatorSet) AnimatorInflater.loadAnimator(getContext(),
R.anim.v2x_like_heart_animation);
mAnimatorSet.setTarget(mIllegalParkingLike);
mAnimatorSet.addListener(this);
}
mAnimatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
isAnimator = false;
if (mOnClickCallListener != null) {
mOnClickCallListener.onClicked(HeartLikeView.this);
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
mAnimatorSet.start();
}
});
}
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
isAnimator = false;
if (mOnClickCallListener != null) {
mOnClickCallListener.onClicked(HeartLikeView.this);
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
public interface OnClickCallListener {
/**
* 点击回调

View File

@@ -18,7 +18,7 @@ import com.mogo.module.v2x.R;
*
* @author donghongyu
*/
public class HeartUnLikeView extends LinearLayout {
public class HeartUnLikeView extends LinearLayout implements Animator.AnimatorListener {
private ImageView mIllegalParkingUnLike;
private AnimatorSet mAnimatorSet;
@@ -46,36 +46,36 @@ public class HeartUnLikeView extends LinearLayout {
mAnimatorSet = (AnimatorSet) AnimatorInflater.loadAnimator(getContext(),
R.anim.v2x_unlike_heart_animation);
mAnimatorSet.setTarget(mIllegalParkingUnLike);
mAnimatorSet.addListener(this);
}
mAnimatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
isAnimator = false;
if (mOnClickCallListener != null) {
mOnClickCallListener.onClicked(HeartUnLikeView.this);
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
mAnimatorSet.start();
}
});
}
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
isAnimator = false;
if (mOnClickCallListener != null) {
mOnClickCallListener.onClicked(HeartUnLikeView.this);
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
public interface OnClickCallListener {
/**
* 点击回调

View File

@@ -161,7 +161,7 @@
android:layout_width="@dimen/module_v2x_event_button_size_detail"
android:layout_height="@dimen/module_v2x_event_button_size_detail"
android:padding="@dimen/dp_15"
android:src="@drawable/v2x_selector_icon_report_err_light"
android:src="@drawable/v2x_selector_icon_report_err"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/ivEventLive"
app:layout_constraintStart_toEndOf="@id/ivEventReportTrue"