diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index 3173247834..e3b32a6960 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -137,7 +137,8 @@ public class BaseBusPassengerPresenter extends Presenter models, int haveArrivedIndex) { - CallerLogger.INSTANCE.d(M_BUS_P + TAG, "routeResult:" + models.size()); + CallerLogger.INSTANCE.d(M_BUS_P + TAG, "routeResult:" + models.size() + + " haveArrivedIndex = "+haveArrivedIndex); mView.routeResult(models,haveArrivedIndex); } diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java index b4e780ef1c..602792dfea 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java @@ -1,7 +1,6 @@ package com.mogo.och.bus.passenger.ui; import android.content.Context; -import android.graphics.Color; import android.os.Bundle; import android.util.AttributeSet; import android.view.LayoutInflater; @@ -71,6 +70,8 @@ public class BusPassengerMapDirectionView private List mLineMarkers = new ArrayList<>(); private IBusPassengerMapViewCallback mIBusPassengerMapViewCallback; + private BitmapDescriptor mArrivedRes; + private BitmapDescriptor mUnArrivedRes; public BusPassengerMapDirectionView(Context context) { this(context, null); @@ -133,6 +134,9 @@ public class BusPassengerMapDirectionView mEndMarker = mAMap.addMarker(new MarkerOptions() .icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_view_dir_end_point))); + mArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_arrived); + mUnArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_un_arrive); + // 加载自定义样式 CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions() .setEnable(true) @@ -182,12 +186,12 @@ public class BusPassengerMapDirectionView if (location == null) { return; } - CallerLogger.INSTANCE.d(M_BUS_P + TAG, "onCarLocationChanged2 :" + location.getLatitude() + ":" + location.getLongitude()); +// CallerLogger.INSTANCE.d(M_BUS_P + TAG, "onCarLocationChanged2 :" + location.getLatitude() + ":" + location.getLongitude()); LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude()); //更新车辆位置 if (mCarMarker != null) { - CallerLogger.INSTANCE.d(M_BUS_P + TAG, "location.getBearing() = " + location.getBearing()); +// CallerLogger.INSTANCE.d(M_BUS_P + TAG, "location.getBearing() = " + location.getBearing()); mCarMarker.setRotateAngle(360 - location.getBearing()); mCarMarker.setPosition(currentLatLng); mCarMarker.setToTop(); @@ -221,13 +225,15 @@ public class BusPassengerMapDirectionView } if (mAMap != null) { + addRouteColorList(); + if (mCoordinatesLatLng.size() > 2) { //设置线段纹理 PolylineOptions polylineOptions = new PolylineOptions(); polylineOptions.addAll(mCoordinatesLatLng); - polylineOptions.useGradient(true); - polylineOptions.width(10); //线段宽度 + polylineOptions.width(14); //线段宽度 + polylineOptions.setUseTexture(true); polylineOptions.lineCapType(PolylineOptions.LineCapType.LineCapRound); polylineOptions.setCustomTextureList(textureList); polylineOptions.setCustomTextureIndex(texIndexList); @@ -249,9 +255,9 @@ public class BusPassengerMapDirectionView texIndexList.clear(); for (int i = 0; i < mCoordinatesLatLng.size(); i++){ if (i <= mHaveArrivedIndex){ - textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_arrived)); + textureList.add(mArrivedRes); }else { - textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow_un_arrive)); + textureList.add(mUnArrivedRes); } texIndexList.add(i); } @@ -330,7 +336,6 @@ public class BusPassengerMapDirectionView mCoordinatesLatLng.clear(); mCoordinatesLatLng.addAll(latLngs); mHaveArrivedIndex = haveArrivedIndex; - addRouteColorList(); } public void clearLineMarkers(){ diff --git a/OCH/mogo-och-bus-passenger/src/main/res/drawable/bus_p_route_bg.xml b/OCH/mogo-och-bus-passenger/src/main/res/drawable/bus_p_route_bg.xml index 73fbe1f005..94dd7c0007 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/drawable/bus_p_route_bg.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/drawable/bus_p_route_bg.xml @@ -4,8 +4,8 @@ diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml index d2a9d7ce32..03e16a4146 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml @@ -52,7 +52,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dp_56" - android:layout_marginTop="@dimen/dp_28" + android:layout_marginTop="@dimen/dp_40" android:elevation="@dimen/dp_10" android:text="@string/bus_p_cur_station_title" android:textColor="@color/bus_p_panel_cur_txt_color" @@ -65,7 +65,7 @@ android:id="@+id/bus_p_cur_station_name" android:layout_width="@dimen/bus_p_curent_station_txt_width" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/dp_10" + android:layout_marginTop="@dimen/dp_12" android:elevation="@dimen/dp_10" android:ellipsize="end" android:maxLines="1" diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml index 01bff7f219..61e9d4acf9 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_route_fragment.xml @@ -7,7 +7,7 @@ () { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java index ee85371b35..1ce646c93c 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java @@ -126,7 +126,9 @@ public class TaxiPassengerModelLoopManager { } } - + /** + * 轮训查下 查询订单剩余里程和时间 + */ public void startQueryOrderRemainingtLoop() { if (mQueryOrderRemainingDisposable != null && !mQueryOrderRemainingDisposable.isDisposed()) { return; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index fe32a0c5ca..056b46c0ff 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -119,7 +119,8 @@ public class BaseTaxiPassengerPresenter extends Presenter models, int haveArrivedIndex) { if (models == null) return; - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "routeResultByServer:" + models.size()); + CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "routeResultByServer:" + models.size() + + " haveArrivedIndex = " + haveArrivedIndex); mView.routeResultByServer(models,haveArrivedIndex); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerMapDirectionView.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerMapDirectionView.java index d7afe97db2..92c0bef6f0 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerMapDirectionView.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerMapDirectionView.java @@ -66,6 +66,9 @@ public class TaxiPassengerMapDirectionView List textureList = new ArrayList<>(); List texIndexList = new ArrayList<>(); + private BitmapDescriptor mArrivedRes; + private BitmapDescriptor mUnArrivedRes; + private ITaxiPassengerMapViewCallback mITaxiPassengerMapViewCallback; public TaxiPassengerMapDirectionView(Context context) { @@ -129,6 +132,9 @@ public class TaxiPassengerMapDirectionView mEndMarker = mAMap.addMarker(new MarkerOptions() .icon(BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_view_dir_end))); + mArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_arrow_arrived); + mUnArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_arrow_un_arrive); + // 加载自定义样式 CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions() .setEnable(true) @@ -189,7 +195,7 @@ public class TaxiPassengerMapDirectionView boundsBuilder.include(endLatLng); //第二个参数为四周留空宽度 mAMap.moveCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(), 100,100,100,100)); - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2--moveCamera :" + location.getLatitude()+", "+location.getLongitude()); +// CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2--moveCamera :" + location.getLatitude()+", "+location.getLongitude()); } else { //设置希望展示的地图缩放级别 @@ -234,15 +240,13 @@ public class TaxiPassengerMapDirectionView } if (mAMap != null) { -// addRouteColorList(); + addRouteColorList(); if (mCoordinatesLatLng.size() > 2) { //设置线段纹理 PolylineOptions polylineOptions = new PolylineOptions(); polylineOptions.addAll(mCoordinatesLatLng); - //polylineOptions.colorValues(colorList); // 1FC3FF -> 57ABFF - //加上这个属性,表示使用渐变线 - //polylineOptions.useGradient(true); + polylineOptions.setUseTexture(true); polylineOptions.width(15); polylineOptions.lineCapType(PolylineOptions.LineCapType.LineCapRound); polylineOptions.setCustomTextureList(textureList); @@ -263,15 +267,10 @@ public class TaxiPassengerMapDirectionView textureList.clear(); texIndexList.clear(); for (int i = 0; i < mCoordinatesLatLng.size(); i++){ -// if (i <= mCoordinatesLatLng.size()/2){ -// colorList.add(Color.argb(255, 31, 195, 255));//start -// }else { -// colorList.add(Color.argb(255, 87, 171, 255));//end -// } if (i <= mHaveArrivedIndex){ - textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_arrow_arrived)); + textureList.add(mArrivedRes); }else { - textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_arrow_un_arrive)); + textureList.add(mUnArrivedRes); } texIndexList.add(i); } @@ -360,7 +359,6 @@ public class TaxiPassengerMapDirectionView mCoordinatesLatLng.clear(); mCoordinatesLatLng.addAll(latLngs); mHaveArrivedIndex = haveArrivedIndex; - addRouteColorList(); } @Override diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt index 42f4bfdf75..18e823eb47 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt @@ -17,6 +17,9 @@ import com.mogo.och.taxi.passenger.mulprocess.BinderCursor import com.mogo.och.taxi.passenger.mulprocess.BinderProvider import com.mogo.och.taxi.passenger.mulprocess.ICallback import com.mogo.och.taxi.passenger.mulprocess.ILeftMenuService +import rx.Observable +import rx.Observer +import rx.schedulers.Schedulers @SuppressLint("StaticFieldLeak") @@ -38,6 +41,11 @@ object LeftMenuOpen { private var icallbacks: RemoteCallbackList = RemoteCallbackList() + var checkIndex = OverlayLeftViewUtils.LIVE + private var lastClickTime = 0L + private const val FAST_CLICK_DELAY_TIME = 1000 // 防止事件发送过快 + + fun setValue( windowView: View, wl: WindowManager.LayoutParams?, @@ -70,7 +78,8 @@ object LeftMenuOpen { val iterator = dragList.iterator() while (iterator.hasNext()) { val next = iterator.next() - unRegisterDragView(next) + unRegisterDragView(next,false) + iterator.remove() } } @@ -169,8 +178,10 @@ object LeftMenuOpen { } } - fun unRegisterDragView(view: View?) { - dragList.remove(view) + fun unRegisterDragView(view: View?,remove:Boolean) { + if(remove) { + dragList.remove(view) + } view?.let { it.setOnTouchListener(null) it.setOnClickListener(null) @@ -220,15 +231,29 @@ object LeftMenuOpen { } fun callCallBack(meters: Long,timeInSecond: Long,speed:Float){ - val len = icallbacks.beginBroadcast() - for (i in 0 until len) { - try { - icallbacks.getBroadcastItem(i).onResult(meters,timeInSecond,speed) - } catch (e: RemoteException) { - e.printStackTrace() + if(checkIndex == OverlayLeftViewUtils.CONSULT||checkIndex == OverlayLeftViewUtils.MOVIE) { + if (System.currentTimeMillis() - lastClickTime < FAST_CLICK_DELAY_TIME){ + return } + lastClickTime = System.currentTimeMillis() + + Observable.empty().subscribeOn(Schedulers.io()) + .subscribe(object : Observer { + override fun onCompleted() { + val len = icallbacks.beginBroadcast() + for (i in 0 until len) { + try { + icallbacks.getBroadcastItem(i).onResult(meters, timeInSecond, speed) + } catch (e: RemoteException) { + e.printStackTrace() + } + } + icallbacks.finishBroadcast() + } + override fun onError(e: Throwable?) {} + override fun onNext(t: String?) {} + }) } - icallbacks.finishBroadcast() } fun invoKeyByEventType(typeID:Int){ diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt index bb083da531..50a5e225b5 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt @@ -105,6 +105,7 @@ object OverlayLeftViewUtils { val liveSelected = object :ListAdapter.OnTabSelectListener{ override fun onSelect(isCurrentProcess:Boolean) { + LeftMenuOpen.checkIndex = LIVE if(isCurrentProcess) { close(view, windowManager) }else { @@ -124,6 +125,7 @@ object OverlayLeftViewUtils { val overViewSelected = object :ListAdapter.OnTabSelectListener{ override fun onSelect(isCurrentProcess:Boolean) { + LeftMenuOpen.checkIndex = OVERVIEW if(isCurrentProcess) { close(view, windowManager) }else { @@ -143,6 +145,7 @@ object OverlayLeftViewUtils { val consultSelect = object :ListAdapter.OnTabSelectListener{ override fun onSelect(isCurrentProcess:Boolean) { + LeftMenuOpen.checkIndex = CONSULT if(isCurrentProcess) { close(view, windowManager) //计算订单起点和终点距离 @@ -154,6 +157,7 @@ object OverlayLeftViewUtils { val entertainmentSelect = object :ListAdapter.OnTabSelectListener{ override fun onSelect(isCurrentProcess:Boolean) { + LeftMenuOpen.checkIndex = MOVIE if(isCurrentProcess) { close(view, windowManager) val sumDis = SharedPrefsMgr.getInstance(context).getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0) @@ -178,6 +182,9 @@ object OverlayLeftViewUtils { windowManager!!.addView(overlayView, params) checkProcess() isShowing = true + } catch (e: WindowManager.BadTokenException) { + isShowing = true; + dismissOverlayView(false) } catch (e: Exception) { e.printStackTrace() } @@ -260,7 +267,7 @@ object OverlayLeftViewUtils { } fun removeDragTarget(view: View?){ - LeftMenuOpen.unRegisterDragView(view) + LeftMenuOpen.unRegisterDragView(view,true) } /** @@ -365,6 +372,10 @@ object OverlayLeftViewUtils { } } + fun getStatus():Boolean{ + return isShowing + } + /** * 移除覆盖View在Activity上面 */ @@ -387,7 +398,12 @@ object OverlayLeftViewUtils { try { if (windowManager != null && overlayView != null) { windowManager!!.removeViewImmediate(overlayView) + params = null + } + if(windowManager!=null){ windowManager = null + } + if(params!=null){ params = null } if (overlayView!=null) { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt index 2863f1e589..d3da306254 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt @@ -16,10 +16,10 @@ import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.taxi.passenger.R import com.mogo.och.taxi.passenger.bean.TaxiPassengerVideoPlay import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst +import com.mogo.och.taxi.passenger.event.FinishActivity import com.mogo.och.taxi.passenger.mulprocess.ICallback import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils -import com.mogo.och.taxi.passenger.event.FinishActivity import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselLayoutManager import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselZoomPostLayoutListener import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CenterScrollListener @@ -33,7 +33,14 @@ import com.shuyu.gsyvideoplayer.video.base.GSYVideoView import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -import java.util.* +import rx.Observable +import rx.Observer +import rx.Subscription +import rx.android.schedulers.AndroidSchedulers +import rx.schedulers.Schedulers +import java.util.Calendar +import java.util.concurrent.TimeUnit +import kotlin.collections.ArrayList import kotlin.math.floor @@ -44,6 +51,7 @@ class VideoActivity : AppCompatActivity() { private lateinit var clContain: ConstraintLayout private lateinit var acivTitleIcon: AppCompatImageView private lateinit var tvTitle: TextView + private var subscribe: Subscription?=null private val arrayListOf = ArrayList() @@ -297,7 +305,7 @@ class VideoActivity : AppCompatActivity() { acivTitleIcon = findViewById(R.id.aciv_title_icon) tvTitle = findViewById(R.id.tv_mogo_consult) acivTitleIcon.setOnClickListener { - finish() + //finish() } } @@ -344,7 +352,25 @@ class VideoActivity : AppCompatActivity() { } } - + subscribe = Observable.interval(0, 8, TimeUnit.SECONDS) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Observer { + override fun onCompleted() {} + override fun onError(e: Throwable?) {} + override fun onNext(t: Long?) { + if (!OverlayLeftViewUtils.getStatus()) { + when (videotype){ + VIDEOTYPE_CONSULT -> { + OverlayLeftViewUtils.showOverlayView(this@VideoActivity,isOpen = false, checkIndex = OverlayLeftViewUtils.CONSULT) + } + VIDEOTYPE_MOIES -> { + OverlayLeftViewUtils.showOverlayView(this@VideoActivity,isOpen = false, checkIndex = OverlayLeftViewUtils.MOVIE) + } + } + } + } + }) } override fun onPause() { @@ -361,6 +387,11 @@ class VideoActivity : AppCompatActivity() { } } } + subscribe?.let { + if(it.isUnsubscribed){ + it.unsubscribe() + } + } } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 387f7212b8..f483cb7346 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -11,7 +11,6 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule import com.mogo.eagle.core.data.deva.scene.SceneTAG import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager -import com.zhjt.mogo_core_function_devatools.feedback.FeedbackManager import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager import com.zhjt.mogo_core_function_devatools.status.* @@ -103,8 +102,8 @@ class DevaToolsProvider : IDevaToolsProvider { upgradeManager.downLoadPackage(mContext!!, downloadKey,downloadUrl) } - override fun showStatusBar(ctx: Context) { - StatusManager.init(ctx) + override fun showStatusBar(ctx: Context, anchor: View) { + StatusManager.init(ctx, anchor) StatusManager.show() } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/Extentions.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/Extentions.kt index 64e6279d23..3246a6f238 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/Extentions.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/Extentions.kt @@ -144,7 +144,7 @@ fun Context.enqueuePop(content: View, width: Int, height: Int, key: String = "", @SuppressLint("ClickableViewAccessibility") -fun Context.normalPop(content: View, width: Int, height: Int, startX: Int = 0, startY: Int = 0, gravity: Int = Gravity.START, onOuterViewClicked:((focus: View) -> Unit)? = null, isFocusable: Boolean = true): () -> Unit { +fun Context.normalPop(content: View, width: Int, height: Int, startX: Int = 0, startY: Int = 0, gravity: Int = Gravity.START, onOuterViewClicked:((focus: View) -> Unit)? = null, isFocusable: Boolean = true): PopupWindow? { val activity = (this as? FragmentActivity) ?: throw IllegalStateException("please use Activity to trigger pop show.") val isImmersiveMode = BarUtils.isImmersiveMode(activity) var tempPop: PopupWindow? = null @@ -192,7 +192,7 @@ fun Context.normalPop(content: View, width: Int, height: Int, startX: Int = 0, s it.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) } if (VERSION.SDK_INT >= VERSION_CODES.M) { - val transition = Slide(gravity).also { + val transition = Slide(if ((gravity and Gravity.START) != 0) Gravity.START else if ((gravity and Gravity.TOP) != 0) Gravity.TOP else if ((gravity and Gravity.END) != 0) Gravity.END else if ((gravity and Gravity.BOTTOM) != 0) Gravity.BOTTOM else throw AssertionError("gravity is not invalid.")).also { it.interpolator = AccelerateDecelerateInterpolator() it.duration = 200 } @@ -202,16 +202,14 @@ fun Context.normalPop(content: View, width: Int, height: Int, startX: Int = 0, s pop.contentView = content decorView.doOnAttach { try { - pop.showAtLocation(it, gravity, startX, if (isImmersiveMode) 0 else BarUtils.getStatusBarHeight() + startY) + pop.showAtLocation(it, gravity, startX, (if (isImmersiveMode) 0 else BarUtils.getStatusBarHeight()) + startY) tempPop = pop } catch (t: Throwable) { t.printStackTrace() } } } - return { - tempPop?.takeIf { it.isShowing }?.dismiss() - } + return tempPop } fun isVisibleOnPoint(content: View, x: Int, y: Int): Boolean { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt index 4f2a447d0b..14f87bb3e6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/scene/SceneManager.kt @@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.Scene.Companion.scene import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_CHAT import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP @@ -28,6 +29,7 @@ class SceneManager { companion object { private const val ADAS = "ADAS" + private const val CALLCHAT = "CALLCHAT" private const val DEVA = "DEVA" private const val HMI = "HMI" private const val OBU = "OBU" @@ -51,6 +53,7 @@ class SceneManager { init { //过滤所需条件 sceneModuleTAG.map[ADAS] = SceneModule(true, M_ADAS_IMPL) + sceneModuleTAG.map[CALLCHAT] = SceneModule(false, M_CHAT) sceneModuleTAG.map[DEVA] = SceneModule(false, M_DEVA) sceneModuleTAG.map[HMI] = SceneModule(false, M_HMI) sceneModuleTAG.map[OBU] = SceneModule(false, M_OBU) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt index 649715fb79..177854b555 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt @@ -3,6 +3,7 @@ package com.zhjt.mogo_core_function_devatools.status import android.content.* import android.view.* import android.view.WindowManager.LayoutParams +import android.widget.* import androidx.core.view.* import androidx.lifecycle.* import androidx.lifecycle.Lifecycle.Event @@ -11,8 +12,7 @@ import androidx.lifecycle.Lifecycle.Event.ON_DESTROY import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.utilcode.kotlin.* -import com.mogo.eagle.core.utilcode.util.AppStateManager -import com.mogo.eagle.core.utilcode.util.IAppStateListener +import com.mogo.eagle.core.utilcode.util.* import com.zhjt.mogo_core_function_devatools.ext.* import com.zhjt.mogo_core_function_devatools.status.entity.CanStatus import com.zhjt.mogo_core_function_devatools.status.entity.GpsStatus @@ -41,14 +41,19 @@ object StatusManager { private lateinit var model: StatusModel - private var hidePop: (() -> Unit)? = null + private var pop: PopupWindow? = null private var timer: Job? = null private var context: WeakReference? = null + private var anchor: WeakReference? = null + private var hasInit = false + private var oldX = 0 + private var oldY = 0 + private val listener = object : IMoGoAutopilotStatusListener { override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { super.onAutopilotGuardian(guardianInfo) @@ -88,7 +93,7 @@ object StatusManager { } } - fun init(ctx: Context) { + fun init(ctx: Context, anchor: View) { if (hasInit) { return } @@ -106,6 +111,25 @@ object StatusManager { } }) context = WeakReference(ctx) + anchor.viewTreeObserver.addOnGlobalLayoutListener { + anchor.getLocationInWindow(IntArray(2).also { + val currentX = it[0] + val currentY = it[1] + var changed = false + if (oldX != currentX) { + oldX = currentX + changed = true + } + if (oldY != currentY) { + changed = true + oldY = currentY + } + if (changed && pop?.isShowing == true) { + pop?.update(getOffsetX(currentX), currentY + 130.PX, -1, -1) + } + }) + } + this.anchor = WeakReference(anchor) } private fun onCreate(ctx: Context) { @@ -133,20 +157,29 @@ object StatusManager { } fun show() { + val anchor = this.anchor?.get() ?: return context?.get()?.also { ctx -> - hidePop?.invoke() + pop?.takeIf { it.isShowing }?.dismiss() val content = StatusView(model, ctx) content.doOnAttach { for (f in flows) { f.onCreate() } } - ctx.normalPop(content, width = 665.PX, height = LayoutParams.WRAP_CONTENT, gravity = Gravity.END, startX = 55.PX, isFocusable = false).also { hidePop = it } + val out = IntArray(2) + anchor.getLocationInWindow(out) + ctx.normalPop(content, width = LayoutParams.WRAP_CONTENT, height = LayoutParams.WRAP_CONTENT, gravity = Gravity.END or Gravity.TOP, startX = getOffsetX(out[0]), startY = out[1] + 130.PX , isFocusable = false)?.also { + pop = it + } } } + private fun getOffsetX(anchorX: Int): Int { + return ScreenUtils.getScreenWidth() - anchorX + 40.PX + } + fun hide() { - hidePop?.invoke() + pop?.takeIf { it.isShowing }?.dismiss() } private fun onDestroy(ctx: Context) { @@ -158,6 +191,6 @@ object StatusManager { it.onDestroy() } flows.clear() - hidePop?.invoke() + pop?.takeIf { it.isShowing }?.dismiss() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt index 7c9013a2dd..0adf523bb6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt @@ -59,15 +59,14 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra moveDuration = 0 removeDuration = 0 } - itx.layoutManager = GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, false) + itx.layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) itx.background = shape(solid = Color.parseColor("#80000000"), radius = 40.PX) itx.addItemDecoration( CommonDividerItemDecoration.Builder() - .horizontalExternalSpace(66.PX) - .verticalExternalSpace(60.PX) - .spanCountTBCare(false) - .verticalInnerSpace(50.PX) - .horizontalInnerSpace(116.PX) + .horizontalExternalSpace(38.PX) + .verticalExternalSpace(30.PX) + .spanCountLRCare(false) + .horizontalInnerSpace(50.PX) .build() ) val adapter = model.status.value?.let { data -> StatusAdapter(context, data.second) }?.also { adapter -> itx.adapter = adapter } @@ -92,7 +91,6 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra } private fun animate(expand: Boolean) { - iv.animate().rotation(if (expand) 0f else -180f).setDuration(200).start() TransitionManager.beginDelayedTransition(this, AutoTransition().setDuration(200)) rv.visibility = if (expand) View.VISIBLE else View.INVISIBLE } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt index 4aa4d23e0b..c502a25195 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt @@ -5,7 +5,10 @@ import android.view.* import android.widget.* import androidx.core.content.* import androidx.recyclerview.widget.* +import com.mogo.eagle.core.utilcode.kotlin.* +import com.mogo.eagle.core.utilcode.util.* import com.zhjt.mogo_core_function_devatools.* +import com.zhjt.mogo_core_function_devatools.R import com.zhjt.mogo_core_function_devatools.R.drawable import com.zhjt.mogo_core_function_devatools.status.entity.* import com.zhjt.mogo_core_function_devatools.status.entity.IpcStatus @@ -30,11 +33,10 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec itemView.findViewById(R.id.iv) } - private val tv: TextView by lazy { - itemView.findViewById(R.id.tv) - } - fun bind(status: Status) { + itemView.onClick { + ToastUtils.showShort(getText(status)) + } when(status) { is IpcStatus -> { if (status.enabled) { @@ -42,7 +44,6 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec } else { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_ipc_disable) } - tv.text = "工控机" } is CanStatus -> { if (status.enabled) { @@ -50,15 +51,12 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec } else { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_can_disable) } - tv.text = "CAN" } is NetStatus -> { if (status.enabled) { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_net_enable) - tv.text = status.name ?: "WI-FI" } else { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_net_disable) - tv.text = "WI-FI" } } is GpsStatus -> { @@ -67,21 +65,17 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec } else { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_gps_disable) } - tv.text = "GPS" } is TracingStatus -> { when(status.state) { ROUTE_FAILED, TRACK_LOAD_FAIL, TRACK_NOT_EXIST, TRACK_FINDED, UNKNOWN -> { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_trace_unkown) - tv.text = "未知" } TRACK_LOADED -> { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_track_enable) - tv.text = "T" } ROUTE_LOADED -> { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_route_enable) - tv.text = "V" } } } @@ -91,9 +85,17 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec } else { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_rtk_disable) } - tv.text = status.desc } } } + + private fun getText(status: Status): String = when(status) { + is CanStatus -> "CAN:${ if (status.enabled) "状态正常" else "非正常连接" }" + is GpsStatus -> "GPS:${ if (status.enabled) "状态正常" else "非正常连接" }" + is IpcStatus -> "工控机:${ if (status.enabled) "状态正常" else "非正常连接" }" + is NetStatus -> "WIFI:${ if (status.enabled) "${status.name}" else "非正常连接" }" + is RTKStatus -> "${status.desc.uppercase()}:${ if (status.enabled) "状态正常" else "非正常连接" }" + is TracingStatus -> "轨迹类型:${ if (status.state == TRACK_LOADED) "循迹" else if (status.state == ROUTE_LOADED) "自主算路" else "暂无轨迹" }" + } } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_dev_status_un_fold.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_dev_status_un_fold.png index 5bd76829ae..290ecce308 100644 Binary files a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_dev_status_un_fold.png and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_dev_status_un_fold.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar.xml index 4b6a95baf4..baecaea7f1 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar.xml @@ -8,22 +8,24 @@ + app:layout_constraintEnd_toStartOf="@+id/iv" + app:layout_constraintTop_toTopOf="parent" + android:layout_marginEnd="20px" + android:overScrollMode="never" + app:layout_constraintBottom_toBottomOf="parent"/> diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar_item.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar_item.xml index b9e7610987..ca92ba33fc 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar_item.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_status_bar_item.xml @@ -1,22 +1,5 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 2697ddad0f..aa21b0bfd5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -205,9 +205,8 @@ import java.util.* setProxyTrafficLightView(viewTrafficLightVr) setProxyLimitingSpeedView(viewLimitingVelocity) setViewNotificationProvider(this) - context?.also { - CallerDevaToolsManager.showStatusBar(it) + CallerDevaToolsManager.showStatusBar(it, vs_status_bar) } } @@ -1226,7 +1225,7 @@ import java.util.* } override fun hideSmallFragment() { - context?.let { CallerDevaToolsManager.showStatusBar(it) } + context?.let { CallerDevaToolsManager.showStatusBar(it, vs_status_bar) } val fragmentOverview = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_OVERVIEW) .navigation() as BaseFragment activity?.supportFragmentManager?.beginTransaction() diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index bd5242473c..f091f7776b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -1065,8 +1065,10 @@ class DebugSettingView @JvmOverloads constructor( val name = map.value.name val log = map.value.log when (name) { - ////ADAS日志标签 + //ADAS日志标签 SceneConstant.M_ADAS_IMPL -> cbAdasLog.isChecked = log + //CALLCHAT日志标签 + SceneConstant.M_CHAT -> cbCallChatLog.isChecked = log //OBU日志标签 SceneConstant.M_OBU -> cbObuLog.isChecked = log //HMI日志标签 @@ -1151,6 +1153,12 @@ class DebugSettingView @JvmOverloads constructor( sceneMap[SceneConstant.M_ADAS_IMPL] = adasModule CallerDevaToolsManager.updateModuleTAG(sceneMap) } + //CALLCHAT日志标签 + cbCallChatLog.setOnCheckedChangeListener { _, isChecked -> + val callChatModule = SceneModule(isChecked, SceneConstant.M_CHAT) + sceneMap[SceneConstant.M_CHAT] = callChatModule + CallerDevaToolsManager.updateModuleTAG(sceneMap) + } //OBU日志标签 cbObuLog.setOnCheckedChangeListener { _, isChecked -> val obuModule = SceneModule(isChecked, SceneConstant.M_OBU) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt index 1c74fbaf9d..9ff5384823 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.data.report.ReportEntity import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.toast.ResourcesHelper.getDrawable import java.lang.reflect.Field /** @@ -72,11 +73,15 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener{ } //错误列表 tvIpcErrorTab.setOnClickListener { + tvIpcErrorTab.background = getDrawable(mActivity,R.drawable.ipc_error_tab_normal_bg) + tvIpcWarningTab.background = getDrawable(mActivity,R.drawable.ipc_warning_tab_normal_bg) ipcReportAdapter?.setData(ipcErrorReportList) ipcReportAdapter?.notifyDataSetChanged() } //预警列表 tvIpcWarningTab.setOnClickListener { + tvIpcErrorTab.background = getDrawable(mActivity,R.drawable.ipc_error_tab_select_bg) + tvIpcWarningTab.background = getDrawable(mActivity,R.drawable.ipc_warning_tab_select_bg) ipcReportAdapter?.setData(ipcWarningReportList) ipcReportAdapter?.notifyDataSetChanged() } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_normal_bg.xml similarity index 100% rename from core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_bg.xml rename to core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_normal_bg.xml diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_select_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_select_bg.xml new file mode 100644 index 0000000000..4b7aeeb7b9 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_error_tab_select_bg.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_warning_tab_normal_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_warning_tab_normal_bg.xml new file mode 100644 index 0000000000..0e87378fad --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_warning_tab_normal_bg.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_warning_tab_select_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_warning_tab_select_bg.xml new file mode 100644 index 0000000000..dec04a6624 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/ipc_warning_tab_select_bg.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml index e0bc4f03fd..ed3b74663e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml @@ -112,23 +112,21 @@ android:id="@+id/ivBadCaseTools" android:layout_width="120px" android:layout_height="120px" - android:src="@drawable/bad_case_selector" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toEndOf="@id/ivToolsIcon" android:layout_marginStart="50px" android:layout_marginBottom="40px" - /> + android:src="@drawable/bad_case_selector" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/ivToolsIcon" /> + android:src="@drawable/ai_collect_selector" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/ivBadCaseTools" /> - + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 0478f29693..abd25fb7af 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -1845,6 +1845,14 @@ android:checked="false" android:text="ADAS日志" /> + + @@ -33,7 +33,7 @@ android:gravity="center" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toRightOf="@id/tv_ipc_error_tab" - android:background="#3A57C5" + android:background="@drawable/ipc_warning_tab_normal_bg" />