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

This commit is contained in:
wangcongtao
2020-11-06 20:34:05 +08:00
30 changed files with 103 additions and 110 deletions

1
.idea/gradle.xml generated
View File

@@ -77,6 +77,7 @@
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>

2
.idea/misc.xml generated
View File

@@ -4,7 +4,7 @@
<asm skipDebug="false" skipFrames="false" skipCode="false" expandFrames="false" />
<groovy codeStyle="LEGACY" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project>

View File

@@ -21,6 +21,7 @@ import com.mogo.module.main.service.MogoMainService;
import com.mogo.module.media.MediaConstants;
import com.mogo.module.push.base.PushUIConstants;
import com.mogo.module.service.ServiceConst;
import com.mogo.module.share.constant.ShareConstants;
import com.mogo.module.v2x.V2XConst;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -74,7 +75,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) );
}
// MogoModulePaths.addBaseModule( new MogoModule( TanluConstants.TAG, TanluConstants.MODEL_NAME ) );
MogoModulePaths.addBaseModule( new MogoModule( ShareConstants.TAG, ShareConstants.MODEL_NAME ) );
MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_TANLU_API, "TanluApi" ) );
MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

View File

@@ -60,7 +60,7 @@
<dimen name="module_ext_paddingRight">32px</dimen>
<dimen name="module_ext_paddingLeft">32px</dimen>
<dimen name="module_ext_notice_margin_start">78px</dimen>
<dimen name="module_ext_notice_margin_start">0px</dimen>
<dimen name="module_ext_voice_textSize">22px</dimen>
<dimen name="module_ext_time_textSize">28px</dimen>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 KiB

After

Width:  |  Height:  |  Size: 450 KiB

View File

@@ -134,34 +134,6 @@ public class TanluManager implements IMogoMarkerClickListener,
initListener();
}
// @Override
// public void init(Context context) {
//
// }
// @Override
// public void searchRoadCondition(String intentStr, String data, String city, String keywords) {
// Disposable disposable = Single.create((SingleOnSubscribe<Intent>) emitter -> {
// Logger.d(TAG, "searchRoadCondition---> intentStr: " + intentStr + " data: " + data + " " +
// "city: " + city + " keywords: " + keywords);
// Intent intent = new Intent(intentStr);
// intent.putExtra("data", data);
// intent.putExtra("city", city);
// intent.putExtra("keywords", keywords);
// Thread.sleep(3000);
// emitter.onSuccess(intent);
// }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(intent -> {
// Logger.d(TAG, "searchRoadCondition---go real share");
// realShare(intentStr, intent);
// });
// }
//
// @Override
// public void shareSuccess(String poiType, MogoLatLng location) {
// MarkerInfo markerInfo = new MarkerInfo(poiType, "", location.lon, location.lat, true, "1");
// EventBus.getDefault().post(markerInfo);
// }
private void initInterface() {
//地图marker地图操作
mMarkerManager = TanluServiceManager.getMapService().getMarkerManager(mContext);

View File

@@ -135,7 +135,7 @@ class BlockStrategy(private val context: Context, private val apis: IMogoService
// 超过阈值,准备判断是否拥堵
startRecordDistanceTime = 0L
if (tripDistance < 1000 && isClose() && currentSpeed < 40) {
Logger.d(TAG, "根据距离,判定为拥堵,准备上报")
Logger.d(TAG, "根据距离,判定为拥堵,准备上报, tripDistance: $tripDistance, frontDistance: $frontDistance, currentSpeed: $currentSpeed")
val p = TanluUploadParams(IMogoTanluProvider.TYPE_BLOCK, IMogoTanluProvider.UPLOAD_FROM_STRATEGY_BLOCK_AUTO)
val latLon = MogoLatLng(lat, lon)
p.location = latLon
@@ -144,6 +144,8 @@ class BlockStrategy(private val context: Context, private val apis: IMogoService
Logger.d(TAG, "根据距离,没有判定为拥堵, tripDistance: $tripDistance, frontDistance: $frontDistance, currentSpeed: $currentSpeed")
}
tripDistance = 0
lastLat = 0.0
lastLon = 0.0
}
}
}
@@ -152,7 +154,9 @@ class BlockStrategy(private val context: Context, private val apis: IMogoService
* 没有有效前车距离或者前车距离小于5m
*/
private fun isClose(): Boolean {
return frontDistance in 1..4
val r = (frontDistance in 1..4) || (frontDistance == -1)
Logger.d(TAG,"r: $r")
return r
}
private fun uploadAverageSpeed(average: Float) {

View File

@@ -25,6 +25,7 @@ import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerExploreWayItem;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.entity.V2XMessageEntity;
@@ -50,7 +51,7 @@ import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
import com.mogo.utils.storage.SharedPrefsMgr;
import static com.mogo.module.v2x.VideoInitKt.initVideo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@@ -229,6 +230,12 @@ public class V2XModuleProvider implements
Log.d(TAG,"onMarkerClicked2222");
//点击的marker的具体数据
MarkerExploreWay exploreWay = extractFromMarker(marker);
MarkerExploreWayItem item = exploreWay.getItems().get(0);
String path = item.getUrl();
if (path.contains(".mp4")){
initVideo();
}
V2XRoadEventEntity roadEventEntity = new V2XRoadEventEntity();
roadEventEntity.setNoveltyInfo(exploreWay);
roadEventEntity.setPoiType(exploreWay.getPoiType());
@@ -256,6 +263,7 @@ public class V2XModuleProvider implements
}
});
// 响应违章停车的POI点击
V2XServiceManager
.getMogoRegisterCenter()

