From fd8803ddcdf30ef1e0fe0dc37f15fa125f5151d4 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Fri, 4 Sep 2020 10:53:51 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=88=86=E4=BA=AB=E6=A1=86=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/module/share/ShareControl.java | 9 +- .../module/share/adapter/ShareBtnAdapter.kt | 47 ++++++ .../mogo/module/share/bean/FixableButton.kt | 9 ++ .../module/share/dialog/FixableShareDialog.kt | 140 ++++++++++++++++++ .../share/dialog/GridFixableShareDialog.kt | 126 ++++++++++++++++ .../share/dialog/LaucherShareDialog.java | 29 +++- .../module/share/manager/GridBtnManager.kt | 41 +++++ .../layout/dialog_share_with_gridlayout.xml | 38 +++++ .../launcher_dialog_share_with_gride.xml | 37 +++++ 9 files changed, 472 insertions(+), 4 deletions(-) create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt create mode 100644 modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml create mode 100644 modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_with_gride.xml 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..b22ee55ad4 --- /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 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..5fc8567b5d --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt @@ -0,0 +1,126 @@ +package com.mogo.module.share.dialog + +import android.content.Context +import android.widget.GridLayout +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.GridBtnManager +import com.mogo.module.share.manager.ISeekHelpListener +import com.mogo.module.share.manager.SeekHelpManager +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") + randomGenerateBtn() + } + randomGenerateBtn() + } + + 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..cbebfd609d --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt @@ -0,0 +1,41 @@ +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.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) + GlideApp.with(context).load(button.iconRes).into(img) + content.text = button.content + view.setOnClickListener { + btnClickListener?.invoke(button) + } + container.addView(view) + return view + } + + 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..061b149f08 --- /dev/null +++ b/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_with_gride.xml b/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_with_gride.xml new file mode 100644 index 0000000000..e98f899a4a --- /dev/null +++ b/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_with_gride.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + \ No newline at end of file From ed27d3482784e0345223b3aaa24f52af3ea80d7d Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 7 Sep 2020 17:10:13 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E6=A1=86=E5=8A=A8=E6=80=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=BE=85=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- .../mogo/module/share/bean/FixableButton.kt | 2 +- .../share/dialog/GridFixableShareDialog.kt | 5 +++- .../module/share/manager/GridBtnManager.kt | 30 +++++++++++++++---- .../layout/dialog_share_with_gridlayout.xml | 16 ++++++---- .../src/main/res/layout/item_share_btn.xml | 23 +++++++++----- .../src/main/res/values-xhdpi/dimens.xml | 10 +++++++ .../src/main/res/values/dimens.xml | 10 +++++++ .../service/tanlu/IMogoTanluProvider.java | 5 ++++ 9 files changed, 82 insertions(+), 21 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 21e99e2dc0..cd77a1f062 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ 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 index b22ee55ad4..e52d73c420 100644 --- 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 @@ -6,4 +6,4 @@ import com.mogo.module.share.R * 可配置按钮封装 * @author tongchenfei */ -data class FixableButton(val id:Int = 0,val iconUrl:String = "", val iconRes:Int = R.drawable.share_block_up, val content:String="拥堵") \ No newline at end of file +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/GridFixableShareDialog.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt index 5fc8567b5d..f2b146fded 100644 --- 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 @@ -1,6 +1,7 @@ package com.mogo.module.share.dialog import android.content.Context +import android.widget.FrameLayout import android.widget.GridLayout import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -65,7 +66,9 @@ class GridFixableShareDialog(context:Context):BaseFloatDialog(context) { Logger.d(TAG, "share btn click: $it") randomGenerateBtn() } - randomGenerateBtn() + findViewById(R.id.flShareDialogContainer).setOnClickListener { dismiss() } + + gridBtnManager.showDefaultBtns() } private fun randomGenerateBtn(){ 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 index cbebfd609d..65dd00d2da 100644 --- 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 @@ -9,23 +9,29 @@ 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) { +class GridBtnManager(val context: Context, val container: GridLayout) { private val inflater = LayoutInflater.from(context) - fun resetContainer(){ + fun resetContainer() { container.removeAllViews() } fun generateShareButton(button: FixableButton): View { - val view = inflater.inflate(R.layout.item_share_btn, container,false ) + 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) - GlideApp.with(context).load(button.iconRes).into(img) + // 优先加载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) @@ -34,7 +40,21 @@ class GridBtnManager(val context:Context,val container:GridLayout) { return view } - private var btnClickListener:((fixableButton:FixableButton)->Unit)? =null + 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 } 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 index 061b149f08..b428cc73eb 100644 --- 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 @@ -1,18 +1,18 @@ + android:orientation="vertical"> + android:paddingLeft="@dimen/module_share_container_padding_left" + android:paddingRight="@dimen/module_share_container_padding_right" /> + \ 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"> + + + + + - 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/services/mogo-service-api/src/main/java/com/mogo/service/tanlu/IMogoTanluProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/tanlu/IMogoTanluProvider.java index 2ea236564c..20c64855e3 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/tanlu/IMogoTanluProvider.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/tanlu/IMogoTanluProvider.java @@ -45,6 +45,11 @@ public interface IMogoTanluProvider extends IProvider { */ String TYPE_ROAD_CONSTRUCTION = "10006"; + /** + * 故障求助 + */ + String TYPE_SEEK_HELP = "99999"; + /** * 用户手点上报 */ From 3138b9e70a7cd13c62097d92263d8d49d85d9106 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Mon, 7 Sep 2020 17:12:49 +0800 Subject: [PATCH 03/18] opt load image --- .../v2x/adapter/V2XSurroundingAdapter.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) 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 Date: Mon, 7 Sep 2020 17:57:20 +0800 Subject: [PATCH 04/18] opt --- .../java/com/mogo/module/tanlu/fragment/TanluListWindow.java | 1 - .../com/mogo/module/v2x/fragment/V2XSurroundingFragment.java | 1 + .../src/main/res/values-xhdpi-1920x1000/dimens.xml | 2 +- modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml | 2 +- modules/mogo-module-v2x/src/main/res/values/dimens.xml | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) 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/fragment/V2XSurroundingFragment.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java index 7d893ee97e..087374690c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java @@ -184,6 +184,7 @@ public class V2XSurroundingFragment extends MvpFragment306px 77px 38px - 12px + 28px 16px 5px 80px diff --git a/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml index ad5339c148..fca032e5c5 100644 --- a/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml @@ -43,7 +43,7 @@ 306px 77px 38px - 12px + 28px 16px 5px 80px diff --git a/modules/mogo-module-v2x/src/main/res/values/dimens.xml b/modules/mogo-module-v2x/src/main/res/values/dimens.xml index a3bf9f03d7..1588dd0e23 100644 --- a/modules/mogo-module-v2x/src/main/res/values/dimens.xml +++ b/modules/mogo-module-v2x/src/main/res/values/dimens.xml @@ -49,7 +49,7 @@ 8px 2px 30px - 30px + 50px 24px 18px From 2fdf10bc3fbbebe0a560286de00d14c4ee80e85e Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 7 Sep 2020 19:14:08 +0800 Subject: [PATCH 05/18] [add] f --- .../res/drawable/v2x_bkg_dark_light_same.xml | 12 ++++++++++ .../module_v2x_event_share_description.xml | 24 +++++++++---------- .../layout/module_v2x_event_share_empty.xml | 4 ++-- .../main/res/layout/view_history_empty.xml | 4 ++-- .../res/values-xhdpi-1920x1000/dimens.xml | 2 +- .../src/main/res/values-xhdpi/dimens.xml | 9 +++++-- .../src/main/res/values/dimens.xml | 5 ++++ .../v2x_bkg_dark_light_same_light.xml | 12 ++++++++++ 8 files changed, 53 insertions(+), 19 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml create mode 100644 skin/mogo-skin-light/src/main/module-v2x-res/drawable/v2x_bkg_dark_light_same_light.xml 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/layout/module_v2x_event_share_description.xml b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml index 90a57dcea2..cd7d13d2a8 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:text="热心指数" + android:textColor="#FFFFFF" + android:textSize="@dimen/share_index_des_size" /> 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..9bbee7ce4e 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 @@ -28,7 +28,7 @@ + android:layout_marginTop="@dimen/share_empty_btn_padding">