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