diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 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 daa0f2e..072953f 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -25,7 +25,20 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_device_detail.* +import kotlinx.android.synthetic.main.activity_device_detail.densityView +import kotlinx.android.synthetic.main.activity_device_detail.descriptionView +import kotlinx.android.synthetic.main.activity_device_detail.deviceBatteryView +import kotlinx.android.synthetic.main.activity_device_detail.deviceCodeView +import kotlinx.android.synthetic.main.activity_device_detail.deviceNameView +import kotlinx.android.synthetic.main.activity_device_detail.deviceStateView +import kotlinx.android.synthetic.main.activity_device_detail.imageGridView +import kotlinx.android.synthetic.main.activity_device_detail.lastDataView +import kotlinx.android.synthetic.main.activity_device_detail.leftBackView +import kotlinx.android.synthetic.main.activity_device_detail.locationView +import kotlinx.android.synthetic.main.activity_device_detail.projectGroupView +import kotlinx.android.synthetic.main.activity_device_detail.rightOptionView +import kotlinx.android.synthetic.main.activity_device_detail.signalImageView +import kotlinx.android.synthetic.main.activity_device_detail.titleView class DeviceDetailActivity : KotlinBaseActivity() { @@ -48,7 +61,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data this.deviceModel = device @@ -123,16 +136,16 @@ device.cell + "%" } } - }) + } } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 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 daa0f2e..072953f 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -25,7 +25,20 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_device_detail.* +import kotlinx.android.synthetic.main.activity_device_detail.densityView +import kotlinx.android.synthetic.main.activity_device_detail.descriptionView +import kotlinx.android.synthetic.main.activity_device_detail.deviceBatteryView +import kotlinx.android.synthetic.main.activity_device_detail.deviceCodeView +import kotlinx.android.synthetic.main.activity_device_detail.deviceNameView +import kotlinx.android.synthetic.main.activity_device_detail.deviceStateView +import kotlinx.android.synthetic.main.activity_device_detail.imageGridView +import kotlinx.android.synthetic.main.activity_device_detail.lastDataView +import kotlinx.android.synthetic.main.activity_device_detail.leftBackView +import kotlinx.android.synthetic.main.activity_device_detail.locationView +import kotlinx.android.synthetic.main.activity_device_detail.projectGroupView +import kotlinx.android.synthetic.main.activity_device_detail.rightOptionView +import kotlinx.android.synthetic.main.activity_device_detail.signalImageView +import kotlinx.android.synthetic.main.activity_device_detail.titleView class DeviceDetailActivity : KotlinBaseActivity() { @@ -48,7 +61,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data this.deviceModel = device @@ -123,16 +136,16 @@ device.cell + "%" } } - }) + } } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { 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 c57e2c1..0ae8862 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -28,9 +28,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction -import kotlinx.android.synthetic.main.activity_group_device.* -import kotlinx.android.synthetic.main.fragment_home.view.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceLayout +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceView +import kotlinx.android.synthetic.main.activity_group_device.leftBackView +import kotlinx.android.synthetic.main.activity_group_device.rightOptionView +import kotlinx.android.synthetic.main.activity_group_device.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class GroupDeviceActivity : KotlinBaseActivity() { @@ -139,18 +142,18 @@ groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! titleView.text = String.format(groupId + "项目设备列表") weakReferenceHandler = WeakReferenceHandler(callback) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] obtainDeviceListByPage() } override fun observeRequestState() { - groupViewModel.loadState.observe(this, { + groupViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -166,7 +169,7 @@ obtainDeviceListByPage() } - groupViewModel.deviceListModel.observe(this, { + groupViewModel.deviceListModel.observe(this) { if (it.code == 200) { val dataRows = it.data when { @@ -176,6 +179,7 @@ groupDeviceLayout.finishRefresh() isRefresh = false } + isLoadMore -> { if (dataRows?.size == 0) { "到底了,别拉了".show(this) @@ -184,15 +188,16 @@ groupDeviceLayout.finishLoadMore() isLoadMore = false } + else -> { dataBeans = dataRows!! } } weakReferenceHandler.sendEmptyMessage(2022070601) } - }) + } - deviceViewModel.deleteResult.observe(this, { + deviceViewModel.deleteResult.observe(this) { if (it.code == 200) { if (isDeleteAll) { dataBeans.removeAll(dataBeans) @@ -212,7 +217,7 @@ } } } - }) + } } private fun obtainDeviceListByPage() { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 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 daa0f2e..072953f 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -25,7 +25,20 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_device_detail.* +import kotlinx.android.synthetic.main.activity_device_detail.densityView +import kotlinx.android.synthetic.main.activity_device_detail.descriptionView +import kotlinx.android.synthetic.main.activity_device_detail.deviceBatteryView +import kotlinx.android.synthetic.main.activity_device_detail.deviceCodeView +import kotlinx.android.synthetic.main.activity_device_detail.deviceNameView +import kotlinx.android.synthetic.main.activity_device_detail.deviceStateView +import kotlinx.android.synthetic.main.activity_device_detail.imageGridView +import kotlinx.android.synthetic.main.activity_device_detail.lastDataView +import kotlinx.android.synthetic.main.activity_device_detail.leftBackView +import kotlinx.android.synthetic.main.activity_device_detail.locationView +import kotlinx.android.synthetic.main.activity_device_detail.projectGroupView +import kotlinx.android.synthetic.main.activity_device_detail.rightOptionView +import kotlinx.android.synthetic.main.activity_device_detail.signalImageView +import kotlinx.android.synthetic.main.activity_device_detail.titleView class DeviceDetailActivity : KotlinBaseActivity() { @@ -48,7 +61,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data this.deviceModel = device @@ -123,16 +136,16 @@ device.cell + "%" } } - }) + } } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { 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 c57e2c1..0ae8862 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -28,9 +28,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction -import kotlinx.android.synthetic.main.activity_group_device.* -import kotlinx.android.synthetic.main.fragment_home.view.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceLayout +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceView +import kotlinx.android.synthetic.main.activity_group_device.leftBackView +import kotlinx.android.synthetic.main.activity_group_device.rightOptionView +import kotlinx.android.synthetic.main.activity_group_device.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class GroupDeviceActivity : KotlinBaseActivity() { @@ -139,18 +142,18 @@ groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! titleView.text = String.format(groupId + "项目设备列表") weakReferenceHandler = WeakReferenceHandler(callback) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] obtainDeviceListByPage() } override fun observeRequestState() { - groupViewModel.loadState.observe(this, { + groupViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -166,7 +169,7 @@ obtainDeviceListByPage() } - groupViewModel.deviceListModel.observe(this, { + groupViewModel.deviceListModel.observe(this) { if (it.code == 200) { val dataRows = it.data when { @@ -176,6 +179,7 @@ groupDeviceLayout.finishRefresh() isRefresh = false } + isLoadMore -> { if (dataRows?.size == 0) { "到底了,别拉了".show(this) @@ -184,15 +188,16 @@ groupDeviceLayout.finishLoadMore() isLoadMore = false } + else -> { dataBeans = dataRows!! } } weakReferenceHandler.sendEmptyMessage(2022070601) } - }) + } - deviceViewModel.deleteResult.observe(this, { + deviceViewModel.deleteResult.observe(this) { if (it.code == 200) { if (isDeleteAll) { dataBeans.removeAll(dataBeans) @@ -212,7 +217,7 @@ } } } - }) + } } private fun obtainDeviceListByPage() { diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 848ddcf..71f438c 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -14,12 +14,18 @@ import com.gyf.immersionbar.ImmersionBar import com.jzxiang.pickerview.data.Type import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.timestampToLastMonthDate +import com.pengxh.kt.lite.extensions.timestampToLastWeekDate import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_history_data.* -import java.util.* +import kotlinx.android.synthetic.main.activity_history_data.dataLineChart +import kotlinx.android.synthetic.main.activity_history_data.leftBackView +import kotlinx.android.synthetic.main.activity_history_data.periodSpinner +import java.util.Calendar class HistoryDataActivity : KotlinBaseActivity() { @@ -41,16 +47,16 @@ groupId = params[0] devCode = params[1] - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -137,7 +143,7 @@ } } - deviceViewModel.historyDataModel.observe(this, { + deviceViewModel.historyDataModel.observe(this) { if (it.code == 200) { val xAxisLabels: MutableList = ArrayList() //每个entries都是一条折线 @@ -155,6 +161,6 @@ } ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntries) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 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 daa0f2e..072953f 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -25,7 +25,20 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_device_detail.* +import kotlinx.android.synthetic.main.activity_device_detail.densityView +import kotlinx.android.synthetic.main.activity_device_detail.descriptionView +import kotlinx.android.synthetic.main.activity_device_detail.deviceBatteryView +import kotlinx.android.synthetic.main.activity_device_detail.deviceCodeView +import kotlinx.android.synthetic.main.activity_device_detail.deviceNameView +import kotlinx.android.synthetic.main.activity_device_detail.deviceStateView +import kotlinx.android.synthetic.main.activity_device_detail.imageGridView +import kotlinx.android.synthetic.main.activity_device_detail.lastDataView +import kotlinx.android.synthetic.main.activity_device_detail.leftBackView +import kotlinx.android.synthetic.main.activity_device_detail.locationView +import kotlinx.android.synthetic.main.activity_device_detail.projectGroupView +import kotlinx.android.synthetic.main.activity_device_detail.rightOptionView +import kotlinx.android.synthetic.main.activity_device_detail.signalImageView +import kotlinx.android.synthetic.main.activity_device_detail.titleView class DeviceDetailActivity : KotlinBaseActivity() { @@ -48,7 +61,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data this.deviceModel = device @@ -123,16 +136,16 @@ device.cell + "%" } } - }) + } } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { 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 c57e2c1..0ae8862 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -28,9 +28,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction -import kotlinx.android.synthetic.main.activity_group_device.* -import kotlinx.android.synthetic.main.fragment_home.view.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceLayout +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceView +import kotlinx.android.synthetic.main.activity_group_device.leftBackView +import kotlinx.android.synthetic.main.activity_group_device.rightOptionView +import kotlinx.android.synthetic.main.activity_group_device.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class GroupDeviceActivity : KotlinBaseActivity() { @@ -139,18 +142,18 @@ groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! titleView.text = String.format(groupId + "项目设备列表") weakReferenceHandler = WeakReferenceHandler(callback) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] obtainDeviceListByPage() } override fun observeRequestState() { - groupViewModel.loadState.observe(this, { + groupViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -166,7 +169,7 @@ obtainDeviceListByPage() } - groupViewModel.deviceListModel.observe(this, { + groupViewModel.deviceListModel.observe(this) { if (it.code == 200) { val dataRows = it.data when { @@ -176,6 +179,7 @@ groupDeviceLayout.finishRefresh() isRefresh = false } + isLoadMore -> { if (dataRows?.size == 0) { "到底了,别拉了".show(this) @@ -184,15 +188,16 @@ groupDeviceLayout.finishLoadMore() isLoadMore = false } + else -> { dataBeans = dataRows!! } } weakReferenceHandler.sendEmptyMessage(2022070601) } - }) + } - deviceViewModel.deleteResult.observe(this, { + deviceViewModel.deleteResult.observe(this) { if (it.code == 200) { if (isDeleteAll) { dataBeans.removeAll(dataBeans) @@ -212,7 +217,7 @@ } } } - }) + } } private fun obtainDeviceListByPage() { diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 848ddcf..71f438c 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -14,12 +14,18 @@ import com.gyf.immersionbar.ImmersionBar import com.jzxiang.pickerview.data.Type import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.timestampToLastMonthDate +import com.pengxh.kt.lite.extensions.timestampToLastWeekDate import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_history_data.* -import java.util.* +import kotlinx.android.synthetic.main.activity_history_data.dataLineChart +import kotlinx.android.synthetic.main.activity_history_data.leftBackView +import kotlinx.android.synthetic.main.activity_history_data.periodSpinner +import java.util.Calendar class HistoryDataActivity : KotlinBaseActivity() { @@ -41,16 +47,16 @@ groupId = params[0] devCode = params[1] - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -137,7 +143,7 @@ } } - deviceViewModel.historyDataModel.observe(this, { + deviceViewModel.historyDataModel.observe(this) { if (it.code == 200) { val xAxisLabels: MutableList = ArrayList() //每个entries都是一条折线 @@ -155,6 +161,6 @@ } ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntries) } - }) + } } } \ No newline at end of file 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 ec9a374..ebca433 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -2,7 +2,10 @@ import androidx.lifecycle.ViewModelProvider import com.casic.smarttube.R -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.AuthenticationHelper +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.LoginViewModel import com.casic.smarttube.vm.UserViewModel @@ -11,7 +14,9 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import kotlinx.android.synthetic.main.activity_login.* +import kotlinx.android.synthetic.main.activity_login.loginButton +import kotlinx.android.synthetic.main.activity_login.userNameView +import kotlinx.android.synthetic.main.activity_login.userPasswordView class LoginActivity : KotlinBaseActivity() { @@ -29,19 +34,19 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { - authenticateViewModel.loadState.observe(this, { + authenticateViewModel.loadState.observe(this) { LoadingDialogHub.show(this, "登录中,请稍后") - }) + } - loginViewModel.loadState.observe(this, { + loginViewModel.loadState.observe(this) { LoadingDialogHub.dismiss() - }) + } } override fun initEvent() { @@ -60,7 +65,7 @@ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } - authenticateViewModel.keyModel.observe(this, { + authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! /** @@ -75,7 +80,7 @@ RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this, { loginResult -> + loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) /** @@ -86,8 +91,8 @@ this.navigatePageTo() finish() } - }) + } } - }) + } } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 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 daa0f2e..072953f 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -25,7 +25,20 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_device_detail.* +import kotlinx.android.synthetic.main.activity_device_detail.densityView +import kotlinx.android.synthetic.main.activity_device_detail.descriptionView +import kotlinx.android.synthetic.main.activity_device_detail.deviceBatteryView +import kotlinx.android.synthetic.main.activity_device_detail.deviceCodeView +import kotlinx.android.synthetic.main.activity_device_detail.deviceNameView +import kotlinx.android.synthetic.main.activity_device_detail.deviceStateView +import kotlinx.android.synthetic.main.activity_device_detail.imageGridView +import kotlinx.android.synthetic.main.activity_device_detail.lastDataView +import kotlinx.android.synthetic.main.activity_device_detail.leftBackView +import kotlinx.android.synthetic.main.activity_device_detail.locationView +import kotlinx.android.synthetic.main.activity_device_detail.projectGroupView +import kotlinx.android.synthetic.main.activity_device_detail.rightOptionView +import kotlinx.android.synthetic.main.activity_device_detail.signalImageView +import kotlinx.android.synthetic.main.activity_device_detail.titleView class DeviceDetailActivity : KotlinBaseActivity() { @@ -48,7 +61,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data this.deviceModel = device @@ -123,16 +136,16 @@ device.cell + "%" } } - }) + } } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { 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 c57e2c1..0ae8862 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -28,9 +28,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction -import kotlinx.android.synthetic.main.activity_group_device.* -import kotlinx.android.synthetic.main.fragment_home.view.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceLayout +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceView +import kotlinx.android.synthetic.main.activity_group_device.leftBackView +import kotlinx.android.synthetic.main.activity_group_device.rightOptionView +import kotlinx.android.synthetic.main.activity_group_device.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class GroupDeviceActivity : KotlinBaseActivity() { @@ -139,18 +142,18 @@ groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! titleView.text = String.format(groupId + "项目设备列表") weakReferenceHandler = WeakReferenceHandler(callback) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] obtainDeviceListByPage() } override fun observeRequestState() { - groupViewModel.loadState.observe(this, { + groupViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -166,7 +169,7 @@ obtainDeviceListByPage() } - groupViewModel.deviceListModel.observe(this, { + groupViewModel.deviceListModel.observe(this) { if (it.code == 200) { val dataRows = it.data when { @@ -176,6 +179,7 @@ groupDeviceLayout.finishRefresh() isRefresh = false } + isLoadMore -> { if (dataRows?.size == 0) { "到底了,别拉了".show(this) @@ -184,15 +188,16 @@ groupDeviceLayout.finishLoadMore() isLoadMore = false } + else -> { dataBeans = dataRows!! } } weakReferenceHandler.sendEmptyMessage(2022070601) } - }) + } - deviceViewModel.deleteResult.observe(this, { + deviceViewModel.deleteResult.observe(this) { if (it.code == 200) { if (isDeleteAll) { dataBeans.removeAll(dataBeans) @@ -212,7 +217,7 @@ } } } - }) + } } private fun obtainDeviceListByPage() { diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 848ddcf..71f438c 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -14,12 +14,18 @@ import com.gyf.immersionbar.ImmersionBar import com.jzxiang.pickerview.data.Type import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.timestampToLastMonthDate +import com.pengxh.kt.lite.extensions.timestampToLastWeekDate import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_history_data.* -import java.util.* +import kotlinx.android.synthetic.main.activity_history_data.dataLineChart +import kotlinx.android.synthetic.main.activity_history_data.leftBackView +import kotlinx.android.synthetic.main.activity_history_data.periodSpinner +import java.util.Calendar class HistoryDataActivity : KotlinBaseActivity() { @@ -41,16 +47,16 @@ groupId = params[0] devCode = params[1] - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -137,7 +143,7 @@ } } - deviceViewModel.historyDataModel.observe(this, { + deviceViewModel.historyDataModel.observe(this) { if (it.code == 200) { val xAxisLabels: MutableList = ArrayList() //每个entries都是一条折线 @@ -155,6 +161,6 @@ } ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntries) } - }) + } } } \ No newline at end of file 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 ec9a374..ebca433 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -2,7 +2,10 @@ import androidx.lifecycle.ViewModelProvider import com.casic.smarttube.R -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.AuthenticationHelper +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.LoginViewModel import com.casic.smarttube.vm.UserViewModel @@ -11,7 +14,9 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import kotlinx.android.synthetic.main.activity_login.* +import kotlinx.android.synthetic.main.activity_login.loginButton +import kotlinx.android.synthetic.main.activity_login.userNameView +import kotlinx.android.synthetic.main.activity_login.userPasswordView class LoginActivity : KotlinBaseActivity() { @@ -29,19 +34,19 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { - authenticateViewModel.loadState.observe(this, { + authenticateViewModel.loadState.observe(this) { LoadingDialogHub.show(this, "登录中,请稍后") - }) + } - loginViewModel.loadState.observe(this, { + loginViewModel.loadState.observe(this) { LoadingDialogHub.dismiss() - }) + } } override fun initEvent() { @@ -60,7 +65,7 @@ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } - authenticateViewModel.keyModel.observe(this, { + authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! /** @@ -75,7 +80,7 @@ RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this, { loginResult -> + loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) /** @@ -86,8 +91,8 @@ this.navigatePageTo() finish() } - }) + } } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt b/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt index 0805438..f00e0ca 100644 --- a/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt @@ -5,7 +5,10 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.* +import com.amap.api.maps.model.BitmapDescriptorFactory +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.MarkerOptions import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult import com.amap.api.services.geocoder.GeocodeSearch @@ -21,8 +24,14 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_map_device_brief.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_map_device_brief.deviceCodeView +import kotlinx.android.synthetic.main.activity_map_device_brief.deviceModelView +import kotlinx.android.synthetic.main.activity_map_device_brief.deviceValueView +import kotlinx.android.synthetic.main.activity_map_device_brief.locationView +import kotlinx.android.synthetic.main.activity_map_device_brief.mapView +import kotlinx.android.synthetic.main.activity_map_device_brief.updateTimeView +import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView class MapDeviceBriefActivity : KotlinBaseActivity() { @@ -53,21 +62,21 @@ this.params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data @@ -76,7 +85,7 @@ //获取设备最新浓度信息 deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) - deviceViewModel.lastDataModel.observe(this, { v -> + deviceViewModel.lastDataModel.observe(this) { v -> if (v.code == 200) { deviceValueView.text = String.format("最新浓度: ${v.data.strength}") updateTimeView.text = String.format("更新时间: ${v.data.uptime}") @@ -84,7 +93,7 @@ deviceValueView.text = String.format("最新浓度: 未知") updateTimeView.text = String.format("更新时间: 未知") } - }) + } if (device.latGaode.isBlank() || device.lngGaode.isBlank()) { locationView.text = "经纬度异常,无法查看具体位置" } else { @@ -133,7 +142,7 @@ } } } - }) + } } /**地图相关*********/ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fb4538c..d9f19a0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,4 +85,17 @@ + + + + + + + + + + + + + \ No newline at end of file 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 f9b3271..a4e964c 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -24,13 +24,30 @@ import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.callback.OnDownloadListener -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.calculateSize +import com.pengxh.kt.lite.extensions.createDownloadFileDir +import com.pengxh.kt.lite.extensions.deleteFile +import com.pengxh.kt.lite.extensions.downloadFile +import com.pengxh.kt.lite.extensions.formatFileSize +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.PageNavigationManager import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.ChangePasswordDialog -import kotlinx.android.synthetic.main.fragment_mine.* +import kotlinx.android.synthetic.main.fragment_mine.aboutUsLayout +import kotlinx.android.synthetic.main.fragment_mine.cacheSizeView +import kotlinx.android.synthetic.main.fragment_mine.changePwdLayout +import kotlinx.android.synthetic.main.fragment_mine.clearCacheLayout +import kotlinx.android.synthetic.main.fragment_mine.loginOutButton +import kotlinx.android.synthetic.main.fragment_mine.updateLogLayout +import kotlinx.android.synthetic.main.fragment_mine.updateUserButton +import kotlinx.android.synthetic.main.fragment_mine.updateVersionLayout +import kotlinx.android.synthetic.main.fragment_mine.userDeptView +import kotlinx.android.synthetic.main.fragment_mine.userImageView +import kotlinx.android.synthetic.main.fragment_mine.userNameView +import kotlinx.android.synthetic.main.fragment_mine.userPhoneView import java.io.File import java.nio.charset.StandardCharsets @@ -50,9 +67,9 @@ } override fun initData() { - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - versionViewModel = ViewModelProvider(this).get(VersionViewModel::class.java) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + versionViewModel = ViewModelProvider(this)[VersionViewModel::class.java] //初始化下载对话框 progressDialog = ProgressDialog(requireContext()) @@ -63,7 +80,7 @@ } override fun observeRequestState() { - userViewModel.loadState.observe(this, { + userViewModel.loadState.observe(this) { when (it) { is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "修改中,请稍后") is LoadState.Success -> { @@ -73,16 +90,21 @@ requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - else -> LoadingDialogHub.dismiss() - } - }) - versionViewModel.loadState.observe(this, { - when (it) { - is LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "检查版本中,请稍后") else -> LoadingDialogHub.dismiss() } - }) + } + + versionViewModel.loadState.observe(this) { + when (it) { + is LoadState.Loading -> LoadingDialogHub.show( + requireActivity(), + "检查版本中,请稍后" + ) + + else -> LoadingDialogHub.dismiss() + } + } } override fun initEvent() { @@ -168,16 +190,16 @@ } private fun dataObserve() { - userViewModel.userDetailModel.observe(this, { + userViewModel.userDetailModel.observe(this) { if (it.code == 200) { LoadingDialogHub.dismiss() "同步完成".show(requireContext()) userData = it.data updateUserInfo() } - }) + } - versionViewModel.versionResultModel.observe(this, { + versionViewModel.versionResultModel.observe(this) { if (BuildConfig.VERSION_NAME == it.version) { "已是最新版本,无需更新".show(requireContext()) } else { @@ -198,15 +220,15 @@ } }).build().show() } - }) + } - loginViewModel.outResultModel.observe(this, { + loginViewModel.outResultModel.observe(this) { if (it.code == 200) { AuthenticationHelper.removeToken() requireContext().navigatePageTo() PageNavigationManager.finishAllActivity() } - }) + } } private fun collectApplicationCache(): Long { diff --git a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt index 1143d7c..b009850 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/OverviewFragment.kt @@ -11,8 +11,10 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.widget.dialog.AlertInputDialog -import kotlinx.android.synthetic.main.fragment_overview.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.fragment_overview.groupRecyclerView +import kotlinx.android.synthetic.main.fragment_overview.rightOptionView +import kotlinx.android.synthetic.main.fragment_overview.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class OverviewFragment : KotlinBaseFragment() { @@ -46,7 +48,7 @@ "刷新数据中,请稍后".show(requireContext()) } - groupViewModel.groupModel.observe(this, { + groupViewModel.groupModel.observe(this) { if (it.code == 200) { if (it.data.size == 0) { emptyView!!.showEmptyPage("这里什么都没有") { @@ -92,9 +94,9 @@ }) } } - }) + } - groupViewModel.changeGroupResult.observe(this, { + groupViewModel.changeGroupResult.observe(this) { if (it.code == 200) { dataBeans.removeAt(clickedPosition) groupListAdapter.notifyItemRemoved(clickedPosition) @@ -102,6 +104,6 @@ clickedPosition, dataBeans.size - clickedPosition ) } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index fabd110..4e1a9b4 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -14,7 +14,8 @@ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.MANAGE_EXTERNAL_STORAGE, + Manifest.permission.READ_PHONE_STATE ) val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) val POPUP_TITLES = arrayOf("标准地图", "卫星地图") 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 8bde48b..415f9dd 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -15,10 +15,16 @@ import com.amap.api.location.AMapLocation import com.casic.smarttube.R import com.casic.smarttube.callback.OnImageCompressListener -import com.casic.smarttube.extensions.* +import com.casic.smarttube.extensions.combineImagePath +import com.casic.smarttube.extensions.compressImage import com.casic.smarttube.extensions.isNumber +import com.casic.smarttube.extensions.reformat import com.casic.smarttube.model.UserDetailModel -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.GlideLoadEngine +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.LocationHelper +import com.casic.smarttube.utils.QrConfigCreator import com.casic.smarttube.vm.DeviceViewModel import com.casic.smarttube.vm.ProjectGroupViewModel import com.casic.smarttube.vm.UploadImageViewModel @@ -31,20 +37,32 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.pengxh.kt.lite.adapter.EditableImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet -import kotlinx.android.synthetic.main.activity_add_device.* -import kotlinx.android.synthetic.main.activity_history_data.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_add_device.addDeviceTimeView +import kotlinx.android.synthetic.main.activity_add_device.addImageRecyclerView +import kotlinx.android.synthetic.main.activity_add_device.collectIntervalView +import kotlinx.android.synthetic.main.activity_add_device.deviceCodeView +import kotlinx.android.synthetic.main.activity_add_device.deviceNameView +import kotlinx.android.synthetic.main.activity_add_device.inputLengthView +import kotlinx.android.synthetic.main.activity_add_device.latitudeView +import kotlinx.android.synthetic.main.activity_add_device.locationImageView +import kotlinx.android.synthetic.main.activity_add_device.longitudeView +import kotlinx.android.synthetic.main.activity_add_device.ownerShipView +import kotlinx.android.synthetic.main.activity_add_device.scannerView +import kotlinx.android.synthetic.main.activity_add_device.sceneEditView +import kotlinx.android.synthetic.main.activity_add_device.submitButton import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView import java.io.File -import java.util.* -import kotlin.collections.ArrayList class AddDeviceActivity : KotlinBaseActivity() { @@ -79,13 +97,13 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) - uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) + uploadImageViewModel = ViewModelProvider(this)[UploadImageViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后") LoadState.Success -> { @@ -93,9 +111,10 @@ LoadingDialogHub.dismiss() this.finish() } + LoadState.Fail -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -113,7 +132,7 @@ ownerShipView.setOnClickListener { groupViewModel.obtainGroupList() } - groupViewModel.groupListModel.observe(this, { + groupViewModel.groupListModel.observe(this) { val groups = ArrayList() if (it.code == 200) { if (it.data.isEmpty()) { @@ -158,7 +177,7 @@ } }).build().show() } - }) + } //默认频率1min collectIntervalView.text = frequency[0] @@ -244,7 +263,7 @@ } }) - uploadImageViewModel.resultModel.observe(this, { + uploadImageViewModel.resultModel.observe(this) { if (it.code == 200) { if (imageAdapter.itemCount == selectedImages.size) { LoadingDialogHub.dismiss() @@ -260,7 +279,7 @@ "最多只能上传3张图片".show(this) } } - }) + } sceneEditView.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { 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 daa0f2e..072953f 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -25,7 +25,20 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_device_detail.* +import kotlinx.android.synthetic.main.activity_device_detail.densityView +import kotlinx.android.synthetic.main.activity_device_detail.descriptionView +import kotlinx.android.synthetic.main.activity_device_detail.deviceBatteryView +import kotlinx.android.synthetic.main.activity_device_detail.deviceCodeView +import kotlinx.android.synthetic.main.activity_device_detail.deviceNameView +import kotlinx.android.synthetic.main.activity_device_detail.deviceStateView +import kotlinx.android.synthetic.main.activity_device_detail.imageGridView +import kotlinx.android.synthetic.main.activity_device_detail.lastDataView +import kotlinx.android.synthetic.main.activity_device_detail.leftBackView +import kotlinx.android.synthetic.main.activity_device_detail.locationView +import kotlinx.android.synthetic.main.activity_device_detail.projectGroupView +import kotlinx.android.synthetic.main.activity_device_detail.rightOptionView +import kotlinx.android.synthetic.main.activity_device_detail.signalImageView +import kotlinx.android.synthetic.main.activity_device_detail.titleView class DeviceDetailActivity : KotlinBaseActivity() { @@ -48,7 +61,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data this.deviceModel = device @@ -123,16 +136,16 @@ device.cell + "%" } } - }) + } } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { 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 c57e2c1..0ae8862 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -28,9 +28,12 @@ import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.qmuiteam.qmui.recyclerView.QMUIRVItemSwipeAction import com.qmuiteam.qmui.recyclerView.QMUISwipeAction -import kotlinx.android.synthetic.main.activity_group_device.* -import kotlinx.android.synthetic.main.fragment_home.view.* -import kotlinx.android.synthetic.main.include_empty_view.* +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceLayout +import kotlinx.android.synthetic.main.activity_group_device.groupDeviceView +import kotlinx.android.synthetic.main.activity_group_device.leftBackView +import kotlinx.android.synthetic.main.activity_group_device.rightOptionView +import kotlinx.android.synthetic.main.activity_group_device.titleView +import kotlinx.android.synthetic.main.include_empty_view.emptyView class GroupDeviceActivity : KotlinBaseActivity() { @@ -139,18 +142,18 @@ groupId = intent.getStringExtra(Constant.INTENT_PARAM)!! titleView.text = String.format(groupId + "项目设备列表") weakReferenceHandler = WeakReferenceHandler(callback) - groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + groupViewModel = ViewModelProvider(this)[ProjectGroupViewModel::class.java] + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] obtainDeviceListByPage() } override fun observeRequestState() { - groupViewModel.loadState.observe(this, { + groupViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -166,7 +169,7 @@ obtainDeviceListByPage() } - groupViewModel.deviceListModel.observe(this, { + groupViewModel.deviceListModel.observe(this) { if (it.code == 200) { val dataRows = it.data when { @@ -176,6 +179,7 @@ groupDeviceLayout.finishRefresh() isRefresh = false } + isLoadMore -> { if (dataRows?.size == 0) { "到底了,别拉了".show(this) @@ -184,15 +188,16 @@ groupDeviceLayout.finishLoadMore() isLoadMore = false } + else -> { dataBeans = dataRows!! } } weakReferenceHandler.sendEmptyMessage(2022070601) } - }) + } - deviceViewModel.deleteResult.observe(this, { + deviceViewModel.deleteResult.observe(this) { if (it.code == 200) { if (isDeleteAll) { dataBeans.removeAll(dataBeans) @@ -212,7 +217,7 @@ } } } - }) + } } private fun obtainDeviceListByPage() { diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index 848ddcf..71f438c 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -14,12 +14,18 @@ import com.gyf.immersionbar.ImmersionBar import com.jzxiang.pickerview.data.Type import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.* +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.timestampToCompleteDate +import com.pengxh.kt.lite.extensions.timestampToDate +import com.pengxh.kt.lite.extensions.timestampToLastMonthDate +import com.pengxh.kt.lite.extensions.timestampToLastWeekDate import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_history_data.* -import java.util.* +import kotlinx.android.synthetic.main.activity_history_data.dataLineChart +import kotlinx.android.synthetic.main.activity_history_data.leftBackView +import kotlinx.android.synthetic.main.activity_history_data.periodSpinner +import java.util.Calendar class HistoryDataActivity : KotlinBaseActivity() { @@ -41,16 +47,16 @@ groupId = params[0] devCode = params[1] - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { @@ -137,7 +143,7 @@ } } - deviceViewModel.historyDataModel.observe(this, { + deviceViewModel.historyDataModel.observe(this) { if (it.code == 200) { val xAxisLabels: MutableList = ArrayList() //每个entries都是一条折线 @@ -155,6 +161,6 @@ } ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntries) } - }) + } } } \ No newline at end of file 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 ec9a374..ebca433 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -2,7 +2,10 @@ import androidx.lifecycle.ViewModelProvider import com.casic.smarttube.R -import com.casic.smarttube.utils.* +import com.casic.smarttube.utils.AuthenticationHelper +import com.casic.smarttube.utils.LoadingDialogHub +import com.casic.smarttube.utils.LocaleConstant +import com.casic.smarttube.utils.RSAUtils import com.casic.smarttube.vm.AuthenticateViewModel import com.casic.smarttube.vm.LoginViewModel import com.casic.smarttube.vm.UserViewModel @@ -11,7 +14,9 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.SaveKeyValues -import kotlinx.android.synthetic.main.activity_login.* +import kotlinx.android.synthetic.main.activity_login.loginButton +import kotlinx.android.synthetic.main.activity_login.userNameView +import kotlinx.android.synthetic.main.activity_login.userPasswordView class LoginActivity : KotlinBaseActivity() { @@ -29,19 +34,19 @@ // 设置默认账号密码 userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) userPasswordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - authenticateViewModel = ViewModelProvider(this).get(AuthenticateViewModel::class.java) - loginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java) - userViewModel = ViewModelProvider(this).get(UserViewModel::class.java) + authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] + loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { - authenticateViewModel.loadState.observe(this, { + authenticateViewModel.loadState.observe(this) { LoadingDialogHub.show(this, "登录中,请稍后") - }) + } - loginViewModel.loadState.observe(this, { + loginViewModel.loadState.observe(this) { LoadingDialogHub.dismiss() - }) + } } override fun initEvent() { @@ -60,7 +65,7 @@ SaveKeyValues.putValue(LocaleConstant.PASSWORD, userPassword) authenticateViewModel.obtainPublicKey() } - authenticateViewModel.keyModel.observe(this, { + authenticateViewModel.keyModel.observe(this) { if (it.code == 200) {//用code判断,别的判断可能有坑 val keyString = it.data!!.publicKey!! /** @@ -75,7 +80,7 @@ RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) //登录并获取Token,POST请求 loginViewModel.enter(it.data!!.sid!!, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this, { loginResult -> + loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) /** @@ -86,8 +91,8 @@ this.navigatePageTo() finish() } - }) + } } - }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt b/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt index 0805438..f00e0ca 100644 --- a/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/MapDeviceBriefActivity.kt @@ -5,7 +5,10 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.* +import com.amap.api.maps.model.BitmapDescriptorFactory +import com.amap.api.maps.model.CameraPosition +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.MarkerOptions import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult import com.amap.api.services.geocoder.GeocodeSearch @@ -21,8 +24,14 @@ import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState -import kotlinx.android.synthetic.main.activity_map_device_brief.* -import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.activity_map_device_brief.deviceCodeView +import kotlinx.android.synthetic.main.activity_map_device_brief.deviceModelView +import kotlinx.android.synthetic.main.activity_map_device_brief.deviceValueView +import kotlinx.android.synthetic.main.activity_map_device_brief.locationView +import kotlinx.android.synthetic.main.activity_map_device_brief.mapView +import kotlinx.android.synthetic.main.activity_map_device_brief.updateTimeView +import kotlinx.android.synthetic.main.include_base_title.leftBackView +import kotlinx.android.synthetic.main.include_base_title.titleView class MapDeviceBriefActivity : KotlinBaseActivity() { @@ -53,21 +62,21 @@ this.params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! - deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + deviceViewModel = ViewModelProvider(this)[DeviceViewModel::class.java] } override fun observeRequestState() { - deviceViewModel.loadState.observe(this, { + deviceViewModel.loadState.observe(this) { when (it) { LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") else -> LoadingDialogHub.dismiss() } - }) + } } override fun initEvent() { deviceViewModel.obtainDeviceDetail(params[0], params[1]) - deviceViewModel.deviceDetailModel.observe(this, { + deviceViewModel.deviceDetailModel.observe(this) { if (it.code == 200) { val device = it.data @@ -76,7 +85,7 @@ //获取设备最新浓度信息 deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) - deviceViewModel.lastDataModel.observe(this, { v -> + deviceViewModel.lastDataModel.observe(this) { v -> if (v.code == 200) { deviceValueView.text = String.format("最新浓度: ${v.data.strength}") updateTimeView.text = String.format("更新时间: ${v.data.uptime}") @@ -84,7 +93,7 @@ deviceValueView.text = String.format("最新浓度: 未知") updateTimeView.text = String.format("更新时间: 未知") } - }) + } if (device.latGaode.isBlank() || device.lngGaode.isBlank()) { locationView.text = "经纬度异常,无法查看具体位置" } else { @@ -133,7 +142,7 @@ } } } - }) + } } /**地图相关*********/ diff --git a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt index a675f0d..dafbe4d 100644 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt @@ -19,14 +19,14 @@ * 获取token之后保存用户信息 * */ userDetailViewModel.obtainUserDetail() - userDetailViewModel.userDetailModel.observe(this@SplashScreenActivity, { + userDetailViewModel.userDetailModel.observe(this@SplashScreenActivity) { if (it.code == 200) { navigatePageTo() } else { navigatePageTo() } finish() - }) + } } override fun onTick(millisUntilFinished: Long) {