diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt new file mode 100644 index 0000000..d3917df --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt @@ -0,0 +1,37 @@ +package com.casic.smarttube.utils; + +import android.app.Activity +import android.view.WindowManager +import com.pengxh.kt.lite.base.BaseSingleton +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +class DialogManager private constructor(private val activity: Activity) { + + private lateinit var loadingDialog: QMUITipDialog + + companion object : BaseSingleton() { + override val creator: (Activity) -> DialogManager + get() = ::DialogManager + } + + fun showLoadingDialog(message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismissLoadingDialog() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt new file mode 100644 index 0000000..d3917df --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt @@ -0,0 +1,37 @@ +package com.casic.smarttube.utils; + +import android.app.Activity +import android.view.WindowManager +import com.pengxh.kt.lite.base.BaseSingleton +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +class DialogManager private constructor(private val activity: Activity) { + + private lateinit var loadingDialog: QMUITipDialog + + companion object : BaseSingleton() { + override val creator: (Activity) -> DialogManager + get() = ::DialogManager + } + + fun showLoadingDialog(message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismissLoadingDialog() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index 66f5ff9..fd78271 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -47,6 +47,7 @@ class AddDeviceActivity : KotlinBaseActivity() { private val kTag = "AddDeviceActivity" + private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel @@ -67,6 +68,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) @@ -119,11 +121,11 @@ } locationImageView.setOnClickListener { - DialogHelper.showLoadingDialog(this, "定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() if (aMapLocation == null) { longitudeView.text = "定位失败" latitudeView.text = "定位失败" @@ -165,7 +167,7 @@ uploadImageViewModel.resultModel.observe(this, { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } if (imageAdapter.itemCount <= 3) { val url = it.data.toString() @@ -245,14 +247,14 @@ deviceViewModel.loadState.observe(this, { when (it) { LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "处理中,请稍后") + dialogManager.showLoadingDialog("处理中,请稍后") } LoadState.Success -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() this.finish() } LoadState.Fail -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -275,9 +277,7 @@ "拍照保存失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result analyticalSelectResults(result[0]) } @@ -302,9 +302,7 @@ "选择照片失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result // 线程控制图片压缩上传过程,防止速度过快导致压缩失败 val sum = (result.size * 500).toLong() diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt new file mode 100644 index 0000000..d3917df --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt @@ -0,0 +1,37 @@ +package com.casic.smarttube.utils; + +import android.app.Activity +import android.view.WindowManager +import com.pengxh.kt.lite.base.BaseSingleton +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +class DialogManager private constructor(private val activity: Activity) { + + private lateinit var loadingDialog: QMUITipDialog + + companion object : BaseSingleton() { + override val creator: (Activity) -> DialogManager + get() = ::DialogManager + } + + fun showLoadingDialog(message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismissLoadingDialog() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index 66f5ff9..fd78271 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -47,6 +47,7 @@ class AddDeviceActivity : KotlinBaseActivity() { private val kTag = "AddDeviceActivity" + private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel @@ -67,6 +68,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) @@ -119,11 +121,11 @@ } locationImageView.setOnClickListener { - DialogHelper.showLoadingDialog(this, "定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() if (aMapLocation == null) { longitudeView.text = "定位失败" latitudeView.text = "定位失败" @@ -165,7 +167,7 @@ uploadImageViewModel.resultModel.observe(this, { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } if (imageAdapter.itemCount <= 3) { val url = it.data.toString() @@ -245,14 +247,14 @@ deviceViewModel.loadState.observe(this, { when (it) { LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "处理中,请稍后") + dialogManager.showLoadingDialog("处理中,请稍后") } LoadState.Success -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() this.finish() } LoadState.Fail -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -275,9 +277,7 @@ "拍照保存失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result analyticalSelectResults(result[0]) } @@ -302,9 +302,7 @@ "选择照片失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result // 线程控制图片压缩上传过程,防止速度过快导致压缩失败 val sum = (result.size * 500).toLong() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index a15b96c..7c4a47a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -7,7 +7,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -20,6 +20,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -35,7 +36,7 @@ override fun initData() { val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - + dialogManager = DialogManager.obtainInstance(this) deviceViewModel.obtainDeviceDetail(tubeId) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { @@ -80,8 +81,8 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt new file mode 100644 index 0000000..d3917df --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt @@ -0,0 +1,37 @@ +package com.casic.smarttube.utils; + +import android.app.Activity +import android.view.WindowManager +import com.pengxh.kt.lite.base.BaseSingleton +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +class DialogManager private constructor(private val activity: Activity) { + + private lateinit var loadingDialog: QMUITipDialog + + companion object : BaseSingleton() { + override val creator: (Activity) -> DialogManager + get() = ::DialogManager + } + + fun showLoadingDialog(message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismissLoadingDialog() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index 66f5ff9..fd78271 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -47,6 +47,7 @@ class AddDeviceActivity : KotlinBaseActivity() { private val kTag = "AddDeviceActivity" + private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel @@ -67,6 +68,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) @@ -119,11 +121,11 @@ } locationImageView.setOnClickListener { - DialogHelper.showLoadingDialog(this, "定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() if (aMapLocation == null) { longitudeView.text = "定位失败" latitudeView.text = "定位失败" @@ -165,7 +167,7 @@ uploadImageViewModel.resultModel.observe(this, { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } if (imageAdapter.itemCount <= 3) { val url = it.data.toString() @@ -245,14 +247,14 @@ deviceViewModel.loadState.observe(this, { when (it) { LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "处理中,请稍后") + dialogManager.showLoadingDialog("处理中,请稍后") } LoadState.Success -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() this.finish() } LoadState.Fail -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -275,9 +277,7 @@ "拍照保存失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result analyticalSelectResults(result[0]) } @@ -302,9 +302,7 @@ "选择照片失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result // 线程控制图片压缩上传过程,防止速度过快导致压缩失败 val sum = (result.size * 500).toLong() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index a15b96c..7c4a47a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -7,7 +7,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -20,6 +20,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -35,7 +36,7 @@ override fun initData() { val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - + dialogManager = DialogManager.obtainInstance(this) deviceViewModel.obtainDeviceDetail(tubeId) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { @@ -80,8 +81,8 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 8a287d4..a528a3d 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -7,7 +7,7 @@ import com.casic.smarttube.adapter.DeviceListAdapter import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,6 +25,7 @@ class GroupDeviceActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var groupId: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var groupViewModel: ProjectGroupViewModel @@ -55,7 +56,7 @@ override fun initData() { groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! - + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) obtainDeviceListByPage() @@ -102,8 +103,8 @@ groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt new file mode 100644 index 0000000..d3917df --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt @@ -0,0 +1,37 @@ +package com.casic.smarttube.utils; + +import android.app.Activity +import android.view.WindowManager +import com.pengxh.kt.lite.base.BaseSingleton +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +class DialogManager private constructor(private val activity: Activity) { + + private lateinit var loadingDialog: QMUITipDialog + + companion object : BaseSingleton() { + override val creator: (Activity) -> DialogManager + get() = ::DialogManager + } + + fun showLoadingDialog(message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismissLoadingDialog() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index 66f5ff9..fd78271 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -47,6 +47,7 @@ class AddDeviceActivity : KotlinBaseActivity() { private val kTag = "AddDeviceActivity" + private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel @@ -67,6 +68,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) @@ -119,11 +121,11 @@ } locationImageView.setOnClickListener { - DialogHelper.showLoadingDialog(this, "定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() if (aMapLocation == null) { longitudeView.text = "定位失败" latitudeView.text = "定位失败" @@ -165,7 +167,7 @@ uploadImageViewModel.resultModel.observe(this, { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } if (imageAdapter.itemCount <= 3) { val url = it.data.toString() @@ -245,14 +247,14 @@ deviceViewModel.loadState.observe(this, { when (it) { LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "处理中,请稍后") + dialogManager.showLoadingDialog("处理中,请稍后") } LoadState.Success -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() this.finish() } LoadState.Fail -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -275,9 +277,7 @@ "拍照保存失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result analyticalSelectResults(result[0]) } @@ -302,9 +302,7 @@ "选择照片失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result // 线程控制图片压缩上传过程,防止速度过快导致压缩失败 val sum = (result.size * 500).toLong() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index a15b96c..7c4a47a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -7,7 +7,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -20,6 +20,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -35,7 +36,7 @@ override fun initData() { val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - + dialogManager = DialogManager.obtainInstance(this) deviceViewModel.obtainDeviceDetail(tubeId) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { @@ -80,8 +81,8 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 8a287d4..a528a3d 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -7,7 +7,7 @@ import com.casic.smarttube.adapter.DeviceListAdapter import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,6 +25,7 @@ class GroupDeviceActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var groupId: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var groupViewModel: ProjectGroupViewModel @@ -55,7 +56,7 @@ override fun initData() { groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! - + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) obtainDeviceListByPage() @@ -102,8 +103,8 @@ groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt index 513d29f..8063afd 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.smarttube.R -import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper -import com.casic.smarttube.utils.LocaleConstant -import com.casic.smarttube.utils.RSAUtils +import com.casic.smarttube.utils.* import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.LoginViewModel import com.casic.smarttube.vm.UserViewModel @@ -19,6 +16,7 @@ class LoginActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userViewModel: UserViewModel @@ -30,6 +28,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) @@ -84,10 +83,10 @@ loginViewModel.loadState.observe(this, { loginState -> when (loginState) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "登录中,请稍后") + dialogManager.showLoadingDialog("登录中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 4bf310c..001943c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -18,7 +18,7 @@ import com.casic.smarttube.adapter.GroupListAdapter import com.casic.smarttube.model.MapDeviceModel import com.casic.smarttube.model.ProjectGroupModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.view.AddDeviceActivity import com.casic.smarttube.vm.DeviceViewModel @@ -36,6 +36,7 @@ private val kTag = "HomePageFragment" private lateinit var homeView: View + private lateinit var dialogManager: DialogManager private lateinit var aMap: AMap private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel @@ -66,6 +67,7 @@ ): View { homeView = inflater.inflate(R.layout.fragment_home, container, false) + dialogManager = DialogManager.obtainInstance(requireActivity()) val easyPopupWindow = EasyPopupWindow(requireContext()) easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) homeView.rightOptionView.setOnClickListener { @@ -115,9 +117,11 @@ deviceViewModel.obtainMapDeviceList() //获取组 groupViewModel.obtainProGroupList() - deviceViewModel.mapDeviceModel.observe(this, { if (it.code == 200) { + if (allMarkerOptions.isNotEmpty()) { + allMarkerOptions.clear() + } val latitudeList: MutableList = ArrayList() val longitudeList: MutableList = ArrayList() it.data.forEach { device -> @@ -213,8 +217,8 @@ }) groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(requireActivity(), "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt index 69ce2d1..d69274c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -12,7 +12,7 @@ import com.casic.smarttube.extensions.appendDownloadUrl import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.utils.LocaleConstant import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.view.AboutUsActivity @@ -37,6 +37,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" + private lateinit var dialogManager: DialogManager private lateinit var userData: UserDetailModel.Data private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel @@ -50,6 +51,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(requireActivity()) userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) @@ -68,7 +70,7 @@ } updateUserButton.setOnClickListener { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后...") + dialogManager.showLoadingDialog("同步中,请稍后...") userViewModel.obtainUserDetail() } @@ -107,7 +109,7 @@ clearCacheLayout.setOnClickListener { //删除缓存之后在设置缓存大小 - DialogHelper.showLoadingDialog(requireActivity(), "清理中...") + dialogManager.showLoadingDialog("清理中...") File(requireContext().cacheDir.path).deleteFile() object : CountDownTimer(1500, 500) { override fun onTick(millisUntilFinished: Long) { @@ -115,7 +117,7 @@ } override fun onFinish() { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() cacheSizeView.text = collectApplicationCache().formatFileSize() } }.start() @@ -147,7 +149,7 @@ private fun dataObserve() { userViewModel.userDetailModel.observe(this, { if (it.code == 200) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() "同步完成".show(requireContext()) userData = it.data updateUserInfo() @@ -157,17 +159,17 @@ userViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "修改中,请稍后") + dialogManager.showLoadingDialog("修改中,请稍后") } is LoadState.Success -> { "修改成功,请重新登录".show(requireContext()) - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -198,10 +200,10 @@ versionViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(requireActivity(), "检查版本中,请稍后") + dialogManager.showLoadingDialog("检查版本中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt b/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt deleted file mode 100644 index bb97c01..0000000 --- a/app/src/main/java/com/casic/smarttube/utils/DialogHelper.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.smarttube.utils; - -import android.app.Activity -import android.view.WindowManager -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog - -object DialogHelper { - private lateinit var loadingDialog: QMUITipDialog - - fun showLoadingDialog(activity: Activity, message: String?) { - loadingDialog = QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create() - if (!activity.isDestroyed) { - try { - loadingDialog.show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } - } - } - - fun dismissLoadingDialog() { - if (loadingDialog.isShowing) { - loadingDialog.dismiss() - } - } -} diff --git a/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt new file mode 100644 index 0000000..d3917df --- /dev/null +++ b/app/src/main/java/com/casic/smarttube/utils/DialogManager.kt @@ -0,0 +1,37 @@ +package com.casic.smarttube.utils; + +import android.app.Activity +import android.view.WindowManager +import com.pengxh.kt.lite.base.BaseSingleton +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog + +class DialogManager private constructor(private val activity: Activity) { + + private lateinit var loadingDialog: QMUITipDialog + + companion object : BaseSingleton() { + override val creator: (Activity) -> DialogManager + get() = ::DialogManager + } + + fun showLoadingDialog(message: String) { + loadingDialog = QMUITipDialog + .Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create() + if (!activity.isDestroyed) { + try { + loadingDialog.show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } + } + } + + fun dismissLoadingDialog() { + if (loadingDialog.isShowing) { + loadingDialog.dismiss() + } + } +} diff --git a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt index 66f5ff9..fd78271 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -47,6 +47,7 @@ class AddDeviceActivity : KotlinBaseActivity() { private val kTag = "AddDeviceActivity" + private lateinit var dialogManager: DialogManager private lateinit var imageAdapter: EditableImageAdapter private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var uploadImageViewModel: UploadImageViewModel @@ -67,6 +68,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) @@ -119,11 +121,11 @@ } locationImageView.setOnClickListener { - DialogHelper.showLoadingDialog(this, "定位中中,请稍后...") + dialogManager.showLoadingDialog("定位中中,请稍后...") LocationHelper.obtainCurrentLocation(this, object : LocationHelper.ILocationListener { override fun onAMapLocationGet(aMapLocation: AMapLocation?) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() if (aMapLocation == null) { longitudeView.text = "定位失败" latitudeView.text = "定位失败" @@ -165,7 +167,7 @@ uploadImageViewModel.resultModel.observe(this, { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } if (imageAdapter.itemCount <= 3) { val url = it.data.toString() @@ -245,14 +247,14 @@ deviceViewModel.loadState.observe(this, { when (it) { LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "处理中,请稍后") + dialogManager.showLoadingDialog("处理中,请稍后") } LoadState.Success -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() this.finish() } LoadState.Fail -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) @@ -275,9 +277,7 @@ "拍照保存失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result analyticalSelectResults(result[0]) } @@ -302,9 +302,7 @@ "选择照片失败,请重试".show(context) return } - DialogHelper.showLoadingDialog( - this@AddDeviceActivity, "图片上传中,请稍后..." - ) + dialogManager.showLoadingDialog("图片上传中,请稍后...") selectedImages = result // 线程控制图片压缩上传过程,防止速度过快导致压缩失败 val sum = (result.size * 500).toLong() diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index a15b96c..7c4a47a 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -7,7 +7,7 @@ import com.amap.api.services.geocoder.RegeocodeQuery import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -20,6 +20,7 @@ class DeviceDetailActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var deviceViewModel: DeviceViewModel private val geocoderSearch by lazy { GeocodeSearch(this) } @@ -35,7 +36,7 @@ override fun initData() { val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - + dialogManager = DialogManager.obtainInstance(this) deviceViewModel.obtainDeviceDetail(tubeId) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { @@ -80,8 +81,8 @@ deviceViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 8a287d4..a528a3d 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -7,7 +7,7 @@ import com.casic.smarttube.adapter.DeviceListAdapter import com.casic.smarttube.extensions.showEmptyPage import com.casic.smarttube.model.DeviceListModel -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.ProjectGroupViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity @@ -25,6 +25,7 @@ class GroupDeviceActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var groupId: String private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var groupViewModel: ProjectGroupViewModel @@ -55,7 +56,7 @@ override fun initData() { groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! - + dialogManager = DialogManager.obtainInstance(this) weakReferenceHandler = WeakReferenceHandler(callback) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) obtainDeviceListByPage() @@ -102,8 +103,8 @@ groupViewModel.loadState.observe(this, { when (it) { - LoadState.Loading -> DialogHelper.showLoadingDialog(this, "数据加载中...") - else -> DialogHelper.dismissLoadingDialog() + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt index 513d29f..8063afd 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -2,10 +2,7 @@ import androidx.lifecycle.ViewModelProvider import com.casic.smarttube.R -import com.casic.smarttube.utils.AuthenticationHelper -import com.casic.smarttube.utils.DialogHelper -import com.casic.smarttube.utils.LocaleConstant -import com.casic.smarttube.utils.RSAUtils +import com.casic.smarttube.utils.* import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.LoginViewModel import com.casic.smarttube.vm.UserViewModel @@ -19,6 +16,7 @@ class LoginActivity : KotlinBaseActivity() { + private lateinit var dialogManager: DialogManager private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var userViewModel: UserViewModel @@ -30,6 +28,7 @@ } override fun initData() { + dialogManager = DialogManager.obtainInstance(this) // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) @@ -84,10 +83,10 @@ loginViewModel.loadState.observe(this, { loginState -> when (loginState) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "登录中,请稍后") + dialogManager.showLoadingDialog("登录中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } }) diff --git a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt index c50b55d..a3a2b85 100644 --- a/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/WellDetailActivity.kt @@ -7,7 +7,7 @@ import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.model.* import com.casic.smarttube.R -import com.casic.smarttube.utils.DialogHelper +import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.WellViewModel import com.gyf.immersionbar.ImmersionBar @@ -25,6 +25,7 @@ class WellDetailActivity : KotlinBaseActivity(), AMap.OnMarkerClickListener { + private lateinit var dialogManager: DialogManager private lateinit var wellViewModel: WellViewModel private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var aMap: AMap @@ -42,7 +43,7 @@ val wellId = intent.getStringExtra(Constant.INTENT_PARAM)!! wellViewModel = ViewModelProvider(this).get(WellViewModel::class.java) authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - + dialogManager = DialogManager.obtainInstance(this) wellViewModel.obtainWellDetail(wellId) aMap = wellMapView.map @@ -153,10 +154,10 @@ wellViewModel.loadState.observe(this, { when (it) { is LoadState.Loading -> { - DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + dialogManager.showLoadingDialog("数据加载中,请稍后") } else -> { - DialogHelper.dismissLoadingDialog() + dialogManager.dismissLoadingDialog() } } })