View File

@@ -61,12 +61,12 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
false);
shareEmptyViewHolder holder = new shareEmptyViewHolder(v);
return holder;
} else if (viewType == V2XShareEventItemEnum.ITEM_TYPE_LOAD_MORE_STATUS){
} else if (viewType == V2XShareEventItemEnum.ITEM_TYPE_LOAD_MORE_STATUS) {
View v = shareLayoutInflater.inflate(R.layout.item_v2x_event_share_load_more, parent,
false);
shareLoadStatusViewHolder holder = new shareLoadStatusViewHolder(v);
return holder;
}else {
} else {
View v = shareLayoutInflater.inflate(R.layout.footer_nomore_view, parent,
false);
shareLoadNoMoreViewHolder holder = new shareLoadNoMoreViewHolder(v);
@@ -84,7 +84,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
if (data != null) {
String shareNum = String.valueOf(data.getShareNum());
String likeNum = String.valueOf(data.getLikeNum());
double enthusiasmIndex = data.getEnthusiasmIndex();
double enthusiasmIndex = data.getEnthusiasmIndex() <= 5 ? data.getEnthusiasmIndex() : 5;
if (shareNum != null) {
((shareDescriptionViewHolder) holder).shareNumTextView.setText(shareNum);
}
@@ -101,7 +101,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
if (data != null) {
String poitype = data.getPoiType();
String address = data.getUploadAddress();
String time = DateTimeUtils.getTimeText(data.getUploadTimestamp(),DateTimeUtils.MM_Yue_dd_Ri_HH_mm);
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());
@@ -213,7 +213,8 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
public shareLoadStatusViewHolder(@NonNull View itemView) {
super(itemView);
statusButton = itemView.findViewById(R.id.event_share_load_status);;
statusButton = itemView.findViewById(R.id.event_share_load_status);
;
statusButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -225,8 +226,8 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
}
/*
* 没有更多记录了
* */
* 没有更多记录了
* */
class shareLoadNoMoreViewHolder extends RecyclerView.ViewHolder {
public shareLoadNoMoreViewHolder(@NonNull View itemView) {

View File

@@ -147,7 +147,7 @@ public class V2XEventUgcVH extends V2XBaseViewHolder<V2XEventShowEntity> {
* 对道路事件进行反馈
*/
void manualMarkingTrafficJam(int status) {
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已反馈", null);
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("谢谢,您的反馈将帮助更多车友。", null);
V2XServiceManager
.getV2XRefreshModel()
.manualMarkingTrafficJam(

View File

@@ -213,7 +213,11 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
public fun showPanelWithSelectedItem(item: Int) {
mV2XShareEventsFragment.fromVoice = true
if (isPanelShow()) {
selectWithItem(item)
if (mRbShareEvents?.isChecked == true) {
mV2XShareEventsFragment.ttsForVoiceCheck()
} else {
selectWithItem(item)
}
} else {
showPanel()
selectWithItem(item)

View File

@@ -39,6 +39,7 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
public Boolean fromVoice = false;
private int pageNum = 1;
private V2XShareNetworkModel v2XShareNetworkModel;
private V2XShareEventDescription resultData;
//动画
private NetworkLoadingView loadingView;
@@ -94,7 +95,7 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
@Override
public void onSuccess(Object result) {
if (result instanceof V2XShareEventDescription) {
V2XShareEventDescription resultData = (V2XShareEventDescription) result;
resultData = (V2XShareEventDescription) result;
if (resultData != null && resultData.getResult() != null
&& resultData.getResult().getEnthusiasmIndex() != null) {
@@ -104,7 +105,7 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
dataArrayList.add(resultData.getResult().getEnthusiasmIndex());
if (fromVoice == true) {
try {
ttsWithResultData(resultData);
ttsForVoiceCheck();
} catch (Exception e) {
}
@@ -139,10 +140,10 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
/*
* 语音打开我的分享,进行播报
* */
private void ttsWithResultData(V2XShareEventDescription data) {
int shareNum = data.getResult().getEnthusiasmIndex().getShareNum();
int approveNum = data.getResult().getEnthusiasmIndex().getLikeNum();
double enthusiasm = data.getResult().getEnthusiasmIndex().getEnthusiasmIndex();
public void ttsForVoiceCheck() {
int shareNum = resultData.getResult().getEnthusiasmIndex().getShareNum();
int approveNum = resultData.getResult().getEnthusiasmIndex().getLikeNum();
double enthusiasm = resultData.getResult().getEnthusiasmIndex().getEnthusiasmIndex();
Log.d(TAG, String.valueOf(enthusiasm)+"TTS播报热心指数个数");
String ttsString = "";
if (enthusiasm <= 2) {
@@ -156,6 +157,7 @@ public class V2XShareEventsFragment extends MvpFragment<V2XShareEventsFragment,
+ "颗星,实至名归,老铁你就是大家一直赞扬的热心车友,请继续保持。";
}
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(ttsString, null);
fromVoice = false;
}
/*

View File

@@ -191,25 +191,26 @@ public class V2XCarForHelpScenario extends AbsV2XScenario<Boolean> implements IM
if (v2xFaultHelpDialog == null) {
v2xFaultHelpDialog = new V2XSeekHelpDialog(V2XServiceManager.getContext());
}
v2xFaultHelpDialog.setOnClickListener(new V2XSeekHelpDialog.OnClickListener() {
@Override
public void onClickLeft() {
//放弃求助
/* if (V2XServiceManager.getMoGoStatusManager().isSeekHelping()) {
V2XServiceManager.getMoGoStatusManager().setSeekHelping(TAG, false);
}*/
closeButton();
v2xFaultHelpDialog.dismiss();
}
@Override
public void onClickRight() {
//继续求助
v2xFaultHelpDialog.dismiss();
}
});
v2xFaultHelpDialog.show();
// v2xFaultHelpDialog.setOnClickListener(new V2XSeekHelpDialog.OnClickListener() {
// @Override
// public void onClickLeft() {
// //放弃求助
// /* if (V2XServiceManager.getMoGoStatusManager().isSeekHelping()) {
// V2XServiceManager.getMoGoStatusManager().setSeekHelping(TAG, false);
// }*/
// closeButton();
// v2xFaultHelpDialog.dismiss();
// }
//
// @Override
// public void onClickRight() {
// //继续求助
// v2xFaultHelpDialog.dismiss();
//
// }
// });
// v2xFaultHelpDialog.show();
closeButton();
}

View File

@@ -84,15 +84,18 @@ public class V2XSeekHelpDialog extends ConstraintLayout implements View.OnClickL
public void show() {
try {
Logger.d(TAG, "使用windowManager实现");
if ( windowManager == null ) {
windowManager = new WindowManagerView.Builder(
V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext()
).contentView(this).build();
}
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("确定要解除求助状态吗");
unRegisterVoiceCmd();
registerVoiceCmd();
windowManager.show();
// if ( windowManager == null ) {
// windowManager = new WindowManagerView.Builder(
// V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext()
// ).contentView(this).build();
// }
// AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("确定要解除求助状态吗");
// unRegisterVoiceCmd();
// registerVoiceCmd();
// windowManager.show();
handleLeft();
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已取消");
} catch (Exception e) {
e.printStackTrace();
}
@@ -120,7 +123,7 @@ public class V2XSeekHelpDialog extends ConstraintLayout implements View.OnClickL
if (mListener != null) {
mListener.onClickLeft();
}
unRegisterVoiceCmd();
// unRegisterVoiceCmd();
}
//继续求助
@@ -128,7 +131,7 @@ public class V2XSeekHelpDialog extends ConstraintLayout implements View.OnClickL
if (mListener != null) {
mListener.onClickRight();
}
unRegisterVoiceCmd();
// unRegisterVoiceCmd();
}
private void registerVoiceCmd() {

View File

@@ -19,15 +19,12 @@ import com.mogo.module.v2x.listener.V2XWindowStatusListener;
import com.mogo.module.v2x.scenario.view.IV2XWindow;
import com.mogo.module.v2x.view.SimpleCoverVideoPlayer;
import com.mogo.utils.BitmapHelper;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack;
import com.shuyu.gsyvideoplayer.utils.GSYVideoType;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoView;
import java.util.ArrayList;
import static com.mogo.module.v2x.VideoInitKt.initVideo;
import static com.shuyu.gsyvideoplayer.utils.GSYVideoType.SCREEN_MATCH_FULL;
/**
@@ -71,7 +68,6 @@ public class V2XRoadVideoWindow extends RelativeLayout implements
private void initView(Context context) {
LayoutInflater.from(mContext).inflate(R.layout.window_road_video_layout, this);
initVideo();
playImageView = this.findViewById(R.id.window_video_play);
thumbnailImage = this.findViewById(R.id.thumbnail_image);
simpleCoverVideoPlayer = this.findViewById(R.id.roadVideoView);

View File

@@ -83,12 +83,12 @@ class SimpleCoverVideoPlayer : StandardGSYVideoPlayer {
}
override fun updateStartImage() {
super.updateStartImage()
when (mCurrentState) {
GSYVideoView.CURRENT_STATE_PAUSE -> start.visibility = View.VISIBLE
else -> start.visibility = View.INVISIBLE
}
// super.updateStartImage()
//
// when (mCurrentState) {
// GSYVideoView.CURRENT_STATE_PAUSE -> start.visibility = View.VISIBLE
// else -> start.visibility = View.INVISIBLE
// }
}
fun setFullClickListener(listener: OnClickListener) {
@@ -167,6 +167,7 @@ class SimpleCoverVideoPlayer : StandardGSYVideoPlayer {
v?.let {
when (v) {
start -> {
onVideoResume()
}
else -> {
}

View File

@@ -239,10 +239,10 @@ public class V2XVoiceConstants {
// 封路
public static final String COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_YES_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_YES_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_YES_UN_WAKEUP_WORDS = {"封路了", "封了", "有封路", "确定"};
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_YES_UN_WAKEUP_WORDS = {"封路了", "封了", "封路", "有封路", "确定"};
public static final String COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_NO_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_NO_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_NO_UN_WAKEUP_WORDS = {"没注意", "没看到", "没有", "没封路", "取消", "关闭"};
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_FENG_LU_NO_UN_WAKEUP_WORDS = {"不封路","没注意", "没看到", "没有", "没封路","无封路", "取消", "关闭"};
// 事故
@@ -250,7 +250,7 @@ public class V2XVoiceConstants {
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GU_YES_UN_WAKEUP_WORDS = {"有事故", "存在交通事故", "确定"};
public static final String COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GU_NO_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GU_NO_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GU_NO_UN_WAKEUP_WORDS = {"没注意", "没有事故", "没看到", "没有", "取消", "关闭"};
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GU_NO_UN_WAKEUP_WORDS = {"没注意", "没有事故", "无事故", "没看到", "没有", "取消", "关闭"};
// 道路施工
@@ -258,7 +258,7 @@ public class V2XVoiceConstants {
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_YES_UN_WAKEUP_WORDS = {"", "在施工", "有施工", "确定"};
public static final String COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP_WORDS = {"没注意", "没看到", "没有施工", "很正常", "取消", "关闭"};
public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP_WORDS = {"没注意", "没看到", "没有施工","无施工", "很正常", "取消", "关闭"};
static {

View File

@@ -7,7 +7,7 @@
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp" />
android:top="3dp" />
<solid android:color="#00000000" />
<corners android:radius="@dimen/dp_26" />
</shape>

View File

@@ -28,8 +28,7 @@
android:layout_width="@dimen/dp_110"
android:layout_height="@dimen/dp_110"
android:layout_centerInParent="true"
android:scaleType="centerCrop"
android:src="@drawable/v2x_icon_live_logo" />
android:scaleType="centerCrop" />
</RelativeLayout>
@@ -72,13 +71,13 @@
<!--GSYVideoControlView mLoadingProgressBar-->
//加载中圈圈
<!-- <ProgressBar-->
<!-- android:id="@+id/loading"-->
<!-- android:layout_width="@dimen/dp_56"-->
<!-- android:layout_height="@dimen/dp_56"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:layout_centerVertical="true"-->
<!-- android:indeterminateTint="#256BFF"-->
<!-- android:visibility="gone" />-->
<ProgressBar
android:id="@+id/loading"
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_56"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminateTint="#256BFF"
android:visibility="gone" />
</RelativeLayout>

View File

@@ -105,7 +105,7 @@
<!---->
<dimen name="v2x_right_context_margin">460px</dimen>
<dimen name="v2x_video_window_height_content">464px</dimen>
<dimen name="v2x_video_window_height">474px</dimen>
<dimen name="v2x_video_window_height_content">370px</dimen>
<dimen name="v2x_video_window_height">380px</dimen>
</resources>

View File

@@ -100,13 +100,13 @@
<dimen name="module_v2x_event_parking_text_size">19px</dimen>
<!--适配 V2X 弹窗 UI-->
<dimen name="module_v2x_event_panel_btn_x">574px</dimen>
<dimen name="module_v2x_event_panel_in_launcher_btn_x">480px</dimen>
<dimen name="module_v2x_event_panel_btn_x">572px</dimen>
<dimen name="module_v2x_event_panel_in_launcher_btn_x">486px</dimen>
<dimen name="module_v2x_event_panel_btn_y">384px</dimen>
<!---->
<dimen name="v2x_right_context_margin">460px</dimen>
<dimen name="v2x_video_window_height_content">464px</dimen>
<dimen name="v2x_video_window_height">474px</dimen>
<dimen name="v2x_video_window_height_content">370px</dimen>
<dimen name="v2x_video_window_height">380px</dimen>
</resources>