[fix]
[包车M1 Ui 恢复]
This commit is contained in:
yangyakun
2025-02-24 17:10:25 +08:00
parent a70e319462
commit f850e2f98e
5 changed files with 115 additions and 1 deletions

View File

@@ -0,0 +1,69 @@
package com.magic.mogo.och.charter.view.view.drawline
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.magic.mogo.och.charter.R
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bridge.autopilot.line.LineManager
/**
*
*/
class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
private val TAG = "LineView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
context,
attributeSet,
defStyleAttr
)
private fun initView() {
setImageResource(R.drawable.charter_map_line_close)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
onClick {
if (LineManager.hasDrawnGlobalTrajectory()) {
LineManager.clearGlobalTrajectory(false)
} else {
val drawGlobalTrajectory = LineManager.drawGlobalTrajectory()
if (!drawGlobalTrajectory.first) {
ToastUtils.showLong(drawGlobalTrajectory.second)
}
}
}
val viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(LineViewModel::class.java)
}
viewModel?.setDistanceCallback(this)
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun setImageViewResource(name: Int) {
setImageResource(name)
}
}

View File

@@ -0,0 +1,45 @@
package com.magic.mogo.och.charter.view.view.drawline
import androidx.annotation.DrawableRes
import androidx.lifecycle.ViewModel
import com.magic.mogo.och.charter.R
import com.mogo.och.bridge.autopilot.line.ILineCallback
import com.mogo.och.bridge.autopilot.line.LineManager
class LineViewModel : ViewModel(), ILineCallback {
private val TAG = LineViewModel::class.java.simpleName
private var viewCallback: ILineViewCallback? = null
init {
}
override fun onCleared() {
super.onCleared()
LineManager.removeListener(TAG)
this.viewCallback = null
}
fun setDistanceCallback(viewCallback: ILineViewCallback) {
LineManager.addListener(TAG,this)
this.viewCallback = viewCallback
}
override fun clearLineSuccess() {
this.viewCallback?.setImageViewResource(R.drawable.charter_map_line_close)
}
override fun drawLineSuccess() {
this.viewCallback?.setImageViewResource(R.drawable.charter_map_line_open)
}
override fun drawLineFail() {
this.viewCallback?.setImageViewResource(R.drawable.charter_map_line_close)
}
interface ILineViewCallback {
fun setImageViewResource(@DrawableRes name: Int)
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -197,7 +197,7 @@
android:layout_width="@dimen/dp_142"
android:layout_height="@dimen/dp_142"/>
<com.mogo.och.bridge.ui.drawline.LineView
<com.magic.mogo.och.charter.view.view.drawline.LineView
android:id="@+id/lineView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/reportworkorderview"