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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 7f16ddc..ee05837 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -63,7 +63,7 @@ * String * ============================================================================================= * */ - const val USER_DETAIL_MODEL = "userDetailModel" + const val USER_DETAIL_KEY = "USER_DETAIL_KEY" const val SERVER_BASE_URL = "http://111.198.10.15:11311" const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 7f16ddc..ee05837 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -63,7 +63,7 @@ * String * ============================================================================================= * */ - const val USER_DETAIL_MODEL = "userDetailModel" + const val USER_DETAIL_KEY = "USER_DETAIL_KEY" const val SERVER_BASE_URL = "http://111.198.10.15:11311" const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" 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 cf613fd..407eacc 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -19,16 +19,12 @@ import com.casic.smarttube.extensions.initImmersionBar import com.casic.smarttube.extensions.isNumber import com.casic.smarttube.extensions.reformat -import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.GlideLoadEngine -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 -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType import com.luck.picture.lib.entity.LocalMedia @@ -43,7 +39,6 @@ import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet @@ -302,27 +297,18 @@ "请先获取当前经纬度".show(context) return@setOnClickListener } - val userDetailJson = - SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String - if (userDetailJson.isNotBlank()) { - val userData = Gson().fromJson( - userDetailJson, object : TypeToken() {}.type - ) - deviceViewModel.addDevice( - this, - deviceCode, - binding.deviceNameView.text.toString(), - ownerShip, - binding.collectIntervalView.text.toString(), - longitude, - latitude, - imagePaths.reformat(), - binding.sceneEditView.text.toString().trim(), - binding.addDeviceTimeView.text.toString(), - userData.id.toString(), - userData.deptId - ) - } + deviceViewModel.addDevice( + this, + deviceCode, + binding.deviceNameView.text.toString(), + ownerShip, + binding.collectIntervalView.text.toString(), + longitude, + latitude, + imagePaths.reformat(), + binding.sceneEditView.text.toString().trim(), + binding.addDeviceTimeView.text.toString() + ) } } 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 7f16ddc..ee05837 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -63,7 +63,7 @@ * String * ============================================================================================= * */ - const val USER_DETAIL_MODEL = "userDetailModel" + const val USER_DETAIL_KEY = "USER_DETAIL_KEY" const val SERVER_BASE_URL = "http://111.198.10.15:11311" const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" 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 cf613fd..407eacc 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -19,16 +19,12 @@ import com.casic.smarttube.extensions.initImmersionBar import com.casic.smarttube.extensions.isNumber import com.casic.smarttube.extensions.reformat -import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.GlideLoadEngine -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 -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType import com.luck.picture.lib.entity.LocalMedia @@ -43,7 +39,6 @@ import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet @@ -302,27 +297,18 @@ "请先获取当前经纬度".show(context) return@setOnClickListener } - val userDetailJson = - SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String - if (userDetailJson.isNotBlank()) { - val userData = Gson().fromJson( - userDetailJson, object : TypeToken() {}.type - ) - deviceViewModel.addDevice( - this, - deviceCode, - binding.deviceNameView.text.toString(), - ownerShip, - binding.collectIntervalView.text.toString(), - longitude, - latitude, - imagePaths.reformat(), - binding.sceneEditView.text.toString().trim(), - binding.addDeviceTimeView.text.toString(), - userData.id.toString(), - userData.deptId - ) - } + deviceViewModel.addDevice( + this, + deviceCode, + binding.deviceNameView.text.toString(), + ownerShip, + binding.collectIntervalView.text.toString(), + longitude, + latitude, + imagePaths.reformat(), + binding.sceneEditView.text.toString().trim(), + binding.addDeviceTimeView.text.toString() + ) } } 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 4e0f80f..44ed949 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -35,9 +35,7 @@ // 设置默认账号密码 binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.userPasswordView.setText( - SaveKeyValues.getValue( - LocaleConstant.PASSWORD, "" - ) as String + SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] @@ -81,19 +79,15 @@ val account = binding.userNameView.text.toString() val userPassword = binding.userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) loginViewModel.enter(context, it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultData.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - /** - * 获取token之后保存用户信息 - * */ userViewModel.getUserDetail() - //验证成功登录 - this.navigatePageTo() + navigatePageTo() finish() } } 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 7f16ddc..ee05837 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -63,7 +63,7 @@ * String * ============================================================================================= * */ - const val USER_DETAIL_MODEL = "userDetailModel" + const val USER_DETAIL_KEY = "USER_DETAIL_KEY" const val SERVER_BASE_URL = "http://111.198.10.15:11311" const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" 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 cf613fd..407eacc 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -19,16 +19,12 @@ import com.casic.smarttube.extensions.initImmersionBar import com.casic.smarttube.extensions.isNumber import com.casic.smarttube.extensions.reformat -import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.GlideLoadEngine -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 -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType import com.luck.picture.lib.entity.LocalMedia @@ -43,7 +39,6 @@ import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet @@ -302,27 +297,18 @@ "请先获取当前经纬度".show(context) return@setOnClickListener } - val userDetailJson = - SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String - if (userDetailJson.isNotBlank()) { - val userData = Gson().fromJson( - userDetailJson, object : TypeToken() {}.type - ) - deviceViewModel.addDevice( - this, - deviceCode, - binding.deviceNameView.text.toString(), - ownerShip, - binding.collectIntervalView.text.toString(), - longitude, - latitude, - imagePaths.reformat(), - binding.sceneEditView.text.toString().trim(), - binding.addDeviceTimeView.text.toString(), - userData.id.toString(), - userData.deptId - ) - } + deviceViewModel.addDevice( + this, + deviceCode, + binding.deviceNameView.text.toString(), + ownerShip, + binding.collectIntervalView.text.toString(), + longitude, + latitude, + imagePaths.reformat(), + binding.sceneEditView.text.toString().trim(), + binding.addDeviceTimeView.text.toString() + ) } } 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 4e0f80f..44ed949 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -35,9 +35,7 @@ // 设置默认账号密码 binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.userPasswordView.setText( - SaveKeyValues.getValue( - LocaleConstant.PASSWORD, "" - ) as String + SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] @@ -81,19 +79,15 @@ val account = binding.userNameView.text.toString() val userPassword = binding.userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) loginViewModel.enter(context, it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultData.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - /** - * 获取token之后保存用户信息 - * */ userViewModel.getUserDetail() - //验证成功登录 - this.navigatePageTo() + navigatePageTo() finish() } } 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 2611a12..5476786 100644 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt @@ -9,6 +9,7 @@ import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.utils.LoadState @SuppressLint("CustomSplashScreen") class SplashScreenActivity : KotlinBaseActivity() { @@ -25,18 +26,16 @@ override fun initOnCreate(savedInstanceState: Bundle?) { userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] - userDetailViewModel.userDetailData.observe(this) { - if (it.code == 200) { - navigatePageTo() - } else { - navigatePageTo() - } - finish() - } } override fun observeRequestState() { - + userDetailViewModel.loadState.observe(this) { + when (it) { + LoadState.Success -> navigatePageTo() + else -> navigatePageTo() + } + finish() + } } override fun initEvent() { 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 7f16ddc..ee05837 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -63,7 +63,7 @@ * String * ============================================================================================= * */ - const val USER_DETAIL_MODEL = "userDetailModel" + const val USER_DETAIL_KEY = "USER_DETAIL_KEY" const val SERVER_BASE_URL = "http://111.198.10.15:11311" const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" 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 cf613fd..407eacc 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -19,16 +19,12 @@ import com.casic.smarttube.extensions.initImmersionBar import com.casic.smarttube.extensions.isNumber import com.casic.smarttube.extensions.reformat -import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.GlideLoadEngine -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 -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType import com.luck.picture.lib.entity.LocalMedia @@ -43,7 +39,6 @@ import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet @@ -302,27 +297,18 @@ "请先获取当前经纬度".show(context) return@setOnClickListener } - val userDetailJson = - SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String - if (userDetailJson.isNotBlank()) { - val userData = Gson().fromJson( - userDetailJson, object : TypeToken() {}.type - ) - deviceViewModel.addDevice( - this, - deviceCode, - binding.deviceNameView.text.toString(), - ownerShip, - binding.collectIntervalView.text.toString(), - longitude, - latitude, - imagePaths.reformat(), - binding.sceneEditView.text.toString().trim(), - binding.addDeviceTimeView.text.toString(), - userData.id.toString(), - userData.deptId - ) - } + deviceViewModel.addDevice( + this, + deviceCode, + binding.deviceNameView.text.toString(), + ownerShip, + binding.collectIntervalView.text.toString(), + longitude, + latitude, + imagePaths.reformat(), + binding.sceneEditView.text.toString().trim(), + binding.addDeviceTimeView.text.toString() + ) } } 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 4e0f80f..44ed949 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -35,9 +35,7 @@ // 设置默认账号密码 binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.userPasswordView.setText( - SaveKeyValues.getValue( - LocaleConstant.PASSWORD, "" - ) as String + SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] @@ -81,19 +79,15 @@ val account = binding.userNameView.text.toString() val userPassword = binding.userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) loginViewModel.enter(context, it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultData.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - /** - * 获取token之后保存用户信息 - * */ userViewModel.getUserDetail() - //验证成功登录 - this.navigatePageTo() + navigatePageTo() finish() } } 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 2611a12..5476786 100644 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt @@ -9,6 +9,7 @@ import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.utils.LoadState @SuppressLint("CustomSplashScreen") class SplashScreenActivity : KotlinBaseActivity() { @@ -25,18 +26,16 @@ override fun initOnCreate(savedInstanceState: Bundle?) { userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] - userDetailViewModel.userDetailData.observe(this) { - if (it.code == 200) { - navigatePageTo() - } else { - navigatePageTo() - } - finish() - } } override fun observeRequestState() { - + userDetailViewModel.loadState.observe(this) { + when (it) { + LoadState.Success -> navigatePageTo() + else -> navigatePageTo() + } + finish() + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt index d1006c7..7bc4b0d 100644 --- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt @@ -115,9 +115,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ) = launch({ loadState.value = LoadState.Loading val response = RetrofitServiceManager.addDevice( @@ -129,9 +127,7 @@ latitude, imagePaths, scene, - addDeviceTime, - userId, - deptId + addDeviceTime ) val responseCode = response.separateResponseCode() if (responseCode == 200) { 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 f407a8f..9f04953 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/MinePageFragment.kt @@ -41,7 +41,7 @@ class MinePageFragment : KotlinBaseFragment() { private val kTag = "MinePageFragment" - private lateinit var userData: UserDetailModel.Data + private val gson = Gson() private lateinit var userViewModel: UserViewModel private lateinit var loginViewModel: LoginViewModel private lateinit var versionViewModel: VersionViewModel @@ -164,15 +164,6 @@ } private fun dataObserve() { - userViewModel.userDetailData.observe(this) { - if (it.code == 200) { - LoadingDialog.dismiss() - "同步完成".show(requireContext()) - userData = it.data - updateUserInfo() - } - } - versionViewModel.versionResultData.observe(this) { if (it.version.compareVersion()) { "已是最新版本,无需更新".show(requireContext()) @@ -207,23 +198,19 @@ override fun onResume() { super.onResume() - val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String if (userDetailJson.isNotBlank()) { - userData = Gson().fromJson( + val userData = gson.fromJson( userDetailJson, object : TypeToken() {}.type ) - updateUserInfo() + binding.userNameView.text = userData.name + binding.userPhoneView.text = String.format("电话:${userData.phone}") + binding.userDeptView.text = String.format("部门:${userData.deptName}") } //缓存 binding.cacheSizeView.text = collectApplicationCache().formatFileSize() } - private fun updateUserInfo() { - binding.userNameView.text = userData.name - binding.userPhoneView.text = String.format("电话:${userData.phone}") - binding.userDeptView.text = String.format("部门:${userData.deptName}") - } - private fun downloadApk(url: String) { val progressDialog = ProgressDialog(requireContext()) progressDialog.show() diff --git a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt index 040090e..2f58c90 100644 --- a/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/retrofit/RetrofitServiceManager.kt @@ -1,7 +1,10 @@ package com.casic.smarttube.retrofit +import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.AuthenticationHelper import com.casic.smarttube.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.utils.RetrofitFactory.createRetrofit import com.pengxh.kt.lite.utils.SaveKeyValues import okhttp3.MediaType.Companion.toMediaType @@ -21,6 +24,7 @@ ) as String createRetrofit(httpConfig) } + private val gson = Gson() /** * 验证PublicKey @@ -161,9 +165,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ): String { val paramObject = JSONObject() paramObject.put("deviceCode", deviceCode) @@ -175,8 +177,16 @@ paramObject.put("image", imagePaths) paramObject.put("description", scene) paramObject.put("createTime", addDeviceTime) - paramObject.put("ownerId", userId) - paramObject.put("deptId", deptId) + + val userDetailJson = SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_KEY, "") as String + if (userDetailJson.isNotBlank()) { + val userData = gson.fromJson( + userDetailJson, object : TypeToken() {}.type + ) + paramObject.put("ownerId", userData.id) + paramObject.put("deptId", userData.deptId) + } + paramObject.put("version", "19") val requestBody = paramObject.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() 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 7f16ddc..ee05837 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -63,7 +63,7 @@ * String * ============================================================================================= * */ - const val USER_DETAIL_MODEL = "userDetailModel" + const val USER_DETAIL_KEY = "USER_DETAIL_KEY" const val SERVER_BASE_URL = "http://111.198.10.15:11311" const val DEFAULT_SERVER_CONFIG = "defaultServerConfig" const val ACCOUNT = "account" 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 cf613fd..407eacc 100644 --- a/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/AddDeviceActivity.kt @@ -19,16 +19,12 @@ import com.casic.smarttube.extensions.initImmersionBar import com.casic.smarttube.extensions.isNumber import com.casic.smarttube.extensions.reformat -import com.casic.smarttube.model.UserDetailModel import com.casic.smarttube.utils.GlideLoadEngine -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 -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType import com.luck.picture.lib.entity.LocalMedia @@ -43,7 +39,6 @@ import com.pengxh.kt.lite.extensions.timestampToCompleteDate import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog -import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.TitleBarView import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.BottomActionSheet @@ -302,27 +297,18 @@ "请先获取当前经纬度".show(context) return@setOnClickListener } - val userDetailJson = - SaveKeyValues.getValue(LocaleConstant.USER_DETAIL_MODEL, "") as String - if (userDetailJson.isNotBlank()) { - val userData = Gson().fromJson( - userDetailJson, object : TypeToken() {}.type - ) - deviceViewModel.addDevice( - this, - deviceCode, - binding.deviceNameView.text.toString(), - ownerShip, - binding.collectIntervalView.text.toString(), - longitude, - latitude, - imagePaths.reformat(), - binding.sceneEditView.text.toString().trim(), - binding.addDeviceTimeView.text.toString(), - userData.id.toString(), - userData.deptId - ) - } + deviceViewModel.addDevice( + this, + deviceCode, + binding.deviceNameView.text.toString(), + ownerShip, + binding.collectIntervalView.text.toString(), + longitude, + latitude, + imagePaths.reformat(), + binding.sceneEditView.text.toString().trim(), + binding.addDeviceTimeView.text.toString() + ) } } 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 4e0f80f..44ed949 100644 --- a/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/LoginActivity.kt @@ -35,9 +35,7 @@ // 设置默认账号密码 binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.userPasswordView.setText( - SaveKeyValues.getValue( - LocaleConstant.PASSWORD, "" - ) as String + SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] @@ -81,19 +79,15 @@ val account = binding.userNameView.text.toString() val userPassword = binding.userPasswordView.text.toString() - val dataByPublicKey = - RSAUtils.encryptDataByPublicKey(userPassword.toByteArray(), publicKey!!) - //登录并获取Token,POST请求 + val dataByPublicKey = RSAUtils.encryptDataByPublicKey( + userPassword.toByteArray(), publicKey!! + ) loginViewModel.enter(context, it.data!!.sid!!, account, dataByPublicKey) loginViewModel.enterResultData.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - /** - * 获取token之后保存用户信息 - * */ userViewModel.getUserDetail() - //验证成功登录 - this.navigatePageTo() + navigatePageTo() finish() } } 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 2611a12..5476786 100644 --- a/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/SplashScreenActivity.kt @@ -9,6 +9,7 @@ import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.utils.LoadState @SuppressLint("CustomSplashScreen") class SplashScreenActivity : KotlinBaseActivity() { @@ -25,18 +26,16 @@ override fun initOnCreate(savedInstanceState: Bundle?) { userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] - userDetailViewModel.userDetailData.observe(this) { - if (it.code == 200) { - navigatePageTo() - } else { - navigatePageTo() - } - finish() - } } override fun observeRequestState() { - + userDetailViewModel.loadState.observe(this) { + when (it) { + LoadState.Success -> navigatePageTo() + else -> navigatePageTo() + } + finish() + } } override fun initEvent() { diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt index d1006c7..7bc4b0d 100644 --- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt @@ -115,9 +115,7 @@ latitude: String, imagePaths: String, scene: String, - addDeviceTime: String, - userId: String, - deptId: String + addDeviceTime: String ) = launch({ loadState.value = LoadState.Loading val response = RetrofitServiceManager.addDevice( @@ -129,9 +127,7 @@ latitude, imagePaths, scene, - addDeviceTime, - userId, - deptId + addDeviceTime ) val responseCode = response.separateResponseCode() if (responseCode == 200) { diff --git a/app/src/main/java/com/casic/smarttube/vm/UserViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/UserViewModel.kt index 1207eed..ae537ee 100644 --- a/app/src/main/java/com/casic/smarttube/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/UserViewModel.kt @@ -1,7 +1,6 @@ package com.casic.smarttube.vm import android.content.Context -import androidx.lifecycle.MutableLiveData import com.casic.smarttube.extensions.separateResponseCode import com.casic.smarttube.extensions.toErrorMessage import com.casic.smarttube.model.UserDetailModel @@ -18,25 +17,22 @@ class UserViewModel : BaseViewModel() { private val gson = Gson() - val userDetailData = MutableLiveData() fun getUserDetail() = launch({ + loadState.value = LoadState.Loading val response = RetrofitServiceManager.getUserDetail() val responseCode = response.separateResponseCode() if (responseCode == 200) { val userDetail = gson.fromJson( response, object : TypeToken() {}.type ) - userDetailData.value = userDetail - SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_MODEL, gson.toJson(userDetail.data)) + SaveKeyValues.putValue(LocaleConstant.USER_DETAIL_KEY, gson.toJson(userDetail.data)) + loadState.value = LoadState.Success } else { - val errorModel = UserDetailModel() - errorModel.code = responseCode - userDetailData.value = errorModel - //如果此次获取不到用户信息,那么就清空之前的用户缓存,然后让用户重新登录 - SaveKeyValues.removeKey(LocaleConstant.USER_DETAIL_MODEL) + loadState.value = LoadState.Fail } }, { + loadState.value = LoadState.Fail it.printStackTrace() })