diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt
index 836d01608a..290bbba5d7 100644
--- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt
+++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt
@@ -136,6 +136,7 @@ class CosStatusController : CosStatusCallback {
}
Log.d(TAG, "videoAndThumbMap ${videoAndThumbMap}")
if (videoAndThumbMap.size == 2) {
+ trackUploadCos(4)
Log.d(TAG, "videoAndThumbMap.size == 2 ")
var locationInfo = LocationUtil.getInstance().getLocationInfo()
val locationStr: String = Gson().toJson(locationInfo)
@@ -149,7 +150,6 @@ class CosStatusController : CosStatusCallback {
sendGetInfoFailedReceiver("100")
}
} else {
- trackUploadCos(4)
//分享成功,并打点,如果是上报拥堵,需要takeVideo
LatLngStickyEventBus.getInstance()
.postSticky(GetImageSuccessEvent(downloadUrl, mType))
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png
index d2531f926e..557649bc77 100644
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png
index 11da8364ea..004af0e8eb 100644
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png
index e9ee00f563..66e03cd5ec 100644
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png
index b10ed110c7..1e9484f335 100644
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png
index 41e32da5b5..9b9fc95fe5 100644
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png differ
diff --git a/modules/mogo-module-guide/src/main/res/values/strings.xml b/modules/mogo-module-guide/src/main/res/values/strings.xml
index 456983286e..653d0616bf 100644
--- a/modules/mogo-module-guide/src/main/res/values/strings.xml
+++ b/modules/mogo-module-guide/src/main/res/values/strings.xml
@@ -6,9 +6,9 @@
跳过
欢迎使用蘑菇出行,您下次可以直接对我说,打开蘑菇出行来直接进入应用,点击左下方按钮进行摄像头设置
-
+ 左边是道路事件的播报,点击右边地图上的事件标示可以查看事件详情
这里是道路信息显示,点击后可查看事件详情
这里是事件汇总,您可以查看您参与的事件和您的分享记录
- 点击这里可以把路况分享给其他车友,或者直接对我说,上报路况
+ 更多设置,在左上角的设置功能中,点击右下角的分享,可以把路况分享给其他车友
我们希望让您的出行更加安全高效,更多功能等着你去发现,快去体验体验吧
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index 5f69da7e64..bf7b26ad6a 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -53,7 +53,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/module_main_id_entrance_fragment_container_marginLeft"
- android:padding="@dimen/module_main_entrance_fragment_container_padding" />
+ android:padding="@dimen/module_main_event_fragment_container_padding" />
635px
1263px
+ 10px
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml
index 89b96d6620..ba383b73b4 100644
--- a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml
@@ -25,4 +25,5 @@
340px
1313px
+ 10px
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml
index a1a96a40ba..7d45c1632b 100644
--- a/modules/mogo-module-main/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-main/src/main/res/values/dimens.xml
@@ -24,7 +24,7 @@
350px
16px
16px
-
658px
+ 4px
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java
index cd1ec6fa3b..f9e0479657 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java
@@ -22,8 +22,11 @@ import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant;
import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
+import com.mogo.module.common.dialog.BaseFloatDialog;
import com.mogo.module.share.bean.StepAfterAuth;
import com.mogo.module.share.constant.ShareConstants;
+import com.mogo.module.share.dialog.FixableShareDialog;
+import com.mogo.module.share.dialog.GridFixableShareDialog;
import com.mogo.module.share.dialog.LaucherShareDialog;
import com.mogo.module.share.manager.ServiceApisManager;
import com.mogo.module.share.manager.UploadHelper;
@@ -95,7 +98,9 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
private static final String TAG = "ShareControl";
private Context mContext;
- private LaucherShareDialog mShareDialog;
+// private LaucherShareDialog mShareDialog;
+
+ private BaseFloatDialog mShareDialog;
private IMogoAuthorizeModuleManager authorizeModuleManager;
private IMogoIntentManager intentManager;
@@ -125,7 +130,7 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo
private void realShowDialog() {
if (mShareDialog == null) {
Logger.d(TAG,"realShowDialog context : " + mContext);
- mShareDialog = new LaucherShareDialog(mContext);
+ mShareDialog = new GridFixableShareDialog(mContext);
mShareDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt
new file mode 100644
index 0000000000..bb720041a5
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt
@@ -0,0 +1,47 @@
+package com.mogo.module.share.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.mogo.module.share.R
+import com.mogo.module.share.bean.FixableButton
+import com.mogo.utils.glide.GlideApp
+
+/**
+ * 可配置按钮适配器
+ *
+ * @author tongchenfei
+ */
+class ShareBtnAdapter(val context:Context): RecyclerView.Adapter() {
+ private val btnList = ArrayList()
+ var btnClickListener:((btn:FixableButton)->Unit)? = null
+ fun setFixableButtonList(btns:ArrayList) {
+ btnList.clear()
+ btnList.addAll(btns)
+ notifyDataSetChanged()
+ }
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ShareBtnViewHolder {
+ val view = LayoutInflater.from(context).inflate(R.layout.item_share_btn, parent,false)
+ return ShareBtnViewHolder(view)
+ }
+
+ override fun getItemCount(): Int =btnList.size
+
+ override fun onBindViewHolder(holder: ShareBtnViewHolder, position: Int) = holder.bindData(btnList[position])
+
+ inner class ShareBtnViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
+ private val ivIcon:ImageView = itemView.findViewById(R.id.ivShareIcon)
+ private val tvContent:TextView = itemView.findViewById(R.id.tvShareContent)
+ fun bindData(btn: FixableButton) {
+ GlideApp.with(context).load(btn.iconRes).into(ivIcon)
+ tvContent.text = btn.content
+ ivIcon.setOnClickListener {
+ btnClickListener?.invoke(btn)
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt
new file mode 100644
index 0000000000..e52d73c420
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt
@@ -0,0 +1,9 @@
+package com.mogo.module.share.bean
+
+import com.mogo.module.share.R
+
+/**
+ * 可配置按钮封装
+ * @author tongchenfei
+ */
+data class FixableButton(val id:Int = 0,val poiType:String = "10007",val iconUrl:String = "", val iconRes:Int = R.drawable.share_block_up, val content:String="拥堵")
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt
new file mode 100644
index 0000000000..0148f6fe3a
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt
@@ -0,0 +1,140 @@
+package com.mogo.module.share.dialog
+
+import android.content.Context
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.commons.debug.DebugConfig
+import com.mogo.module.common.dialog.BaseFloatDialog
+import com.mogo.module.common.utils.CarSeries
+import com.mogo.module.share.R
+import com.mogo.module.share.adapter.ShareBtnAdapter
+import com.mogo.module.share.bean.FixableButton
+import com.mogo.module.share.manager.ISeekHelpListener
+import com.mogo.module.share.manager.SeekHelpManager.removeSeekHelpListener
+import com.mogo.module.share.manager.UploadHelper.upload
+import com.mogo.service.IMogoServiceApis
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.analytics.IMogoAnalytics
+import com.mogo.service.statusmanager.IMogoStatusManager
+import com.mogo.service.tanlu.IMogoTanluProvider
+import com.mogo.service.tanlu.TanluUploadParams
+import com.mogo.utils.logger.Logger
+import kotlin.random.Random
+
+
+/**
+ * 可动态设置内容的Dialog
+ * 由于和左侧Adas冲突,改成了windowManager方式实现,这种实现方式的问题是,无法监测back键的事件
+ * @since 2020-01-10
+ * @author tongchenfei
+ */
+class FixableShareDialog(private val mContext: Context) : BaseFloatDialog(mContext) {
+ private val isShown = false
+ private val mAnalytics: IMogoAnalytics
+ private val mStatusManager: IMogoStatusManager
+ private val mApis: IMogoServiceApis
+ private lateinit var btnRecycler: RecyclerView
+ private lateinit var btnAdapter:ShareBtnAdapter
+
+ private fun setWrapContent() {
+ val window = window
+ if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD) {
+ if (window != null) {
+ val lp = window.attributes
+ lp.width = 1024
+ lp.height = 600
+ window.attributes = lp
+ }
+ } else if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) {
+ if (window != null) {
+ val lp = window.attributes
+ lp.width = 1920
+ lp.height = 1080
+ window.attributes = lp
+ }
+ } else {
+ if (window != null) {
+ val lp = window.attributes
+ lp.width = 1024
+ lp.height = 600
+ window.attributes = lp
+ }
+ }
+ }
+
+ private fun initView() {
+ Logger.d(TAG, "test-------3")
+ setContentView(R.layout.launcher_dialog_share_with_gride)
+ setWrapContent()
+
+ btnRecycler = findViewById(R.id.moduleShareBtnRecyclerView)
+ val manager = GridLayoutManager(mContext, 5, GridLayoutManager.VERTICAL, false)
+ manager.isAutoMeasureEnabled = true
+ btnAdapter = ShareBtnAdapter(mContext)
+ btnRecycler.adapter = btnAdapter
+ btnAdapter.btnClickListener = {
+ Logger.d(TAG, "btn click: $it")
+ randomGenerateBtn()
+ }
+ randomGenerateBtn()
+ }
+
+ private fun randomGenerateBtn(){
+ val random = Random.nextInt(1, 10)
+ val list = ArrayList()
+ for (i in 0 until random) {
+ list.add(FixableButton())
+ }
+ btnAdapter.setFixableButtonList(list)
+ }
+
+ private val seekListener: ISeekHelpListener = object : ISeekHelpListener {
+ override fun onSeekHelpSuccess() {
+ Logger.d(TAG, "上报求助完成,成功")
+ removeSeekHelpListener(this)
+ dismiss()
+ }
+
+ override fun onSeekHelpFail() {
+ Logger.d(TAG, "上报求助完成,失败")
+ removeSeekHelpListener(this)
+ dismiss()
+ }
+ }
+
+ /**
+ * 发送广播 1拥堵,2交通检查,3封路
+ */
+ private fun sendShareReceiver(type: String) {
+ val params = TanluUploadParams(type, IMogoTanluProvider.UPLOAD_FROM_USER)
+ upload(mContext, params, true)
+ }
+
+ override fun show() {
+ Logger.d(TAG, "onShow====")
+ if (!DebugConfig.isLauncher()) {
+ mApis.adasControllerApi.closeADAS()
+ }
+ super.show()
+ }
+
+ override fun dismiss() {
+ Logger.d(TAG, "onDismiss=====")
+ if (!DebugConfig.isLauncher() && mApis.statusManagerApi.isMainPageOnResume) {
+ mApis.adasControllerApi.showADAS()
+ }
+ super.dismiss()
+ }
+
+ companion object {
+ private const val TAG = "FixableShareDialog"
+ }
+
+ init {
+ mApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(mContext) as IMogoServiceApis
+ mAnalytics = mApis.analyticsApi
+ mStatusManager = mApis.statusManagerApi
+ initView()
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt
new file mode 100644
index 0000000000..fbbef80697
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt
@@ -0,0 +1,135 @@
+package com.mogo.module.share.dialog
+
+import android.content.Context
+import android.widget.FrameLayout
+import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.commons.debug.DebugConfig
+import com.mogo.module.common.dialog.BaseFloatDialog
+import com.mogo.module.common.utils.CarSeries
+import com.mogo.module.share.R
+import com.mogo.module.share.bean.FixableButton
+import com.mogo.module.share.manager.GridBtnManager
+import com.mogo.module.share.manager.ISeekHelpListener
+import com.mogo.module.share.manager.SeekHelpManager
+import com.mogo.module.share.manager.SeekHelpManager.seekHelp
+import com.mogo.module.share.manager.UploadHelper
+import com.mogo.service.IMogoServiceApis
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.analytics.IMogoAnalytics
+import com.mogo.service.statusmanager.IMogoStatusManager
+import com.mogo.service.tanlu.IMogoTanluProvider
+import com.mogo.service.tanlu.TanluUploadParams
+import com.mogo.utils.logger.Logger
+import kotlin.random.Random
+
+class GridFixableShareDialog(context:Context):BaseFloatDialog(context) {
+ private val isShown = false
+ private val mAnalytics: IMogoAnalytics
+ private val mStatusManager: IMogoStatusManager
+ private val mApis: IMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context) as IMogoServiceApis
+
+ private fun setWrapContent() {
+ val window = window
+ if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD) {
+ if (window != null) {
+ val lp = window.attributes
+ lp.width = 1024
+ lp.height = 600
+ window.attributes = lp
+ }
+ } else if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) {
+ if (window != null) {
+ val lp = window.attributes
+ lp.width = 1920
+ lp.height = 1080
+ window.attributes = lp
+ }
+ } else {
+ if (window != null) {
+ val lp = window.attributes
+ lp.width = 1024
+ lp.height = 600
+ window.attributes = lp
+ }
+ }
+ }
+ private lateinit var gridBtnManager:GridBtnManager
+ private fun initView() {
+ Logger.d(TAG, "test-------3")
+ setContentView(R.layout.dialog_share_with_gridlayout)
+ setWrapContent()
+ gridBtnManager = GridBtnManager(context,findViewById(R.id.moduleShareBtnGridLayout))
+ gridBtnManager.setShareClickListener {
+ Logger.d(TAG, "share btn click: $it")
+ if (it.poiType == IMogoTanluProvider.TYPE_SEEK_HELP) {
+ // 发起故障求助
+ Logger.d(TAG,"发起故障求助====")
+ seekHelp(context, seekListener, true)
+ }else{
+ // 上报道路事件
+ Logger.d(TAG,"上报道路事件=====")
+ sendShareReceiver(it.poiType)
+ }
+ dismiss()
+ }
+ findViewById(R.id.flShareDialogContainer).setOnClickListener { dismiss() }
+
+ gridBtnManager.showDefaultBtns()
+ }
+
+ private fun randomGenerateBtn(){
+ val random = Random.nextInt(1, 10)
+ gridBtnManager.resetContainer()
+ for (i in 0 until random) {
+ gridBtnManager.generateShareButton(FixableButton(id = i))
+ }
+ }
+
+ private val seekListener: ISeekHelpListener = object : ISeekHelpListener {
+ override fun onSeekHelpSuccess() {
+ Logger.d(TAG, "上报求助完成,成功")
+ SeekHelpManager.removeSeekHelpListener(this)
+ dismiss()
+ }
+
+ override fun onSeekHelpFail() {
+ Logger.d(TAG, "上报求助完成,失败")
+ SeekHelpManager.removeSeekHelpListener(this)
+ dismiss()
+ }
+ }
+
+ /**
+ * 发送广播 1拥堵,2交通检查,3封路
+ */
+ private fun sendShareReceiver(type: String) {
+ val params = TanluUploadParams(type, IMogoTanluProvider.UPLOAD_FROM_USER)
+ UploadHelper.upload(context, params, true)
+ }
+
+ override fun show() {
+ Logger.d(TAG, "onShow====")
+ if (!DebugConfig.isLauncher()) {
+ mApis.adasControllerApi.closeADAS()
+ }
+ super.show()
+ }
+
+ override fun dismiss() {
+ Logger.d(TAG, "onDismiss=====")
+ if (!DebugConfig.isLauncher() && mApis.statusManagerApi.isMainPageOnResume) {
+ mApis.adasControllerApi.showADAS()
+ }
+ super.dismiss()
+ }
+
+ companion object {
+ private const val TAG = "GridFixableShareDialog"
+ }
+
+ init {
+ mAnalytics = mApis.analyticsApi
+ mStatusManager = mApis.statusManagerApi
+ initView()
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
index 45666a44f2..238667d7fb 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
@@ -2,13 +2,14 @@ package com.mogo.module.share.dialog;
import android.content.Context;
import android.view.View;
+import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
-import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.module.common.dialog.BaseFloatDialog;
+import com.mogo.module.common.utils.CarSeries;
import com.mogo.module.share.R;
import com.mogo.module.share.manager.ISeekHelpListener;
import com.mogo.module.share.manager.SeekHelpManager;
@@ -74,7 +75,31 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL
initView();
initListener();
}
-
+ private void setWrapContent() {
+ Window window = getWindow();
+ if(DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD){
+ if (window != null) {
+ WindowManager.LayoutParams lp = window.getAttributes();
+ lp.width = 1024;
+ lp.height = 600;
+ window.setAttributes(lp);
+ }
+ }else if(CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X){
+ if (window != null) {
+ WindowManager.LayoutParams lp = window.getAttributes();
+ lp.width = 1920;
+ lp.height = 1080;
+ window.setAttributes(lp);
+ }
+ }else{
+ if (window != null) {
+ WindowManager.LayoutParams lp = window.getAttributes();
+ lp.width = 1024;
+ lp.height = 600;
+ window.setAttributes(lp);
+ }
+ }
+ }
private void initView() {
Logger.d(TAG, "test-------3");
setContentView(R.layout.launcher_dialog_share_2);
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt
new file mode 100644
index 0000000000..65dd00d2da
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt
@@ -0,0 +1,61 @@
+package com.mogo.module.share.manager
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.GridLayout
+import android.widget.ImageView
+import android.widget.TextView
+import com.mogo.module.share.R
+import com.mogo.module.share.bean.FixableButton
+import com.mogo.service.tanlu.IMogoTanluProvider
+import com.mogo.utils.glide.GlideApp
+
+/**
+ * 用来管理生成对应的分享按钮
+ */
+class GridBtnManager(val context: Context, val container: GridLayout) {
+ private val inflater = LayoutInflater.from(context)
+
+ fun resetContainer() {
+ container.removeAllViews()
+ }
+
+ fun generateShareButton(button: FixableButton): View {
+ val view = inflater.inflate(R.layout.item_share_btn, container, false)
+ val img = view.findViewById(R.id.ivShareIcon)
+ val content = view.findViewById(R.id.tvShareContent)
+ // 优先加载url图片,然后加载资源图片
+ if (button.iconUrl.isNotEmpty()) {
+ GlideApp.with(context).load(button.iconUrl).centerInside().into(img)
+ } else {
+ GlideApp.with(context).load(button.iconRes).centerInside().into(img)
+ }
+ content.text = button.content
+ view.setOnClickListener {
+ btnClickListener?.invoke(button)
+ }
+ container.addView(view)
+ return view
+ }
+
+ fun showDefaultBtns() {
+ resetContainer()
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_BLOCK, iconRes = R.drawable.share_block_up, content = "拥堵"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_TRAFFIC_CHECK, iconRes = R.drawable.share_traffic_check, content = "交通检查"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_CLOSURE, iconRes = R.drawable.share_road_closure, content = "封路"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_ACCIDENT, iconRes = R.drawable.share_accident, content = "事故"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_ROAD_CONSTRUCTION, iconRes = R.drawable.share_road_construction, content = "道路施工"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_REAL_TIME_TRAFFIC, iconRes = R.drawable.share_real_time_traffic, content = "实时路况"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_SEEK_HELP, iconRes = R.drawable.share_seek_help, content = "故障求助"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_STAGNANT_WATER, iconRes = R.drawable.share_stagnant_water, content = "道路积水"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_ROAD_ICY, iconRes = R.drawable.share_road_icy, content = "道路结冰"))
+ generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_DENSE_FOG, iconRes = R.drawable.share_dense_fog, content = "浓雾"))
+ }
+
+ private var btnClickListener: ((fixableButton: FixableButton) -> Unit)? = null
+ fun setShareClickListener(listener: ((fixableButton: FixableButton) -> Unit)) {
+ btnClickListener = listener
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml b/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml
new file mode 100644
index 0000000000..b428cc73eb
--- /dev/null
+++ b/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml b/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml
index d17fe7fc18..8ae0f36968 100644
--- a/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml
+++ b/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml
@@ -3,22 +3,31 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/module_share_btn_margin_left"
+ android:paddingTop="@dimen/module_share_btn_margin_top">
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
index 566d8d9d02..d39998ae78 100644
--- a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
@@ -21,6 +21,16 @@
28px
32px
+ 114px
+ 83px
+ 6px
+ 123px
+ 110px
+
+ 75px
+ 165px
+ 967px
+
diff --git a/modules/mogo-module-share/src/main/res/values/dimens.xml b/modules/mogo-module-share/src/main/res/values/dimens.xml
index de5262bd89..044d40bc47 100644
--- a/modules/mogo-module-share/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values/dimens.xml
@@ -22,4 +22,14 @@
15px
17.5px
+ 60px
+ 44px
+ 5px
+ 65px
+ 58px
+
+ 40px
+ 89px
+ 514px
+
\ No newline at end of file
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java
index 8baaea1315..f9f27f4699 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java
@@ -184,7 +184,6 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL
}
public void initWindow() {
- Logger.d("liyz", "initWindow --------->");
EventBus.getDefault().register(this);
initInterface();
initModelData();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XMarkerService.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XMarkerService.java
index 69497f597a..3556667786 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XMarkerService.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XMarkerService.java
@@ -5,7 +5,9 @@ import android.os.Handler;
import com.mogo.map.MogoLatLng;
import com.mogo.map.location.MogoLocation;
+import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.v2x.listener.V2XLocationListener;
+import com.mogo.module.v2x.network.V2XRefreshCallback;
import com.mogo.module.v2x.network.V2XRefreshModel;
import com.mogo.utils.logger.Logger;
@@ -18,7 +20,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
* desc :
* version: 1.0
*/
-public class V2XMarkerService {
+public class V2XMarkerService implements V2XRefreshCallback {
private final String TAG = "V2XMarkerService";
// 一分钟获取一次最新的路况信息
@@ -48,12 +50,13 @@ public class V2XMarkerService {
public void refreshMarkerData(MogoLocation location) {
try {
if (mV2XRefreshModel != null && location != null) {
- //Logger.d(MODULE_NAME, "V2X道路事件:执行气泡刷新操作。");
+ Logger.d(MODULE_NAME, "V2X道路事件:执行气泡刷新操作。");
// 获取目前最新的周边的poi点
- mV2XRefreshModel.querySnapshotAsync(
+ mV2XRefreshModel.querySnapshotSync(
new MogoLatLng(location.getLatitude(), location.getLongitude()),
(int) getMapCameraFactWidth(),
- 999);
+ 999,
+ this);
}
} catch (Exception e) {
e.printStackTrace();
@@ -105,4 +108,16 @@ public class V2XMarkerService {
}
refreshHandler.post(refreshRunnable);
}
+
+ @Override
+ public void onSuccess(MarkerResponse result) {
+ if (V2XSocketManager.getInstance().getV2XMessageListener_401011() != null) {
+ V2XSocketManager.getInstance().getV2XMessageListener_401011().onMsgReceived(result);
+ }
+ }
+
+ @Override
+ public void onFail(String msg) {
+ Logger.e(TAG, "刷新V2X道路事件异常请检查参数");
+ }
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java
index 1d29df1df1..36c68f8619 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java
@@ -120,6 +120,10 @@ public class V2XSocketManager {
);
}
+ public V2XMessageListener_401011 getV2XMessageListener_401011() {
+ return v2XMessageListener_401011;
+ }
+
/**
* 道路事件,服务端下发
*/
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java
index 224fcfef4d..1b00b259ca 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XSurroundingAdapter.java
@@ -11,7 +11,9 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
import com.mogo.module.common.entity.MarkerPoiTypeEnum;
+import com.mogo.module.common.glide.SkinAbleBitmapTarget;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.entity.panel.SurroundingConstruction;
import com.mogo.module.v2x.listener.SurroundingItemClickListener;
@@ -84,22 +86,20 @@ public class V2XSurroundingAdapter extends RecyclerView.Adapter refreshHeartBeat(@FieldMap Map liveBroadcast);
/**
- * 刷新地图气泡点
+ * 刷新地图气泡点,异步获取
*/
@FormUrlEncoded
@POST("/yycp-launcherSnapshot/launcherSnapshot/querySnapshotAsync")
Observable querySnapshotAsync(@FieldMap Map parameters);
+ /**
+ * 刷新地图气泡点,同步获取
+ */
+ @FormUrlEncoded
+ @POST("/yycp-launcherSnapshot/launcherSnapshot/querySnapshotSync")
+ Observable querySnapshotSync(@FieldMap Map parameters);
+
/**
* 直播点赞
*/
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java
index 947cdffe39..f5de5e4ca9 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java
@@ -67,7 +67,7 @@ public class V2XRefreshModel {
}
/**
- * 刷新地图点数据
+ * 刷新地图点数据,同步获取
*/
public void querySnapshotAsync(MogoLatLng latLng, int radius, int limit) {
if (mV2XApiService != null) {
@@ -96,6 +96,42 @@ public class V2XRefreshModel {
}
}
+ /**
+ * 刷新地图点数据,同步获取
+ */
+ public void querySnapshotSync(MogoLatLng latLng, int radius, int limit, final V2XRefreshCallback callback) {
+ if (mV2XApiService != null) {
+ final Map query = new ParamsProvider.Builder(mContext).build();
+ final RefreshBody refreshBody = new RefreshBody();
+ refreshBody.limit = limit;
+ refreshBody.location = new RefreshBody.LatLon(latLng.lat, latLng.lon);
+ refreshBody.radius = radius;
+ refreshBody.dataType.add(ServiceConst.CARD_TYPE_ROAD_CONDITION);
+ refreshBody.viewPush = true;
+ query.put("data", GsonUtil.jsonFromObject(refreshBody));
+ mV2XApiService.querySnapshotSync(query)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) {
+ @Override
+ public void onSuccess(MarkerResponse o) {
+ super.onSuccess(o);
+ if (callback != null) {
+ callback.onSuccess(o);
+ }
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ if (callback != null) {
+ callback.onFail(message);
+ }
+ }
+ });
+ }
+ }
+
/**
* 触发刷新直播心跳
*
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_event_panel_more.png b/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_event_panel_more.png
index ab63bcf60e..c3372edaf2 100644
Binary files a/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_event_panel_more.png and b/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_event_panel_more.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_choose.png b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_choose.png
new file mode 100644
index 0000000000..a4ea109054
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_choose.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_second.png b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_second.png
new file mode 100644
index 0000000000..6e4cd579d9
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_second.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_unchoose.png b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_unchoose.png
new file mode 100644
index 0000000000..a116ac63ce
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_enthusiasm_unchoose.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_event_panel_more.png b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_event_panel_more.png
new file mode 100644
index 0000000000..ab63bcf60e
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_event_panel_more.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-mdpi/v2x_shadow_bg.9.png b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/v2x_shadow_bg.9.png
new file mode 100644
index 0000000000..a4c313e353
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/v2x_shadow_bg.9.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_choose.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_choose.png
new file mode 100644
index 0000000000..a62533c607
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_choose.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_second.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_second.png
new file mode 100644
index 0000000000..84c49a0052
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_second.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_unchoose.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_unchoose.png
new file mode 100644
index 0000000000..79ae51a734
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_enthusiasm_unchoose.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_event_panel_more.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_event_panel_more.png
index b66f2a928b..2cf79cfff6 100644
Binary files a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_event_panel_more.png and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_event_panel_more.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml
new file mode 100644
index 0000000000..df4fdef366
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml
deleted file mode 100644
index e4ec12dbe4..0000000000
--- a/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/module_event_panel_fragment_surrounding.xml b/modules/mogo-module-v2x/src/main/res/layout/module_event_panel_fragment_surrounding.xml
index e868cfe098..1a1e878f3a 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/module_event_panel_fragment_surrounding.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/module_event_panel_fragment_surrounding.xml
@@ -13,13 +13,12 @@
android:id="@+id/layout_top"
android:layout_width="match_parent"
android:layout_height="@dimen/module_v2x_surrounding_top_height"
- android:visibility="gone">
+ android:visibility="visible">
+ android:visibility="gone">
@@ -96,7 +95,7 @@
android:layout_marginTop="1px"
android:gravity="center_horizontal"
android:text="你可以试着分享一个事件给其他车主"
- android:textColor="@color/transparent_white_30"
+ android:textColor="@color/v2x_FFF_333"
android:textSize="@dimen/module_v2x_surrounding_top_textsize"
android:textStyle="bold" />
diff --git a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_panel_fragment_event_panel.xml b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_panel_fragment_event_panel.xml
index f12d64563b..a8a16214d7 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_panel_fragment_event_panel.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_panel_fragment_event_panel.xml
@@ -89,10 +89,10 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/rgTabSelect" />
-
-
-
-
-
+
+
+
+
+
diff --git a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml
index 90a57dcea2..b9d812a392 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml
@@ -20,7 +20,7 @@
android:paddingTop="10px"
android:text="小窍门:分享路况,点赞其他车主,有助于提高热心指数"
android:textColor="#FFFFFF"
- android:textSize="16px">
+ android:textSize="@dimen/share_top_text_size">
@@ -42,17 +42,17 @@
android:gravity="center_horizontal|center"
android:text="0"
android:textColor="#FFFFFF"
- android:textSize="36px" />
+ android:textSize="@dimen/share_des_num_size" />
+ android:textSize="@dimen/share_index_des_size" />
@@ -76,17 +76,17 @@
android:gravity="center_horizontal|top"
android:text="0"
android:textColor="#FFFFFF"
- android:textSize="36px" />
+ android:textSize="@dimen/share_des_num_size" />
+ android:textSize="@dimen/share_index_des_size" />
@@ -101,9 +101,9 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
+ android:gravity="center"
android:orientation="vertical"
- android:paddingTop="17px"
- android:gravity="center">
+ android:paddingTop="@dimen/v2x_index_rating_top">
+ android:paddingTop="@dimen/share_index_bottom_padding"
+ android:text="热心指数"
+ android:textColor="#FFFFFF"
+ android:textSize="@dimen/share_index_des_size" />
+
-
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml
index bfe0b1657d..c66f16aa27 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:layout_below="@+id/no_share_image"
android:layout_centerHorizontal="true"
- android:layout_marginTop="12.6px"
+ android:layout_marginTop="@dimen/share_empty_btn_padding"
android:alpha="0.7"
android:gravity="bottom"
android:text="你还没有分享过道路事件,快去试试吧"
@@ -28,7 +28,7 @@
+ android:layout_marginTop="@dimen/share_empty_btn_padding">