Merge branch 'dev' into demo/shunyi_v2v_merge

This commit is contained in:
tongchenfei
2020-08-19 16:12:59 +08:00
34 changed files with 215 additions and 80 deletions

View File

@@ -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";
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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));

View File

@@ -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())

View File

@@ -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() {

View File

@@ -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()

View File

@@ -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();
}
});
}

View File

@@ -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);

View File

@@ -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();
});
}
}

View File

@@ -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);

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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

View File

@@ -7,4 +7,5 @@
android:endColor="#3F4057"
android:type="linear"
android:angle="180"/>
</shape>

View File

@@ -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"

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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

View File

@@ -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"

View File

@@ -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>

View File

@@ -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"

View File

@@ -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>

View File

@@ -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"

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>