diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java index 89dfeac7f4..daa049b376 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java @@ -145,7 +145,7 @@ public class ALocationClient implements IMogoLocationClient { synchronized ( sListeners ) { Iterator< IMogoLocationListener > listenerIterator = sListeners.iterator(); while ( listenerIterator.hasNext() ) { - listenerIterator.next().onLocationChanged( mLastLocation.clone() ); + listenerIterator.next().onLocationChanged( mLastLocation ); } } Trace.endSection(); diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java index 4d6edfbc86..516be8652e 100644 --- a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java @@ -26,6 +26,9 @@ public class AutoNaviReceiver extends BroadcastReceiver { private static AutoNaviReceiver autoNaviReceiver; private static boolean sRegisterFlag = false; + private static MogoNaviInfo sNaviInfo; + private static MogoTraffic sTraffic; + public static void register( Context context ) { IntentFilter filter = new IntentFilter(); @@ -85,23 +88,28 @@ public class AutoNaviReceiver extends BroadcastReceiver { MapState.getInstance().setNaving( true ); MogoNaviListenerHandler.getInstance().onStartNavi(); } - MogoNaviInfo naviInfo = new MogoNaviInfo(); - naviInfo.setCurrentLimitSpeed( cameraSpeed ); - naviInfo.setCurrentRoadName( intent.getStringExtra( GuideInfoExtraKey.CUR_ROAD_NAME ) ); - naviInfo.setCurrentSpeed( intent.getIntExtra( GuideInfoExtraKey.CUR_SPEED, 0 ) ); - naviInfo.setCurStepRetainDistance( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_DIS, 0 ) ); - naviInfo.setCurStepRetainTime( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_TIME, 0 ) ); - naviInfo.setIconResId( IconTypeUtils.getResIdByIconType( context, intent.getIntExtra( GuideInfoExtraKey.NEW_ICON, 0 ) ) ); - naviInfo.setNextRoadName( intent.getStringExtra( GuideInfoExtraKey.NEXT_ROAD_NAME ) ); - naviInfo.setPathRetainDistance( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_DIS, 0 ) ); - naviInfo.setPathRetainTime( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_TIME, 0 ) ); - MogoNaviListenerHandler.getInstance().onNaviInfoUpdate( naviInfo ); + if ( sNaviInfo == null ) { + sNaviInfo = new MogoNaviInfo(); + } + sNaviInfo.setCurrentLimitSpeed( cameraSpeed ); + sNaviInfo.setCurrentRoadName( intent.getStringExtra( GuideInfoExtraKey.CUR_ROAD_NAME ) ); + sNaviInfo.setCurrentSpeed( intent.getIntExtra( GuideInfoExtraKey.CUR_SPEED, 0 ) ); + sNaviInfo.setCurStepRetainDistance( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_DIS, 0 ) ); + sNaviInfo.setCurStepRetainTime( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_TIME, 0 ) ); + sNaviInfo.setIconResId( IconTypeUtils.getResIdByIconType( context, intent.getIntExtra( GuideInfoExtraKey.NEW_ICON, 0 ) ) ); + sNaviInfo.setNextRoadName( intent.getStringExtra( GuideInfoExtraKey.NEXT_ROAD_NAME ) ); + sNaviInfo.setPathRetainDistance( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_DIS, 0 ) ); + sNaviInfo.setPathRetainTime( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_TIME, 0 ) ); + MogoNaviListenerHandler.getInstance().onNaviInfoUpdate( sNaviInfo ); } - MogoTraffic mogoTraffic = new MogoTraffic( MapState.getInstance().isAimless() ? MogoTraffic.TYPE_AIM : MogoTraffic.TYPE_NAVI ); - mogoTraffic.setDistance( cameraDisc ); - mogoTraffic.setSpeedLimit( cameraSpeed ); - mogoTraffic.setTrafficType( cameraType ); - MogoNaviListenerHandler.getInstance().onUpdateTraffic2( mogoTraffic ); + if ( sTraffic == null ) { + sTraffic = new MogoTraffic( MapState.getInstance().isAimless() ? MogoTraffic.TYPE_AIM : MogoTraffic.TYPE_NAVI ); + } + sTraffic.setFromType( MapState.getInstance().isAimless() ? MogoTraffic.TYPE_AIM : MogoTraffic.TYPE_NAVI ); + sTraffic.setDistance( cameraDisc ); + sTraffic.setSpeedLimit( cameraSpeed ); + sTraffic.setTrafficType( cameraType ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic2( sTraffic ); } /** diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt index 836d01608a..290bbba5d7 100644 --- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt +++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CosStatusController.kt @@ -136,6 +136,7 @@ class CosStatusController : CosStatusCallback { } Log.d(TAG, "videoAndThumbMap ${videoAndThumbMap}") if (videoAndThumbMap.size == 2) { + trackUploadCos(4) Log.d(TAG, "videoAndThumbMap.size == 2 ") var locationInfo = LocationUtil.getInstance().getLocationInfo() val locationStr: String = Gson().toJson(locationInfo) @@ -149,7 +150,6 @@ class CosStatusController : CosStatusCallback { sendGetInfoFailedReceiver("100") } } else { - trackUploadCos(4) //分享成功,并打点,如果是上报拥堵,需要takeVideo LatLngStickyEventBus.getInstance() .postSticky(GetImageSuccessEvent(downloadUrl, mType)) diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml index 5f69da7e64..bf7b26ad6a 100644 --- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml +++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml @@ -53,7 +53,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="@dimen/module_main_id_entrance_fragment_container_marginLeft" - android:padding="@dimen/module_main_entrance_fragment_container_padding" /> + android:padding="@dimen/module_main_event_fragment_container_padding" /> 635px 1263px + 10px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml index 89b96d6620..ba383b73b4 100644 --- a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml @@ -25,4 +25,5 @@ 340px 1313px + 10px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml index a1a96a40ba..7d45c1632b 100644 --- a/modules/mogo-module-main/src/main/res/values/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values/dimens.xml @@ -24,7 +24,7 @@ 350px 16px 16px - 658px + 4px \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java index cd1ec6fa3b..f9e0479657 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java @@ -22,8 +22,11 @@ import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant; import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener; import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager; +import com.mogo.module.common.dialog.BaseFloatDialog; import com.mogo.module.share.bean.StepAfterAuth; import com.mogo.module.share.constant.ShareConstants; +import com.mogo.module.share.dialog.FixableShareDialog; +import com.mogo.module.share.dialog.GridFixableShareDialog; import com.mogo.module.share.dialog.LaucherShareDialog; import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.module.share.manager.UploadHelper; @@ -95,7 +98,9 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo private static final String TAG = "ShareControl"; private Context mContext; - private LaucherShareDialog mShareDialog; +// private LaucherShareDialog mShareDialog; + + private BaseFloatDialog mShareDialog; private IMogoAuthorizeModuleManager authorizeModuleManager; private IMogoIntentManager intentManager; @@ -125,7 +130,7 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo private void realShowDialog() { if (mShareDialog == null) { Logger.d(TAG,"realShowDialog context : " + mContext); - mShareDialog = new LaucherShareDialog(mContext); + mShareDialog = new GridFixableShareDialog(mContext); mShareDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt new file mode 100644 index 0000000000..bb720041a5 --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/adapter/ShareBtnAdapter.kt @@ -0,0 +1,47 @@ +package com.mogo.module.share.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.mogo.module.share.R +import com.mogo.module.share.bean.FixableButton +import com.mogo.utils.glide.GlideApp + +/** + * 可配置按钮适配器 + * + * @author tongchenfei + */ +class ShareBtnAdapter(val context:Context): RecyclerView.Adapter() { + private val btnList = ArrayList() + var btnClickListener:((btn:FixableButton)->Unit)? = null + fun setFixableButtonList(btns:ArrayList) { + btnList.clear() + btnList.addAll(btns) + notifyDataSetChanged() + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ShareBtnViewHolder { + val view = LayoutInflater.from(context).inflate(R.layout.item_share_btn, parent,false) + return ShareBtnViewHolder(view) + } + + override fun getItemCount(): Int =btnList.size + + override fun onBindViewHolder(holder: ShareBtnViewHolder, position: Int) = holder.bindData(btnList[position]) + + inner class ShareBtnViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){ + private val ivIcon:ImageView = itemView.findViewById(R.id.ivShareIcon) + private val tvContent:TextView = itemView.findViewById(R.id.tvShareContent) + fun bindData(btn: FixableButton) { + GlideApp.with(context).load(btn.iconRes).into(ivIcon) + tvContent.text = btn.content + ivIcon.setOnClickListener { + btnClickListener?.invoke(btn) + } + } + } +} \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt new file mode 100644 index 0000000000..e52d73c420 --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/FixableButton.kt @@ -0,0 +1,9 @@ +package com.mogo.module.share.bean + +import com.mogo.module.share.R + +/** + * 可配置按钮封装 + * @author tongchenfei + */ +data class FixableButton(val id:Int = 0,val poiType:String = "10007",val iconUrl:String = "", val iconRes:Int = R.drawable.share_block_up, val content:String="拥堵") \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt new file mode 100644 index 0000000000..0148f6fe3a --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/FixableShareDialog.kt @@ -0,0 +1,140 @@ +package com.mogo.module.share.dialog + +import android.content.Context +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.commons.debug.DebugConfig +import com.mogo.module.common.dialog.BaseFloatDialog +import com.mogo.module.common.utils.CarSeries +import com.mogo.module.share.R +import com.mogo.module.share.adapter.ShareBtnAdapter +import com.mogo.module.share.bean.FixableButton +import com.mogo.module.share.manager.ISeekHelpListener +import com.mogo.module.share.manager.SeekHelpManager.removeSeekHelpListener +import com.mogo.module.share.manager.UploadHelper.upload +import com.mogo.service.IMogoServiceApis +import com.mogo.service.MogoServicePaths +import com.mogo.service.analytics.IMogoAnalytics +import com.mogo.service.statusmanager.IMogoStatusManager +import com.mogo.service.tanlu.IMogoTanluProvider +import com.mogo.service.tanlu.TanluUploadParams +import com.mogo.utils.logger.Logger +import kotlin.random.Random + + +/** + * 可动态设置内容的Dialog + * 由于和左侧Adas冲突,改成了windowManager方式实现,这种实现方式的问题是,无法监测back键的事件 + * @since 2020-01-10 + * @author tongchenfei + */ +class FixableShareDialog(private val mContext: Context) : BaseFloatDialog(mContext) { + private val isShown = false + private val mAnalytics: IMogoAnalytics + private val mStatusManager: IMogoStatusManager + private val mApis: IMogoServiceApis + private lateinit var btnRecycler: RecyclerView + private lateinit var btnAdapter:ShareBtnAdapter + + private fun setWrapContent() { + val window = window + if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD) { + if (window != null) { + val lp = window.attributes + lp.width = 1024 + lp.height = 600 + window.attributes = lp + } + } else if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) { + if (window != null) { + val lp = window.attributes + lp.width = 1920 + lp.height = 1080 + window.attributes = lp + } + } else { + if (window != null) { + val lp = window.attributes + lp.width = 1024 + lp.height = 600 + window.attributes = lp + } + } + } + + private fun initView() { + Logger.d(TAG, "test-------3") + setContentView(R.layout.launcher_dialog_share_with_gride) + setWrapContent() + + btnRecycler = findViewById(R.id.moduleShareBtnRecyclerView) + val manager = GridLayoutManager(mContext, 5, GridLayoutManager.VERTICAL, false) + manager.isAutoMeasureEnabled = true + btnAdapter = ShareBtnAdapter(mContext) + btnRecycler.adapter = btnAdapter + btnAdapter.btnClickListener = { + Logger.d(TAG, "btn click: $it") + randomGenerateBtn() + } + randomGenerateBtn() + } + + private fun randomGenerateBtn(){ + val random = Random.nextInt(1, 10) + val list = ArrayList() + for (i in 0 until random) { + list.add(FixableButton()) + } + btnAdapter.setFixableButtonList(list) + } + + private val seekListener: ISeekHelpListener = object : ISeekHelpListener { + override fun onSeekHelpSuccess() { + Logger.d(TAG, "上报求助完成,成功") + removeSeekHelpListener(this) + dismiss() + } + + override fun onSeekHelpFail() { + Logger.d(TAG, "上报求助完成,失败") + removeSeekHelpListener(this) + dismiss() + } + } + + /** + * 发送广播 1拥堵,2交通检查,3封路 + */ + private fun sendShareReceiver(type: String) { + val params = TanluUploadParams(type, IMogoTanluProvider.UPLOAD_FROM_USER) + upload(mContext, params, true) + } + + override fun show() { + Logger.d(TAG, "onShow====") + if (!DebugConfig.isLauncher()) { + mApis.adasControllerApi.closeADAS() + } + super.show() + } + + override fun dismiss() { + Logger.d(TAG, "onDismiss=====") + if (!DebugConfig.isLauncher() && mApis.statusManagerApi.isMainPageOnResume) { + mApis.adasControllerApi.showADAS() + } + super.dismiss() + } + + companion object { + private const val TAG = "FixableShareDialog" + } + + init { + mApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(mContext) as IMogoServiceApis + mAnalytics = mApis.analyticsApi + mStatusManager = mApis.statusManagerApi + initView() + } +} \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt new file mode 100644 index 0000000000..fbbef80697 --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/GridFixableShareDialog.kt @@ -0,0 +1,135 @@ +package com.mogo.module.share.dialog + +import android.content.Context +import android.widget.FrameLayout +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.commons.debug.DebugConfig +import com.mogo.module.common.dialog.BaseFloatDialog +import com.mogo.module.common.utils.CarSeries +import com.mogo.module.share.R +import com.mogo.module.share.bean.FixableButton +import com.mogo.module.share.manager.GridBtnManager +import com.mogo.module.share.manager.ISeekHelpListener +import com.mogo.module.share.manager.SeekHelpManager +import com.mogo.module.share.manager.SeekHelpManager.seekHelp +import com.mogo.module.share.manager.UploadHelper +import com.mogo.service.IMogoServiceApis +import com.mogo.service.MogoServicePaths +import com.mogo.service.analytics.IMogoAnalytics +import com.mogo.service.statusmanager.IMogoStatusManager +import com.mogo.service.tanlu.IMogoTanluProvider +import com.mogo.service.tanlu.TanluUploadParams +import com.mogo.utils.logger.Logger +import kotlin.random.Random + +class GridFixableShareDialog(context:Context):BaseFloatDialog(context) { + private val isShown = false + private val mAnalytics: IMogoAnalytics + private val mStatusManager: IMogoStatusManager + private val mApis: IMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context) as IMogoServiceApis + + private fun setWrapContent() { + val window = window + if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD) { + if (window != null) { + val lp = window.attributes + lp.width = 1024 + lp.height = 600 + window.attributes = lp + } + } else if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) { + if (window != null) { + val lp = window.attributes + lp.width = 1920 + lp.height = 1080 + window.attributes = lp + } + } else { + if (window != null) { + val lp = window.attributes + lp.width = 1024 + lp.height = 600 + window.attributes = lp + } + } + } + private lateinit var gridBtnManager:GridBtnManager + private fun initView() { + Logger.d(TAG, "test-------3") + setContentView(R.layout.dialog_share_with_gridlayout) + setWrapContent() + gridBtnManager = GridBtnManager(context,findViewById(R.id.moduleShareBtnGridLayout)) + gridBtnManager.setShareClickListener { + Logger.d(TAG, "share btn click: $it") + if (it.poiType == IMogoTanluProvider.TYPE_SEEK_HELP) { + // 发起故障求助 + Logger.d(TAG,"发起故障求助====") + seekHelp(context, seekListener, true) + }else{ + // 上报道路事件 + Logger.d(TAG,"上报道路事件=====") + sendShareReceiver(it.poiType) + } + dismiss() + } + findViewById(R.id.flShareDialogContainer).setOnClickListener { dismiss() } + + gridBtnManager.showDefaultBtns() + } + + private fun randomGenerateBtn(){ + val random = Random.nextInt(1, 10) + gridBtnManager.resetContainer() + for (i in 0 until random) { + gridBtnManager.generateShareButton(FixableButton(id = i)) + } + } + + private val seekListener: ISeekHelpListener = object : ISeekHelpListener { + override fun onSeekHelpSuccess() { + Logger.d(TAG, "上报求助完成,成功") + SeekHelpManager.removeSeekHelpListener(this) + dismiss() + } + + override fun onSeekHelpFail() { + Logger.d(TAG, "上报求助完成,失败") + SeekHelpManager.removeSeekHelpListener(this) + dismiss() + } + } + + /** + * 发送广播 1拥堵,2交通检查,3封路 + */ + private fun sendShareReceiver(type: String) { + val params = TanluUploadParams(type, IMogoTanluProvider.UPLOAD_FROM_USER) + UploadHelper.upload(context, params, true) + } + + override fun show() { + Logger.d(TAG, "onShow====") + if (!DebugConfig.isLauncher()) { + mApis.adasControllerApi.closeADAS() + } + super.show() + } + + override fun dismiss() { + Logger.d(TAG, "onDismiss=====") + if (!DebugConfig.isLauncher() && mApis.statusManagerApi.isMainPageOnResume) { + mApis.adasControllerApi.showADAS() + } + super.dismiss() + } + + companion object { + private const val TAG = "GridFixableShareDialog" + } + + init { + mAnalytics = mApis.analyticsApi + mStatusManager = mApis.statusManagerApi + initView() + } +} \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java index 45666a44f2..238667d7fb 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java @@ -2,13 +2,14 @@ package com.mogo.module.share.dialog; import android.content.Context; import android.view.View; +import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; -import android.widget.TextView; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; import com.mogo.module.common.dialog.BaseFloatDialog; +import com.mogo.module.common.utils.CarSeries; import com.mogo.module.share.R; import com.mogo.module.share.manager.ISeekHelpListener; import com.mogo.module.share.manager.SeekHelpManager; @@ -74,7 +75,31 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL initView(); initListener(); } - + private void setWrapContent() { + Window window = getWindow(); + if(DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD){ + if (window != null) { + WindowManager.LayoutParams lp = window.getAttributes(); + lp.width = 1024; + lp.height = 600; + window.setAttributes(lp); + } + }else if(CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X){ + if (window != null) { + WindowManager.LayoutParams lp = window.getAttributes(); + lp.width = 1920; + lp.height = 1080; + window.setAttributes(lp); + } + }else{ + if (window != null) { + WindowManager.LayoutParams lp = window.getAttributes(); + lp.width = 1024; + lp.height = 600; + window.setAttributes(lp); + } + } + } private void initView() { Logger.d(TAG, "test-------3"); setContentView(R.layout.launcher_dialog_share_2); diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt new file mode 100644 index 0000000000..65dd00d2da --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/GridBtnManager.kt @@ -0,0 +1,61 @@ +package com.mogo.module.share.manager + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.GridLayout +import android.widget.ImageView +import android.widget.TextView +import com.mogo.module.share.R +import com.mogo.module.share.bean.FixableButton +import com.mogo.service.tanlu.IMogoTanluProvider +import com.mogo.utils.glide.GlideApp + +/** + * 用来管理生成对应的分享按钮 + */ +class GridBtnManager(val context: Context, val container: GridLayout) { + private val inflater = LayoutInflater.from(context) + + fun resetContainer() { + container.removeAllViews() + } + + fun generateShareButton(button: FixableButton): View { + val view = inflater.inflate(R.layout.item_share_btn, container, false) + val img = view.findViewById(R.id.ivShareIcon) + val content = view.findViewById(R.id.tvShareContent) + // 优先加载url图片,然后加载资源图片 + if (button.iconUrl.isNotEmpty()) { + GlideApp.with(context).load(button.iconUrl).centerInside().into(img) + } else { + GlideApp.with(context).load(button.iconRes).centerInside().into(img) + } + content.text = button.content + view.setOnClickListener { + btnClickListener?.invoke(button) + } + container.addView(view) + return view + } + + fun showDefaultBtns() { + resetContainer() + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_BLOCK, iconRes = R.drawable.share_block_up, content = "拥堵")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_TRAFFIC_CHECK, iconRes = R.drawable.share_traffic_check, content = "交通检查")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_CLOSURE, iconRes = R.drawable.share_road_closure, content = "封路")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_ACCIDENT, iconRes = R.drawable.share_accident, content = "事故")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_ROAD_CONSTRUCTION, iconRes = R.drawable.share_road_construction, content = "道路施工")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_REAL_TIME_TRAFFIC, iconRes = R.drawable.share_real_time_traffic, content = "实时路况")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_SEEK_HELP, iconRes = R.drawable.share_seek_help, content = "故障求助")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_STAGNANT_WATER, iconRes = R.drawable.share_stagnant_water, content = "道路积水")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_ROAD_ICY, iconRes = R.drawable.share_road_icy, content = "道路结冰")) + generateShareButton(FixableButton(poiType = IMogoTanluProvider.TYPE_DENSE_FOG, iconRes = R.drawable.share_dense_fog, content = "浓雾")) + } + + private var btnClickListener: ((fixableButton: FixableButton) -> Unit)? = null + fun setShareClickListener(listener: ((fixableButton: FixableButton) -> Unit)) { + btnClickListener = listener + } +} \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml b/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml new file mode 100644 index 0000000000..b428cc73eb --- /dev/null +++ b/modules/mogo-module-share/src/main/res/layout/dialog_share_with_gridlayout.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml b/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml index d17fe7fc18..8ae0f36968 100644 --- a/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml +++ b/modules/mogo-module-share/src/main/res/layout/item_share_btn.xml @@ -3,22 +3,31 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" - android:orientation="vertical"> + android:orientation="vertical" + android:paddingLeft="@dimen/module_share_btn_margin_left" + android:paddingTop="@dimen/module_share_btn_margin_top"> + + + + + - + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml index 566d8d9d02..d39998ae78 100644 --- a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml @@ -21,6 +21,16 @@ 28px 32px + 114px + 83px + 6px + 123px + 110px + + 75px + 165px + 967px + diff --git a/modules/mogo-module-share/src/main/res/values/dimens.xml b/modules/mogo-module-share/src/main/res/values/dimens.xml index de5262bd89..044d40bc47 100644 --- a/modules/mogo-module-share/src/main/res/values/dimens.xml +++ b/modules/mogo-module-share/src/main/res/values/dimens.xml @@ -22,4 +22,14 @@ 15px 17.5px + 60px + 44px + 5px + 65px + 58px + + 40px + 89px + 514px + \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java index 8baaea1315..f9f27f4699 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java @@ -184,7 +184,6 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL } public void initWindow() { - Logger.d("liyz", "initWindow --------->"); EventBus.getDefault().register(this); initInterface(); initModelData(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/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 - + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml new file mode 100644 index 0000000000..df4fdef366 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/drawable/v2x_bkg_dark_light_same.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml index bf2f16368a..e4ec12dbe4 100644 --- a/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml +++ b/modules/mogo-module-v2x/src/main/res/drawable/v2x_drawable_event_more_bkg.xml @@ -1,7 +1,7 @@ - + diff --git a/modules/mogo-module-v2x/src/main/res/layout/dialog_v2x_seek_help.xml b/modules/mogo-module-v2x/src/main/res/layout/dialog_v2x_seek_help.xml index 624445d9d6..3857af1f89 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/dialog_v2x_seek_help.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/dialog_v2x_seek_help.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:background="#88000000"> - - + @@ -13,13 +13,12 @@ android:id="@+id/layout_top" android:layout_width="match_parent" android:layout_height="@dimen/module_v2x_surrounding_top_height" - android:visibility="gone"> + android:visibility="visible"> + android:layout_marginBottom="@dimen/module_v2x_panel_surrounding_marginbottom"> @@ -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" /> @@ -120,8 +119,8 @@ diff --git a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml index 90a57dcea2..b9d812a392 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_description.xml @@ -20,7 +20,7 @@ android:paddingTop="10px" android:text="小窍门:分享路况,点赞其他车主,有助于提高热心指数" android:textColor="#FFFFFF" - android:textSize="16px"> + android:textSize="@dimen/share_top_text_size"> @@ -42,17 +42,17 @@ android:gravity="center_horizontal|center" android:text="0" android:textColor="#FFFFFF" - android:textSize="36px" /> + android:textSize="@dimen/share_des_num_size" /> + android:textSize="@dimen/share_index_des_size" /> @@ -76,17 +76,17 @@ android:gravity="center_horizontal|top" android:text="0" android:textColor="#FFFFFF" - android:textSize="36px" /> + android:textSize="@dimen/share_des_num_size" /> + android:textSize="@dimen/share_index_des_size" /> @@ -101,9 +101,9 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" + android:gravity="center" android:orientation="vertical" - android:paddingTop="17px" - android:gravity="center"> + android:paddingTop="@dimen/v2x_index_rating_top"> + android:paddingTop="@dimen/share_index_bottom_padding" + android:text="热心指数" + android:textColor="#FFFFFF" + android:textSize="@dimen/share_index_des_size" /> + - \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml index 2ab0139341..c66f16aa27 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/module_v2x_event_share_empty.xml @@ -7,8 +7,8 @@ @@ -18,46 +18,46 @@ 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="你还没有分享过道路事件,快去试试吧" android:textColor="@color/v2x_FFF_333" - android:textSize="18px" /> + android:textSize="@dimen/v2x_share_btn_size" /> + android:layout_marginTop="@dimen/share_empty_btn_padding">