Merge branch 'dev' into demo/shunyi_v2v_merge
This commit is contained in:
@@ -23,9 +23,5 @@ class MogoMonitorConst {
|
||||
*/
|
||||
public static final int LOCAL_CONFIG_CLOSE_LOG = 4;
|
||||
|
||||
|
||||
public static final String BROADCAST_START_CATCH_LOG = "com.mogo.controller.action" +
|
||||
".START_CATCH_LOG";
|
||||
public static final String BROADCAST_STOP_CATCH_LOG = "com.mogo.controller.action" +
|
||||
".STOP_CATCH_LOG";
|
||||
public static final String BROADCAST_LOG_CTRL = "com.mogo.control.action.LOG_CTRL";
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.zhidao.mogo.module.monitor;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.ArrayMap;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
@@ -14,11 +17,13 @@ import com.mogo.service.monitor.IMogoMonitorProvider;
|
||||
import com.mogo.utils.logger.LogLevel;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.mogo.utils.network.NetConfig;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
import com.zhidao.mogo.module.monitor.bean.RemoteLogPushContent;
|
||||
import com.zhidao.mogo.module.monitor.dialog.ILogDialogListener;
|
||||
import com.zhidao.mogo.module.monitor.dialog.LogDebugDialog;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 应用监控模块provider
|
||||
@@ -27,10 +32,15 @@ import java.util.Map;
|
||||
*/
|
||||
@Route(path = MogoMonitorConst.MODULE_PATH)
|
||||
public class MogoMonitorProvider implements IMogoMonitorProvider,
|
||||
IMogoOnMessageListener<RemoteLogPushContent>, ILogDialogListener {
|
||||
IMogoOnMessageListener<RemoteLogPushContent>, ILogDialogListener, Handler.Callback {
|
||||
private static final String TAG = MogoMonitorConst.MODULE_NAME;
|
||||
private static final int MSG_TRY_CLOSE_LOG = 1001;
|
||||
private static final String MANUAL_CATCH_PKG_NAME = "manual-catch-log";
|
||||
private Context context;
|
||||
private LogDebugDialog logDebugDialog;
|
||||
private RemoteLogPushContent manualContent = new RemoteLogPushContent(60,
|
||||
MANUAL_CATCH_PKG_NAME);
|
||||
private Handler handler = new Handler(this);
|
||||
@Override
|
||||
public void showLogDebugDialog() {
|
||||
logDebugDialog.show();
|
||||
@@ -43,11 +53,22 @@ public class MogoMonitorProvider implements IMogoMonitorProvider,
|
||||
apis.getSocketManagerApi(context).registerOnMessageListener(MogoMonitorConst.LOG_PUSH_TYPE, this);
|
||||
}
|
||||
|
||||
private void startRemoteCtrl(){
|
||||
Intent intent = new Intent("com.mogo.remotecontrol.action");
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
ComponentName comp = new ComponentName("com.mogo.remotecontrol",
|
||||
"com.mogo.remotecontrol.RemoteCtrlService");
|
||||
intent.setComponent(comp);
|
||||
context.startService(intent);
|
||||
Logger.d(TAG, "startRemoteCtrl");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetActivityContext(Context context) {
|
||||
this.context = context;
|
||||
logDebugDialog = new LogDebugDialog(context);
|
||||
logDebugDialog.setDialogListener(this);
|
||||
startRemoteCtrl();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,10 +81,12 @@ public class MogoMonitorProvider implements IMogoMonitorProvider,
|
||||
Logger.d(TAG, "收到push消息: " + obj);
|
||||
switch (obj.getType()) {
|
||||
case MogoMonitorConst.START_CATCH_LOG:
|
||||
onLogStart();
|
||||
if(!catchingList.contains(obj.getPkgName())){
|
||||
startCatchLog(obj);
|
||||
}
|
||||
break;
|
||||
case MogoMonitorConst.STOP_CATCH_LOG:
|
||||
onLogStop();
|
||||
stopCatchLog(obj);
|
||||
break;
|
||||
case MogoMonitorConst.LOCAL_CONFIG_OPEN_LOG:
|
||||
openLoggerLevel();
|
||||
@@ -76,20 +99,37 @@ public class MogoMonitorProvider implements IMogoMonitorProvider,
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> catchingList = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void onLogStart() {
|
||||
// 这个是通过对话框点击开始的回调
|
||||
Logger.d(TAG,"开始抓取日志====");
|
||||
context.sendBroadcast(new Intent(MogoMonitorConst.BROADCAST_START_CATCH_LOG));
|
||||
openLoggerLevel();
|
||||
if(catchingList.contains(MANUAL_CATCH_PKG_NAME)){
|
||||
Toast.makeText(context, "已经在抓日志了", Toast.LENGTH_LONG).show();
|
||||
}else {
|
||||
Logger.d(TAG, "开始抓取日志====");
|
||||
manualContent.setType(MogoMonitorConst.START_CATCH_LOG);
|
||||
startCatchLog(manualContent);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLogStop() {
|
||||
// 这个是通过对话框点击结束的回调
|
||||
Logger.d(TAG,"结束抓取日志====");
|
||||
context.sendBroadcast(new Intent(MogoMonitorConst.BROADCAST_STOP_CATCH_LOG));
|
||||
closeLoggerLevel();
|
||||
manualContent.setType(MogoMonitorConst.STOP_CATCH_LOG);
|
||||
stopCatchLog(manualContent);
|
||||
}
|
||||
|
||||
public void sendCtrlBroadcast(RemoteLogPushContent content) {
|
||||
startRemoteCtrl();
|
||||
|
||||
Intent intent = new Intent(MogoMonitorConst.BROADCAST_LOG_CTRL);
|
||||
intent.putExtra("content", GsonUtil.jsonFromObject(content));
|
||||
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
||||
intent.addFlags(Intent.FLAG_EXCLUDE_STOPPED_PACKAGES);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
Logger.d(TAG, "sendCtrlBroadcast: " + content);
|
||||
context.sendBroadcast(intent);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -103,7 +143,41 @@ public class MogoMonitorProvider implements IMogoMonitorProvider,
|
||||
* 根据状态收紧Logger的限制
|
||||
*/
|
||||
private void closeLoggerLevel() {
|
||||
Logger.init(DebugConfig.isDebug() ? LogLevel.DEBUG : LogLevel.OFF);
|
||||
NetConfig.instance().setLoggable(DebugConfig.isDebug());
|
||||
if(!catchingList.isEmpty()) {
|
||||
Logger.init(DebugConfig.isDebug() ? LogLevel.DEBUG : LogLevel.OFF);
|
||||
NetConfig.instance().setLoggable(DebugConfig.isDebug());
|
||||
}
|
||||
}
|
||||
|
||||
private void startCatchLog(RemoteLogPushContent content){
|
||||
catchingList.add(content.getPkgName());
|
||||
|
||||
long delay = content.getDuration() * 60 * 1000;
|
||||
handler.removeMessages(MSG_TRY_CLOSE_LOG);
|
||||
if (delay <= 0) {
|
||||
// 如果push 下来的delay小于等于0,那就给个默认最大值一小时
|
||||
delay = 60 * 60 * 1000;
|
||||
}
|
||||
handler.sendEmptyMessageDelayed(MSG_TRY_CLOSE_LOG, delay);
|
||||
openLoggerLevel();
|
||||
sendCtrlBroadcast(content);
|
||||
}
|
||||
|
||||
private void stopCatchLog(RemoteLogPushContent content) {
|
||||
catchingList.remove(content.getPkgName());
|
||||
if (catchingList.isEmpty()) {
|
||||
handler.removeMessages(MSG_TRY_CLOSE_LOG);
|
||||
}
|
||||
sendCtrlBroadcast(content);
|
||||
closeLoggerLevel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMessage(Message msg) {
|
||||
if (msg.what == MSG_TRY_CLOSE_LOG) {
|
||||
closeLoggerLevel();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,15 @@ public class RemoteLogPushContent {
|
||||
private String cmd;
|
||||
private String pkgName;
|
||||
|
||||
public RemoteLogPushContent(){
|
||||
|
||||
}
|
||||
|
||||
public RemoteLogPushContent(int duration, String pkgName) {
|
||||
this.duration = duration;
|
||||
this.pkgName = pkgName;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
if (viewType == V2XShareEventItemEnum.ITEM_TYPE_NUM_DES) {
|
||||
View v = shareLayoutInflater.inflate(R.layout.module_v2x_event_share_description, parent,
|
||||
false);
|
||||
v.getBackground().setAlpha((int) 0.7);
|
||||
shareDescriptionViewHolder holder = new shareDescriptionViewHolder(v);
|
||||
return holder;
|
||||
} else if (viewType == V2XShareEventItemEnum.ITEM_TYPE_SHARE_LIST) {
|
||||
@@ -102,7 +103,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
String address = data.getUploadAddress();
|
||||
String time = DateTimeUtils.getTimeText(data.getUploadTimestamp(),DateTimeUtils.MM_Yue_dd_Ri_HH_mm);
|
||||
String likeNum = String.valueOf(data.getLikeNum());
|
||||
String notLikeNum = String.valueOf(data.getNotLikeNum());
|
||||
String notLikeNum = String.valueOf(data.getNotlikeNum());
|
||||
|
||||
if (poitype != null) {
|
||||
((shareItemViewHolder) holder).caseStyleTextView.setText(EventTypeUtils.getPoiTypeStr(poitype));
|
||||
|
||||
@@ -161,7 +161,7 @@ public class V2XAlarmServer {
|
||||
public static void getFatigueDrivingShow(MogoLocation location, OnFatigueDrivingListener onFatigueDrivingListener) {
|
||||
try {
|
||||
long drivingTime = FatigueDrivingUtils.getDrivingTime();
|
||||
//Logger.i(V2XConst.MODULE_NAME, "车机已经开机: " + drivingTime + " 分钟");
|
||||
Logger.i(V2XConst.MODULE_NAME, "车机已经开机: " + drivingTime + " 分钟");
|
||||
|
||||
V2XStrategyPushRes.ResultBean strategyPushEntity =
|
||||
GsonUtil.objectFromJson(SharedPrefsMgr.getInstance(V2XUtils.getApp())
|
||||
|
||||
@@ -92,7 +92,7 @@ public class V2XShareEventItem extends BaseData implements Serializable {
|
||||
", userName='" + userName + '\'' +
|
||||
", userHead='" + userHead + '\'' +
|
||||
", likeNum=" + likeNum +
|
||||
", notLikeNum=" + notLikeNum +
|
||||
", notlikeNum=" + notlikeNum +
|
||||
", uploadType=" + uploadType +
|
||||
", uploadUser='" + uploadUser + '\'' +
|
||||
", imgUrl=" + imgUrl +
|
||||
@@ -126,7 +126,7 @@ public class V2XShareEventItem extends BaseData implements Serializable {
|
||||
private String userName;
|
||||
private String userHead;
|
||||
private Integer likeNum;
|
||||
private int notLikeNum;
|
||||
private int notlikeNum;
|
||||
private Integer uploadType;
|
||||
private String uploadUser;
|
||||
private String imgUrl;
|
||||
@@ -234,12 +234,12 @@ public class V2XShareEventItem extends BaseData implements Serializable {
|
||||
this.likeNum = likeNum;
|
||||
}
|
||||
|
||||
public int getNotLikeNum() {
|
||||
return notLikeNum;
|
||||
public int getNotlikeNum() {
|
||||
return notlikeNum;
|
||||
}
|
||||
|
||||
public void setNotLikeNum(int notLikeNum) {
|
||||
this.notLikeNum = notLikeNum;
|
||||
public void setNotlikeNum(int notlikeNum) {
|
||||
this.notlikeNum = notlikeNum;
|
||||
}
|
||||
|
||||
public Integer getUploadType() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.mogo.module.v2x.V2XConst.MODULE_NAME
|
||||
import com.mogo.module.v2x.V2XServiceManager
|
||||
import com.mogo.module.v2x.adapter.V2XEventPagerAdapter
|
||||
import com.mogo.module.v2x.presenter.EventPanelPresenter
|
||||
import com.mogo.module.v2x.presenter.ShareEventsPresenter
|
||||
import com.mogo.module.v2x.utils.TrackUtils
|
||||
import com.mogo.module.v2x.view.V2XEventPanelHistoryCountView
|
||||
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener
|
||||
@@ -38,6 +39,7 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
|
||||
private var mV2XEventPanelHistoryCountView: V2XEventPanelHistoryCountView? = null
|
||||
|
||||
private val mV2XScenarioHistoryFragment = V2XScenarioHistoryFragment()
|
||||
private val mV2XShareEventsFragment = V2XShareEventsFragment()
|
||||
|
||||
companion object {
|
||||
private val fragment = V2XEventPanelFragment()
|
||||
@@ -93,7 +95,7 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
|
||||
fragments = arrayOf(
|
||||
mV2XScenarioHistoryFragment,
|
||||
V2XSurroundingFragment(),
|
||||
V2XShareEventsFragment()
|
||||
mV2XShareEventsFragment
|
||||
)
|
||||
//禁用预加载
|
||||
vpEventPanel.offscreenPageLimit = ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT
|
||||
@@ -156,6 +158,8 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
|
||||
try {
|
||||
if (isFirstLoad) {
|
||||
mV2XScenarioHistoryFragment.presenter.loadHistory()
|
||||
mV2XShareEventsFragment.presenter.loadShareEventList()
|
||||
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
|
||||
@@ -22,12 +22,12 @@ import com.mogo.module.v2x.listener.AdapterCallback;
|
||||
import com.mogo.module.v2x.network.V2XRefreshCallback;
|
||||
import com.mogo.module.v2x.network.V2XShareNetworkModel;
|
||||
import com.mogo.module.v2x.presenter.ShareEventsPresenter;
|
||||
import com.mogo.module.v2x.utils.ThreadUtils;
|
||||
import com.mogo.module.v2x.view.V2XNetworkLoadingView;
|
||||
import com.mogo.utils.CheckUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class V2XShareEventsFragment extends MvpFragment implements AdapterCallback {
|
||||
public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment, ShareEventsPresenter> implements AdapterCallback {
|
||||
|
||||
private static final String TAG = "ShareEventsFragment";
|
||||
private RecyclerView recyclerView;
|
||||
@@ -79,7 +79,13 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
|
||||
* */
|
||||
@Override
|
||||
public void getShareEventResponse() {
|
||||
animatioonAcction(View.VISIBLE);
|
||||
pageNum = 1;
|
||||
ThreadUtils.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
animatioonAcction(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
v2XShareNetworkModel.getShareEventResponse(pageNum, 10, new V2XRefreshCallback() {
|
||||
@Override
|
||||
@@ -156,7 +162,13 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
|
||||
item.setViewType(V2XShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY);
|
||||
dataArrayList.add(item);
|
||||
}
|
||||
adapter.notifyDataSetChanged();
|
||||
|
||||
ThreadUtils.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.module.v2x.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
@@ -179,10 +180,10 @@ public class V2XSurroundingFragment extends MvpFragment<SurroundingEventView, Su
|
||||
//总条数
|
||||
String originStr = String.format(getContext().getResources().getString(R.string.v2x_surrounding_top_brief), exploreWayList.size());
|
||||
SpannableString spannableString = new SpannableString(originStr);
|
||||
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#256BFF")), 7, originStr.length() - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#459DFF")), 7, originStr.length() - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
//设置字体大小,true表示前面的字体大小20单位为dip
|
||||
spannableString.setSpan(new AbsoluteSizeSpan(36, true), 7, originStr.length() - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 7, originStr.length() - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new AbsoluteSizeSpan(38, true), 7, originStr.length() - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(new StyleSpan(Typeface.NORMAL), 7, originStr.length() - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
mTotalTv.setText(spannableString);
|
||||
} else {
|
||||
mTopLayout.setVisibility(View.GONE);
|
||||
|
||||
@@ -2,10 +2,21 @@ package com.mogo.module.v2x.presenter;
|
||||
|
||||
import com.mogo.commons.mvp.IView;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.module.common.entity.V2XHistoryScenarioData;
|
||||
import com.mogo.module.v2x.fragment.V2XShareEventsFragment;
|
||||
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
|
||||
import com.mogo.utils.WorkThreadHandler;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ShareEventsPresenter extends Presenter <V2XShareEventsFragment>{
|
||||
public ShareEventsPresenter(IView view) {
|
||||
super((V2XShareEventsFragment) view);
|
||||
|
||||
public ShareEventsPresenter(IView view) { super((V2XShareEventsFragment) view); }
|
||||
|
||||
public void loadShareEventList() {
|
||||
WorkThreadHandler.getInstance().post(() -> {
|
||||
mView.getShareEventResponse();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ public class V2XFatigueDrivingScenario extends AbsV2XScenario<V2XPushMessageEnti
|
||||
}
|
||||
} else {
|
||||
setV2XMessageEntity(v2XMessageEntity);
|
||||
Logger.w(V2XConst.MODULE_NAME, "要处理的场景已经存在,丢弃这次初始化");
|
||||
Logger.w(V2XConst.MODULE_NAME, "疲劳驾驶场景,要处理的场景已经存在,丢弃这次初始化");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,23 +114,23 @@ public class V2XFatigueDrivingScenario extends AbsV2XScenario<V2XPushMessageEnti
|
||||
|
||||
@Override
|
||||
public void onViewAdded(View view) {
|
||||
Logger.d(MODULE_NAME, "展示 Window 动画结束");
|
||||
Logger.d(MODULE_NAME, "疲劳驾驶场景 展示 Window 动画结束");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRemoved(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 动画结束");
|
||||
Logger.d(MODULE_NAME, "疲劳驾驶场景 关闭 Window 动画结束");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeViewAddAnim(View view) {
|
||||
Logger.d(MODULE_NAME, "展示 Window 开始");
|
||||
Logger.d(MODULE_NAME, "疲劳驾驶场景 展示 Window 开始");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeViewRemoveAnim(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 开始");
|
||||
Logger.d(MODULE_NAME, "疲劳驾驶场景 关闭 Window 开始");
|
||||
// 重置场景提示的消息
|
||||
setV2XMessageEntity(null);
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setFatigueDrivingWindowShow(TAG, false);
|
||||
|
||||
@@ -127,8 +127,7 @@ public class V2XRoadLiveCarScenario extends AbsV2XScenario<List<V2XEventShowEnti
|
||||
@Override
|
||||
public void onViewRemoved(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 动画结束");
|
||||
// 警报状态,true-警报中,false-警报结束
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setRoadLiveCarWindowShow(TAG, false);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -139,6 +138,8 @@ public class V2XRoadLiveCarScenario extends AbsV2XScenario<List<V2XEventShowEnti
|
||||
@Override
|
||||
public void beforeViewRemoveAnim(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 开始");
|
||||
// 警报状态,true-警报中,false-警报结束
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setRoadLiveCarWindowShow(TAG, false);
|
||||
// 打开直播后,窗口倒计时暂停关闭,直播被关闭后继续倒计时
|
||||
V2XRoadEventWindow window = (V2XRoadEventWindow) V2XRoadEventScenario.getInstance().getV2XWindow();
|
||||
window.startCountDown();
|
||||
|
||||
@@ -131,7 +131,6 @@ public class V2XPushEventScenario extends AbsV2XScenario<V2XPushMessageEntity> i
|
||||
@Override
|
||||
public void onViewRemoved(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 动画结束");
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setPushWindowShow(TAG, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -142,6 +141,7 @@ public class V2XPushEventScenario extends AbsV2XScenario<V2XPushMessageEntity> i
|
||||
@Override
|
||||
public void beforeViewRemoveAnim(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 开始");
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setPushWindowShow(TAG, false);
|
||||
// 重置场景提示的消息
|
||||
setV2XMessageEntity(null);
|
||||
clearPOI();
|
||||
|
||||
@@ -211,7 +211,6 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
|
||||
@Override
|
||||
public void onViewRemoved(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 动画结束");
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setRoadEventWindowShow(TAG, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -222,6 +221,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
|
||||
@Override
|
||||
public void beforeViewRemoveAnim(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 开始");
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setRoadEventWindowShow(TAG, false);
|
||||
// 重置场景提示的消息
|
||||
setV2XMessageEntity(null);
|
||||
clearPOI();
|
||||
|
||||
@@ -160,7 +160,6 @@ public class V2XSeekHelpScenario extends AbsV2XScenario<List<V2XMarkerEntity>> i
|
||||
@Override
|
||||
public void onViewRemoved(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 动画结束");
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setOtherSeekHelpWindowShow(TAG, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -171,6 +170,7 @@ public class V2XSeekHelpScenario extends AbsV2XScenario<List<V2XMarkerEntity>> i
|
||||
@Override
|
||||
public void beforeViewRemoveAnim(View view) {
|
||||
Logger.d(MODULE_NAME, "关闭 Window 开始");
|
||||
V2XServiceManager.getMoGoV2XStatusManager().setOtherSeekHelpWindowShow(TAG, false);
|
||||
// 重置场景提示的消息
|
||||
setV2XMessageEntity(null);
|
||||
clearPOI();
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 700 B After Width: | Height: | Size: 762 B |
Binary file not shown.
|
Before Width: | Height: | Size: 701 B After Width: | Height: | Size: 715 B |
Binary file not shown.
|
Before Width: | Height: | Size: 561 B After Width: | Height: | Size: 542 B |
@@ -7,4 +7,5 @@
|
||||
android:endColor="#3F4057"
|
||||
android:type="linear"
|
||||
android:angle="180"/>
|
||||
|
||||
</shape>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="24px" />
|
||||
<corners android:radius="@dimen/module_v2x_surrounding_refresh_bt_radius" />
|
||||
|
||||
<gradient
|
||||
android:endColor="#256BFF"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:angle="270"
|
||||
android:startColor="@android:color/transparent"
|
||||
android:endColor="#10121E"/>
|
||||
|
||||
</shape>
|
||||
@@ -84,7 +84,7 @@
|
||||
android:layout_marginTop="@dimen/module_v2x_surrounding_empty_tv_margin_top"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="周边5公里,暂无交通事件"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/transparent_white_30"
|
||||
android:textSize="@dimen/module_v2x_surrounding_top_textsize"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
android:layout_marginTop="1px"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="你可以试着分享一个事件给其他车主"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/transparent_white_30"
|
||||
android:textSize="@dimen/module_v2x_surrounding_top_textsize"
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
||||
@@ -91,4 +91,10 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/rgTabSelect" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60px"
|
||||
android:background="@drawable/v2x_shadow_shape_view"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
|
||||
</com.mogo.module.v2x.view.RoundConstraintLayout>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
android:layout_width="0.5px"
|
||||
android:layout_height="46px"
|
||||
android:layout_marginTop="20px"
|
||||
android:alpha="0.5"
|
||||
android:alpha="0.3"
|
||||
android:background="#FFFFFF" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -94,7 +94,7 @@
|
||||
android:layout_width="0.5px"
|
||||
android:layout_height="46px"
|
||||
android:layout_marginTop="20px"
|
||||
android:alpha="0.5"
|
||||
android:alpha="0.3"
|
||||
android:background="#FFFFFF" />
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="33px">
|
||||
android:layout_marginTop="20px">
|
||||
|
||||
<Button
|
||||
android:id="@+id/share_event_button"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20px"
|
||||
android:layout_marginRight="20px"
|
||||
android:layout_marginBottom="16px">
|
||||
android:layout_marginBottom="14px">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/road_case_card_view"
|
||||
@@ -90,6 +90,7 @@
|
||||
android:ellipsize="end"
|
||||
android:gravity="left"
|
||||
android:lines="1"
|
||||
android:paddingTop="2px"
|
||||
android:text="东城区北三环附近维多欧美"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="18px" />
|
||||
@@ -104,6 +105,7 @@
|
||||
android:alpha="0.5"
|
||||
android:gravity="left"
|
||||
android:text="时间:"
|
||||
android:paddingTop="2px"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="16px" />
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -13,13 +13,6 @@
|
||||
android:overScrollMode="never"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"></androidx.recyclerview.widget.RecyclerView>
|
||||
|
||||
<!-- <RelativeLayout-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent"-->
|
||||
<!-- android:layout_centerInParent="true">-->
|
||||
|
||||
<!-- -->
|
||||
<!-- </RelativeLayout>-->
|
||||
<com.mogo.module.v2x.view.V2XNetworkLoadingView
|
||||
android:id="@+id/network_loading_imageview"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<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/loading_liner_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
@@ -11,8 +13,12 @@
|
||||
android:layout_height="200px"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="100px"
|
||||
android:background="@drawable/v_to_x_loading_car0000" />
|
||||
android:background="@drawable/v_to_x_loading_car0000"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintVertical_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/loading_text"
|
||||
@@ -22,9 +28,13 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_gravity="top|center"
|
||||
android:alpha="0.7"
|
||||
android:paddingTop="14px"
|
||||
android:text="正在获取信息…"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="18px" />
|
||||
android:textSize="18px"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/loading_imageview"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/refresh_button"
|
||||
@@ -34,9 +44,12 @@
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_gravity="top|center"
|
||||
android:layout_marginTop="34px"
|
||||
android:background="@drawable/bg_v2x_event_live_show"
|
||||
android:background="@drawable/v2xt_dw_common_corner_bkg_light"
|
||||
android:text="刷新"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="18px" />
|
||||
android:textSize="18px"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loading_imageview" />
|
||||
|
||||
</RelativeLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -23,7 +23,7 @@
|
||||
android:gravity="center"
|
||||
android:text="周边5公里,暂无交通事件\n
|
||||
你可以试着分享一个交通事件给其他车主"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textColor="@color/transparent_white_30"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintBottom_toTopOf="@+id/btnShear"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
<dimen name="module_v2x_surrounding_top_height">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_width">90px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_height">36px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">50px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_tv_margin_top">15px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_width">150px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_height">48px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_margin_top">32px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_maigin_left">123px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_maigin_left">130px</dimen>
|
||||
<dimen name="module_v2x_surrounding_root_margin_left">10px</dimen>
|
||||
<dimen name="module_v2x_surrounding_margin_left">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_image_height">190px</dimen>
|
||||
@@ -46,6 +46,7 @@
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">12px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">8px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_textsize">18px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_left_textsize">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">16px</dimen>
|
||||
|
||||
@@ -32,12 +32,12 @@
|
||||
<dimen name="module_v2x_surrounding_top_height">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_width">90px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_height">36px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">50px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_tv_margin_top">15px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_width">150px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_height">48px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_margin_top">32px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_maigin_left">123px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_maigin_left">130px</dimen>
|
||||
<dimen name="module_v2x_surrounding_root_margin_left">10px</dimen>
|
||||
<dimen name="module_v2x_surrounding_margin_left">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_image_height">190px</dimen>
|
||||
@@ -47,6 +47,7 @@
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">12px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">8px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_textsize">18px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_left_textsize">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">16px</dimen>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<color name="live_video_background_color">#3F4057</color>
|
||||
<color name="surrounding_card_background">#10121E</color>
|
||||
<color name="white">#FFFFFF</color>
|
||||
<color name="transparent_white_30">#4DFFFFFF</color>
|
||||
<color name="transparent_white_30">#B3FFFFFF</color>
|
||||
<color name="surrounding_item_bottom_color">#1F2131</color>
|
||||
<color name="share_event_item_bg_color">#1F2131</color>
|
||||
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
<dimen name="module_v2x_surrounding_top_height">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_width">90px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_height">36px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">50px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_tv_margin_top">15px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_width">150px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_height">48px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_margin_top">32px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_maigin_left">123px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_maigin_left">130px</dimen>
|
||||
<dimen name="module_v2x_surrounding_root_margin_left">10px</dimen>
|
||||
<dimen name="module_v2x_surrounding_margin_left">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_image_height">190px</dimen>
|
||||
@@ -49,6 +49,7 @@
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">12px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">8px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_textsize">18px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_left_textsize">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">16px</dimen>
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
</declare-styleable>
|
||||
|
||||
<style name="customRatingBarStyle" parent="@style/Widget.AppCompat.RatingBar">
|
||||
<item name="android:minHeight">18px</item>
|
||||
<item name="android:maxHeight">20px</item>
|
||||
<item name="android:maxWidth">16px</item>
|
||||
<item name="android:minWidth">16px</item>
|
||||
<item name="android:spacing">3.7px</item>
|
||||
<item name="android:minHeight">16px</item>
|
||||
<item name="android:maxHeight">16px</item>
|
||||
<item name="android:maxWidth">19px</item>
|
||||
<item name="android:minWidth">19px</item>
|
||||
<item name="android:spacing">4px</item>
|
||||
<item name="android:numStars">5</item>
|
||||
<item name="android:rating">1</item>
|
||||
<item name="android:stepSize">0.5</item>
|
||||
|
||||
Reference in New Issue
Block a user