diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1bdbaa7..5d2c56f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -319,6 +319,10 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"/>
+
+
diff --git a/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt b/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt
index d7add37..6019f36 100644
--- a/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt
+++ b/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt
@@ -43,8 +43,8 @@ class DietManagementAct : BaseVmAct(){
R.id.rx_healthy_diet ->{
bundle.clear()
- bundle.putString("web_site_url","http://testbuilt.zhongjian365.com/ ")
-// bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=cookbook")
+// bundle.putString("web_site_url","http://testbuilt.zhongjian365.com/ ")
+ bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=cookbook")
RouteManager.goAct(ARouterUrl.H5_ACT,bundle)
// var url = "${BuildConfig.}"
diff --git a/app/src/main/java/com/zj365/dc/activity/LoginAct.kt b/app/src/main/java/com/zj365/dc/activity/LoginAct.kt
index 44c0051..46743af 100644
--- a/app/src/main/java/com/zj365/dc/activity/LoginAct.kt
+++ b/app/src/main/java/com/zj365/dc/activity/LoginAct.kt
@@ -50,7 +50,9 @@ class LoginAct : BaseVmAct() {
DialogTipNew(this,"温馨提示", "恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。", "前往","取消",false,{
RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE)
- }){
+ EventBus.getDefault().post(LoginOrRegisterEvent())
+ finish()
+ }){
EventBus.getDefault().post(LoginOrRegisterEvent())
finish()
}
@@ -282,6 +284,7 @@ class LoginAct : BaseVmAct() {
mViewModel.mLogin.observe(this) {
loadingView.dismiss()
if (it.data.isPerfect == 0){
+ dialogBind.setContentNew("恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。")
dialogBind.show()
}else{
EventBus.getDefault().post(LoginOrRegisterEvent())
diff --git a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt
index 4a1f503..072a3aa 100644
--- a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt
+++ b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt
@@ -96,7 +96,7 @@ class MainActivity : BaseVmAct(), Consumer {
}
val dialogInvite by lazy {
- DialogTipNew(this, "监护邀请","138****3415用户邀请您成为 监护人", "确认","取消",false,{
+ DialogTipNew(this, "监护邀请","", "确认","取消",false,{
inviteCustodyBean?.let {
mViewModel.confirmInvite(it.id,"1")
}
diff --git a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt
index 9557e38..0b0d38f 100644
--- a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt
+++ b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt
@@ -166,7 +166,11 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission
isShrinkage =
MMkvHelper.getBoolean(Const.Health_Monitoring_Shrinkage + MMkvHelper.getLong(Const.USER_ID))
-
+ showIdInfo =if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") {
+ ""
+ } else {
+ MMkvHelper.getLong(Const.USER_ID).toString()
+ }
//家人信息绑定
initFamilyAdapter()
@@ -372,6 +376,8 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission
}
//设备连接
R.id.mHealthRecords -> {
+
+ CommonToastUtils.showToast("敬请期待")
/*val btnStr = binding.mHeader.mWearManager.text
if (btnStr == "佩戴管理") {
if (MMkvHelper.getInt(Const.Watch_Device_Type) == Const.Companion.WatchDevice.LightA3.ordinal) {//4G手表
@@ -917,7 +923,10 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission
bean.bmiInfo?.let {
binding.mHeader.mBMI.text = "BMI ${it.bmi}"
binding.mHeader.mBMIStatus.text = "${it.levelName}"
- }
+ }?:{
+ binding.mHeader.mBMI.text = "BMI --"
+ binding.mHeader.mBMIStatus.text = "--"
+ }
binding.mHeader.tvWarningNum.text ="预警次数:${if (bean.warningCount == 0) "--" else bean.warningCount}次"
@@ -954,6 +963,7 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission
//设置健康监测按钮列表数据
healthMonitoringList.clear()
healthMonitoringListExceed.clear()
+ mHealthAdapter.mainBean.clear()
val healthMonitoringListData = mViewModel.setHealthMonitoringListData(
requireContext(),
bean
diff --git a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt
index db550de..136b305 100644
--- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt
+++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt
@@ -53,8 +53,8 @@ class MineFrag : BaseVmFrag(),EasyPermissions.PermissionCallbacks {
private val defaultIcon by lazy {
arrayOf(
- R.mipmap.ic_default_man,
- R.mipmap.ic_default_women
+ R.mipmap.icon_default_avator,
+ R.mipmap.icon_default_avator
)
}
var user: SettingBean.User? = null
diff --git a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt
index b1859ee..9cd5caa 100644
--- a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt
+++ b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt
@@ -282,7 +282,8 @@ class DynamicManagementVm : BaseVm() {
contentXL,
R.mipmap.bg_xl,
R.mipmap.ic_xl,
- 0
+ 0,
+ calorie = hrData.count
)
)
@@ -304,7 +305,8 @@ class DynamicManagementVm : BaseVm() {
contentXY,
R.mipmap.bg_oo,
R.mipmap.ic_oo,
- 1
+ 1,
+ calorie = soData.count
)
)
@@ -327,7 +329,8 @@ class DynamicManagementVm : BaseVm() {
contentHXL,
R.mipmap.bg_breath,
R.mipmap.ic_h_breath,
- 2
+ 2,
+ calorie = respiratoryData.count
)
)
@@ -350,7 +353,8 @@ class DynamicManagementVm : BaseVm() {
contentTW,
R.mipmap.bg_temp,
R.mipmap.ic_temp,
- 3
+ 3,
+ calorie = tempData.count
)
)
@@ -417,7 +421,8 @@ class DynamicManagementVm : BaseVm() {
contentSM,
R.mipmap.bg_h_sleep,
R.mipmap.ic_h_sleep,
- 5
+ 5,
+ calorie = sleepData.count
)
)
@@ -443,7 +448,8 @@ class DynamicManagementVm : BaseVm() {
contentXYa,
R.mipmap.bg_xya,
R.mipmap.ic_xya,
- 6
+ 6,
+ calorie = dbpData.count
)
)
@@ -522,7 +528,8 @@ class DynamicManagementVm : BaseVm() {
contentXT,
R.mipmap.bg_bloodsugar,
R.mipmap.ic_bloodsugar,
- 7
+ 7,
+ calorie = bloodSugarData.count
)
)
@@ -584,7 +591,7 @@ class DynamicManagementVm : BaseVm() {
statusNS = 1
contentNS = "建模中"
mTimeNS = if (uricAcidData.time.isNullOrEmpty()) {
- "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00"
+ "${milliseconds2String(uricAcidData.time)}:00"
} else if (uricAcidData.time.contains("-")) {
uricAcidData.time
} else {
@@ -624,7 +631,8 @@ class DynamicManagementVm : BaseVm() {
R.mipmap.bg_niaosuan,
R.mipmap.ic_niaosuan,
9,
- sex = user.sex.toString()
+ sex = user.sex.toString(),
+ calorie = uricAcidData.count
)
)
@@ -637,7 +645,8 @@ class DynamicManagementVm : BaseVm() {
"敬请期待",
R.mipmap.bg_fat,
R.mipmap.ic_fat,
- 10
+ 10,
+ calorie = bean.healthCount.toString()
)
)
/*var statusXZ = 0
diff --git a/base/src/main/java/com/xty/base/act/BaseVmAct.kt b/base/src/main/java/com/xty/base/act/BaseVmAct.kt
index 4ff3a7c..8a8ab4a 100644
--- a/base/src/main/java/com/xty/base/act/BaseVmAct.kt
+++ b/base/src/main/java/com/xty/base/act/BaseVmAct.kt
@@ -11,7 +11,9 @@ import com.xty.common.MMkvHelper
import com.xty.common.ReflexUtils
import com.xty.common.arouter.ARouterUrl
import com.xty.common.arouter.RouteManager
+import com.xty.common.event.LoginOutEvent
import com.xty.common.weight.LoadingView
+import org.greenrobot.eventbus.EventBus
abstract class BaseVmAct: IBaseAct() {
@@ -30,6 +32,7 @@ abstract class BaseVmAct: IBaseAct() {
mViewModel.nowData.observe(this){
loadingView.dismiss()
MMkvHelper.clearUserInfo()
+ EventBus.getDefault().post(LoginOutEvent())
/*if(componentName.className!="LoginAct" ){
ToastUtils.show(R.string.again_login)
RxActivityTool.finishAllActivity()
diff --git a/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt b/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt
index 417906c..1fe02ec 100644
--- a/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt
+++ b/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt
@@ -16,6 +16,8 @@ import com.xty.base.refresh.RefreshUtils
import com.xty.common.MMkvHelper
import com.xty.common.arouter.ARouterUrl
import com.xty.common.arouter.RouteManager
+import com.xty.common.event.LoginOutEvent
+import org.greenrobot.eventbus.EventBus
abstract class BaseVmFrag : IBaseFrag() {
lateinit var mViewModel: T
@@ -28,8 +30,10 @@ abstract class BaseVmFrag : IBaseFrag() {
mViewModel.nowData.observe(this) {
loadingView.dismiss()
ToastUtils.show(R.string.again_login)
+
//RxActivityTool.finishAllActivity()
MMkvHelper.clearUserInfo()
+ EventBus.getDefault().post(LoginOutEvent())
// RouteManager.goAct(ARouterUrl.LOGIN_ACT)
}
observer()
diff --git a/common/src/main/java/com/xty/common/ExtendUtils.kt b/common/src/main/java/com/xty/common/ExtendUtils.kt
index 1f63bed..e935174 100644
--- a/common/src/main/java/com/xty/common/ExtendUtils.kt
+++ b/common/src/main/java/com/xty/common/ExtendUtils.kt
@@ -51,9 +51,9 @@ fun ImageView.setImageUser(context: Context, string: String?) {
Glide.with(context).load(string).placeholder(
ContextCompat.getDrawable(
context,
- R.mipmap.ic_default_man
+ R.mipmap.icon_default_avator
)
- ).error(R.mipmap.ic_default_man).into(this)
+ ).error(R.mipmap.icon_default_avator).into(this)
}
/**
@@ -61,9 +61,9 @@ fun ImageView.setImageUser(context: Context, string: String?) {
*/
fun ImageView.setImageUser(context: Context, string: String?, sex: String) {
val userHeadImg = if (sex == "1") {
- R.mipmap.ic_default_man
+ R.mipmap.icon_default_avator
} else {
- R.mipmap.ic_default_women
+ R.mipmap.icon_default_avator
}
Glide.with(context).load(string).placeholder(
ContextCompat.getDrawable(
diff --git a/common/src/main/java/com/xty/common/TimeSelect.kt b/common/src/main/java/com/xty/common/TimeSelect.kt
index d9a291c..30f35f4 100644
--- a/common/src/main/java/com/xty/common/TimeSelect.kt
+++ b/common/src/main/java/com/xty/common/TimeSelect.kt
@@ -359,10 +359,10 @@ class TimeSelect(var context: Context, var select: (String) -> Unit) {
showSec
)
)// 显示需要的时间
- .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
+ .setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示
.isCyclic(false)//是否循环滚动
.setBgColor(Color.WHITE)//滚轮背景颜色 Night mode
- .setLineSpacingMultiplier(2.0f)
+ .setLineSpacingMultiplier(3.0f)
.setTextColorCenter(ContextCompat.getColor(context, R.color.col_313))
.setTextColorOut(ContextCompat.getColor(context, R.color.col_6B6))
.setDividerColor(ContextCompat.getColor(context, R.color.transparent))
diff --git a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt
index 93e1cac..ed19a76 100644
--- a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt
+++ b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt
@@ -122,8 +122,10 @@ class ARouterUrl {
//AI 测肤
const val AI_SKIN_MEASUREMENT_ACTIVITY = "/health/com/zj365/health/act/skin/SkinMeasurementMainAct"
+ //家人健康
const val ADD_FAMILY_GUARDIAN_ACT = "/health/com/zj365/health/act/familyhealth/AddFamilyGuardianAct"
const val FAMILY_HEALTH_ACT = "/health/com/zj365/health/act/familyhealth/FamilyHealthAct"
+ const val FAMILY_HEALTH_REAL_TIME_ACT = "/health/com/zj365/health/act/familyhealth/FamilyHealthRealTimeAct"
//设备绑定相关
@@ -187,6 +189,7 @@ class ARouterUrl {
const val TEMP_REMIND = "/mine/com/zj365/dc/mime/act/TempRemindAct"
const val PERSON_INFO = "/mine/com/zj365/dc/mime/act/PersonInfoAct"
const val INVITE_FRIENDS = "/mine/com/zj365/dc/mime/act/InviteFriendsAct" //邀请好友
+ const val ENTERPRISE_INFO = "/mine/com/zj365/dc/mime/act/EnterpriseInformationAct" //企业资料
const val NOTICE_SETTING = "/mine/com/zj365/dc/mime/act/NoticeSettingAct"
diff --git a/common/src/main/res/drawable/shape_ebf_0_5.xml b/common/src/main/res/drawable/shape_ebf_0_5.xml
new file mode 100644
index 0000000..2394f53
--- /dev/null
+++ b/common/src/main/res/drawable/shape_ebf_0_5.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/src/main/res/layout/layout_customer_date_picker.xml b/common/src/main/res/layout/layout_customer_date_picker.xml
index 8f1b0c2..ea9797c 100644
--- a/common/src/main/res/layout/layout_customer_date_picker.xml
+++ b/common/src/main/res/layout/layout_customer_date_picker.xml
@@ -1,10 +1,10 @@
() {
+
+ val binding by lazy { ActFamilyHealthRealTimeBinding.inflate(layoutInflater) }
+
+ val mAdapter by lazy { FamilyHealthRealTimeAdapter() }
+ override fun liveObserver() {
+
+ }
+
+ override fun initView() {
+ super.initView()
+ statusBar(binding.title.mView)
+ binding.title.mTvTitle.text ="实时详情"
+ binding.title.mIvBack.setOnClickListener {
+ finish()
+ }
+ initAdapter()
+ }
+
+ fun initAdapter(){
+ binding.recycler.layoutManager = LinearLayoutManager(this)
+ binding.recycler.adapter = mAdapter
+ var dividerItemDecoration = DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ dividerItemDecoration.setDrawable(resources.getDrawable(R.drawable.shape_ebf_0_5))
+ binding.recycler.addItemDecoration(dividerItemDecoration)
+ mAdapter.addChildClickViewIds(R.id.tv_real_time_mearsure)
+
+ }
+
+ override fun setLayout() = binding.root
+}
\ No newline at end of file
diff --git a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/FamilyHealthRealTimeAdapter.kt b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/FamilyHealthRealTimeAdapter.kt
new file mode 100644
index 0000000..f31e1cf
--- /dev/null
+++ b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/FamilyHealthRealTimeAdapter.kt
@@ -0,0 +1,11 @@
+package com.zj365.health.adapter.familyhealth
+
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.xty.base.adapter.BaseAdapter
+import com.zj365.health.R
+
+class FamilyHealthRealTimeAdapter : BaseAdapter(R.layout.item_family_health_real_time) {
+ override fun convert(holder: BaseViewHolder, item: Any) {
+
+ }
+}
\ No newline at end of file
diff --git a/health/src/main/res/layout/act_family_health_real_time.xml b/health/src/main/res/layout/act_family_health_real_time.xml
new file mode 100644
index 0000000..683a6c1
--- /dev/null
+++ b/health/src/main/res/layout/act_family_health_real_time.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/health/src/main/res/layout/act_medical_history.xml b/health/src/main/res/layout/act_medical_history.xml
index 6d4bce1..227118e 100644
--- a/health/src/main/res/layout/act_medical_history.xml
+++ b/health/src/main/res/layout/act_medical_history.xml
@@ -26,7 +26,7 @@
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:text="@string/status_3"
- android:textColor="@color/col_009"
+ android:textColor="@color/col_02c"
android:textSize="@dimen/dp_16" />
@@ -93,7 +93,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="%"
- android:textColor="@color/col_7CF"
+ android:textColor="@color/col_02c"
android:textSize="@dimen/sp_13"
android:textStyle="bold" />
@@ -416,7 +416,7 @@
android:drawableLeft="@drawable/shape_hint_bg"
android:drawablePadding="@dimen/dp_4"
android:gravity="center|right"
- android:text="正常心率:50-100次/分"
+ android:text="正常血氧:95-100%"
android:textColor="@color/col_c7c"
android:textSize="@dimen/sp_12"
android:textStyle="bold" />
diff --git a/health/src/main/res/layout/item_family_health_real_time.xml b/health/src/main/res/layout/item_family_health_real_time.xml
new file mode 100644
index 0000000..130b9a1
--- /dev/null
+++ b/health/src/main/res/layout/item_family_health_real_time.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt b/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt
index 1df7a75..0a454f8 100644
--- a/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt
+++ b/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt
@@ -21,6 +21,7 @@ import com.xty.base.act.BaseVmAct
import com.xty.base.weight.GpsToastDialog
import com.xty.base.weight.TipDialog
import com.xty.common.TimeSelect
+import com.xty.common.TimeUtils
import com.xty.common.aMapUtils.AmapInit
import com.xty.common.arouter.ARouterUrl
import com.xty.common.arouter.RouteManager
@@ -265,8 +266,14 @@ class BaseInfoChangeAct : BaseVmAct() {
provincey = it.province //表示省
district = it.district //区
binding.mArea.text = "${it.province ?: ""} ${it.city ?: ""} ${it.district ?: ""}"
- binding.mHeight.setText(it.height.toString())
- binding.mWeight.setText(it.weight.toString())
+ if (it.height > 0){
+ binding.mHeight.setText("${it.height}")
+ }
+ if (it.weight > 0){
+ binding.mWeight.setText(it.weight.toString())
+ }
+
+
binding.mAddress.setText(it.area)
val str = StringBuilder()
if (!it.historyName.isNullOrEmpty()) {
@@ -342,6 +349,70 @@ class BaseInfoChangeAct : BaseVmAct() {
binding.mImage.tag.toString()
}
val sexValue = if (binding.checkSex.isChecked) "2" else "1"
+
+ if (name.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入姓名")
+ return
+ }
+ if (height.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入身高")
+ return
+ }
+
+ if (height.toFloat() < 50 || height.toFloat() > 260) {
+ CommonToastUtils.showToast("请输入正确身高")
+ return
+ }
+
+ if (wieght.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入体重")
+ return
+ }
+
+ if (wieght.toFloat() < 3 || wieght.toFloat() > 300) {
+ CommonToastUtils.showToast("请输入正确体重")
+ return
+ }
+ if (birthDay.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请选择出生日期")
+ return
+ }
+ if (TimeUtils.getAgeByBirth(birthDay) < 14) {
+ CommonToastUtils.showToast("需要年满14岁才可使用")
+ return
+ }
+ if (city.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请选择所属地区")
+ return
+ }
+ if (address.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入详细住址")
+ return
+ }
+ if (medicIds.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请选择病史")
+ return
+ }
+
+ if (otherName.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入紧急联系人姓名")
+ return
+ }
+
+ if (otherPhone.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入紧急联系人联系方式")
+ return
+ }
+ if (otherPhone == binding.mPhone.text.toString()) {
+ CommonToastUtils.showToast("紧急联系人电话不能与本人电话一致")
+ return
+ }
+
+ if (rela.isNullOrEmpty()) {
+ CommonToastUtils.showToast("请输入关系")
+ return
+ }
+
mViewModel.submit(
paht,
name,
diff --git a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt
index cf2fc3c..e2b683a 100644
--- a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt
+++ b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt
@@ -150,8 +150,8 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks {
binding.mNickName.text = "设备名称:${it.data.watchName?:""}"
binding.mNum.text = "设备编码:${it.data.bluetooth?:""}"
- binding.mCode.text = "物联网卡:${it.data.deviceCode?:""}"
- binding.mActiveCode.text = "流量到期:${it.data.activationTime?:""}"
+ binding.mCode.text = "物联网卡:${it.data.iccid?:""}"
+ binding.mActiveCode.text = "流量到期:${it.data.flowExpireTime?:""}"
binding.mActiveCode.visibility = View.VISIBLE
setDevicePic(it.data.deviceType, binding.ivDevice)
diff --git a/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt
new file mode 100644
index 0000000..2701918
--- /dev/null
+++ b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt
@@ -0,0 +1,56 @@
+package com.zj365.mime.act
+
+import android.graphics.Rect
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.xty.base.act.BaseListAct
+import com.xty.base.vm.BaseVm
+import com.xty.common.SizeUtil
+import com.xty.common.arouter.ARouterUrl
+import com.zj365.mime.adapter.EnterpriseInformationAdapter
+import com.zj365.mime.databinding.ActEnterpriseInformationBinding
+
+/**
+ * 企业资料
+ */
+@Route(path = ARouterUrl.ENTERPRISE_INFO)
+class EnterpriseInformationAct : BaseListAct() {
+ val binding by lazy { ActEnterpriseInformationBinding.inflate(layoutInflater) }
+
+ val mAdapter by lazy { EnterpriseInformationAdapter() }
+ override fun initAdapter() {
+ binding.recyclerView.layoutManager = LinearLayoutManager(this)
+ binding.recyclerView.adapter = mAdapter
+ setRecycleRefresh(binding.recyclerView,binding.mRefresh,true)
+ /* binding.recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() {
+ override fun getItemOffsets(outRect: Rect, itemPosition: Int, parent: RecyclerView) {
+ super.getItemOffsets(outRect, itemPosition, parent)
+ if (itemPosition == 0){
+
+ }else{
+ outRect.set(0, SizeUtil.dp2px(this@EnterpriseInformationAct,12f))
+ }
+ }
+ })*/
+ }
+
+ override fun loadData() {
+
+ }
+
+ override fun initView() {
+ super.initView()
+ statusBar(binding.title.mView)
+ binding.title.mTvTitle.text = "企业资料"
+ binding.title.mIvBack.setOnClickListener {
+ finish()
+ }
+ }
+
+ override fun liveObserver() {
+
+ }
+
+ override fun setLayout() = binding.root
+}
\ No newline at end of file
diff --git a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt
new file mode 100644
index 0000000..25d276f
--- /dev/null
+++ b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt
@@ -0,0 +1,21 @@
+package com.zj365.mime.adapter
+
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.xty.base.adapter.BaseAdapter
+import com.zj365.mime.R
+
+class EnterpriseInformationAdapter : BaseAdapter(R.layout.item_enterprise_info) {
+
+ val mAdapter by lazy { EnterpriseInformationChildAdapter() }
+ override fun convert(holder: BaseViewHolder, item: Any) {
+
+ var recyclerView = holder.getView(R.id.recycler)
+
+ recyclerView.layoutManager = LinearLayoutManager(context)
+ recyclerView.adapter = mAdapter
+
+
+ }
+}
\ No newline at end of file
diff --git a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt
new file mode 100644
index 0000000..74e737e
--- /dev/null
+++ b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt
@@ -0,0 +1,11 @@
+package com.zj365.mime.adapter
+
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.xty.base.adapter.BaseAdapter
+import com.zj365.mime.R
+
+class EnterpriseInformationChildAdapter : BaseAdapter(R.layout.item_enterprise_info_child) {
+ override fun convert(holder: BaseViewHolder, item: Any) {
+
+ }
+}
\ No newline at end of file
diff --git a/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt b/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt
index 21142b1..d83ab54 100644
--- a/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt
+++ b/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt
@@ -58,68 +58,7 @@ class BaseInfoVm : BaseVm() {
// ToastUtils.show("请输入正确的身份证号")
// return
// }
- if (name.isEmpty()) {
- CommonToastUtils.showToast("请输入姓名")
- return
- }
- if (height.isEmpty()) {
- CommonToastUtils.showToast("请输入身高")
- return
- }
-
- if (height.toFloat() < 50 || height.toFloat() > 260) {
- CommonToastUtils.showToast("请输入正确身高")
- return
- }
-
- if (weight.isEmpty()) {
- CommonToastUtils.showToast("请输入体重")
- return
- }
- if (weight.toFloat() < 3 || weight.toFloat() > 300) {
- CommonToastUtils.showToast("请输入正确体重")
- return
- }
- if (birthDay.isEmpty()) {
- CommonToastUtils.showToast("请选择出生日期")
- return
- }
- if (TimeUtils.getAgeByBirth(birthDay) < 14) {
- CommonToastUtils.showToast("需要年满14岁才可使用")
- return
- }
- if (city.isEmpty()) {
- CommonToastUtils.showToast("请选择所属地区")
- return
- }
- if (area.isEmpty()) {
- CommonToastUtils.showToast("请输入详细住址")
- return
- }
- if (medicIds.isEmpty()) {
- CommonToastUtils.showToast("请选择病史")
- return
- }
-
- if (urgent.isEmpty()) {
- CommonToastUtils.showToast("请输入紧急联系人姓名")
- return
- }
-
- if (urgentPhone.isEmpty()) {
- CommonToastUtils.showToast("请输入紧急联系人联系方式")
- return
- }
- if (urgentPhone == mPhone) {
- CommonToastUtils.showToast("紧急联系人电话不能与本人电话一致")
- return
- }
-
- if (urgentRelation.isEmpty()) {
- CommonToastUtils.showToast("请输入关系")
- return
- }
startHttp {
withContext(Dispatchers.IO) {
diff --git a/mine/src/main/res/layout/act_about.xml b/mine/src/main/res/layout/act_about.xml
index 1a6e676..9dee61c 100644
--- a/mine/src/main/res/layout/act_about.xml
+++ b/mine/src/main/res/layout/act_about.xml
@@ -12,7 +12,7 @@
@@ -82,47 +82,49 @@
android:layout_marginBottom="@dimen/dp_45"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_20"
- android:text="技术支持:湖南安瑜健康科技有限公司"
+ android:text="技术支持:中健三六五健康科技有限公司"
android:textColor="@color/col_313"
android:textSize="@dimen/sp_15" />
-
+
+
-
+
-
+
+
+
+
+
-
-
-
\ No newline at end of file
diff --git a/mine/src/main/res/layout/act_base_info_change.xml b/mine/src/main/res/layout/act_base_info_change.xml
index 6763abd..fbff2a1 100644
--- a/mine/src/main/res/layout/act_base_info_change.xml
+++ b/mine/src/main/res/layout/act_base_info_change.xml
@@ -68,7 +68,7 @@
android:layout_height="@dimen/dp_38"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_18"
- android:src="@mipmap/ic_default_man" />
+ android:src="@mipmap/icon_default_avator" />
diff --git a/mine/src/main/res/layout/act_enterprise_information.xml b/mine/src/main/res/layout/act_enterprise_information.xml
new file mode 100644
index 0000000..f333f25
--- /dev/null
+++ b/mine/src/main/res/layout/act_enterprise_information.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mine/src/main/res/layout/dialog_factory_setting.xml b/mine/src/main/res/layout/dialog_factory_setting.xml
index fac31d6..dfa9e9f 100644
--- a/mine/src/main/res/layout/dialog_factory_setting.xml
+++ b/mine/src/main/res/layout/dialog_factory_setting.xml
@@ -40,7 +40,7 @@
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:text="@string/confirm"
- android:textColor="@color/col_455"
+ android:textColor="@color/col_02c"
android:textSize="@dimen/sp_16"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/mTvCancel"
diff --git a/mine/src/main/res/layout/item_enterprise_info.xml b/mine/src/main/res/layout/item_enterprise_info.xml
new file mode 100644
index 0000000..790dbc1
--- /dev/null
+++ b/mine/src/main/res/layout/item_enterprise_info.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mine/src/main/res/layout/item_enterprise_info_child.xml b/mine/src/main/res/layout/item_enterprise_info_child.xml
new file mode 100644
index 0000000..37638cb
--- /dev/null
+++ b/mine/src/main/res/layout/item_enterprise_info_child.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/network/src/main/java/com/xty/network/model/BreathBean.kt b/network/src/main/java/com/xty/network/model/BreathBean.kt
index a3e18d5..9029ce4 100644
--- a/network/src/main/java/com/xty/network/model/BreathBean.kt
+++ b/network/src/main/java/com/xty/network/model/BreathBean.kt
@@ -28,6 +28,7 @@ data class BreathBean(
data class Model(
var respiratory: Float,
var time: String,
+ var timeValue: Long = 0
)
data class Value(
@@ -86,6 +87,7 @@ data class BreathBean(
Model(
Float.NaN,
dateFormat.format(currentTime),
+ currentTime.time
)
)
calendar.time = currentTime
@@ -114,7 +116,31 @@ data class BreathBean(
// calendar.set(Calendar.MILLISECOND, 0)
// 查找对应的时间节点并更新值
- val index = mappedData.indexOfFirst {
+
+ val time = model.time.toLong() * 1000
+ var mIndex = -1
+ run breaking@{
+ for (i in 0 until mappedData.size) {
+ if (mappedData[i].timeValue == time) {
+ mIndex = i
+ return@breaking
+ } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) {
+ mIndex = i
+ return@breaking
+ }
+ mIndex = -1
+ }
+ }
+
+
+ if (mIndex != -1) {
+ val time = mappedData[mIndex].time
+ val lowDbp = model.respiratory
+
+ mappedData[mIndex] =
+ Model(lowDbp, time)
+ }
+ /*val index = mappedData.indexOfFirst {
it.time == dateFormat.format(calendar.time)
}
if (index != -1) {
@@ -123,7 +149,7 @@ data class BreathBean(
mappedData[index] =
Model(lowDbp, time)
- }
+ }*/
}
return mappedData
}
diff --git a/network/src/main/java/com/xty/network/model/MainBean.kt b/network/src/main/java/com/xty/network/model/MainBean.kt
index 3af4d3e..1065921 100644
--- a/network/src/main/java/com/xty/network/model/MainBean.kt
+++ b/network/src/main/java/com/xty/network/model/MainBean.kt
@@ -41,7 +41,8 @@ data class MainBean(
val time: String,
val message: String,
val value: String,
- val status: Int
+ val status: Int,
+ val count:String,
)
//尿酸
@@ -50,7 +51,8 @@ data class MainBean(
val message: String,
val value: String,
val status: Int,
- val expireTime: String
+ val expireTime: String,
+ val count:String,
)
//血糖数据
@@ -62,7 +64,8 @@ data class MainBean(
val max: Float,
val min: Float,
val errorMsg: String,
- val expireTime: String
+ val expireTime: String,
+ val count:String,
)
//步数
@@ -95,7 +98,8 @@ data class MainBean(
val DDbp: Int,
val DbpMessage: String,
val DbpTime: String,
- val GDbp: Int
+ val GDbp: Int,
+ val count:String,
)
//心电
@@ -103,35 +107,40 @@ data class MainBean(
val hrvNorm: String,
val hrData: String,
val heartTime: String,
- val heartTimeV2: String
+ val heartTimeV2: String,
+ val count:String,
)
//心率
data class HrData(
val hr: Int,
val hrMessage: String,
- val hrTime: String
+ val hrTime: String,
+ val count:String,
)
//呼吸率
data class RespiratoryData(
val respiratory: Int,
val respiratoryMessage: String,
- val respiratoryTime: String
+ val respiratoryTime: String,
+ val count:String,
)
//睡眠
data class SleepData(
val sleep: Int,
val sleepMessage: String,
- val sleepTime: Int
+ val sleepTime: Int,
+ val count:String,
)
//血氧
data class SoData(
val so: Int,
val soMessage: String,
- val soTime: String
+ val soTime: String,
+ val count:String,
)
//体温
@@ -139,7 +148,8 @@ data class MainBean(
val tempFloat: Int,
val tempInt: Int,
val tempMessage: String,
- val tempTime: String
+ val tempTime: String,
+ val count:String,
)
data class User(
diff --git a/network/src/main/java/com/xty/network/model/TempBean.kt b/network/src/main/java/com/xty/network/model/TempBean.kt
index 150d1dc..44a7e5c 100644
--- a/network/src/main/java/com/xty/network/model/TempBean.kt
+++ b/network/src/main/java/com/xty/network/model/TempBean.kt
@@ -36,6 +36,7 @@ data class TempBean(
var tempInt: Float,
var temp: Float,
var time: String,
+ var timeValue: Long = 0
)
data class Value(
@@ -106,6 +107,7 @@ data class TempBean(
Float.NaN,
Float.NaN,
dateFormat.format(currentTime),
+ currentTime.time
)
)
calendar.time = currentTime
@@ -118,30 +120,27 @@ data class TempBean(
for (model in dataList) {
calendar.timeInMillis = model.time.toLong() * 1000
-// val timestamp = model.time.toLong() // 将时间戳字符串转换为长整型
-// val time = Date.from(Instant.ofEpochSecond(timestamp)) // 使用 Instant 类转换为 Date 对象
-// calendar.time = time
-//
-//// val timeStr = model.time
-//// val time = dateFormat.parse(timeStr) // 将字符串转换为 Date 类型
-//// calendar.time = time as Date
-//
-// // 舍弃分钟数为 10 的倍数以外的部分,进行四舍五入
-// val minute = calendar.get(Calendar.MINUTE)
-// val roundedMinute = (minute / 10.0).roundToInt() * 10
-// calendar.set(Calendar.MINUTE, roundedMinute.toInt())
-// calendar.set(Calendar.SECOND, 0)
-// calendar.set(Calendar.MILLISECOND, 0)
// 查找对应的时间节点并更新值
- val index = mappedData.indexOfFirst {
- it.time == dateFormat.format(calendar.time)
+ val time = model.time.toLong() * 1000
+ var mIndex = -1
+ run breaking@{
+ for (i in 0 until mappedData.size) {
+ if (mappedData[i].timeValue == time) {
+ mIndex = i
+ return@breaking
+ } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) {
+ mIndex = i
+ return@breaking
+ }
+ mIndex = -1
+ }
}
- if (index != -1) {
- val time = dateFormat.format(calendar.time)
+ if (mIndex != -1) {
+ val time = mappedData[mIndex].time
val lowDbp = model.temp
- mappedData[index] =
+ mappedData[mIndex] =
Model(
lowDbp,
lowDbp,
diff --git a/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt b/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt
index bcc1e26..b7ab7cf 100644
--- a/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt
+++ b/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt
@@ -14,6 +14,8 @@ data class UserEquipmentInformationizationBean(
val watchType: Int,//设备类型0,蓝牙,1,4G
val power: String,//电量
val linkStatus: String,//连接状态
+ val iccid:String,//物联网卡
+ val flowExpireTime:String,//流量到期时间
val deviceTotal: DeviceTotal,//物联网设备统计
val adorn: Adorn,//佩戴时长对象
) : Serializable {
diff --git a/network/src/main/java/com/xty/network/model/XlBean.kt b/network/src/main/java/com/xty/network/model/XlBean.kt
index ed93bca..c6379c8 100644
--- a/network/src/main/java/com/xty/network/model/XlBean.kt
+++ b/network/src/main/java/com/xty/network/model/XlBean.kt
@@ -21,7 +21,8 @@ data class XlBean(
) {
data class Model(
var hrData: Float,
- var time: String
+ var time: String,
+ var timeValue: Long = 0
)
data class Value(
@@ -78,42 +79,43 @@ data class XlBean(
Model(
Float.NaN,
dateFormat.format(currentTime),
+ currentTime.time
)
)
calendar.time = currentTime
calendar.add(Calendar.MINUTE, 10)
currentTime = calendar.time
}
-// val timestamp = 1688631900L
-// val time = Date(timestamp * 1000)
+
// 将数据集合中的时间映射到时间节点上
for (model in dataList) {
calendar.timeInMillis = model.time.toLong() * 1000
-// val timestamp = model.time.toLong() // 将时间戳字符串转换为长整型
-// val time = Date.from(Instant.ofEpochSecond(timestamp)) // 使用 Instant 类转换为 Date 对象
-// calendar.time = time
-//
-//// val timeStr = model.time
-//// val time = dateFormat.parse(timeStr) // 将字符串转换为 Date 类型
-//// calendar.time = time as Date
-//
-// // 舍弃分钟数为 10 的倍数以外的部分,进行四舍五入
-// val minute = calendar.get(Calendar.MINUTE)
-// val roundedMinute = (minute / 10.0).roundToInt() * 10
-// calendar.set(Calendar.MINUTE, roundedMinute.toInt())
-// calendar.set(Calendar.SECOND, 0)
-// calendar.set(Calendar.MILLISECOND, 0)
// 查找对应的时间节点并更新值
- val index = mappedData.indexOfFirst {
- it.time == dateFormat.format(calendar.time)
+ val time = model.time.toLong() * 1000
+ var mIndex = -1
+ run breaking@{
+ for (i in 0 until mappedData.size) {
+ if (mappedData[i].timeValue == time) {
+ mIndex = i
+ return@breaking
+ } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) {
+ mIndex = i
+ return@breaking
+ }
+ mIndex = -1
+ }
}
- if (index != -1) {
- val time = dateFormat.format(calendar.time)
+
+ /* val index = mappedData.indexOfFirst {
+ it.time == dateFormat.format(calendar.time)
+ }*/
+ if (mIndex != -1) {
+ val time = mappedData[mIndex].time
val lowDbp = model.hrData
- mappedData[index] = Model(lowDbp, time)
+ mappedData[mIndex] = Model(lowDbp, time)
}
}
diff --git a/network/src/main/java/com/xty/network/model/XtNewBean.kt b/network/src/main/java/com/xty/network/model/XtNewBean.kt
index a4d7dac..56b0286 100644
--- a/network/src/main/java/com/xty/network/model/XtNewBean.kt
+++ b/network/src/main/java/com/xty/network/model/XtNewBean.kt
@@ -19,7 +19,8 @@ data class XtNewBean(
data class Model(
var xtDate: Float,
- var time: String
+ var time: String,
+ var timeValue: Long = 0
)
data class Value(
@@ -77,6 +78,7 @@ data class XtNewBean(
XtNewBean.Model(
Float.NaN,
dateFormat.format(currentTime),
+ currentTime.time
)
)
calendar.time = currentTime
diff --git a/network/src/main/java/com/xty/network/model/XyBean.kt b/network/src/main/java/com/xty/network/model/XyBean.kt
index 8fb07b0..dd41c0b 100644
--- a/network/src/main/java/com/xty/network/model/XyBean.kt
+++ b/network/src/main/java/com/xty/network/model/XyBean.kt
@@ -26,6 +26,7 @@ data class XyBean(
data class Model(
var soData: Float,
var time: String,
+ var timeValue: Long = 0
)
data class Value(
@@ -85,6 +86,7 @@ data class XyBean(
Model(
Float.NaN,
dateFormat.format(currentTime),
+ currentTime.time
)
)
calendar.time = currentTime
@@ -113,16 +115,33 @@ data class XyBean(
// calendar.set(Calendar.MILLISECOND, 0)
// 查找对应的时间节点并更新值
- val index = mappedData.indexOfFirst {
- it.time == dateFormat.format(calendar.time)
+
+ val time = model.time.toLong() * 1000
+ var mIndex = -1
+ run breaking@{
+ for (i in 0 until mappedData.size) {
+ if (mappedData[i].timeValue == time) {
+ mIndex = i
+ return@breaking
+ } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) {
+ mIndex = i
+ return@breaking
+ }
+ mIndex = -1
+ }
}
- if (index != -1) {
- val time = dateFormat.format(calendar.time)
+ /* val index = mappedData.indexOfFirst {
+ it.time == dateFormat.format(calendar.time)
+ }*/
+
+ if (mIndex != -1) {
+ val time = mappedData[mIndex].time
val lowDbp = model.soData
- mappedData[index] =
+ mappedData[mIndex] =
Model(lowDbp, time)
}
+
}
return mappedData