完善室内整理功能
This commit is contained in:
@@ -334,7 +334,10 @@ class MainActivity : BaseActivity() {
|
|||||||
if (viewModel.indoorToolsCommand == IndoorToolsCommand.SELECT_POINT) {
|
if (viewModel.indoorToolsCommand == IndoorToolsCommand.SELECT_POINT) {
|
||||||
selectPointFinish(true)
|
selectPointFinish(true)
|
||||||
}
|
}
|
||||||
|
//启动自动播放
|
||||||
|
if (viewModel.indoorToolsCommand == IndoorToolsCommand.PLAY) {
|
||||||
|
viewModel.startTimer()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IndoorToolsResp.QR_CODE_STATUS_UPDATE_VIDEO_INFO_FAILURE -> {
|
IndoorToolsResp.QR_CODE_STATUS_UPDATE_VIDEO_INFO_FAILURE -> {
|
||||||
@@ -627,7 +630,7 @@ class MainActivity : BaseActivity() {
|
|||||||
viewModel.setSelectPauseTrace(false)
|
viewModel.setSelectPauseTrace(false)
|
||||||
binding.mainActivityMenuIndoorGroup.visibility = View.GONE
|
binding.mainActivityMenuIndoorGroup.visibility = View.GONE
|
||||||
binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace()
|
binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace()
|
||||||
binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()
|
//binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()
|
||||||
binding.mainActivitySnapshotPause.isSelected = viewModel.isSelectPauseTrace()
|
binding.mainActivitySnapshotPause.isSelected = viewModel.isSelectPauseTrace()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -636,8 +639,8 @@ class MainActivity : BaseActivity() {
|
|||||||
*/
|
*/
|
||||||
@RequiresApi(Build.VERSION_CODES.N)
|
@RequiresApi(Build.VERSION_CODES.N)
|
||||||
fun mediaFlagOnclick() {
|
fun mediaFlagOnclick() {
|
||||||
viewModel.setMediaFlag(!viewModel.isMediaFlag())
|
/* viewModel.setMediaFlag(!viewModel.isMediaFlag())
|
||||||
binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()
|
binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -650,11 +653,11 @@ class MainActivity : BaseActivity() {
|
|||||||
mapController.markerHandle.getNILocation(viewModel.getCurrentNiLocationIndex() - 1)
|
mapController.markerHandle.getNILocation(viewModel.getCurrentNiLocationIndex() - 1)
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
viewModel.setCurrentIndexLoction(viewModel.getCurrentNiLocationIndex() - 1)
|
viewModel.setCurrentIndexLoction(viewModel.getCurrentNiLocationIndex() - 1)
|
||||||
viewModel.showMarker(this, (item as MarkerItem).uid as NiLocation)
|
viewModel.showMarker(this, item)
|
||||||
val traceVideoBean = TraceVideoBean(
|
val traceVideoBean = TraceVideoBean(
|
||||||
command = "videotime?",
|
command = "videotime?",
|
||||||
userid = Constant.USER_ID,
|
userid = Constant.USER_ID,
|
||||||
time = "${(item.uid as NiLocation).time}:000"
|
time = "${item.time}:000"
|
||||||
)
|
)
|
||||||
viewModel.sendServerCommand(this, traceVideoBean, IndoorToolsCommand.REWIND)
|
viewModel.sendServerCommand(this, traceVideoBean, IndoorToolsCommand.REWIND)
|
||||||
} else {
|
} else {
|
||||||
@@ -718,11 +721,11 @@ class MainActivity : BaseActivity() {
|
|||||||
mapController.markerHandle.getNILocation(viewModel.getCurrentNiLocationIndex() + 1)
|
mapController.markerHandle.getNILocation(viewModel.getCurrentNiLocationIndex() + 1)
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
viewModel.setCurrentIndexLoction(viewModel.getCurrentNiLocationIndex() + 1)
|
viewModel.setCurrentIndexLoction(viewModel.getCurrentNiLocationIndex() + 1)
|
||||||
viewModel.showMarker(this, (item as MarkerItem).uid as NiLocation)
|
viewModel.showMarker(this, item)
|
||||||
val traceVideoBean = TraceVideoBean(
|
val traceVideoBean = TraceVideoBean(
|
||||||
command = "videotime?",
|
command = "videotime?",
|
||||||
userid = Constant.USER_ID,
|
userid = Constant.USER_ID,
|
||||||
time = "${(item.uid as NiLocation).time}:000"
|
time = "${item.time}:000"
|
||||||
)
|
)
|
||||||
viewModel.sendServerCommand(this, traceVideoBean, IndoorToolsCommand.NEXT)
|
viewModel.sendServerCommand(this, traceVideoBean, IndoorToolsCommand.NEXT)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import androidx.lifecycle.ViewModel
|
|||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import com.blankj.utilcode.util.ToastUtils
|
import com.blankj.utilcode.util.ToastUtils
|
||||||
|
import com.blankj.utilcode.util.ViewUtils.runOnUiThread
|
||||||
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
|
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
|
||||||
import com.navinfo.collect.library.data.entity.*
|
import com.navinfo.collect.library.data.entity.*
|
||||||
import com.navinfo.collect.library.garminvirbxe.HostBean
|
import com.navinfo.collect.library.garminvirbxe.HostBean
|
||||||
@@ -56,12 +57,14 @@ import kotlinx.coroutines.launch
|
|||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.oscim.core.GeoPoint
|
import org.oscim.core.GeoPoint
|
||||||
import org.oscim.core.MapPosition
|
import org.oscim.core.MapPosition
|
||||||
|
import org.oscim.layers.marker.MarkerItem
|
||||||
import org.oscim.map.Map
|
import org.oscim.map.Map
|
||||||
import org.videolan.libvlc.LibVlcUtil
|
import org.videolan.libvlc.LibVlcUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlin.concurrent.fixedRateTimer
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建Activity全局viewmode
|
* 创建Activity全局viewmode
|
||||||
@@ -168,6 +171,10 @@ class MainViewModel @Inject constructor(
|
|||||||
|
|
||||||
private var shareUtil: ShareUtil? = null
|
private var shareUtil: ShareUtil? = null
|
||||||
|
|
||||||
|
private var timer: Timer? = null
|
||||||
|
|
||||||
|
private var disTime :Long = 1000
|
||||||
|
|
||||||
init {
|
init {
|
||||||
mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
|
mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
|
||||||
when (e) {
|
when (e) {
|
||||||
@@ -352,9 +359,11 @@ class MainViewModel @Inject constructor(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(Constant.AUTO_LOCATION){
|
withContext(Dispatchers.Main){
|
||||||
mapController.mMapView.vtmMap.animator()
|
if(Constant.AUTO_LOCATION){
|
||||||
.animateTo(GeoPoint( location.longitude, location.latitude))
|
mapController.mMapView.vtmMap.animator()
|
||||||
|
.animateTo(GeoPoint( location.longitude, location.latitude))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -866,13 +875,6 @@ class MainViewModel @Inject constructor(
|
|||||||
return currentIndexNiLocation
|
return currentIndexNiLocation
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 结束自动播放
|
|
||||||
*/
|
|
||||||
fun cancelTrace() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onConnect(success: Boolean) {
|
override fun onConnect(success: Boolean) {
|
||||||
if (!success && socketServer != null) {
|
if (!success && socketServer != null) {
|
||||||
BaseToast.makeText(
|
BaseToast.makeText(
|
||||||
@@ -928,4 +930,40 @@ class MainViewModel @Inject constructor(
|
|||||||
mCameraDialog?.connection(hostBean1)
|
mCameraDialog?.connection(hostBean1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun startTimer() {
|
||||||
|
if(timer!=null){
|
||||||
|
cancelTrace()
|
||||||
|
}
|
||||||
|
timer = fixedRateTimer("", false, disTime, disTime) {
|
||||||
|
if(currentIndexNiLocation<mapController.markerHandle.getNILocationItemizedLayerSize()){
|
||||||
|
Log.e("qj","定时器")
|
||||||
|
val niLocation = mapController.markerHandle.getNILocation(currentIndexNiLocation)
|
||||||
|
val nextNiLocation = mapController.markerHandle.getNILocation(currentIndexNiLocation+1)
|
||||||
|
if(nextNiLocation!=null&&niLocation!=null){
|
||||||
|
var nilocationDisTime = nextNiLocation.timeStamp.toLong() - niLocation.timeStamp.toLong()
|
||||||
|
disTime = if(nilocationDisTime<1000){
|
||||||
|
1000
|
||||||
|
}else{
|
||||||
|
nilocationDisTime
|
||||||
|
}
|
||||||
|
showMarker(mapController.mMapView.context,nextNiLocation)
|
||||||
|
currentIndexNiLocation += 1
|
||||||
|
//再次启动
|
||||||
|
startTimer()
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
Toast.makeText(mapController.mMapView.context,"无数据了!",Toast.LENGTH_LONG).show()
|
||||||
|
cancelTrace()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束自动播放
|
||||||
|
*/
|
||||||
|
fun cancelTrace() {
|
||||||
|
timer?.cancel()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -345,7 +345,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:constraint_referenced_ids="main_activity_snapshot_finish,main_activity_trace_snapshot_points,main_activity_snapshot_media_flag,main_activity_snapshot_rewind,main_activity_snapshot_pause,main_activity_snapshot_next" />
|
app:constraint_referenced_ids="main_activity_snapshot_finish,main_activity_trace_snapshot_points,main_activity_snapshot_rewind,main_activity_snapshot_pause,main_activity_snapshot_next" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/main_activity_snapshot_finish"
|
android:id="@+id/main_activity_snapshot_finish"
|
||||||
@@ -359,12 +359,12 @@
|
|||||||
android:onClick="@{()->mainActivity.tracePointsOnclick()}"
|
android:onClick="@{()->mainActivity.tracePointsOnclick()}"
|
||||||
android:src="@drawable/map_trace_select_point" />
|
android:src="@drawable/map_trace_select_point" />
|
||||||
|
|
||||||
<ImageButton
|
<!-- <ImageButton
|
||||||
android:id="@+id/main_activity_snapshot_media_flag"
|
android:id="@+id/main_activity_snapshot_media_flag"
|
||||||
style="@style/top_right_drawer_btns_style"
|
style="@style/top_right_drawer_btns_style"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:onClick="@{()->mainActivity.mediaFlagOnclick()}"
|
android:onClick="@{()->mainActivity.mediaFlagOnclick()}"
|
||||||
android:src="@drawable/map_trace_mediaflag" />
|
android:src="@drawable/map_trace_mediaflag" />-->
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/main_activity_snapshot_rewind"
|
android:id="@+id/main_activity_snapshot_rewind"
|
||||||
|
|||||||
@@ -1713,7 +1713,7 @@
|
|||||||
</m>
|
</m>
|
||||||
<m k="boundaryType" v="1">
|
<m k="boundaryType" v="1">
|
||||||
<!--无标线无可区分边界-->
|
<!--无标线无可区分边界-->
|
||||||
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#ffffff" width="0.2" />
|
<line dasharray="20,8" repeat-start="0" stroke="#ffffff" width="0.2"/>
|
||||||
</m>
|
</m>
|
||||||
<!-- <outline-layer id="boundaryType" stroke="#fcba5a" width="0.2" />
|
<!-- <outline-layer id="boundaryType" stroke="#fcba5a" width="0.2" />
|
||||||
<m k="boundaryType" v="0">
|
<m k="boundaryType" v="0">
|
||||||
@@ -1771,7 +1771,6 @@
|
|||||||
<m v="1">
|
<m v="1">
|
||||||
<line stroke="#ffffff" use="boundaryType" />
|
<line stroke="#ffffff" use="boundaryType" />
|
||||||
</m>
|
</m>
|
||||||
<!--只区分虚线与实线-->
|
|
||||||
<m v="2">
|
<m v="2">
|
||||||
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#eccc68" use="boundaryType" />
|
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#eccc68" use="boundaryType" />
|
||||||
</m>
|
</m>
|
||||||
@@ -1819,12 +1818,12 @@
|
|||||||
</m>-->
|
</m>-->
|
||||||
</m>
|
</m>
|
||||||
</m>
|
</m>
|
||||||
<m v="0|1|3|4|5|6|7|8|9">
|
<m v="0|3|4|5|6|7|8|9">
|
||||||
<line stroke="#ffffff" use="boundaryType" />
|
<line stroke="#ffffff" use="boundaryType" />
|
||||||
</m>
|
</m>
|
||||||
<!--只区分虚线与实线-->
|
<!--只区分虚线与实线-->
|
||||||
<m v="0|3|4|5|6|7|8|9">
|
<m v="1">
|
||||||
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#ffffff" />
|
<line dasharray="20,8" repeat-start="0" stroke="#ffffff" width="0.2"/>
|
||||||
</m>
|
</m>
|
||||||
</m>
|
</m>
|
||||||
</m>
|
</m>
|
||||||
|
|||||||
@@ -758,9 +758,9 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
|
|||||||
return niLocationItemizedLayer.itemList.size
|
return niLocationItemizedLayer.itemList.size
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getNILocation(index:Int):MarkerInterface?{
|
fun getNILocation(index:Int):NiLocation?{
|
||||||
return if(index>-1&&index<getNILocationItemizedLayerSize()){
|
return if(index>-1&&index<getNILocationItemizedLayerSize()){
|
||||||
niLocationItemizedLayer.itemList[index]
|
((niLocationItemizedLayer.itemList[index])as MarkerItem).uid as NiLocation
|
||||||
}else{
|
}else{
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user