diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt b/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
deleted file mode 100644
index 1e6c191..0000000
--- a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.casic.br.view
-
-import androidx.lifecycle.ViewModelProvider
-import com.casic.br.R
-import com.casic.br.utils.DeserializeModel
-import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.vm.AddressViewModel
-import com.github.gzuliyujiang.wheelpicker.AddressPicker
-import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
-import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
-import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
-import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
-import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
-import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.sp2px
-import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_add_address.*
-import kotlinx.android.synthetic.main.include_base_title.*
-
-class AddAddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
-
- private val kTag = "AddAddressActivity"
- private lateinit var addressViewModel: AddressViewModel
-
- override fun initLayoutView(): Int = R.layout.activity_add_address
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
-
- leftBackView.setOnClickListener { finish() }
- titleView.text = "新建地址"
- }
-
- override fun initData() {
- addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
- }
-
- override fun initEvent() {
- addressView.setOnClickListener {
- val addressPicker = AddressPicker(this)
- addressPicker.setAddressMode(
- "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
- AddressJsonParser.Builder()
- .provinceCodeField("code")
- .provinceNameField("name")
- .provinceChildField("city")
- .cityCodeField("code")
- .cityNameField("name")
- .cityChildField("area")
- .countyCodeField("code")
- .countyNameField("name")
- .build()
- )
- addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
- addressPicker.setOnAddressPickedListener(this)
- val layout = addressPicker.wheelLayout
- layout.setTextSize(14f.sp2px(this).toFloat())
- layout.setSelectedTextSize(16f.sp2px(this).toFloat())
- layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
- layout.setSelectedTextBold(true)
- layout.setOnLinkageSelectedListener { first, second, third ->
- addressPicker.titleView.text = String.format(
- "%s%s%s",
- addressPicker.firstWheelView.formatItem(first),
- addressPicker.secondWheelView.formatItem(second),
- addressPicker.thirdWheelView.formatItem(third)
- )
- addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
- }
- addressPicker.show()
- }
-
- saveAddressButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
- "请先选择地区".show(this)
- return@setOnClickListener
- }
- if (streetView.text.isNullOrBlank()) {
- "请输入街道或者楼牌号地址".show(this)
- return@setOnClickListener
- }
- if (postalCodeView.text.isNullOrBlank()) {
- "请输入邮政编码".show(this)
- return@setOnClickListener
- }
-
- val split = addressView.text.split("-")
- val userModel = DeserializeModel.getUserModel()!!
- addressViewModel.addAddress(
- userModel.mobile,
- split[0],
- split[1],
- split[2],
- streetView.text.toString(),
- "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
- postalCodeView.text.toString()
- )
- }
- }
-
- override fun onAddressPicked(
- province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
- ) {
- addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
- }
-
- override fun observeRequestState() {
- addressViewModel.loadState.observe(this, {
- when (it) {
- LoadState.Loading -> {
- LoadingDialogHub.show(this, "地址保存中...")
- }
- LoadState.Success -> {
- LoadingDialogHub.dismiss()
- finish()
- }
- else -> LoadingDialogHub.dismiss()
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt b/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
deleted file mode 100644
index 1e6c191..0000000
--- a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.casic.br.view
-
-import androidx.lifecycle.ViewModelProvider
-import com.casic.br.R
-import com.casic.br.utils.DeserializeModel
-import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.vm.AddressViewModel
-import com.github.gzuliyujiang.wheelpicker.AddressPicker
-import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
-import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
-import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
-import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
-import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
-import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.sp2px
-import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_add_address.*
-import kotlinx.android.synthetic.main.include_base_title.*
-
-class AddAddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
-
- private val kTag = "AddAddressActivity"
- private lateinit var addressViewModel: AddressViewModel
-
- override fun initLayoutView(): Int = R.layout.activity_add_address
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
-
- leftBackView.setOnClickListener { finish() }
- titleView.text = "新建地址"
- }
-
- override fun initData() {
- addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
- }
-
- override fun initEvent() {
- addressView.setOnClickListener {
- val addressPicker = AddressPicker(this)
- addressPicker.setAddressMode(
- "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
- AddressJsonParser.Builder()
- .provinceCodeField("code")
- .provinceNameField("name")
- .provinceChildField("city")
- .cityCodeField("code")
- .cityNameField("name")
- .cityChildField("area")
- .countyCodeField("code")
- .countyNameField("name")
- .build()
- )
- addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
- addressPicker.setOnAddressPickedListener(this)
- val layout = addressPicker.wheelLayout
- layout.setTextSize(14f.sp2px(this).toFloat())
- layout.setSelectedTextSize(16f.sp2px(this).toFloat())
- layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
- layout.setSelectedTextBold(true)
- layout.setOnLinkageSelectedListener { first, second, third ->
- addressPicker.titleView.text = String.format(
- "%s%s%s",
- addressPicker.firstWheelView.formatItem(first),
- addressPicker.secondWheelView.formatItem(second),
- addressPicker.thirdWheelView.formatItem(third)
- )
- addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
- }
- addressPicker.show()
- }
-
- saveAddressButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
- "请先选择地区".show(this)
- return@setOnClickListener
- }
- if (streetView.text.isNullOrBlank()) {
- "请输入街道或者楼牌号地址".show(this)
- return@setOnClickListener
- }
- if (postalCodeView.text.isNullOrBlank()) {
- "请输入邮政编码".show(this)
- return@setOnClickListener
- }
-
- val split = addressView.text.split("-")
- val userModel = DeserializeModel.getUserModel()!!
- addressViewModel.addAddress(
- userModel.mobile,
- split[0],
- split[1],
- split[2],
- streetView.text.toString(),
- "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
- postalCodeView.text.toString()
- )
- }
- }
-
- override fun onAddressPicked(
- province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
- ) {
- addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
- }
-
- override fun observeRequestState() {
- addressViewModel.loadState.observe(this, {
- when (it) {
- LoadState.Loading -> {
- LoadingDialogHub.show(this, "地址保存中...")
- }
- LoadState.Success -> {
- LoadingDialogHub.dismiss()
- finish()
- }
- else -> LoadingDialogHub.dismiss()
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressActivity.kt b/app/src/main/java/com/casic/br/view/AddressActivity.kt
new file mode 100644
index 0000000..26303ad
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/AddressActivity.kt
@@ -0,0 +1,149 @@
+package com.casic.br.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.R
+import com.casic.br.utils.DeserializeModel
+import com.casic.br.utils.LoadingDialogHub
+import com.casic.br.vm.AddressViewModel
+import com.github.gzuliyujiang.wheelpicker.AddressPicker
+import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
+import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
+import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
+import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
+import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
+import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.sp2px
+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_address.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class AddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
+
+ private val kTag = "AddAddressActivity"
+ private var id: String? = null
+ private lateinit var addressViewModel: AddressViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_address
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ id = intent.getStringExtra(Constant.INTENT_PARAM)
+ if (id == null) {
+ titleView.text = "新建地址"
+ } else {
+ titleView.text = "更新地址"
+ }
+ addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
+ }
+
+ override fun initEvent() {
+ addressView.setOnClickListener {
+ val addressPicker = AddressPicker(this)
+ addressPicker.setAddressMode(
+ "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
+ AddressJsonParser.Builder()
+ .provinceCodeField("code")
+ .provinceNameField("name")
+ .provinceChildField("city")
+ .cityCodeField("code")
+ .cityNameField("name")
+ .cityChildField("area")
+ .countyCodeField("code")
+ .countyNameField("name")
+ .build()
+ )
+ addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
+ addressPicker.setOnAddressPickedListener(this)
+ val layout = addressPicker.wheelLayout
+ layout.setTextSize(14f.sp2px(this).toFloat())
+ layout.setSelectedTextSize(16f.sp2px(this).toFloat())
+ layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
+ layout.setSelectedTextBold(true)
+ layout.setOnLinkageSelectedListener { first, second, third ->
+ addressPicker.titleView.text = String.format(
+ "%s%s%s",
+ addressPicker.firstWheelView.formatItem(first),
+ addressPicker.secondWheelView.formatItem(second),
+ addressPicker.thirdWheelView.formatItem(third)
+ )
+ addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
+ }
+ addressPicker.show()
+ }
+
+ saveAddressButton.setOnClickListener {
+ if (addressView.text.isNullOrBlank()) {
+ "请先选择地区".show(this)
+ return@setOnClickListener
+ }
+ if (streetView.text.isNullOrBlank()) {
+ "请输入街道或者楼牌号地址".show(this)
+ return@setOnClickListener
+ }
+ if (postalCodeView.text.isNullOrBlank()) {
+ "请输入邮政编码".show(this)
+ return@setOnClickListener
+ }
+
+ val split = addressView.text.split("-")
+ val userModel = DeserializeModel.getUserModel()!!
+ if (id == null) {
+ //新增地址
+ addressViewModel.addAddress(
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ } else {
+ //修改地址
+ addressViewModel.updateAddressById(
+ id!!,
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ }
+ }
+ }
+
+ override fun onAddressPicked(
+ province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
+ ) {
+ addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
+ }
+
+ override fun observeRequestState() {
+ addressViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ LoadingDialogHub.show(this, "地址保存中...")
+ }
+ LoadState.Success -> {
+ LoadingDialogHub.dismiss()
+ finish()
+ }
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt b/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
deleted file mode 100644
index 1e6c191..0000000
--- a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.casic.br.view
-
-import androidx.lifecycle.ViewModelProvider
-import com.casic.br.R
-import com.casic.br.utils.DeserializeModel
-import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.vm.AddressViewModel
-import com.github.gzuliyujiang.wheelpicker.AddressPicker
-import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
-import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
-import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
-import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
-import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
-import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.sp2px
-import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_add_address.*
-import kotlinx.android.synthetic.main.include_base_title.*
-
-class AddAddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
-
- private val kTag = "AddAddressActivity"
- private lateinit var addressViewModel: AddressViewModel
-
- override fun initLayoutView(): Int = R.layout.activity_add_address
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
-
- leftBackView.setOnClickListener { finish() }
- titleView.text = "新建地址"
- }
-
- override fun initData() {
- addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
- }
-
- override fun initEvent() {
- addressView.setOnClickListener {
- val addressPicker = AddressPicker(this)
- addressPicker.setAddressMode(
- "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
- AddressJsonParser.Builder()
- .provinceCodeField("code")
- .provinceNameField("name")
- .provinceChildField("city")
- .cityCodeField("code")
- .cityNameField("name")
- .cityChildField("area")
- .countyCodeField("code")
- .countyNameField("name")
- .build()
- )
- addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
- addressPicker.setOnAddressPickedListener(this)
- val layout = addressPicker.wheelLayout
- layout.setTextSize(14f.sp2px(this).toFloat())
- layout.setSelectedTextSize(16f.sp2px(this).toFloat())
- layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
- layout.setSelectedTextBold(true)
- layout.setOnLinkageSelectedListener { first, second, third ->
- addressPicker.titleView.text = String.format(
- "%s%s%s",
- addressPicker.firstWheelView.formatItem(first),
- addressPicker.secondWheelView.formatItem(second),
- addressPicker.thirdWheelView.formatItem(third)
- )
- addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
- }
- addressPicker.show()
- }
-
- saveAddressButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
- "请先选择地区".show(this)
- return@setOnClickListener
- }
- if (streetView.text.isNullOrBlank()) {
- "请输入街道或者楼牌号地址".show(this)
- return@setOnClickListener
- }
- if (postalCodeView.text.isNullOrBlank()) {
- "请输入邮政编码".show(this)
- return@setOnClickListener
- }
-
- val split = addressView.text.split("-")
- val userModel = DeserializeModel.getUserModel()!!
- addressViewModel.addAddress(
- userModel.mobile,
- split[0],
- split[1],
- split[2],
- streetView.text.toString(),
- "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
- postalCodeView.text.toString()
- )
- }
- }
-
- override fun onAddressPicked(
- province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
- ) {
- addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
- }
-
- override fun observeRequestState() {
- addressViewModel.loadState.observe(this, {
- when (it) {
- LoadState.Loading -> {
- LoadingDialogHub.show(this, "地址保存中...")
- }
- LoadState.Success -> {
- LoadingDialogHub.dismiss()
- finish()
- }
- else -> LoadingDialogHub.dismiss()
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressActivity.kt b/app/src/main/java/com/casic/br/view/AddressActivity.kt
new file mode 100644
index 0000000..26303ad
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/AddressActivity.kt
@@ -0,0 +1,149 @@
+package com.casic.br.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.R
+import com.casic.br.utils.DeserializeModel
+import com.casic.br.utils.LoadingDialogHub
+import com.casic.br.vm.AddressViewModel
+import com.github.gzuliyujiang.wheelpicker.AddressPicker
+import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
+import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
+import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
+import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
+import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
+import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.sp2px
+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_address.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class AddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
+
+ private val kTag = "AddAddressActivity"
+ private var id: String? = null
+ private lateinit var addressViewModel: AddressViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_address
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ id = intent.getStringExtra(Constant.INTENT_PARAM)
+ if (id == null) {
+ titleView.text = "新建地址"
+ } else {
+ titleView.text = "更新地址"
+ }
+ addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
+ }
+
+ override fun initEvent() {
+ addressView.setOnClickListener {
+ val addressPicker = AddressPicker(this)
+ addressPicker.setAddressMode(
+ "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
+ AddressJsonParser.Builder()
+ .provinceCodeField("code")
+ .provinceNameField("name")
+ .provinceChildField("city")
+ .cityCodeField("code")
+ .cityNameField("name")
+ .cityChildField("area")
+ .countyCodeField("code")
+ .countyNameField("name")
+ .build()
+ )
+ addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
+ addressPicker.setOnAddressPickedListener(this)
+ val layout = addressPicker.wheelLayout
+ layout.setTextSize(14f.sp2px(this).toFloat())
+ layout.setSelectedTextSize(16f.sp2px(this).toFloat())
+ layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
+ layout.setSelectedTextBold(true)
+ layout.setOnLinkageSelectedListener { first, second, third ->
+ addressPicker.titleView.text = String.format(
+ "%s%s%s",
+ addressPicker.firstWheelView.formatItem(first),
+ addressPicker.secondWheelView.formatItem(second),
+ addressPicker.thirdWheelView.formatItem(third)
+ )
+ addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
+ }
+ addressPicker.show()
+ }
+
+ saveAddressButton.setOnClickListener {
+ if (addressView.text.isNullOrBlank()) {
+ "请先选择地区".show(this)
+ return@setOnClickListener
+ }
+ if (streetView.text.isNullOrBlank()) {
+ "请输入街道或者楼牌号地址".show(this)
+ return@setOnClickListener
+ }
+ if (postalCodeView.text.isNullOrBlank()) {
+ "请输入邮政编码".show(this)
+ return@setOnClickListener
+ }
+
+ val split = addressView.text.split("-")
+ val userModel = DeserializeModel.getUserModel()!!
+ if (id == null) {
+ //新增地址
+ addressViewModel.addAddress(
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ } else {
+ //修改地址
+ addressViewModel.updateAddressById(
+ id!!,
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ }
+ }
+ }
+
+ override fun onAddressPicked(
+ province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
+ ) {
+ addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
+ }
+
+ override fun observeRequestState() {
+ addressViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ LoadingDialogHub.show(this, "地址保存中...")
+ }
+ LoadState.Success -> {
+ LoadingDialogHub.dismiss()
+ finish()
+ }
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
index ac192c7..9424e54 100644
--- a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
@@ -9,8 +9,8 @@
import com.casic.br.R
import com.casic.br.adapter.AddressListAdapter
import com.casic.br.model.AddressListModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.utils.LocaleConstant
import com.casic.br.vm.AddressViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
@@ -18,7 +18,6 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
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.AlertControlDialog
@@ -81,9 +80,8 @@
})
addAddressButton.setOnClickListener {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
- navigatePageTo()
+ if (DeserializeModel.isLogin()) {
+ navigatePageTo()
} else {
navigatePageTo()
}
@@ -145,13 +143,7 @@
addressAdapter.setOnItemClickListener(object :
AddressListAdapter.OnItemClickListener {
override fun onEditButtonClicked(position: Int) {
-// if (dataBeans[position].devcode.isNullOrBlank()) {
-// "设备编号为空,无法查看历史数据".show(context)
-// return
-// }
-// navigatePageTo(
-// arrayListOf(groupId, dataBeans[position].devcode)
-// )
+ navigatePageTo(dataBeans[clickedPosition].id)
}
})
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt b/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
deleted file mode 100644
index 1e6c191..0000000
--- a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.casic.br.view
-
-import androidx.lifecycle.ViewModelProvider
-import com.casic.br.R
-import com.casic.br.utils.DeserializeModel
-import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.vm.AddressViewModel
-import com.github.gzuliyujiang.wheelpicker.AddressPicker
-import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
-import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
-import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
-import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
-import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
-import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.sp2px
-import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_add_address.*
-import kotlinx.android.synthetic.main.include_base_title.*
-
-class AddAddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
-
- private val kTag = "AddAddressActivity"
- private lateinit var addressViewModel: AddressViewModel
-
- override fun initLayoutView(): Int = R.layout.activity_add_address
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
-
- leftBackView.setOnClickListener { finish() }
- titleView.text = "新建地址"
- }
-
- override fun initData() {
- addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
- }
-
- override fun initEvent() {
- addressView.setOnClickListener {
- val addressPicker = AddressPicker(this)
- addressPicker.setAddressMode(
- "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
- AddressJsonParser.Builder()
- .provinceCodeField("code")
- .provinceNameField("name")
- .provinceChildField("city")
- .cityCodeField("code")
- .cityNameField("name")
- .cityChildField("area")
- .countyCodeField("code")
- .countyNameField("name")
- .build()
- )
- addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
- addressPicker.setOnAddressPickedListener(this)
- val layout = addressPicker.wheelLayout
- layout.setTextSize(14f.sp2px(this).toFloat())
- layout.setSelectedTextSize(16f.sp2px(this).toFloat())
- layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
- layout.setSelectedTextBold(true)
- layout.setOnLinkageSelectedListener { first, second, third ->
- addressPicker.titleView.text = String.format(
- "%s%s%s",
- addressPicker.firstWheelView.formatItem(first),
- addressPicker.secondWheelView.formatItem(second),
- addressPicker.thirdWheelView.formatItem(third)
- )
- addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
- }
- addressPicker.show()
- }
-
- saveAddressButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
- "请先选择地区".show(this)
- return@setOnClickListener
- }
- if (streetView.text.isNullOrBlank()) {
- "请输入街道或者楼牌号地址".show(this)
- return@setOnClickListener
- }
- if (postalCodeView.text.isNullOrBlank()) {
- "请输入邮政编码".show(this)
- return@setOnClickListener
- }
-
- val split = addressView.text.split("-")
- val userModel = DeserializeModel.getUserModel()!!
- addressViewModel.addAddress(
- userModel.mobile,
- split[0],
- split[1],
- split[2],
- streetView.text.toString(),
- "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
- postalCodeView.text.toString()
- )
- }
- }
-
- override fun onAddressPicked(
- province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
- ) {
- addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
- }
-
- override fun observeRequestState() {
- addressViewModel.loadState.observe(this, {
- when (it) {
- LoadState.Loading -> {
- LoadingDialogHub.show(this, "地址保存中...")
- }
- LoadState.Success -> {
- LoadingDialogHub.dismiss()
- finish()
- }
- else -> LoadingDialogHub.dismiss()
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressActivity.kt b/app/src/main/java/com/casic/br/view/AddressActivity.kt
new file mode 100644
index 0000000..26303ad
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/AddressActivity.kt
@@ -0,0 +1,149 @@
+package com.casic.br.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.R
+import com.casic.br.utils.DeserializeModel
+import com.casic.br.utils.LoadingDialogHub
+import com.casic.br.vm.AddressViewModel
+import com.github.gzuliyujiang.wheelpicker.AddressPicker
+import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
+import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
+import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
+import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
+import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
+import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.sp2px
+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_address.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class AddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
+
+ private val kTag = "AddAddressActivity"
+ private var id: String? = null
+ private lateinit var addressViewModel: AddressViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_address
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ id = intent.getStringExtra(Constant.INTENT_PARAM)
+ if (id == null) {
+ titleView.text = "新建地址"
+ } else {
+ titleView.text = "更新地址"
+ }
+ addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
+ }
+
+ override fun initEvent() {
+ addressView.setOnClickListener {
+ val addressPicker = AddressPicker(this)
+ addressPicker.setAddressMode(
+ "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
+ AddressJsonParser.Builder()
+ .provinceCodeField("code")
+ .provinceNameField("name")
+ .provinceChildField("city")
+ .cityCodeField("code")
+ .cityNameField("name")
+ .cityChildField("area")
+ .countyCodeField("code")
+ .countyNameField("name")
+ .build()
+ )
+ addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
+ addressPicker.setOnAddressPickedListener(this)
+ val layout = addressPicker.wheelLayout
+ layout.setTextSize(14f.sp2px(this).toFloat())
+ layout.setSelectedTextSize(16f.sp2px(this).toFloat())
+ layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
+ layout.setSelectedTextBold(true)
+ layout.setOnLinkageSelectedListener { first, second, third ->
+ addressPicker.titleView.text = String.format(
+ "%s%s%s",
+ addressPicker.firstWheelView.formatItem(first),
+ addressPicker.secondWheelView.formatItem(second),
+ addressPicker.thirdWheelView.formatItem(third)
+ )
+ addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
+ }
+ addressPicker.show()
+ }
+
+ saveAddressButton.setOnClickListener {
+ if (addressView.text.isNullOrBlank()) {
+ "请先选择地区".show(this)
+ return@setOnClickListener
+ }
+ if (streetView.text.isNullOrBlank()) {
+ "请输入街道或者楼牌号地址".show(this)
+ return@setOnClickListener
+ }
+ if (postalCodeView.text.isNullOrBlank()) {
+ "请输入邮政编码".show(this)
+ return@setOnClickListener
+ }
+
+ val split = addressView.text.split("-")
+ val userModel = DeserializeModel.getUserModel()!!
+ if (id == null) {
+ //新增地址
+ addressViewModel.addAddress(
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ } else {
+ //修改地址
+ addressViewModel.updateAddressById(
+ id!!,
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ }
+ }
+ }
+
+ override fun onAddressPicked(
+ province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
+ ) {
+ addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
+ }
+
+ override fun observeRequestState() {
+ addressViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ LoadingDialogHub.show(this, "地址保存中...")
+ }
+ LoadState.Success -> {
+ LoadingDialogHub.dismiss()
+ finish()
+ }
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
index ac192c7..9424e54 100644
--- a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
@@ -9,8 +9,8 @@
import com.casic.br.R
import com.casic.br.adapter.AddressListAdapter
import com.casic.br.model.AddressListModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.utils.LocaleConstant
import com.casic.br.vm.AddressViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
@@ -18,7 +18,6 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
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.AlertControlDialog
@@ -81,9 +80,8 @@
})
addAddressButton.setOnClickListener {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
- navigatePageTo()
+ if (DeserializeModel.isLogin()) {
+ navigatePageTo()
} else {
navigatePageTo()
}
@@ -145,13 +143,7 @@
addressAdapter.setOnItemClickListener(object :
AddressListAdapter.OnItemClickListener {
override fun onEditButtonClicked(position: Int) {
-// if (dataBeans[position].devcode.isNullOrBlank()) {
-// "设备编号为空,无法查看历史数据".show(context)
-// return
-// }
-// navigatePageTo(
-// arrayListOf(groupId, dataBeans[position].devcode)
-// )
+ navigatePageTo(dataBeans[clickedPosition].id)
}
})
}
diff --git a/app/src/main/java/com/casic/br/vm/AddressViewModel.kt b/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
index a7aa9ae..34bdd57 100644
--- a/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
+++ b/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
@@ -86,4 +86,32 @@
loadState.value = LoadState.Fail
it.printStackTrace()
})
+
+ fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateAddressById(
+ id,
+ account,
+ province,
+ city,
+ area,
+ street,
+ detailAddress,
+ postalCode
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt b/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
deleted file mode 100644
index 1e6c191..0000000
--- a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.casic.br.view
-
-import androidx.lifecycle.ViewModelProvider
-import com.casic.br.R
-import com.casic.br.utils.DeserializeModel
-import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.vm.AddressViewModel
-import com.github.gzuliyujiang.wheelpicker.AddressPicker
-import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
-import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
-import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
-import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
-import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
-import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.sp2px
-import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_add_address.*
-import kotlinx.android.synthetic.main.include_base_title.*
-
-class AddAddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
-
- private val kTag = "AddAddressActivity"
- private lateinit var addressViewModel: AddressViewModel
-
- override fun initLayoutView(): Int = R.layout.activity_add_address
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
-
- leftBackView.setOnClickListener { finish() }
- titleView.text = "新建地址"
- }
-
- override fun initData() {
- addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
- }
-
- override fun initEvent() {
- addressView.setOnClickListener {
- val addressPicker = AddressPicker(this)
- addressPicker.setAddressMode(
- "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
- AddressJsonParser.Builder()
- .provinceCodeField("code")
- .provinceNameField("name")
- .provinceChildField("city")
- .cityCodeField("code")
- .cityNameField("name")
- .cityChildField("area")
- .countyCodeField("code")
- .countyNameField("name")
- .build()
- )
- addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
- addressPicker.setOnAddressPickedListener(this)
- val layout = addressPicker.wheelLayout
- layout.setTextSize(14f.sp2px(this).toFloat())
- layout.setSelectedTextSize(16f.sp2px(this).toFloat())
- layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
- layout.setSelectedTextBold(true)
- layout.setOnLinkageSelectedListener { first, second, third ->
- addressPicker.titleView.text = String.format(
- "%s%s%s",
- addressPicker.firstWheelView.formatItem(first),
- addressPicker.secondWheelView.formatItem(second),
- addressPicker.thirdWheelView.formatItem(third)
- )
- addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
- }
- addressPicker.show()
- }
-
- saveAddressButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
- "请先选择地区".show(this)
- return@setOnClickListener
- }
- if (streetView.text.isNullOrBlank()) {
- "请输入街道或者楼牌号地址".show(this)
- return@setOnClickListener
- }
- if (postalCodeView.text.isNullOrBlank()) {
- "请输入邮政编码".show(this)
- return@setOnClickListener
- }
-
- val split = addressView.text.split("-")
- val userModel = DeserializeModel.getUserModel()!!
- addressViewModel.addAddress(
- userModel.mobile,
- split[0],
- split[1],
- split[2],
- streetView.text.toString(),
- "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
- postalCodeView.text.toString()
- )
- }
- }
-
- override fun onAddressPicked(
- province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
- ) {
- addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
- }
-
- override fun observeRequestState() {
- addressViewModel.loadState.observe(this, {
- when (it) {
- LoadState.Loading -> {
- LoadingDialogHub.show(this, "地址保存中...")
- }
- LoadState.Success -> {
- LoadingDialogHub.dismiss()
- finish()
- }
- else -> LoadingDialogHub.dismiss()
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressActivity.kt b/app/src/main/java/com/casic/br/view/AddressActivity.kt
new file mode 100644
index 0000000..26303ad
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/AddressActivity.kt
@@ -0,0 +1,149 @@
+package com.casic.br.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.R
+import com.casic.br.utils.DeserializeModel
+import com.casic.br.utils.LoadingDialogHub
+import com.casic.br.vm.AddressViewModel
+import com.github.gzuliyujiang.wheelpicker.AddressPicker
+import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
+import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
+import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
+import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
+import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
+import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.sp2px
+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_address.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class AddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
+
+ private val kTag = "AddAddressActivity"
+ private var id: String? = null
+ private lateinit var addressViewModel: AddressViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_address
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ id = intent.getStringExtra(Constant.INTENT_PARAM)
+ if (id == null) {
+ titleView.text = "新建地址"
+ } else {
+ titleView.text = "更新地址"
+ }
+ addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
+ }
+
+ override fun initEvent() {
+ addressView.setOnClickListener {
+ val addressPicker = AddressPicker(this)
+ addressPicker.setAddressMode(
+ "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
+ AddressJsonParser.Builder()
+ .provinceCodeField("code")
+ .provinceNameField("name")
+ .provinceChildField("city")
+ .cityCodeField("code")
+ .cityNameField("name")
+ .cityChildField("area")
+ .countyCodeField("code")
+ .countyNameField("name")
+ .build()
+ )
+ addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
+ addressPicker.setOnAddressPickedListener(this)
+ val layout = addressPicker.wheelLayout
+ layout.setTextSize(14f.sp2px(this).toFloat())
+ layout.setSelectedTextSize(16f.sp2px(this).toFloat())
+ layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
+ layout.setSelectedTextBold(true)
+ layout.setOnLinkageSelectedListener { first, second, third ->
+ addressPicker.titleView.text = String.format(
+ "%s%s%s",
+ addressPicker.firstWheelView.formatItem(first),
+ addressPicker.secondWheelView.formatItem(second),
+ addressPicker.thirdWheelView.formatItem(third)
+ )
+ addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
+ }
+ addressPicker.show()
+ }
+
+ saveAddressButton.setOnClickListener {
+ if (addressView.text.isNullOrBlank()) {
+ "请先选择地区".show(this)
+ return@setOnClickListener
+ }
+ if (streetView.text.isNullOrBlank()) {
+ "请输入街道或者楼牌号地址".show(this)
+ return@setOnClickListener
+ }
+ if (postalCodeView.text.isNullOrBlank()) {
+ "请输入邮政编码".show(this)
+ return@setOnClickListener
+ }
+
+ val split = addressView.text.split("-")
+ val userModel = DeserializeModel.getUserModel()!!
+ if (id == null) {
+ //新增地址
+ addressViewModel.addAddress(
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ } else {
+ //修改地址
+ addressViewModel.updateAddressById(
+ id!!,
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ }
+ }
+ }
+
+ override fun onAddressPicked(
+ province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
+ ) {
+ addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
+ }
+
+ override fun observeRequestState() {
+ addressViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ LoadingDialogHub.show(this, "地址保存中...")
+ }
+ LoadState.Success -> {
+ LoadingDialogHub.dismiss()
+ finish()
+ }
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
index ac192c7..9424e54 100644
--- a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
@@ -9,8 +9,8 @@
import com.casic.br.R
import com.casic.br.adapter.AddressListAdapter
import com.casic.br.model.AddressListModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.utils.LocaleConstant
import com.casic.br.vm.AddressViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
@@ -18,7 +18,6 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
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.AlertControlDialog
@@ -81,9 +80,8 @@
})
addAddressButton.setOnClickListener {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
- navigatePageTo()
+ if (DeserializeModel.isLogin()) {
+ navigatePageTo()
} else {
navigatePageTo()
}
@@ -145,13 +143,7 @@
addressAdapter.setOnItemClickListener(object :
AddressListAdapter.OnItemClickListener {
override fun onEditButtonClicked(position: Int) {
-// if (dataBeans[position].devcode.isNullOrBlank()) {
-// "设备编号为空,无法查看历史数据".show(context)
-// return
-// }
-// navigatePageTo(
-// arrayListOf(groupId, dataBeans[position].devcode)
-// )
+ navigatePageTo(dataBeans[clickedPosition].id)
}
})
}
diff --git a/app/src/main/java/com/casic/br/vm/AddressViewModel.kt b/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
index a7aa9ae..34bdd57 100644
--- a/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
+++ b/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
@@ -86,4 +86,32 @@
loadState.value = LoadState.Fail
it.printStackTrace()
})
+
+ fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateAddressById(
+ id,
+ account,
+ province,
+ city,
+ area,
+ street,
+ detailAddress,
+ postalCode
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_address.xml b/app/src/main/res/layout/activity_add_address.xml
deleted file mode 100644
index e47f3f9..0000000
--- a/app/src/main/res/layout/activity_add_address.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 796c42c..88090c0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
index 84e947c..2cb3f45 100644
--- a/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/HomePageFragment.kt
@@ -6,6 +6,7 @@
import com.casic.br.adapter.HomeGridAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.BannerImageModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.GridItemDecoration
import com.casic.br.utils.LocaleConstant
import com.casic.br.view.LoginActivity
@@ -121,8 +122,7 @@
}
override fun onResume() {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
rightOperateView.text = "退出"
} else {
rightOperateView.text = "登录"
diff --git a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
index d5941dd..159070c 100644
--- a/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/br/fragment/MinePageFragment.kt
@@ -14,7 +14,6 @@
import com.casic.br.view.SettingsActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_mine.*
import kotlinx.android.synthetic.main.include_main_title.*
@@ -101,8 +100,7 @@
override fun onResume() {
super.onResume()
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
+ if (DeserializeModel.isLogin()) {
val userModel = DeserializeModel.getUserModel()!!
if (userModel.headPic == "") {
Glide.with(this)
diff --git a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
index 2ad11bd..9c3cccc 100644
--- a/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
+++ b/app/src/main/java/com/casic/br/utils/DeserializeModel.kt
@@ -16,4 +16,8 @@
}
return gson.fromJson(userJson, object : TypeToken() {}.type)
}
+
+ fun isLogin(): Boolean {
+ return SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
index 9f1c93b..f9b6036 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt
@@ -61,4 +61,13 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 修改地址
+ */
+ @POST("/appAddressInfo/update")
+ suspend fun updateAddressById(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
index ffb6064..aa23977 100644
--- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitServiceManager.kt
@@ -139,4 +139,27 @@
)
return api.deleteAddressById(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 修改地址
+ */
+ suspend fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("account", account)
+ paramObject.put("province", province)
+ paramObject.put("city", city)
+ paramObject.put("area", area)
+ paramObject.put("street", street)
+ paramObject.put("detailAddress", detailAddress)
+ paramObject.put("postalCode", postalCode)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.updateAddressById(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt b/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
deleted file mode 100644
index 1e6c191..0000000
--- a/app/src/main/java/com/casic/br/view/AddAddressActivity.kt
+++ /dev/null
@@ -1,127 +0,0 @@
-package com.casic.br.view
-
-import androidx.lifecycle.ViewModelProvider
-import com.casic.br.R
-import com.casic.br.utils.DeserializeModel
-import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.vm.AddressViewModel
-import com.github.gzuliyujiang.wheelpicker.AddressPicker
-import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
-import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
-import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
-import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
-import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
-import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.extensions.sp2px
-import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_add_address.*
-import kotlinx.android.synthetic.main.include_base_title.*
-
-class AddAddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
-
- private val kTag = "AddAddressActivity"
- private lateinit var addressViewModel: AddressViewModel
-
- override fun initLayoutView(): Int = R.layout.activity_add_address
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
-
- leftBackView.setOnClickListener { finish() }
- titleView.text = "新建地址"
- }
-
- override fun initData() {
- addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
- }
-
- override fun initEvent() {
- addressView.setOnClickListener {
- val addressPicker = AddressPicker(this)
- addressPicker.setAddressMode(
- "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
- AddressJsonParser.Builder()
- .provinceCodeField("code")
- .provinceNameField("name")
- .provinceChildField("city")
- .cityCodeField("code")
- .cityNameField("name")
- .cityChildField("area")
- .countyCodeField("code")
- .countyNameField("name")
- .build()
- )
- addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
- addressPicker.setOnAddressPickedListener(this)
- val layout = addressPicker.wheelLayout
- layout.setTextSize(14f.sp2px(this).toFloat())
- layout.setSelectedTextSize(16f.sp2px(this).toFloat())
- layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
- layout.setSelectedTextBold(true)
- layout.setOnLinkageSelectedListener { first, second, third ->
- addressPicker.titleView.text = String.format(
- "%s%s%s",
- addressPicker.firstWheelView.formatItem(first),
- addressPicker.secondWheelView.formatItem(second),
- addressPicker.thirdWheelView.formatItem(third)
- )
- addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
- }
- addressPicker.show()
- }
-
- saveAddressButton.setOnClickListener {
- if (addressView.text.isNullOrBlank()) {
- "请先选择地区".show(this)
- return@setOnClickListener
- }
- if (streetView.text.isNullOrBlank()) {
- "请输入街道或者楼牌号地址".show(this)
- return@setOnClickListener
- }
- if (postalCodeView.text.isNullOrBlank()) {
- "请输入邮政编码".show(this)
- return@setOnClickListener
- }
-
- val split = addressView.text.split("-")
- val userModel = DeserializeModel.getUserModel()!!
- addressViewModel.addAddress(
- userModel.mobile,
- split[0],
- split[1],
- split[2],
- streetView.text.toString(),
- "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
- postalCodeView.text.toString()
- )
- }
- }
-
- override fun onAddressPicked(
- province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
- ) {
- addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
- }
-
- override fun observeRequestState() {
- addressViewModel.loadState.observe(this, {
- when (it) {
- LoadState.Loading -> {
- LoadingDialogHub.show(this, "地址保存中...")
- }
- LoadState.Success -> {
- LoadingDialogHub.dismiss()
- finish()
- }
- else -> LoadingDialogHub.dismiss()
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressActivity.kt b/app/src/main/java/com/casic/br/view/AddressActivity.kt
new file mode 100644
index 0000000..26303ad
--- /dev/null
+++ b/app/src/main/java/com/casic/br/view/AddressActivity.kt
@@ -0,0 +1,149 @@
+package com.casic.br.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.br.R
+import com.casic.br.utils.DeserializeModel
+import com.casic.br.utils.LoadingDialogHub
+import com.casic.br.vm.AddressViewModel
+import com.github.gzuliyujiang.wheelpicker.AddressPicker
+import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode
+import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
+import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
+import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
+import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
+import com.github.gzuliyujiang.wheelpicker.utility.AddressJsonParser
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.extensions.sp2px
+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_address.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class AddressActivity : KotlinBaseActivity(), OnAddressPickedListener {
+
+ private val kTag = "AddAddressActivity"
+ private var id: String? = null
+ private lateinit var addressViewModel: AddressViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_address
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
+
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ id = intent.getStringExtra(Constant.INTENT_PARAM)
+ if (id == null) {
+ titleView.text = "新建地址"
+ } else {
+ titleView.text = "更新地址"
+ }
+ addressViewModel = ViewModelProvider(this)[AddressViewModel::class.java]
+ }
+
+ override fun initEvent() {
+ addressView.setOnClickListener {
+ val addressPicker = AddressPicker(this)
+ addressPicker.setAddressMode(
+ "china_city_data.json", AddressMode.PROVINCE_CITY_COUNTY,
+ AddressJsonParser.Builder()
+ .provinceCodeField("code")
+ .provinceNameField("name")
+ .provinceChildField("city")
+ .cityCodeField("code")
+ .cityNameField("name")
+ .cityChildField("area")
+ .countyCodeField("code")
+ .countyNameField("name")
+ .build()
+ )
+ addressPicker.setDefaultValue("北京市", "市辖区", "海淀区")
+ addressPicker.setOnAddressPickedListener(this)
+ val layout = addressPicker.wheelLayout
+ layout.setTextSize(14f.sp2px(this).toFloat())
+ layout.setSelectedTextSize(16f.sp2px(this).toFloat())
+ layout.setSelectedTextColor(R.color.mainThemeColor.convertColor(this))
+ layout.setSelectedTextBold(true)
+ layout.setOnLinkageSelectedListener { first, second, third ->
+ addressPicker.titleView.text = String.format(
+ "%s%s%s",
+ addressPicker.firstWheelView.formatItem(first),
+ addressPicker.secondWheelView.formatItem(second),
+ addressPicker.thirdWheelView.formatItem(third)
+ )
+ addressPicker.titleView.setTextColor(R.color.mainThemeColor.convertColor(this))
+ }
+ addressPicker.show()
+ }
+
+ saveAddressButton.setOnClickListener {
+ if (addressView.text.isNullOrBlank()) {
+ "请先选择地区".show(this)
+ return@setOnClickListener
+ }
+ if (streetView.text.isNullOrBlank()) {
+ "请输入街道或者楼牌号地址".show(this)
+ return@setOnClickListener
+ }
+ if (postalCodeView.text.isNullOrBlank()) {
+ "请输入邮政编码".show(this)
+ return@setOnClickListener
+ }
+
+ val split = addressView.text.split("-")
+ val userModel = DeserializeModel.getUserModel()!!
+ if (id == null) {
+ //新增地址
+ addressViewModel.addAddress(
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ } else {
+ //修改地址
+ addressViewModel.updateAddressById(
+ id!!,
+ userModel.mobile,
+ split[0],
+ split[1],
+ split[2],
+ streetView.text.toString(),
+ "${split[0]}${split[1]}${split[2]}${streetView.text.toString()}",
+ postalCodeView.text.toString()
+ )
+ }
+ }
+ }
+
+ override fun onAddressPicked(
+ province: ProvinceEntity?, city: CityEntity?, county: CountyEntity?
+ ) {
+ addressView.text = String.format("%s-%s-%s", province?.name, city?.name, county?.name)
+ }
+
+ override fun observeRequestState() {
+ addressViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ LoadingDialogHub.show(this, "地址保存中...")
+ }
+ LoadState.Success -> {
+ LoadingDialogHub.dismiss()
+ finish()
+ }
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
index ac192c7..9424e54 100644
--- a/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
+++ b/app/src/main/java/com/casic/br/view/AddressManagerActivity.kt
@@ -9,8 +9,8 @@
import com.casic.br.R
import com.casic.br.adapter.AddressListAdapter
import com.casic.br.model.AddressListModel
+import com.casic.br.utils.DeserializeModel
import com.casic.br.utils.LoadingDialogHub
-import com.casic.br.utils.LocaleConstant
import com.casic.br.vm.AddressViewModel
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
@@ -18,7 +18,6 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
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.AlertControlDialog
@@ -81,9 +80,8 @@
})
addAddressButton.setOnClickListener {
- val isLogin = SaveKeyValues.getValue(LocaleConstant.USER_IS_LOGIN, false) as Boolean
- if (isLogin) {
- navigatePageTo()
+ if (DeserializeModel.isLogin()) {
+ navigatePageTo()
} else {
navigatePageTo()
}
@@ -145,13 +143,7 @@
addressAdapter.setOnItemClickListener(object :
AddressListAdapter.OnItemClickListener {
override fun onEditButtonClicked(position: Int) {
-// if (dataBeans[position].devcode.isNullOrBlank()) {
-// "设备编号为空,无法查看历史数据".show(context)
-// return
-// }
-// navigatePageTo(
-// arrayListOf(groupId, dataBeans[position].devcode)
-// )
+ navigatePageTo(dataBeans[clickedPosition].id)
}
})
}
diff --git a/app/src/main/java/com/casic/br/vm/AddressViewModel.kt b/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
index a7aa9ae..34bdd57 100644
--- a/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
+++ b/app/src/main/java/com/casic/br/vm/AddressViewModel.kt
@@ -86,4 +86,32 @@
loadState.value = LoadState.Fail
it.printStackTrace()
})
+
+ fun updateAddressById(
+ id: String, account: String, province: String, city: String,
+ area: String, street: String, detailAddress: String,
+ postalCode: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateAddressById(
+ id,
+ account,
+ province,
+ city,
+ area,
+ street,
+ detailAddress,
+ postalCode
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_address.xml b/app/src/main/res/layout/activity_add_address.xml
deleted file mode 100644
index e47f3f9..0000000
--- a/app/src/main/res/layout/activity_add_address.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_address.xml b/app/src/main/res/layout/activity_address.xml
new file mode 100644
index 0000000..e47f3f9
--- /dev/null
+++ b/app/src/main/res/layout/activity_address.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file