增加离线地图下载流程

This commit is contained in:
squallzhjch
2023-03-30 10:50:20 +08:00
parent 97a48237ba
commit 3a80a4ee5d
129 changed files with 1590 additions and 13847 deletions

View File

@@ -1,45 +0,0 @@
package com.navinfo.omqs.ui.activity
import android.os.Bundle
import androidx.activity.viewModels
import androidx.core.view.WindowCompat
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.LifecycleOwner
import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.ActivityMainBinding
/**
* 地图主页面
*/
class MainActivity : BaseActivity() {
private lateinit var binding: ActivityMainBinding
private val viewModel by viewModels<MainViewModel>()
override fun onCreate(savedInstanceState: Bundle?) {
WindowCompat.setDecorFitsSystemWindows(window, false)
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
//关联生命周期
binding.lifecycleOwner = this
//给xml转递对象
binding.mainActivity = this
//给xml传递viewModel对象
binding.viewModel = viewModel
//初始化地图
viewModel.initMap(this, binding.mapView.mainActivityMap)
//让viewModel监听activity生命周期
lifecycle.addObserver(viewModel)
}
/**
* 打开个人中菜单
*/
fun openMenu() {
binding.mainActivityDrawer.open()
}
}

View File

@@ -1,51 +0,0 @@
package com.navinfo.omqs.ui.activity
import android.content.Context
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModel
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.collect.library.map.NIMapView
class MainViewModel : ViewModel(), DefaultLifecycleObserver {
/**
* 地图控制器
*/
private lateinit var mapController: NIMapController
/**
* 初始化地图
*/
fun initMap(context: Context, mapView: NIMapView) {
mapController = NIMapController(context = context, mapView = mapView)
}
override fun onStart(owner: LifecycleOwner) {
super.onStart(owner)
//开启定位
mapController.locationLayerHandler.startLocation()
}
override fun onPause(owner: LifecycleOwner) {
mapController.mMapView.onPause()
}
override fun onDestroy(owner: LifecycleOwner) {
mapController.mMapView.onDestroy()
//结束定位
mapController.locationLayerHandler.stopLocation()
}
override fun onResume(owner: LifecycleOwner) {
mapController.mMapView.onResume()
}
/**
* 点击我的位置,回到我的位置
*/
fun onClickLocationButton() {
mapController.locationLayerHandler.animateToCurrentPosition()
}
}

View File

@@ -1,4 +1,4 @@
package com.navinfo.omqs.ui.activity
package com.navinfo.omqs.ui.activity.login
import android.content.Intent
import android.os.Bundle
@@ -6,6 +6,8 @@ import androidx.activity.viewModels
import androidx.databinding.DataBindingUtil
import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.ActivityLoginBinding
import com.navinfo.omqs.ui.activity.map.MainActivity
import com.navinfo.omqs.ui.activity.PermissionsActivity
/**
* 登陆页面
@@ -35,6 +37,6 @@ class LoginActivity : PermissionsActivity() {
fun onClickLoginButton() {
val intent = Intent(this@LoginActivity, MainActivity::class.java)
startActivity(intent)
finish()
// finish()
}
}

View File

@@ -1,15 +1,15 @@
package com.navinfo.omqs.ui.activity
package com.navinfo.omqs.ui.activity.login
import android.view.View
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.navinfo.omqs.model.LoginUser
import com.navinfo.omqs.bean.LoginUserBean
class LoginViewModel : ViewModel() {
val loginUser: MutableLiveData<LoginUser> = MutableLiveData()
val loginUser: MutableLiveData<LoginUserBean> = MutableLiveData()
init {
loginUser.value = LoginUser(username = "admin", password = "123456")
loginUser.value = LoginUserBean(username = "admin", password = "123456")
}
/**
@@ -18,6 +18,5 @@ class LoginViewModel : ViewModel() {
fun onClick(view: View) {
loginUser.value!!.username = "admin2"
loginUser.postValue(loginUser.value)
}
}

View File

@@ -0,0 +1,77 @@
package com.navinfo.omqs.ui.activity.map
import android.os.Bundle
import android.util.Log
import androidx.activity.viewModels
import androidx.core.view.WindowCompat
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.viewModelScope
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.ActivityMainBinding
import com.navinfo.omqs.ui.activity.BaseActivity
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
/**
* 地图主页面
*/
@AndroidEntryPoint
class MainActivity : BaseActivity() {
private lateinit var binding: ActivityMainBinding
private val viewModel by viewModels<MainViewModel>()
//注入地图控制器
@Inject
lateinit var mapController: NIMapController
override fun onCreate(savedInstanceState: Bundle?) {
WindowCompat.setDecorFitsSystemWindows(window, false)
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
//初始化地图
mapController.init(this, binding.mapView.mainActivityMap)
//关联生命周期
binding.lifecycleOwner = this
//给xml转递对象
binding.mainActivity = this
//给xml传递viewModel对象
binding.viewModel = viewModel
// lifecycle.addObserver(viewModel)
}
override fun onStart() {
super.onStart()
//开启定位
mapController.locationLayerHandler.startLocation()
}
override fun onPause() {
super.onPause()
mapController.mMapView.onPause()
}
override fun onDestroy() {
super.onDestroy()
mapController.mMapView.onDestroy()
mapController.locationLayerHandler.stopLocation()
Log.e("jingo","MainActivity 销毁")
}
override fun onResume() {
super.onResume()
mapController.mMapView.onResume()
}
/**
* 打开个人中菜单
*/
fun openMenu() {
binding.mainActivityDrawer.open()
}
}

View File

@@ -0,0 +1,31 @@
package com.navinfo.omqs.ui.activity.map
import android.util.Log
import androidx.lifecycle.ViewModel
import com.navinfo.collect.library.map.NIMapController
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.scopes.ActivityRetainedScoped
import javax.inject.Inject
import javax.inject.Singleton
/**
* 创建Activity全局viewmode
*/
@HiltViewModel
class MainViewModel @Inject constructor(
private val mapController: NIMapController,
) : ViewModel() {
/**
* 点击我的位置,回到我的位置
*/
fun onClickLocationButton() {
mapController.locationLayerHandler.animateToCurrentPosition()
}
override fun onCleared() {
Log.e("jingo","MainViewModel 被释放了")
super.onCleared()
}
}