Merge remote-tracking branch 'origin/dev' into dev
@@ -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))
|
||||
|
||||
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 285 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 432 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 80 KiB |
@@ -6,9 +6,9 @@
|
||||
<string name="module_guide_skip">跳过</string>
|
||||
|
||||
<string name="module_guide_voice_page_one">欢迎使用蘑菇出行,您下次可以直接对我说,打开蘑菇出行来直接进入应用,点击左下方按钮进行摄像头设置</string>
|
||||
<string name="module_guide_voice_page_two"></string>
|
||||
<string name="module_guide_voice_page_two">左边是道路事件的播报,点击右边地图上的事件标示可以查看事件详情</string>
|
||||
<string name="module_guide_voice_page_three">这里是道路信息显示,点击后可查看事件详情</string>
|
||||
<string name="module_guide_voice_page_four">这里是事件汇总,您可以查看您参与的事件和您的分享记录</string>
|
||||
<string name="module_guide_voice_page_five">点击这里可以把路况分享给其他车友,或者直接对我说,上报路况</string>
|
||||
<string name="module_guide_voice_page_five">更多设置,在左上角的设置功能中,点击右下角的分享,可以把路况分享给其他车友</string>
|
||||
<string name="module_guide_voice_page_end">我们希望让您的出行更加安全高效,更多功能等着你去发现,快去体验体验吧</string>
|
||||
</resources>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/module_main_id_message_history_fragment_container"
|
||||
|
||||
@@ -25,5 +25,6 @@
|
||||
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">635px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_width">1263px</dimen>
|
||||
<dimen name="module_main_event_fragment_container_padding">10px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -25,4 +25,5 @@
|
||||
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">340px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_width">1313px</dimen>
|
||||
<dimen name="module_main_event_fragment_container_padding">10px</dimen>
|
||||
</resources>
|
||||
@@ -24,7 +24,7 @@
|
||||
<dimen name="module_main_id_left_panel_fragment_container_width">350px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding">16px</dimen>
|
||||
<dimen name="module_main_entrance_fragment_container_padding_top">16px</dimen>
|
||||
|
||||
<dimen name="module_main_entrance_fragment_container_width">658px</dimen>
|
||||
<dimen name="module_main_event_fragment_container_padding">4px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -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) {
|
||||
|
||||
@@ -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<ShareBtnAdapter.ShareBtnViewHolder>() {
|
||||
private val btnList = ArrayList<FixableButton>()
|
||||
var btnClickListener:((btn:FixableButton)->Unit)? = null
|
||||
fun setFixableButtonList(btns:ArrayList<FixableButton>) {
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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="拥堵")
|
||||
@@ -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<FixableButton>()
|
||||
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()
|
||||
}
|
||||
}
|
||||
@@ -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<FrameLayout>(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()
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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<ImageView>(R.id.ivShareIcon)
|
||||
val content = view.findViewById<TextView>(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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/flShareDialogContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:minWidth="@dimen/module_share_container_min_width"
|
||||
android:background="@drawable/module_share_dialog_bg"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_share_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/share_module_title_margin_top"
|
||||
android:drawableLeft="@drawable/module_share_title_icon_left"
|
||||
android:drawableRight="@drawable/module_share_title_icon_right"
|
||||
android:drawablePadding="@dimen/dp_40"
|
||||
android:text="我要分享"
|
||||
android:textColor="@color/module_share_dialog_title_text_color"
|
||||
android:textSize="@dimen/share_module_title_content"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<GridLayout
|
||||
android:id="@+id/moduleShareBtnGridLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/module_share_container_padding_bottom"
|
||||
android:clickable="true"
|
||||
android:columnCount="5"
|
||||
android:paddingLeft="@dimen/module_share_container_padding_left"
|
||||
android:paddingRight="@dimen/module_share_container_padding_right" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
@@ -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">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="@dimen/module_share_icon_bg_width"
|
||||
android:layout_height="@dimen/module_share_icon_bg_width"
|
||||
android:background="@drawable/module_share_btn_bg">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivShareIcon"
|
||||
android:layout_width="@dimen/module_share_icon_width"
|
||||
android:layout_height="@dimen/module_share_icon_width"
|
||||
android:layout_gravity="center" />
|
||||
</FrameLayout>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_160"
|
||||
android:layout_height="@dimen/dp_160"
|
||||
android:id="@+id/ivShareIcon"
|
||||
android:src="@drawable/share_road_closure" />
|
||||
|
||||
<Space
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/share_module_tv_margin_top" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvShareContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tvShareContent"
|
||||
android:text="上报拥堵"
|
||||
android:textColor="@color/module_share_dialog_icon_text_color"
|
||||
android:textSize="@dimen/share_module_item"
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/share_module_height"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/module_share_dialog_bg"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="65px"
|
||||
android:paddingRight="65px"
|
||||
android:paddingBottom="58px">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btn_share_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/share_module_title_margin_top"
|
||||
android:drawableLeft="@drawable/module_share_title_icon_left"
|
||||
android:drawableRight="@drawable/module_share_title_icon_right"
|
||||
android:drawablePadding="@dimen/dp_40"
|
||||
android:text="我要分享"
|
||||
android:textColor="@color/module_share_dialog_title_text_color"
|
||||
android:textSize="@dimen/share_module_title_content"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/moduleShareBtnRecyclerView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="44px" />
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
@@ -21,6 +21,16 @@
|
||||
<dimen name="share_module_bottom_size">28px</dimen>
|
||||
<dimen name="share_module_btn_text_size">32px</dimen>
|
||||
|
||||
<dimen name="module_share_btn_margin_left">114px</dimen>
|
||||
<dimen name="module_share_btn_margin_top">83px</dimen>
|
||||
<dimen name="module_share_container_padding_left">6px</dimen>
|
||||
<dimen name="module_share_container_padding_right">123px</dimen>
|
||||
<dimen name="module_share_container_padding_bottom">110px</dimen>
|
||||
|
||||
<dimen name="module_share_icon_width">75px</dimen>
|
||||
<dimen name="module_share_icon_bg_width">165px</dimen>
|
||||
<dimen name="module_share_container_min_width">967px</dimen>
|
||||
|
||||
</resources>
|
||||
|
||||
|
||||
|
||||
@@ -22,4 +22,14 @@
|
||||
<dimen name="share_module_bottom_size">15px</dimen>
|
||||
<dimen name="share_module_btn_text_size">17.5px</dimen>
|
||||
|
||||
<dimen name="module_share_btn_margin_left">60px</dimen>
|
||||
<dimen name="module_share_btn_margin_top">44px</dimen>
|
||||
<dimen name="module_share_container_padding_left">5px</dimen>
|
||||
<dimen name="module_share_container_padding_right">65px</dimen>
|
||||
<dimen name="module_share_container_padding_bottom">58px</dimen>
|
||||
|
||||
<dimen name="module_share_icon_width">40px</dimen>
|
||||
<dimen name="module_share_icon_bg_width">89px</dimen>
|
||||
<dimen name="module_share_container_min_width">514px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -184,7 +184,6 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL
|
||||
}
|
||||
|
||||
public void initWindow() {
|
||||
Logger.d("liyz", "initWindow --------->");
|
||||
EventBus.getDefault().register(this);
|
||||
initInterface();
|
||||
initModelData();
|
||||
|
||||
@@ -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<MarkerResponse> {
|
||||
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道路事件异常请检查参数");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,6 +120,10 @@ public class V2XSocketManager {
|
||||
);
|
||||
}
|
||||
|
||||
public V2XMessageListener_401011 getV2XMessageListener_401011() {
|
||||
return v2XMessageListener_401011;
|
||||
}
|
||||
|
||||
/**
|
||||
* 道路事件,服务端下发
|
||||
*/
|
||||
|
||||
@@ -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<V2XSurroundingVi
|
||||
.load(getTypeRes(surroundingConstruction.getPoiType()))
|
||||
.into(mBgImageView);
|
||||
|
||||
// CornerTransform transformation = new CornerTransform(mContext, dip2px(mContext, 15));
|
||||
// //只是绘制左上角和右上角圆角
|
||||
// transformation.setExceptCorner(true, true, false, false);
|
||||
//
|
||||
// Glide.with(mContext).
|
||||
// load(getTypeRes(surroundingConstruction.getPoiType()))
|
||||
// .asBitmap()
|
||||
// .skipMemoryCache(true)
|
||||
// .diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
// .transform(transformation)
|
||||
// .into(mBgImageView);
|
||||
//
|
||||
// Glide.with(mContext)
|
||||
// .load(getTypeSmallRes(surroundingConstruction.getPoiType()))
|
||||
// .into(mTypeImageView);
|
||||
|
||||
RequestOptions requestOptions = new RequestOptions()
|
||||
.placeholder(R.drawable.v2x_icon_live_logo)
|
||||
.error(R.drawable.v2x_icon_live_logo)
|
||||
.fallback(R.drawable.v2x_icon_live_logo);
|
||||
Glide.with(mContext)
|
||||
.asBitmap()
|
||||
.load(getTypeSmallRes(surroundingConstruction.getPoiType()))
|
||||
.into(mTypeImageView);
|
||||
.apply(requestOptions)
|
||||
.into(new SkinAbleBitmapTarget(mTypeImageView, requestOptions));
|
||||
|
||||
}
|
||||
|
||||
public static int dip2px(Context context, float dpValue) {
|
||||
|
||||
@@ -39,12 +39,19 @@ public interface V2XApiService {
|
||||
Observable<BaseData> refreshHeartBeat(@FieldMap Map<String, Object> liveBroadcast);
|
||||
|
||||
/**
|
||||
* 刷新地图气泡点
|
||||
* 刷新地图气泡点,异步获取
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("/yycp-launcherSnapshot/launcherSnapshot/querySnapshotAsync")
|
||||
Observable<BaseData> querySnapshotAsync(@FieldMap Map<String, Object> parameters);
|
||||
|
||||
/**
|
||||
* 刷新地图气泡点,同步获取
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("/yycp-launcherSnapshot/launcherSnapshot/querySnapshotSync")
|
||||
Observable<MarkerResponse> querySnapshotSync(@FieldMap Map<String, Object> parameters);
|
||||
|
||||
/**
|
||||
* 直播点赞
|
||||
*/
|
||||
|
||||
@@ -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<MarkerResponse> callback) {
|
||||
if (mV2XApiService != null) {
|
||||
final Map<String, Object> 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<MarkerResponse>(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);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发刷新直播心跳
|
||||
*
|
||||
|
||||
|
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 995 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 280 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<corners android:radius="@dimen/dp_180" />
|
||||
<gradient
|
||||
android:angle="135"
|
||||
android:endColor="#2E324B"
|
||||
android:startColor="#585E8B"
|
||||
android:type="linear"
|
||||
android:useLevel="true" />
|
||||
|
||||
</shape>
|
||||
@@ -1,8 +0,0 @@
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<corners android:radius="@dimen/module_v2x_panel_icon_cor" />
|
||||
<gradient android:startColor="#FF2E3141" android:endColor="#FF3F435F" android:angle="0" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -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">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_brief"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="@dimen/module_v2x_surrounding_margin_left"
|
||||
android:text="周围5公里,共15条交通信息"
|
||||
android:textColor="@color/v2x_white"
|
||||
@@ -64,7 +63,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:gravity="center_horizontal"
|
||||
android:visibility="visible">
|
||||
android:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_empty"
|
||||
@@ -83,7 +82,7 @@
|
||||
android:layout_marginTop="@dimen/module_v2x_surrounding_empty_tv_margin_top"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="周边5公里,暂无交通事件"
|
||||
android:textColor="@color/transparent_white_30"
|
||||
android:textColor="@color/v2x_FFF_333"
|
||||
android:textSize="@dimen/module_v2x_surrounding_top_textsize"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
|
||||
@@ -89,10 +89,10 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/rgTabSelect" />
|
||||
|
||||
<!-- <View-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="58px"-->
|
||||
<!-- android:background="@drawable/v2x_shadow_shape_view"-->
|
||||
<!-- app:layout_constraintBottom_toBottomOf="parent" />-->
|
||||
<!-- <View-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="58px"-->
|
||||
<!-- android:background="@drawable/v2x_shadow_shape_view"-->
|
||||
<!-- app:layout_constraintBottom_toBottomOf="parent" />-->
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
android:paddingTop="10px"
|
||||
android:text="小窍门:分享路况,点赞其他车主,有助于提高热心指数"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="16px">
|
||||
android:textSize="@dimen/share_top_text_size">
|
||||
|
||||
</TextView>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/shre_num_des"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal|center"
|
||||
android:paddingBottom="22px"
|
||||
android:text="分享次数"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="16px"
|
||||
android:paddingBottom="22px"/>
|
||||
android:textSize="@dimen/share_index_des_size" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/share_approve_des"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal|top"
|
||||
android:paddingBottom="22px"
|
||||
android:text="车友认同次数"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="16px"
|
||||
android:paddingBottom="22px"/>
|
||||
android:textSize="@dimen/share_index_des_size" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -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">
|
||||
|
||||
<RatingBar
|
||||
android:id="@+id/rating_bar"
|
||||
@@ -116,15 +116,15 @@
|
||||
android:id="@+id/share_index_des"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="热心指数"
|
||||
android:layout_alignTop="@id/share_approve_des"
|
||||
android:textColor="#FFFFFF"
|
||||
android:gravity="center"
|
||||
android:paddingTop="15px"
|
||||
android:textSize="16px" />
|
||||
android:paddingTop="@dimen/share_index_bottom_padding"
|
||||
android:text="热心指数"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/share_index_des_size" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -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 @@
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="20px">
|
||||
android:layout_marginTop="@dimen/share_empty_btn_padding">
|
||||
|
||||
<Button
|
||||
android:id="@+id/share_event_button"
|
||||
@@ -36,7 +36,7 @@
|
||||
android:layout_height="@dimen/v2x_share_btn_height"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_toLeftOf="@id/center"
|
||||
android:background="@drawable/v2xt_dw_common_corner_bkg_dark"
|
||||
android:background="@drawable/v2x_bkg_dark_light_same"
|
||||
android:clickable="true"
|
||||
android:onClick="shareEventAction"
|
||||
android:text="去分享"
|
||||
@@ -45,8 +45,8 @@
|
||||
|
||||
<View
|
||||
android:id="@+id/center"
|
||||
android:layout_width="29px"
|
||||
android:layout_height="29px"
|
||||
android:layout_width="@dimen/share_btn_middle_padding"
|
||||
android:layout_height="@dimen/share_btn_middle_padding"
|
||||
android:layout_centerInParent="true" />
|
||||
|
||||
<Button
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
android:layout_below="@id/loading_text"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_gravity="top|center"
|
||||
android:layout_marginTop="34px"
|
||||
android:layout_marginTop="@dimen/shaer_refresh_padding"
|
||||
android:background="@drawable/v2xt_dw_common_corner_bkg_light"
|
||||
android:text="刷新"
|
||||
android:textColor="#FFFFFF"
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
android:id="@+id/llEventMore"
|
||||
android:layout_width="@dimen/module_v2x_panel_width"
|
||||
android:layout_height="@dimen/module_v2x_panel_width"
|
||||
android:background="@drawable/v2x_drawable_event_more_bkg"
|
||||
android:background="@drawable/v2x_shadow_bg"
|
||||
android:translationY="@dimen/v2x_panel_btn_translationY"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:translationZ="1dp">
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/btnShowOrHidePanels"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="@dimen/v2x_panel_btn_image_width"
|
||||
android:layout_height="@dimen/v2x_panel_btn_image_width"
|
||||
android:layout_centerInParent="true"
|
||||
android:src="@drawable/icon_event_panel_more" />
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
android:id="@+id/ivEmptyView"
|
||||
android:layout_width="@dimen/dp_355"
|
||||
android:layout_height="@dimen/dp_355"
|
||||
android:layout_marginTop="@dimen/dp_120"
|
||||
android:layout_marginTop="60px"
|
||||
android:src="@drawable/icon_share_empty"
|
||||
app:layout_constraintBottom_toTopOf="@+id/tvTrip"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@@ -23,7 +23,7 @@
|
||||
android:gravity="center"
|
||||
android:text="周边5公里,暂无交通事件\n
|
||||
你可以试着分享一个交通事件给其他车主"
|
||||
android:textColor="@color/transparent_white_30"
|
||||
android:textColor="@color/v2x_FFF_333"
|
||||
android:textSize="@dimen/dp_36"
|
||||
app:layout_constraintBottom_toTopOf="@+id/btnShear"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
79
modules/mogo-module-v2x/src/main/res/values-mdpi/dimens.xml
Normal file
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources>
|
||||
<dimen name="module_main_v2x_animation_width">445px</dimen>
|
||||
|
||||
<dimen name="module_v2x_search_marginLeft">18px</dimen>
|
||||
<dimen name="module_v2x_operation_panel_share_goneMarginRight">20px</dimen>
|
||||
<dimen name="module_v2x_event_window_height">194px</dimen>
|
||||
<dimen name="module_v2x_event_window_height_ground">250px</dimen>
|
||||
<dimen name="module_v2x_push_img_height">190px</dimen>
|
||||
|
||||
<dimen name="module_v2x_fatigue_driving_window_height_ground">130px</dimen>
|
||||
|
||||
<dimen name="module_v2x_event_icon_size">82px</dimen>
|
||||
|
||||
<dimen name="module_v2x_event_button_size">54px</dimen>
|
||||
|
||||
<dimen name="module_v2x_event_button_size_detail">64px</dimen>
|
||||
|
||||
<dimen name="module_v2x_event_image_height">175px</dimen>
|
||||
<dimen name="module_v2x_event_image_width">262px</dimen>
|
||||
|
||||
|
||||
<dimen name="module_v2x_event_distance_text">34px</dimen>
|
||||
<dimen name="module_v2x_event_distance_title">22px</dimen>
|
||||
|
||||
<dimen name="module_v2x_history_event_icon_size">40px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_item_bottom_size">6px</dimen>
|
||||
|
||||
<dimen name="module_v2x_map_left">550px</dimen>
|
||||
<dimen name="module_v2x_map_top">200px</dimen>
|
||||
<dimen name="module_v2x_map_right">200px</dimen>
|
||||
<dimen name="module_v2x_map_bottom">100px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_height">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_width">90px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_bt_height">36px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_iv_margin_top">40px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_tv_margin_top">15px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_width">150px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_height">48px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_bt_margin_top">32px</dimen>
|
||||
<dimen name="module_v2x_surrounding_root_margin_left">10px</dimen>
|
||||
<dimen name="module_v2x_surrounding_margin_left">10px</dimen>
|
||||
<dimen name="module_v2x_surrounding_empty_image_height">190px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_height">173px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom">43px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_image_height">26px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">12px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">8px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_marginbottom">2px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_stance">30px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top">34px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_textsize">18px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_left_textsize">20px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">16px</dimen>
|
||||
<dimen name="module_v2x_des_index_width">17px</dimen>
|
||||
<dimen name="module_v2x_des_index_height">15.4px</dimen>
|
||||
<dimen name="module_v2x_panel_width">80px</dimen>
|
||||
<dimen name="module_v2x_panel_icon_cor">16px</dimen>
|
||||
<dimen name="share_empty_icon_width">117px</dimen>
|
||||
<dimen name="v2x_loading_ani_width">200px</dimen>
|
||||
<dimen name="v2x_share_btn_width">150px</dimen>
|
||||
<dimen name="v2x_share_btn_height">48px</dimen>
|
||||
<dimen name="v2x_share_btn_size">18px</dimen>
|
||||
<dimen name="v2x_index_rating_top">17px</dimen>
|
||||
<dimen name="share_top_text_size">16px</dimen>
|
||||
<dimen name="share_des_num_size">36px</dimen>
|
||||
<dimen name="share_index_des_size">16px</dimen>
|
||||
<dimen name="share_empty_btn_padding">20px</dimen>
|
||||
<dimen name="shaer_refresh_padding">34px</dimen>
|
||||
<dimen name="share_index_bottom_padding">15px</dimen>
|
||||
<dimen name="share_btn_middle_padding">29px</dimen>
|
||||
<dimen name="v2x_panel_btn_translationY">-8px</dimen>
|
||||
<dimen name="v2x_panel_btn_image_width">65px</dimen>
|
||||
|
||||
|
||||
</resources>
|
||||
@@ -42,7 +42,7 @@
|
||||
<dimen name="module_v2x_surrounding_item_height">306px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom">77px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_image_height">38px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">12px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">28px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">16px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_marginbottom">5px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_stance">80px</dimen>
|
||||
@@ -53,8 +53,9 @@
|
||||
<dimen name="module_v2x_surrounding_item_bottom_left_textsize">36px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">28px</dimen>
|
||||
<dimen name="module_v2x_des_index_width">16px</dimen>
|
||||
<dimen name="module_v2x_des_index_height">4px</dimen>
|
||||
<dimen name="module_v2x_des_index_height">42px</dimen>
|
||||
<dimen name="module_v2x_panel_cor">16px</dimen>
|
||||
<dimen name="module_v2x_panel_width">120px</dimen>
|
||||
<dimen name="v2x_panel_btn_image_width">114px</dimen>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<dimen name="module_v2x_surrounding_item_height">306px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom">77px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_image_height">38px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">12px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_left">28px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">16px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_marginbottom">5px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_stance">80px</dimen>
|
||||
@@ -53,14 +53,25 @@
|
||||
<dimen name="module_v2x_surrounding_top_textsize">32px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_left_textsize">36px</dimen>
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">28px</dimen>
|
||||
<dimen name="module_v2x_des_index_width">16px</dimen>
|
||||
<dimen name="module_v2x_des_index_height">4px</dimen>
|
||||
<dimen name="module_v2x_des_index_width">31.9px</dimen>
|
||||
<dimen name="module_v2x_des_index_height">26px</dimen>
|
||||
<dimen name="module_v2x_panel_icon_cor">30px</dimen>
|
||||
<dimen name="module_v2x_panel_width">120px</dimen>
|
||||
<dimen name="share_empty_icon_width">360px</dimen>
|
||||
<dimen name="module_v2x_panel_width">136px</dimen>
|
||||
<dimen name="share_empty_icon_width">219px</dimen>
|
||||
<dimen name="v2x_loading_ani_width">400px</dimen>
|
||||
<dimen name="v2x_share_btn_width">281px</dimen>
|
||||
<dimen name="v2x_share_btn_height">90px</dimen>
|
||||
<dimen name="v2x_share_btn_size">33.75px</dimen>
|
||||
<dimen name="v2x_index_rating_top">28px</dimen>
|
||||
<dimen name="share_top_text_size">30px</dimen>
|
||||
<dimen name="share_des_num_size">67.5px</dimen>
|
||||
<dimen name="share_index_des_size">30px</dimen>
|
||||
<dimen name="share_empty_btn_padding">40px</dimen>
|
||||
<dimen name="shaer_refresh_padding">60px</dimen>
|
||||
<dimen name="share_index_bottom_padding">36px</dimen>
|
||||
<dimen name="share_btn_middle_padding">54px</dimen>
|
||||
<dimen name="v2x_panel_btn_translationY">-10px</dimen>
|
||||
<dimen name="v2x_panel_btn_image_width">114px</dimen>
|
||||
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<dimen name="module_v2x_surrounding_item_marigin_bottom_left">8px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_marginbottom">2px</dimen>
|
||||
<dimen name="module_v2x_panel_surrounding_stance">30px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top">30px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top">50px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
<dimen name="module_v2x_surrounding_top_textsize">18px</dimen>
|
||||
@@ -57,13 +57,24 @@
|
||||
<dimen name="module_v2x_surrounding_item_bottom_right_textsize">16px</dimen>
|
||||
<dimen name="module_v2x_des_index_width">16px</dimen>
|
||||
<dimen name="module_v2x_des_index_height">20px</dimen>
|
||||
<dimen name="module_v2x_panel_width">66px</dimen>
|
||||
<dimen name="module_v2x_panel_width">74px</dimen>
|
||||
<dimen name="module_v2x_panel_icon_cor">16px</dimen>
|
||||
<dimen name="share_empty_icon_width">117px</dimen>
|
||||
<dimen name="v2x_loading_ani_width">200px</dimen>
|
||||
<dimen name="v2x_share_btn_width">150px</dimen>
|
||||
<dimen name="v2x_share_btn_height">48px</dimen>
|
||||
<dimen name="v2x_share_btn_size">18px</dimen>
|
||||
<dimen name="v2x_index_rating_top">17px</dimen>
|
||||
<dimen name="share_top_text_size">16px</dimen>
|
||||
<dimen name="share_des_num_size">36px</dimen>
|
||||
<dimen name="share_index_des_size">16px</dimen>
|
||||
<dimen name="share_empty_btn_padding">20px</dimen>
|
||||
<dimen name="shaer_refresh_padding">34px</dimen>
|
||||
<dimen name="share_index_bottom_padding">15px</dimen>
|
||||
<dimen name="share_btn_middle_padding">29px</dimen>
|
||||
<dimen name="v2x_panel_btn_translationY">-8px</dimen>
|
||||
<dimen name="v2x_panel_btn_image_width">38px</dimen>
|
||||
|
||||
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -45,6 +45,11 @@ public interface IMogoTanluProvider extends IProvider {
|
||||
*/
|
||||
String TYPE_ROAD_CONSTRUCTION = "10006";
|
||||
|
||||
/**
|
||||
* 故障求助
|
||||
*/
|
||||
String TYPE_SEEK_HELP = "99999";
|
||||
|
||||
/**
|
||||
* 用户手点上报
|
||||
*/
|
||||
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 14 KiB |
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="24px" />
|
||||
<!-- <solid android:color="@color/live_video_background_color_light" />-->
|
||||
<corners android:radius="@dimen/module_v2x_surrounding_refresh_bt_radius" />
|
||||
<solid android:color="#E6E6E6" />
|
||||
|
||||
</shape>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="24px" />
|
||||
<corners android:radius="@dimen/module_v2x_surrounding_refresh_bt_radius" />
|
||||
|
||||
<gradient
|
||||
android:endColor="#1F7EFF"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<corners android:radius="@dimen/dp_180" />
|
||||
<gradient
|
||||
android:angle="135"
|
||||
android:endColor="#2E324B"
|
||||
android:startColor="#585E8B"
|
||||
android:type="linear"
|
||||
android:useLevel="true" />
|
||||
|
||||
</shape>
|
||||
@@ -1,8 +0,0 @@
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<corners android:radius="@dimen/module_v2x_panel_icon_cor" />
|
||||
<gradient android:startColor="#FFFFFFFF" android:endColor="#E5F5F5F5" android:angle="0" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">42px</dimen>
|
||||
</resources>
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<dimen name="module_v2x_panel_icon_cor">30px</dimen>
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">42px</dimen>
|
||||
</resources>
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<color name="v2x_white_light">#333333</color>
|
||||
<color name="v2x_item_white_light">#FFFFFF</color>
|
||||
<color name="v2x_white_refresh_light">#FFFFFF</color>
|
||||
<color name="transparent_white_30_light">#B3FFFFFF</color>
|
||||
<color name="transparent_white_30_light">#333333</color>
|
||||
<color name="share_event_no_more_color_light">#333333</color>
|
||||
<color name="v2x_FFF_999_light">#999999</color>
|
||||
<color name="v2x_FFF_333_light">#333333</color>
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_v2x_panel_icon_cor">16px</dimen>
|
||||
|
||||
<dimen name="module_v2x_surrounding_refresh_bt_radius">24px</dimen>
|
||||
</resources>
|
||||
|
||||
|
||||
|
||||