From 0a3674eea8ff0975ba198cb1a1336bcde6d54714 Mon Sep 17 00:00:00 2001 From: wlh <646507849@qq.com> Date: Tue, 9 Jan 2024 14:07:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E5=BB=BA365-X2=E6=89=8B=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=85=A5/=E4=BA=8C=E6=9C=9F=E6=9C=89=E5=85=B3UI?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 22 +- .../com/zj365/dc/activity/DeviceActiveAct.kt | 515 +++++++++ .../com/zj365/dc/activity/DeviceChoiceAct.kt | 17 +- .../com/zj365/dc/activity/MainActivity.kt | 14 + .../dc/activity/OneKeyBinderDeviceAct.kt | 2 +- .../java/com/zj365/dc/activity/WelcomeAct.kt | 2 +- .../dc/fragment/DynamicManagementFrag.kt | 146 ++- .../com/zj365/dc/fragment/HealthHomeFrag.kt | 8 +- .../java/com/zj365/dc/fragment/MineFrag.kt | 17 + .../main/java/com/zj365/dc/vm/BasicInfoVm.kt | 295 ++++++ .../com/zj365/dc/vm/DynamicManagementVm.kt | 989 ++---------------- app/src/main/res/layout/act_device_active.xml | 253 +++++ base/build.gradle | 2 +- .../java/com/xty/base/h5/CloudJSBridge.kt | 12 +- .../com/xty/base/model/ScienceDetailBean.kt | 3 + common/build.gradle | 1 + common/src/main/java/com/xty/common/Const.kt | 2 + .../java/com/xty/common/arouter/ARouterUrl.kt | 3 +- .../xty/common/util/DeviceFunctionUtils.kt | 22 + .../main/res/drawable/progress_bg_info.xml | 24 + .../main/res/mipmap-xxhdpi/bg_home_item.png | Bin config.gradle | 3 +- health/build.gradle | 1 + .../zj365/health/act/ComparePageDataAct.kt | 79 +- .../com/zj365/health/act/HealthMainAct.kt | 153 ++- .../health/act/HealthSkyHourReportAct.kt | 23 +- .../act/familyhealth/FamilyHealthAct.kt | 2 +- .../act/healthcode/HealthBodyInquiryAct.kt | 16 + .../act/healthcode/HealthCodeMainAct.kt | 14 + .../act/healthrecord/HealthRecordMainAct.kt | 37 + .../act/healthrecord/HealthRecordsListAct.kt | 31 + .../act/healthrecord/UploadHealthRecordAct.kt | 26 + .../com/zj365/health/vm/ComparePageDataVm.kt | 20 + .../java/com/zj365/health/vm/HealthMainVm.kt | 20 + .../main/java/com/zj365/health/vm/ReportVm.kt | 10 + .../res/layout/act_health_body_inquiry.xml | 184 ++++ .../main/res/layout/act_health_code_main.xml | 567 ++++++++++ .../res/layout/act_health_record_main.xml | 578 ++++++++++ .../res/layout/act_health_records_list.xml | 49 + .../res/layout/act_upload_health_record.xml | 125 +++ .../res/layout/layout_health_record_test.xml | 35 + .../mipmap-xxhdpi/bg_health_record_test.png | Bin 0 -> 73631 bytes .../main/res/mipmap-xxhdpi/bg_person_body.png | Bin 0 -> 150952 bytes .../mipmap-xxhdpi/icon_health_week_record.png | Bin 0 -> 4911 bytes .../res/mipmap-xxhdpi/icon_inquiry_record.png | Bin 0 -> 5589 bytes .../res/mipmap-xxhdpi/icon_report_record.png | Bin 0 -> 6426 bytes .../res/mipmap-xxhdpi/icon_video_inquriy.png | Bin 0 -> 4738 bytes .../java/com/zj365/mime/act/DevInfoAct.kt | 47 +- .../zj365/mime/weight/FactorySettingDialog.kt | 6 + network/build.gradle | 2 + .../main/java/com/xty/network/ApiInterface.kt | 8 + .../java/com/xty/network/model/DeviceBean.kt | 2 +- .../xty/network/model/DeviceFunctionBean.kt | 13 + .../network/model/HealthMonitoringListBean.kt | 1 + .../UserEquipmentInformationizationBean.kt | 2 + .../com/xty/server/act/ScienceDetailAct.kt | 23 +- .../java/com/xty/server/vm/ScienceDetailVm.kt | 13 + 58 files changed, 3291 insertions(+), 1149 deletions(-) create mode 100644 app/src/main/java/com/zj365/dc/activity/DeviceActiveAct.kt create mode 100644 app/src/main/java/com/zj365/dc/vm/BasicInfoVm.kt create mode 100644 app/src/main/res/layout/act_device_active.xml create mode 100644 base/src/main/java/com/xty/base/model/ScienceDetailBean.kt create mode 100644 common/src/main/java/com/xty/common/util/DeviceFunctionUtils.kt create mode 100644 common/src/main/res/drawable/progress_bg_info.xml rename {app => common}/src/main/res/mipmap-xxhdpi/bg_home_item.png (100%) create mode 100644 health/src/main/java/com/zj365/health/act/healthcode/HealthBodyInquiryAct.kt create mode 100644 health/src/main/java/com/zj365/health/act/healthcode/HealthCodeMainAct.kt create mode 100644 health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt create mode 100644 health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt create mode 100644 health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt create mode 100644 health/src/main/java/com/zj365/health/vm/ComparePageDataVm.kt create mode 100644 health/src/main/java/com/zj365/health/vm/HealthMainVm.kt create mode 100644 health/src/main/res/layout/act_health_body_inquiry.xml create mode 100644 health/src/main/res/layout/act_health_code_main.xml create mode 100644 health/src/main/res/layout/act_health_record_main.xml create mode 100644 health/src/main/res/layout/act_health_records_list.xml create mode 100644 health/src/main/res/layout/act_upload_health_record.xml create mode 100644 health/src/main/res/layout/layout_health_record_test.xml create mode 100644 health/src/main/res/mipmap-xxhdpi/bg_health_record_test.png create mode 100644 health/src/main/res/mipmap-xxhdpi/bg_person_body.png create mode 100644 health/src/main/res/mipmap-xxhdpi/icon_health_week_record.png create mode 100644 health/src/main/res/mipmap-xxhdpi/icon_inquiry_record.png create mode 100644 health/src/main/res/mipmap-xxhdpi/icon_report_record.png create mode 100644 health/src/main/res/mipmap-xxhdpi/icon_video_inquriy.png create mode 100644 network/src/main/java/com/xty/network/model/DeviceFunctionBean.kt diff --git a/app/build.gradle b/app/build.gradle index dd90890..071b6ac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' apply plugin: 'com.huawei.agconnect' +apply plugin: 'kotlin-parcelize' def rely = rootProject.ext.relyOn diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d04148e..dcb9e42 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -142,6 +142,10 @@ + + - + @@ -387,14 +391,14 @@ android:exported="true" android:label="@string/app_name" android:launchMode="singleTask" - android:taskAffinity="com.xty.healthuser" + android:taskAffinity="com.zj365.dc" android:theme="@style/Theme.AppCompat.NoActionBar.Transparent"> @@ -409,9 +413,15 @@ android:name="com.hihonor.push.app_id" android:value="${HONOR_APPID}" /> - + + + diff --git a/app/src/main/java/com/zj365/dc/activity/DeviceActiveAct.kt b/app/src/main/java/com/zj365/dc/activity/DeviceActiveAct.kt new file mode 100644 index 0000000..837ef52 --- /dev/null +++ b/app/src/main/java/com/zj365/dc/activity/DeviceActiveAct.kt @@ -0,0 +1,515 @@ +package com.zj365.dc.activity + +import android.annotation.SuppressLint +import android.content.Intent +import android.graphics.Color +import android.os.Build +import android.os.Bundle +import android.provider.Settings +import android.text.SpannableString +import android.text.Spanned +import android.text.TextPaint +import android.text.style.ClickableSpan +import android.view.View +import android.widget.TextView +import androidx.core.content.ContextCompat +import com.alibaba.android.arouter.facade.annotation.Route +import com.google.gson.Gson +import com.tamsiree.rxkit.RxActivityTool +import com.tamsiree.rxkit.RxKeyboardTool +import com.xty.base.act.BaseVmAct +import com.xty.common.* +import com.xty.common.aMapUtils.AmapInit +import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.xty.common.bracelet.* +import com.xty.common.event.BindDevEvent +import com.xty.common.event.BlueToothConnectEvent +import com.xty.common.event.BluetoothEvent +import com.xty.common.event.MyInfoEvent +import com.xty.common.util.CommonToastUtils +import com.xty.common.util.CommonUtils +import com.xty.common.util.PermissionUtils +import com.xty.common.xqr_code.XQRCodeAct + + +import com.xuexiang.xqrcode.XQRCode +import com.yanzhenjie.permission.runtime.Permission +import com.zj365.dc.databinding.ActDeviceActiveBinding +import com.zj365.dc.model.ScanInfoBean +import com.zj365.dc.vm.BasicInfoVm +import com.zj365.health.weight.SignDialog +import com.zj365.mime.weight.FactorySettingDialog +import com.zj365.mime.weight.NoticeSettingDialog +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode + +/** + * + * 设备激活 + */ +@SuppressLint("ObsoleteSdkInt") +@Route(path = ARouterUrl.DEVICE_ACTIVE) +class DeviceActiveAct : BaseVmAct() { + + val binding by lazy { ActDeviceActiveBinding.inflate(layoutInflater) } + override fun setLayout() = binding.root + + // var user: SettingBean.User? = null + var signPath = ""//签名地址 + var isAgree = false + val SERVER_AGREEMENT = 1000 //服务协议 + var isLogin: Boolean = false + + //签名 + val dialog by lazy { + SignDialog(this) { + signPath = it + binding.mImageSign.setImage(this, it) + } + } + + private val factorySettingDialog by lazy { + FactorySettingDialog( + this, + "蓝牙手表需要访问位置、蓝牙权限。" + ) { + getBluePermission(baseContext) { + if (it) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M + && !isGpsOpen(baseContext) + ) { + requestGPSPermission() + } + } else { + finish() + } + } + } + } + + private var headerPath = "" + private var name = "" + private var sexType = "" + private var idCard = "" + private var height = "" + private var wieght = "" + private var address = "" + private var otherName = "" + private var otherPhone = "" + private var rela = "" + private var provincey = "" + private var city = "" + private var district = "" + private var lat = "" + private var lng = "" + private var medicName = "" + private var medicIds = "" + private var diseaseList = "" + private var birthDay = "" + private var birthdayType = -1 + private var type = 0//0:蓝牙设备 默认 1:4G设备 + private var watchName = "" + + override fun initData() { + super.initData() + isDarkBar = true + isLogin = intent.getBooleanExtra("isLogin", false) + intent.extras?.let { + headerPath = getIntentStringData(it, "headerPath") + name = getIntentStringData(it, "name") + sexType = getIntentStringData(it, "sexType") + idCard = getIntentStringData(it, "idCard") + height = getIntentStringData(it, "height") + wieght = getIntentStringData(it, "wieght") + address = getIntentStringData(it, "address") + otherName = getIntentStringData(it, "otherName") + otherPhone = getIntentStringData(it, "otherPhone") + rela = getIntentStringData(it, "rela") + provincey = getIntentStringData(it, "provincey") + city = getIntentStringData(it, "city") + district = getIntentStringData(it, "district") + + lat = getIntentStringData(it, "lat") + lng = getIntentStringData(it, "lng") + medicName = getIntentStringData(it, "medicName") + + medicIds = getIntentStringData(it, "medicIds") + diseaseList = getIntentStringData(it, "diseaseList") + birthDay = getIntentStringData(it, "birthDay") + + birthdayType = it.getInt("birthdayType", -1) + type = it.getInt("type", 0) + } + + } + + private fun getIntentStringData(it: Bundle, key: String): String { + return if (it.getString(key).isNullOrEmpty()) "" else it.getString(key).toString() + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = getString(R.string.active_action) + binding.title.mIvBack.setOnClickListener { + if (isLogin) { //如果是走注册流程过来的,退出该界面,则进入主界面 + RouteManager.goAct(ARouterUrl.MAIN_ACT) + RxActivityTool.finishAllActivity() + } else { + /* EventBus.getDefault().post(BindDevEvent()) + CommonToastUtils.showToast("绑定成功")*/ + finish() + } + } + + binding.mSign.setOnClickListener {//签名信息填写 + dialog.show() + } + + binding.mSubmit.setOnClickListener { + submitData() + } + + if (type == 0) {//是蓝牙设备 + factorySettingDialog.isShow() + + binding.mBlueTooth.setOnClickListener {//蓝牙设备搜索绑定 + RxKeyboardTool.hideSoftInput(this) + bundle.clear() + bundle.putString("devMac", if (it.tag == null) "" else it.tag.toString()) + bundle.putString("devName", (it as TextView).text.toString()) + RouteManager.goAct(ARouterUrl.DEVICE_CONNECT, bundle) + } + binding.mDeviceLayout.visibility = View.VISIBLE + if (YCBBlueConnectHelper.getBlueStatus(false)) {//如果当前已经连接手表 + binding.mBlueTooth.text = Const.connectBlueDevice.deviceName + binding.mBlueTooth.tag = Const.connectBlueDevice.deviceMac + } + } else {//4G设备 + binding.mDeviceLayout.visibility = View.GONE + binding.title.mIvReight.apply { + visibility = View.VISIBLE + setImageResource(com.zj365.health.R.mipmap.ic_scan) + setOnClickListener { + startScan() + } + } + } + setPrive() + } + + private val reqGpsPermissionDialog by lazy { + NoticeSettingDialog(this, "请打开GPS权限", { + finish() + }) { + // 转到手机设置界面,用户设置GPS + var intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS) + startActivityForResult(intent, 1001); // 设置完成后返回到原来的界面 + } + } + + + private fun requestGPSPermission() { + reqGpsPermissionDialog.show() + } + +// /** +// * 检测拍摄权限 +// */ +// private fun checkCameraPermissions() { +// val permission = arrayOf(Manifest.permission.CAMERA) +// Acp.getInstance(this).request( +// AcpOptions.Builder() +// .setPermissions( +// *permission +// ).build(), +// object : AcpListener { +// override fun onGranted() { +// +// } +// +// override fun onDenied(permissions: List) { +// finish() +// } +// }) +// } + + /** + * 扫码 + */ + private fun startScan() { + PermissionUtils.requestPermission(this, + { + XQRCodeAct.start( + this@DeviceActiveAct, + XQRCodeAct.QRCODE_AGREEMENT, + com.zj365.health.R.style.XQRCodeTheme_Custom + ) + }, Permission.CAMERA) + + } + + /** + * 隐私协议 + */ + private fun setPrive() { + binding.mPrivate.setOnClickListener { + if (!isAgree) { + forwardPrivate() + return@setOnClickListener + } + it.isSelected = !it.isSelected + } + binding.mPrivate.movementMethod = MyLinkedMovementMethod().getInstance() + var span = SpannableString(getString(R.string.agree_private_active)) + span.setSpan(object : ClickableSpan() { + override fun onClick(widget: View) { + forwardPrivate() + } + + override fun updateDrawState(ds: TextPaint) { + super.updateDrawState(ds) + ds.color = + ContextCompat.getColor(this@DeviceActiveAct, R.color.col_02c) + ds.isUnderlineText = false + } + + }, 2, 8, Spanned.SPAN_INCLUSIVE_INCLUSIVE) + binding.mPrivate.text = span + binding.mPrivate.highlightColor = Color.TRANSPARENT + } + + /** + * 跳转至隐私协议页面 + */ + private fun forwardPrivate() { + bundle.clear() + bundle.putString("title", "服务协议") + bundle.putInt("type", Const.AGREEMENT_6) + RouteManager.goActRequest( + ARouterUrl.RICH_TEXT, + this@DeviceActiveAct, + SERVER_AGREEMENT, + bundle + ) + } + + + private fun submitData() { + RxKeyboardTool.hideSoftInput(this) + if (!isAgree) { + CommonToastUtils.showToast(R.string.please_agree_server) + return + } + + if (type == 0 && binding.mBlueTooth.text.isNullOrEmpty()) { + CommonToastUtils.showToast(R.string.please_input_device_code) + return + } + + if (signPath.isNullOrEmpty()) { + CommonToastUtils.showToast("请完善签名") + return + } + + if (binding.mDevNum.text.isNullOrEmpty()) { + CommonToastUtils.showToast(R.string.please_input_device_code) + return + } + + if (binding.mActiveCode.text.isNullOrEmpty()) { + CommonToastUtils.showToast(R.string.please_input_active_code) + return + } + + var devMc = if (type == 0) { + if (binding.mBlueTooth.tag == null) "" else binding.mBlueTooth.tag as String + } else {//4G直接传设备号 + binding.mDevNum.text.toString() + } + + var devName = if (type == 0) { + binding.mBlueTooth.text.toString() + } else { + if (watchName.isNullOrEmpty()) { + if (devMc.startsWith("818") && devMc.length > 6) { + "A3-${devMc.substring(devMc.length - 7)}" + } else { + "4G-$devMc" + } + } else { + watchName + } + } + + if (otherPhone.isNullOrEmpty() || height.isNullOrEmpty() || wieght.isNullOrEmpty() || otherName.isNullOrEmpty()) { + mViewModel.activeDevice( + signPath, + binding.mDevNum.text.toString(), + binding.mActiveCode.text.toString(), + devMc, + devName + ) + } else { + mViewModel.submit( + headerPath, + name, + sexType, + idCard, + height, + wieght, + address, + otherName, + otherPhone, + rela, + provincey, + city, + district, + lat, + lng, + medicName, + medicIds, + signPath, + binding.mDevNum.text.toString(), + binding.mActiveCode.text.toString(), + devMc, + devName, + diseaseList, + birthDay, + birthdayType + ) + } + } + + /** + * 设置扫码信息 + */ + private fun setScanInfo(scanInfo: ScanInfoBean) { + binding.mDevNum.setText(scanInfo.deviceCode) + binding.mActiveCode.setText(scanInfo.activationCode) + watchName = scanInfo.watchName + } + + + override fun onRestart() { + super.onRestart() + if (type == 0) {//是蓝牙设备 + factorySettingDialog.isShow() + } + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (resultCode === RESULT_OK) { + when (requestCode) { + SERVER_AGREEMENT -> { + isAgree = true + binding.mPrivate.isSelected = isAgree + } + + XQRCodeAct.QRCODE_AGREEMENT -> { + when (data!!.getIntExtra(XQRCode.RESULT_TYPE, 0)) { + XQRCode.RESULT_SUCCESS -> { + try { + val result = data.extras!!.getString(XQRCode.RESULT_DATA) + LogUtils.d("扫描结果:$result") + if (!result.isNullOrEmpty()) { + val gson = Gson() + setScanInfo(gson.fromJson(result, ScanInfoBean::class.java)) + } else { + CommonToastUtils.showToast("扫码失败,请重试...") + } + } catch (e: Exception) { + LogUtils.e("二维码扫描:$e") + CommonToastUtils.showToast("请确认二维码是否正确!") + } + } + + XQRCode.RESULT_FAILED -> { + LogUtils.d("扫描失败") + } + } + } + } + } + } + + + @Subscribe(threadMode = ThreadMode.MAIN) + fun bloothConnect(event: BluetoothEvent) { + binding.mBlueTooth.text = event.devName + binding.mBlueTooth.tag = event.devMac + } + + private var isActiveSuccess = false +// private val dialogWear by lazy { +// WearDialog(this) { +// RouteManager.goAct(ARouterUrl.MAIN_ACT) +// finish() +// } +// } + + override fun liveObserver() { + mViewModel.activeLive.observe(this) { + activeSuccess() + } + mViewModel.setBasic.observe(this) { + activeSuccess() + } +// mViewModel.prevLive.observe(this) { +// dialogWear.showContent(it.data.content) +// } + } + + private fun activeSuccess() { + isActiveSuccess = true + CommonToastUtils.showSucceedToast("设备激活成功") + LogUtils.d("设备激活成功") + MMkvHelper.put(Const.Watch_Device_Type, type) + if (type == 0) { + YCBManager.deleteHistory(YCBOrder.DELETE_LocalALL) + EventBus.getDefault().post(BlueToothConnectEvent()) + } + EventBus.getDefault().post(MyInfoEvent()) + EventBus.getDefault().post(BindDevEvent()) + // CommonToastUtils.showToast("绑定成功") + finish() + /* if (CommonUtils.getMyUserInfo() == null) { + bundle.clear() + bundle.putInt("isBind", 0) + RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE, bundle) + finish() + } + CommonUtils.getMyUserInfo()?.let { bean -> + if (bean.urgentPhone.isNullOrEmpty()) {//如果紧急联系人电话并且签名为空则认为没有完善信息 + bundle.clear() + bundle.putInt("isBind", 0) + RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE, bundle) + finish() + } else { + RouteManager.goAct(ARouterUrl.MAIN_ACT) + finish() + } + }*/ +// mViewModel.getPrev(7) + } + + override fun onDestroy() { + AmapInit.stopLocation() + if (!isActiveSuccess && type == 0) { + YCBBlueConnectHelper.disconnect() + } + super.onDestroy() + } + + override fun onBackPressed() { + if (isLogin) { //如果是走注册流程过来的,退出该界面,则进入主界面 + RouteManager.goAct(ARouterUrl.MAIN_ACT) + RxActivityTool.finishAllActivity() + } else { + super.onBackPressed() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/zj365/dc/activity/DeviceChoiceAct.kt b/app/src/main/java/com/zj365/dc/activity/DeviceChoiceAct.kt index 2165794..44c357d 100644 --- a/app/src/main/java/com/zj365/dc/activity/DeviceChoiceAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/DeviceChoiceAct.kt @@ -68,10 +68,19 @@ class DeviceChoiceAct : BaseVmAct() { val device = adapter.data[position] as DeviceBean val type = device.watchType if (type != 0) { - bundle.clear() - bundle.putInt("type", type) - bundle.putBoolean("isLogin", isLogin) - RouteManager.goAct(ARouterUrl.DEVICE_ACTIVE, bundle) + if(device.bindType == 1){ + bundle.clear() + bundle.putInt("type", type) + bundle.putBoolean("isLogin", isLogin) + RouteManager.goAct(ARouterUrl.ONE_KEY_DEVICE_ACTIVE, bundle) + }else{ + bundle.clear() + bundle.putInt("type", type) + bundle.putBoolean("isLogin", isLogin) + RouteManager.goAct(ARouterUrl.DEVICE_ACTIVE, bundle) + + } + } else { if (!checkBlueConnectPermission(this)) { FactorySettingDialog(this, "蓝牙手表需要访问位置、蓝牙权限。") { 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 54afd70..8680cb7 100644 --- a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt +++ b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt @@ -7,6 +7,7 @@ import android.content.Intent import android.content.IntentFilter import android.net.Uri import android.os.Build +import android.text.TextUtils import android.util.Log import android.view.LayoutInflater import android.view.View @@ -152,7 +153,20 @@ class MainActivity : BaseVmAct(), Consumer { "" } else { MMkvHelper.getLong(Const.USER_ID).toString() + + + } + + if(!TextUtils.isEmpty(userId)){ + // if (BuildConfig.isRelease) {//设置极光推送别名 + JPushInterface.setAlias( + this, + MMkvHelper.getLong(Const.USER_ID).toInt(), + "user_release_${MMkvHelper.getLong(Const.USER_ID)}" + ) + // } } + mViewModel.getUserEquipmentInformationizationRequest(userId) mViewModel.getBanners(userId,3) mViewModel.getIsDemonstate() diff --git a/app/src/main/java/com/zj365/dc/activity/OneKeyBinderDeviceAct.kt b/app/src/main/java/com/zj365/dc/activity/OneKeyBinderDeviceAct.kt index a8ff655..4597ea8 100644 --- a/app/src/main/java/com/zj365/dc/activity/OneKeyBinderDeviceAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/OneKeyBinderDeviceAct.kt @@ -20,7 +20,7 @@ import com.zj365.dc.vm.OneKeyBinderDeviceVm import com.zj365.health.R import org.greenrobot.eventbus.EventBus -@Route(path = ARouterUrl.DEVICE_ACTIVE) +@Route(path = ARouterUrl.ONE_KEY_DEVICE_ACTIVE) class OneKeyBinderDeviceAct : BaseVmAct() { val binding by lazy { ActBinderDeviceOneKeyBinding.inflate(layoutInflater) } diff --git a/app/src/main/java/com/zj365/dc/activity/WelcomeAct.kt b/app/src/main/java/com/zj365/dc/activity/WelcomeAct.kt index 708c535..6a00ebd 100644 --- a/app/src/main/java/com/zj365/dc/activity/WelcomeAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/WelcomeAct.kt @@ -231,7 +231,7 @@ class WelcomeAct : BaseVmAct() { Log.i("terry", "useId:$userId") JPushInterface.setAlias(this,userId.toInt(),"user_release_${userId}") } - JPushHelper(this).stopOrResumeJPush(MMkvHelper.getBoolean(Const.NOTICE_FLAG)) + // JPushHelper(this).stopOrResumeJPush(MMkvHelper.getBoolean(Const.NOTICE_FLAG)) } 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 9da8f75..ea78f59 100644 --- a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt @@ -57,6 +57,7 @@ import com.xty.common.work.MyWorkManger import com.xty.common.xqr_code.XQRCodeAct import com.zj365.mime.weight.NoticeSettingDialog import com.xty.network.MyRetrofit +import com.xty.network.model.DeviceFunctionBean import com.xty.network.model.FamilyBean import com.xty.network.model.HealthMonitoringListBean import com.xty.network.model.MainBean @@ -140,6 +141,7 @@ class DynamicManagementFrag : BaseVmFrag(){ private var tenJob: Job? = null private val tenLive by lazy { MutableLiveData() } private var isShrinkage = false//记录是否收缩 + private var functionList= ArrayList() /** * -1:步数 0:心率 1:血氧 2:呼吸率 3:体温 4:睡眠 5:血压 6:血糖 7:心电|血脂 @@ -182,17 +184,18 @@ class DynamicManagementFrag : BaseVmFrag(){ binding.mGriddingList.mGridView.adapter = mHealthAdapter binding.mGriddingList.mGridView.setOnItemClickListener { _, _, position, _ -> val index = mHealthAdapter.getItem(position).type + val functionType = mHealthAdapter.getItem(position).functionType onEventObject(requireContext(), UmengEventId.HealthMonitor, pageNames[index]) - when (pageIndexs[index]) { + when (functionType) { //( )0.心率、1.血氧、2.呼吸率、3.体温、4.步数、5.睡眠、6.血压、7.血糖、8.心电、9.尿酸、10.血脂。 //(U32)0.心率、1.血氧、2.呼吸率、3.体温、 、4.睡眠、5.血压、6.血糖、7.尿酸、8.心电,9血脂 //(A3 )0.心率、1.血氧、2.呼吸率、3.体温、 、4.睡眠、5.血压、6.血糖、7.尿酸,8.血脂 //(x1 )0.心率、1.血氧、2.呼吸率、 、3.睡眠、4.血压、5.血糖、6.尿酸,7.血脂 - 0, 1, 2, 3 -> { - goPage(index) + "hr", "so", "resp", "temp" -> { + goPage(index,functionType) } - 4 -> {//步数 + "step" -> {//步数 if (isDemonstrate) { return@setOnItemClickListener } @@ -201,7 +204,7 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putInt("status", data.adorn.health + 1) bundle.putInt("type", 1) if (showIdInfo.isEmpty()) { - bundle.putString("userId", CommonUtils.getMyUserId()) + bundle.putString("userId", MMkvHelper.getLong(Const.USER_ID).toString()) } else showIdInfo.let { bundle.putString("userId", it) } @@ -209,85 +212,30 @@ class DynamicManagementFrag : BaseVmFrag(){ } } - 5 -> { - val deviceType = MMkvHelper.getString(Const.DEVICE_TYPE) - /*if (deviceType == "U32" || deviceType == "A3") { - goPage(index - 1) - } else { + "sleep" -> { + goPage(index - 1,functionType) - }*/ - goPage(index - 1) - /*if (deviceType == "X1" || deviceType == "X2") { - goPage(index - 2) - } else { - goPage(index - 1) - }*/ } - 6 -> { - val deviceType = MMkvHelper.getString(Const.DEVICE_TYPE) - /*if (deviceType == "X1" || deviceType == "X2") { - goPage(4) - } else {*/ - goPage(index - 1) - // } + "dbp" -> { + goPage(index - 1,functionType) } - 9 -> { //心电隐藏的前提下,尿酸为8 否则为9 - val deviceType = MMkvHelper.getString(Const.DEVICE_TYPE) - /* if (deviceType == "X1" || deviceType == "X2") { - goPage(6) - } else {*/ - goPage(7) - // } + "uric" -> { //心电隐藏的前提下,尿酸为8 否则为9 + goPage(7,functionType) } - 7 -> { //血糖 - val deviceType = MMkvHelper.getString(Const.DEVICE_TYPE) - /*if (deviceType == "X1" || deviceType == "X2") { - goPage(5) - } else {*/ - goPage(index - 1) - // } - } + "sugar" -> { //血糖 + goPage(index - 1,functionType) - 10 -> { // //心电隐藏的前提下血脂为9 否则为10 + } + "bloodFat" -> { // //心电隐藏的前提下血脂为9 否则为10 CommonToastUtils.showToast("尊敬的用户您好,血脂功能暂未开放,敬请期待哦~") - /*when (MMkvHelper.getString(Const.DEVICE_TYPE)) { - "X1", "X2" -> { - goPage(7) - } - "U32","" -> { - goPage(9) - } - "A3" -> { - goPage(8) - } - else -> { - goPage(7) - } - }*/ - } - - /*8 -> {//心电 暂时隐藏 尿酸就改成8 -// if (MMkvHelper.getInt(Const.Watch_Device_Type) == -1) { //演示模式 -// showToast("尊敬的用户您好,心电功能暂未开放,敬请期待哦~") -// } else - if (MMkvHelper.getInt(Const.Watch_Device_Type) == Const.Companion.WatchDevice.LightA3.ordinal) {//4G手表 - CommonToastUtils.showToast("尊敬的用户您好,心电功能暂未开放,敬请期待哦~") - } else { - goPage(8) -// if (showIdInfo.isEmpty()) { -// goPage(8) -// } else { -// bundle.clear() -// bundle.putString("id", showIdInfo) -// RouteManager.goAct(ARouterUrl.XD_HISTORY, bundle) -// } - } - }*/ + "ecg" ->{ //心电 暂时隐藏 + CommonToastUtils.showToast("尊敬的用户您好,心电功能暂未开放,敬请期待哦~") + } } } } @@ -346,7 +294,7 @@ class DynamicManagementFrag : BaseVmFrag(){ } //健康监测 R.id.mSub -> { - goPage(0) + goPage(0,"") } //健康对比 R.id.ll_compare -> { @@ -391,6 +339,8 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putBoolean("isDemonstrate", isDemonstrate) bundle.putInt("pageType", 0) bundle.putString("titleName", "日报") + bundle.putParcelableArrayList("functionList",functionList) + RouteManager.goAct(ARouterUrl.HEALTH_SKY_HOUR_REPORT, bundle) } //周报 @@ -401,6 +351,7 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putSerializable("index", ReportVm.ReportInfoType.Week) bundle.putBoolean("isDemonstrate", isDemonstrate) bundle.putString("titleName", "周报") + bundle.putParcelableArrayList("functionList",functionList) RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle) } @@ -412,6 +363,8 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putSerializable("index", ReportVm.ReportInfoType.Month) bundle.putBoolean("isDemonstrate", isDemonstrate) bundle.putString("titleName", "月报") + bundle.putParcelableArrayList("functionList",functionList) + RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle) } //年报 @@ -422,6 +375,8 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putSerializable("index", ReportVm.ReportInfoType.Year) bundle.putBoolean("isDemonstrate", isDemonstrate) bundle.putString("titleName", "年报") + bundle.putParcelableArrayList("functionList",functionList) + RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle) } //24小时健康评估 @@ -432,6 +387,7 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putString("titleName", "24小时健康评估") bundle.putBoolean("isDemonstrate", isDemonstrate) bundle.putBoolean("isEstimate", true) + bundle.putParcelableArrayList("functionList",functionList) RouteManager.goAct(ARouterUrl.HEALTH_SKY_HOUR_REPORT, bundle) } //近7天健康评估 @@ -443,6 +399,7 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putString("titleName", "近7天健康评估") bundle.putBoolean("isNearMouth", false) bundle.putBoolean("isEstimate", true) + bundle.putParcelableArrayList("functionList",functionList) RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle) } //近30天健康评估 @@ -454,17 +411,22 @@ class DynamicManagementFrag : BaseVmFrag(){ bundle.putString("titleName", "近30天健康评估") bundle.putBoolean("isNearMouth", true) bundle.putBoolean("isEstimate", true) + bundle.putParcelableArrayList("functionList",functionList) RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle) } } } //界面跳转 - private fun goPage(page: Int) { + private fun goPage(page: Int,functionType:String) { if (isBind()) { bundle.clear() bundle.putInt("page", page) bundle.putBoolean("isDemonstrate", isDemonstrate) + if(functionList.size > 0){ + bundle.putParcelableArrayList("functionList",functionList) + } + bundle.putString("functionType",functionType) if (!TextUtils.isEmpty(showIdInfo)) { bundle.putString("id", showIdInfo) bundle.putString("sex", sex) @@ -759,6 +721,16 @@ class DynamicManagementFrag : BaseVmFrag(){ } } + mViewModel.functionLiveData.observe(this){ + LogUtils.e("DynamicManagementFrag","functionList:${it.data.size}") + functionList.addAll(it.data) + if (showIdInfo ==MMkvHelper.getLong(Const.USER_ID).toString()) { + Const.functionListDate.value = functionList + } + + + } + //获取首页所有信息返回 mViewModel.allData.observe(this) { it.data.let { bean -> @@ -774,7 +746,7 @@ class DynamicManagementFrag : BaseVmFrag(){ } - if (showIdInfo == CommonUtils.getMyUserId()) { //自己 + if (showIdInfo ==MMkvHelper.getLong(Const.USER_ID).toString()) { //自己 Const.otherLiveData.value = bean } Const.battery = bean.power @@ -808,7 +780,7 @@ class DynamicManagementFrag : BaseVmFrag(){ } else if (Const.Companion.WatchDevice.LightA3.ordinal == bean.watchType) {//如果是4G设备,设置连接状态与电量信息 } else {*/ - if (showIdInfo ==CommonUtils.getMyUserId()) { //自己 + if (showIdInfo == MMkvHelper.getLong(Const.USER_ID).toString()) { //自己 val localBlueMac = MMkvHelper.getString(Const.Blue_Tooth) if (YCBBlueConnectHelper.getBleNowStatus() == YCBBlueConnectHelper.BLEConnectState.DisConnect) {//如果本地有蓝牙信息且属于未连接状态,则直接连接 LogUtils.d("startConnect::${localBlueMac}") @@ -832,9 +804,13 @@ class DynamicManagementFrag : BaseVmFrag(){ healthMonitoringList.clear() healthMonitoringListExceed.clear() mHealthAdapter.mainBean.clear() + + LogUtils.e("DynamicManagementFrag","11111111") + val healthMonitoringListData = mViewModel.setHealthMonitoringListData( requireContext(), - bean + bean, + mViewModel.functionLiveData.value?.data ) val deviceType = bean.deviceType if (TextUtils.isEmpty(deviceType)) { @@ -903,7 +879,7 @@ class DynamicManagementFrag : BaseVmFrag(){ binding.mHeader.mBtnBind.visibility = View.GONE binding.mHeader.mLayoutResult.visibility = View.VISIBLE } else { //没有绑定手表 - if (/*mFamilyAdapter.position == 0 &&*/ it.data.user?.id.toString() == CommonUtils.getMyUserId()) { //是自己,显示绑定手表 + if (/*mFamilyAdapter.position == 0 &&*/ it.data.user?.id.toString() == MMkvHelper.getLong(Const.USER_ID).toString()) { //是自己,显示绑定手表 binding.mHeader.mBtnBind.visibility = View.VISIBLE binding.mHeader.mLayoutResult.visibility = View.GONE } else { //不是自己隐藏数据 @@ -1026,7 +1002,7 @@ class DynamicManagementFrag : BaseVmFrag(){ return@observe } - if ((!showIdInfo.isNullOrEmpty() && showIdInfo != CommonUtils.getMyUserId())) {//不是当前用户 + if ((!showIdInfo.isNullOrEmpty() && showIdInfo !=MMkvHelper.getLong(Const.USER_ID).toString())) {//不是当前用户 LogUtils.d("当前用户与showIdInfo不匹配!") return@observe } @@ -1538,6 +1514,16 @@ class DynamicManagementFrag : BaseVmFrag(){ MMkvHelper.getLong(Const.USER_ID).toString() } + if(!TextUtils.isEmpty(showIdInfo)){ + // if (BuildConfig.isRelease) {//设置极光推送别名 + JPushInterface.setAlias( + requireContext(), + MMkvHelper.getLong(Const.USER_ID).toInt(), + "user_release_${MMkvHelper.getLong(Const.USER_ID)}" + ) + // } + } + getXtInfo(showIdInfo) get24HourReportInfo(showIdInfo) request() diff --git a/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt b/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt index 141d6cc..82c4b25 100644 --- a/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt @@ -148,7 +148,7 @@ HealthHomeFrag : BaseVmFrag() { val req = WXLaunchMiniProgram.Req() req.userName = bannerBean.wxId// 填小程序原始id - // req.path = it ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 + req.path = bannerBean.linkAddress ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 if(bannerBean.wxType == 3){ req.miniprogramType = @@ -205,7 +205,7 @@ HealthHomeFrag : BaseVmFrag() { val req = WXLaunchMiniProgram.Req() req.userName = bannerBean.wxId // 填小程序原始id - //req.path = it ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 + req.path = bannerBean.linkAddress ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 if(bannerBean.wxType == 3){ req.miniprogramType = @@ -281,7 +281,7 @@ HealthHomeFrag : BaseVmFrag() { val req = WXLaunchMiniProgram.Req() req.userName = contentData.wxId // 填小程序原始id - // req.path = it ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 + req.path = contentData.jumpUrl ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 if(contentData.wxType == 3){ req.miniprogramType = @@ -374,7 +374,7 @@ HealthHomeFrag : BaseVmFrag() { val req = WXLaunchMiniProgram.Req() req.userName = contentData.wxId // 填小程序原始id - //req.path = it ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 + req.path = contentData.jumpUrl ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 if(contentData.wxType == 3){ req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE // 可选打开 开发版,体验版和正式版 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 ca8ea62..3f322ec 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt @@ -216,6 +216,12 @@ class MineFrag : BaseVmFrag() { bundle.putInt("page", 0) bundle.putBoolean("isDemonstrate", (requireActivity() as MainActivity).isDemonstrate) + Const.functionListDate.value?.let { + if(it.size > 0){ + bundle.putParcelableArrayList("functionList",it) + } + } + val id = if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") { "" } else { @@ -239,6 +245,11 @@ class MineFrag : BaseVmFrag() { bundle.putBoolean("isDemonstrate", isDemonstrate) bundle.putInt("pageType", 0) bundle.putString("titleName", "日报") + Const.functionListDate.value?.let { + if(it.size > 0){ + bundle.putParcelableArrayList("functionList",it) + } + } RouteManager.goAct(ARouterUrl.HEALTH_SKY_HOUR_REPORT, bundle) } } @@ -269,6 +280,12 @@ class MineFrag : BaseVmFrag() { }else { bundle.clear() bundle.putString("id", user?.id) + Const.functionListDate.value?.let { + if(it.size > 0){ + bundle.putParcelableArrayList("functionList",it) + } + } + RouteManager.goAct(ARouterUrl.COMPARE_PAGE_DATA_ACT, bundle) } } diff --git a/app/src/main/java/com/zj365/dc/vm/BasicInfoVm.kt b/app/src/main/java/com/zj365/dc/vm/BasicInfoVm.kt new file mode 100644 index 0000000..f3462b0 --- /dev/null +++ b/app/src/main/java/com/zj365/dc/vm/BasicInfoVm.kt @@ -0,0 +1,295 @@ +package com.zj365.dc.vm + +import androidx.lifecycle.MutableLiveData +import com.xty.base.vm.BaseVm +import com.xty.common.TimeUtils +import com.xty.common.util.CommonToastUtils +import com.xty.network.model.ImageUploadBean +import com.xty.network.model.NotAccepted +import com.xty.network.model.PrevBean +import com.xty.network.model.RespBody +import com.zj365.dc.R +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.withContext +import okhttp3.MultipartBody +import org.json.JSONArray +import org.json.JSONObject +import java.io.File + +class BasicInfoVm : BaseVm() { + + val setBasic by lazy {MutableLiveData()} + val prevLive by lazy{MutableLiveData>()} + val activeLive by lazy {MutableLiveData()} + + fun submit(path: String,name:String,sex:String, icCard:String,height:String,weight:String,area:String,urgent:String,urgentPhone:String,urgentRelation:String + ,province:String,city:String,district:String,lat:String,lng:String,medicNames:String,medicIds:String,signPath:String,devNum:String,code:String,devMc:String,devName:String,diseaseList:String,birthDay:String,birthdayType:Int) { + +// if(icCard.length!=18){ +// ToastUtils.show("请输入正确的身份证号") +// return +// } + if(height.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入身高") + return + } + + if (height.toFloat() < 50 || height.toFloat() > 260){ + CommonToastUtils.showToast("请输入正确身高") + return + } + + if(weight.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入体重") + return + } + + if(weight.toFloat() < 3 || weight.toFloat() > 300){ + CommonToastUtils.showToast("请输入正确体重") + return + } + + if (TimeUtils.getAgeByBirth(birthDay) < 14){ + CommonToastUtils.showToast("需要年满14岁才可使用") + return + } + + if(area.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入家庭住址") + return + } + + if(medicIds.isNullOrEmpty()){ + CommonToastUtils.showToast("请选择病史") + return + } + + + if(urgent.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入紧急联系人姓名") + return + } + + + if(urgentPhone.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入紧急联系人联系方式") + return + } + + + if(urgentRelation.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入关系") + return + } + + if(devMc.isNullOrEmpty()){ + CommonToastUtils.showToast(R.string.please_connect_device) + return + } + if(devNum.isNullOrEmpty()){ + CommonToastUtils.showToast(R.string.please_input_device_code) + return + } + if(code.isNullOrEmpty()){ + CommonToastUtils.showToast(R.string.please_input_active_code) + return + } + if(signPath.isNullOrEmpty()){ + CommonToastUtils.showToast("请完善签名") + return + } + startHttp { + withContext(Dispatchers.IO) { + var fileId:String?=null + if(!path.isNullOrEmpty()){ + var image = async { uploadImage(path) } + val await = image.await() + + fileId = await.fileId + } + var upload = async {uploadInfo(name,sex, icCard,height,weight,area,urgent,urgentPhone,urgentRelation,fileId,province,city, + district,lat,lng,medicNames,medicIds,diseaseList,birthDay,birthdayType) } + + val infoUpload = upload.await() //个人信息上传 + if(infoUpload.code==0){ + var activeDev =async { active(signPath,devNum,code,devMc,devName) } + var signUpload=activeDev.await() + if(signUpload.code==0){ + setBasic.postValue(infoUpload.data) + }else{ + CommonToastUtils.showToast(signUpload.msg) + } + }else{ + CommonToastUtils.showToast(infoUpload.msg) + } + } + + } + } + fun submitNew(path: String,name:String,sex:String, icCard:String,height:String,weight:String,area:String,urgent:String,urgentPhone:String,urgentRelation:String + ,province:String,city:String,district:String,lat:String,lng:String,medicNames:String,medicIds:String ,diseaseList:String,birthDay:String,birthdayType:Int) { + +// if(icCard.length!=18){ +// ToastUtils.show("请输入正确的身份证号") +// return +// } + if(height.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入身高") + return + } + + if (height.toFloat() < 50 || height.toFloat() > 260){ + CommonToastUtils.showToast("请输入正确身高") + return + } + + if(weight.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入体重") + return + } + + if(weight.toFloat() < 3 || weight.toFloat() > 300){ + CommonToastUtils.showToast("请输入正确体重") + return + } + + if (TimeUtils.getAgeByBirth(birthDay) < 14){ + CommonToastUtils.showToast("需要年满14岁才可使用") + return + } + + if(area.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入家庭住址") + return + } + + if(medicIds.isNullOrEmpty()){ + CommonToastUtils.showToast("请选择病史") + return + } + + + if(urgent.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入紧急联系人姓名") + return + } + + + if(urgentPhone.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入紧急联系人联系方式") + return + } + + + if(urgentRelation.isNullOrEmpty()){ + CommonToastUtils.showToast("请输入关系") + return + } + + startHttp { + withContext(Dispatchers.IO) { + var fileId:String?=null + if(!path.isNullOrEmpty()){ + var image = async { uploadImage(path) } + val await = image.await() + + fileId = await.fileId + } + var upload = async {uploadInfo(name,sex, icCard,height,weight,area,urgent,urgentPhone,urgentRelation,fileId,province,city, + district,lat,lng,medicNames,medicIds,diseaseList,birthDay,birthdayType) } + + val infoUpload = upload.await() //个人信息上传 + if(infoUpload.code==0){ + CommonToastUtils.showSucceedToast("提交成功") + setBasic.postValue(infoUpload.data) + }else{ + CommonToastUtils.showToast(infoUpload.msg) + } + } + + } + } + + fun activeDevice(path:String,devNum:String,code:String,devMc:String,devName:String){ + startHttp { + withContext(Dispatchers.IO){ + var file= File(path) + var fileBody=MultipartBody.Part.createFormData("file",file.name,retrofits.getMultiPartFileRb(file)) + var response= apiInterface().activite(fileBody,retrofits.getRequestBody(devNum.replace(" ", "")),retrofits.getRequestBody(code.replace(" ", "")),retrofits.getRequestBody(devMc),retrofits.getRequestBody(devName)) + if (response.code == 0){ + activeLive.postValue(response.data) + }else{ + CommonToastUtils.showToast(response.msg) + } + } + } + } + + /** + * 激活设备 签名文件上传 + */ + private suspend fun active(path:String,devNum:String,code:String,devMc:String,devName:String):RespBody{ + var file= File(path) + var fileBody=MultipartBody.Part.createFormData("file",file.name,retrofits.getMultiPartFileRb(file)) + var response= apiInterface().activite(fileBody,retrofits.getRequestBody(devNum.replace(" ", "")),retrofits.getRequestBody(code.replace(" ", "")),retrofits.getRequestBody(devMc),retrofits.getRequestBody(devName)) + return response + } + + + private suspend fun uploadInfo(name:String,sex:String, icCard:String,height:String,weight:String,area:String, + urgent:String,urgentPhone:String,urgentRelation:String, + fileId:String?,province:String,city:String,district:String,lat:String,lng:String,medicNames:String,medicIds:String,diseaseList:String,birthDay:String,birthdayType:Int): RespBody { + var json=JSONObject() + json.put("name",name) + json.put("sex",sex) + json.put("idCard",icCard) + json.put("height",height) + json.put("weight",weight) + json.put("area",area) + + json.put("medicalHistory",medicNames) + json.put("historyId",medicIds) + json.put("latitude",lat) + json.put("longitude",lng) + json.put("province",province) + json.put("city",city) + json.put("district",district) + json.put("birthday",birthDay) + json.put("birthdayType",birthdayType) + if(diseaseList.isEmpty()){ + json.put("diseaseList","") + }else{ + var array=JSONArray(diseaseList) //去掉转移的斜杠 + json.put("diseaseList",array) + } + + json.put("urgent",urgent) + json.put("urgentPhone",urgentPhone) + json.put("urgentRelation",urgentRelation) + + if(!fileId.isNullOrEmpty()){ + json.put("avatarUrl",fileId) + } + var rb=retrofits.getRequestBody(json.toString()) + var body=apiInterface().setUpdateUser(rb) + return body + } + + private suspend fun uploadImage(path: String): ImageUploadBean { + var f = File(path) + var fileRb = + MultipartBody.Part.createFormData("file", f.name, retrofits.getMultiPartFileRb(f)) + var body = apiInterface().uploadImage(fileRb) + return body.data + } + + + //1:用户协议 2:管家协议 3:隐私协议 7:佩戴须知 +// fun getPrev(type:Int){ +// startHttp { +// var response=apiInterface().getPrev(type) +// response.getCodeStatus(prevLive,nowData) +// } +// } +} \ No newline at end of file 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 9cd5caa..f5c37ce 100644 --- a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt @@ -14,6 +14,8 @@ import com.xty.common.Dateutils import com.xty.common.MMkvHelper import com.xty.common.TimeUtils import com.xty.common.util.CommonUtils +import com.xty.common.util.DeviceFunctionUtils +import com.xty.network.model.DeviceFunctionBean import com.xty.network.model.FamilyBean import com.xty.network.model.HealthMonitoringListBean import com.xty.network.model.MainBean @@ -28,6 +30,9 @@ import com.xty.network.model.TipsBean import com.xty.network.model.WeatherBean import com.xty.network.model.XTangInfoBean import com.zj365.dc.R +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.withContext import org.json.JSONArray import org.json.JSONObject import java.text.SimpleDateFormat @@ -53,15 +58,26 @@ class DynamicManagementVm : BaseVm() { val weatherLiveDate by lazy { MutableLiveData>() } + val functionLiveData by lazy { MutableLiveData>>() } + /** * 获取所有信息 */ fun getAllInfo(id: String, isShowDialog: Boolean) { startHttp(isShowDialog) { - val json = JSONObject() - json.put("id", id) - val body = apiInterface().getMainInfo(retrofits.getRequestBody(json.toString())) - body.getCodeStatus(allData, nowData) + withContext(Dispatchers.IO){ + val list = async { getDeviceFunctionLists(id) }.await() + + if (list){ + val allInfo = async { + val json = JSONObject() + json.put("id", id) + val body = apiInterface().getMainInfo(retrofits.getRequestBody(json.toString())) + body.getCodeStatus(allData, nowData) + } + } + } + } } @@ -257,14 +273,15 @@ class DynamicManagementVm : BaseVm() { @SuppressLint("SimpleDateFormat") fun setHealthMonitoringListData( context: Context, - bean: MainBean + bean: MainBean, + functionList:MutableList? ): MutableList { val healthMonitoringList: MutableList = mutableListOf() + bean.apply { - /*when (deviceType) { - "U32", "" -> { //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存*/ - MMkvHelper.put(Const.X1_X2_Device, false) - //心率 + MMkvHelper.put(Const.X1_X2_Device, false) + functionList?.forEach { + if (DeviceFunctionUtils.hasFunction(it,"hr")){ //心率 val statusXL = if (hrData.hr == 0) { 0 } else if (hrData.hrMessage.contains("正常")) { @@ -283,11 +300,12 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_xl, R.mipmap.ic_xl, 0, + it.type, calorie = hrData.count ) ) - //血氧 + }else if (DeviceFunctionUtils.hasFunction(it,"so")){ //血氧 val statusXY = if (soData.so == 0) { 0 } else if (soData.soMessage.contains("正常")) { @@ -306,11 +324,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_oo, R.mipmap.ic_oo, 1, + it.type, calorie = soData.count ) ) - - //呼吸率 + }else if(DeviceFunctionUtils.hasFunction(it,"resp")){ //呼吸率 val statusHXL = if (respiratoryData.respiratory == 0) { 0 } else if (respiratoryData.respiratoryMessage.contains("正常")) { @@ -330,11 +348,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_breath, R.mipmap.ic_h_breath, 2, + it.type, calorie = respiratoryData.count ) ) - - //体温 + }else if(DeviceFunctionUtils.hasFunction(it,"temp")){ //体温 val statusTW = if (tempData.tempInt == 0) { 0 } else if (tempData.tempMessage.contains("正常")) { @@ -354,11 +372,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_temp, R.mipmap.ic_temp, 3, + it.type, calorie = tempData.count ) ) - - //步数 + }else if(DeviceFunctionUtils.hasFunction(it,"step")){ //步数 val contentBS = if (stepData.step == 0) "--" else stepData.step.toString() val mTimeBS = if (stepData.stepTime.isNullOrEmpty()) { @@ -380,18 +398,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_step, R.mipmap.ic_steps, 4, + it.type, calorie = calorieBS ) ) - - //睡眠 -// val statusSM = if (sleepData.sleep == 0) { -// 0 -// } else if (sleepData.sleepMessage.contains("正常")) { -// R.mipmap.ic_health_normal -// } else { -// R.mipmap.ic_health_error -// } + }else if(DeviceFunctionUtils.hasFunction(it,"sleep")){ //睡眠 val statusSM = 0 val contentSM = if (sleepData.sleep.toLong() <= 0) { "-小时-分" @@ -422,11 +433,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_h_sleep, R.mipmap.ic_h_sleep, 5, + it.type, calorie = sleepData.count ) ) - - //血压 + }else if(DeviceFunctionUtils.hasFunction(it,"dbp")){ //血压 val statusXYa = if (dbpData.GDbp == 0 && dbpData.DDbp == 0) { 0 } else if (dbpData.DbpMessage.contains("正常")) { @@ -449,11 +460,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_xya, R.mipmap.ic_xya, 6, + it.type, calorie = dbpData.count ) ) - - //血糖 + }else if(DeviceFunctionUtils.hasFunction(it,"sugar")){ //血糖 var statusXT = 0 var contentXT = "" var mTimeXT = "" @@ -529,11 +540,11 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_bloodsugar, R.mipmap.ic_bloodsugar, 7, + it.type, calorie = bloodSugarData.count ) ) - - /*//心电 + }else if(DeviceFunctionUtils.hasFunction(it,"ecg")){ //心电 val statusXD = 0 val contentXD = if (TextUtils.isEmpty(heartData.hrData) || heartData.hrData == "0") { @@ -550,26 +561,11 @@ class DynamicManagementVm : BaseVm() { contentXD, R.mipmap.bg_ecg, R.mipmap.ic_ecg, - 8 + 8, + it.type, ) - )*/ - - //尿酸 -// val statusNS = if (uricAcidData.value == "0") { -// 0 -// } else if (uricAcidData.message.contains("正常")) { -// R.mipmap.ic_health_normal -// } else { -// R.mipmap.ic_health_error -// } -// val contentNS = -// if (!TextUtils.isEmpty(uricAcidData.value)) uricAcidData.value else "--" -// val mTimeNS = uricAcidData.time.toLong().let { -// RxTimeTool.milliseconds2String( -// it, -// SimpleDateFormat("yyyy-MM-dd HH:mm") -// ) -// }.toString() + ) + }else if(DeviceFunctionUtils.hasFunction(it,"uric")){ //尿酸 var statusNS = 0 var contentNS = "" var mTimeNS = "" @@ -597,13 +593,6 @@ class DynamicManagementVm : BaseVm() { } else { "${ milliseconds2String(uricAcidData.time) - /* RxTimeTool.simpleDateFormat( - "yyyy-MM-dd HH", - RxTimeTool.string2Date( - "yyyy-MM-dd HH:mm:ss", - uricAcidData.time - ) - )*/ }:00" } } @@ -631,12 +620,12 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_niaosuan, R.mipmap.ic_niaosuan, 9, + it.type, sex = user.sex.toString(), calorie = uricAcidData.count ) ) - - //血脂 + }else if(DeviceFunctionUtils.hasFunction(it,"bloodFat")){ //血脂 healthMonitoringList.add( HealthMonitoringListBean( "血脂", @@ -646,865 +635,39 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_fat, R.mipmap.ic_fat, 10, + it.type, calorie = bean.healthCount.toString() ) ) - /*var statusXZ = 0 - var contentXZ = "" - var mTimeXZ = "" - when (bloodFatData.status) { - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(bloodFatData.expireTime)) { - contentXZ = "未开通" - mTimeXZ = "免费体验100天" - statusXZ = 3 - } else { - contentXZ = "续费" - mTimeXZ = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusXZ = 0 - } - } - - 1 -> { - statusXZ = 1 - contentXZ = "建模中" - mTimeXZ = if (bloodFatData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (bloodFatData.time.contains("-")) { - bloodFatData.time - } else { -// "${ -// RxTimeTool.simpleDateFormat( -// "yyyy-MM-dd HH", -// RxTimeTool.string2Date( -// "yyyy-MM-dd HH:mm:ss", -// bloodFatData.time -// ) -// ) -// }:00" - milliseconds2String(bloodFatData.time) - } - } - - 2 -> { - statusXZ = - if (bloodFatData.value == "0" || TextUtils.isEmpty(bloodFatData.value)) { - 0 - } else if (bloodFatData.message.contains("正常")) { - 1 - } else { - 2 - } - contentXZ = - if (!TextUtils.isEmpty(bloodFatData.value)) bloodFatData.value else "--" - mTimeXZ = milliseconds2String(bloodFatData.time) - } - } - healthMonitoringList.add( - HealthMonitoringListBean( - "血脂", - statusXZ, - mTimeXZ, - contentXZ, - R.mipmap.bg_fat, - R.mipmap.ic_fat, - 10 - ) - )*/ -// } - - /*"A3" -> { - //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存 - MMkvHelper.put(Const.X1_X2_Device, false) - //心率 - val statusXL = if (hrData.hr == 0) { - 0 - } else if (hrData.hrMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentXL = if (hrData.hr == 0) "--" else hrData.hr.toString() - val mTimeXL = milliseconds2String(hrData.hrTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "心率", - statusXL, - mTimeXL, - contentXL, - R.mipmap.bg_xl, - R.mipmap.ic_xl, - 0 - ) - ) - - //血氧 - val statusXY = if (soData.so == 0) { - 0 - } else if (soData.soMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentXY = if (soData.so == 0) "--" else soData.so.toString() - val mTimeXY = milliseconds2String(soData.soTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "血氧", - statusXY, - mTimeXY, - contentXY, - R.mipmap.bg_oo, - R.mipmap.ic_oo, - 1 - ) - ) - - //呼吸率 - val statusHXL = if (respiratoryData.respiratory == 0) { - 0 - } else if (respiratoryData.respiratoryMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentHXL = - if (respiratoryData.respiratory == 0) "--" else respiratoryData.respiratory.toString() - val mTimeHXL = milliseconds2String(respiratoryData.respiratoryTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "呼吸率", - statusHXL, - mTimeHXL, - contentHXL, - R.mipmap.bg_breath, - R.mipmap.ic_h_breath, - 2 - ) - ) - - //体温 - val statusTW = if (tempData.tempInt == 0) { - 0 - } else if (tempData.tempMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentTW = - if (tempData.tempInt == 0) "--" else "${tempData.tempInt}.${tempData.tempFloat}" - val mTimeTW = milliseconds2String(tempData.tempTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "体温", - statusTW, - mTimeTW, - contentTW, - R.mipmap.bg_temp, - R.mipmap.ic_temp, - 3 - ) - ) - - //步数 - val contentBS = - if (stepData.step == 0) "--" else stepData.step.toString() - val mTimeBS = if (stepData.stepTime.isNullOrEmpty()) { - RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - } else (if (stepData.stepTime.contains("-")) { - stepData.stepTime.let { - it.substring(0, it.length - 3) - } - } else { - milliseconds2String(stepData.stepTime) - }) - val calorieBS = caloriesData - healthMonitoringList.add( - HealthMonitoringListBean( - "步数", - 0, - mTimeBS, - contentBS, - R.mipmap.bg_step, - R.mipmap.ic_steps, - 4, - calorie = calorieBS - ) - ) - - //睡眠 - val statusSM = 0 - val contentSM = if (sleepData.sleep.toLong() <= 0) { - "-小时-分" - } else { - sleepData.sleep.toLong().let { - TimeUtils.secToSpan( - it, - 18, - ContextCompat.getColor( - context, - R.color.col_464 - ), - Typeface.BOLD, - ).toString() - } - } - val mTimeSM = if (sleepData.sleepTime == 0) { - RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - } else { - milliseconds2String(sleepData.sleepTime.toString()) - } - healthMonitoringList.add( - HealthMonitoringListBean( - "睡眠", - statusSM, - mTimeSM, - contentSM, - R.mipmap.bg_h_sleep, - R.mipmap.ic_h_sleep, - 5 - ) - ) + } + } + } + return healthMonitoringList + } - //血压 - val statusXYa = if (dbpData.GDbp == 0 && dbpData.DDbp == 0) { - 0 - } else if (dbpData.DbpMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentXYa = if (dbpData.GDbp == 0 && dbpData.DDbp == 0) { - "--" - } else { - "${dbpData.GDbp}/${dbpData.DDbp}" - } - val mTimeXYa = milliseconds2String(dbpData.DbpTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "血压", - statusXYa, - mTimeXYa, - contentXYa, - R.mipmap.bg_xya, - R.mipmap.ic_xya, - 6 - ) - ) + @SuppressLint("SimpleDateFormat") + private fun milliseconds2String(strTime: String): String { + return RxTimeTool.milliseconds2String( + strTime.toLong() * 1000, + SimpleDateFormat("yyyy-MM-dd HH:mm") + ) + } - //血糖 - var statusXT = 0 - var contentXT = "" - var mTimeXT = "" - when (bloodSugarData.model) {//如果有errorMsg则为建模中 - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(bloodSugarData.expireTime)) { - contentXT = "未开通" - mTimeXT = "免费体验100天" - statusXT = 3 - } else { - contentXT = "续费" - mTimeXT = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusXT = 0 - } - } + fun getWeather(){ + startHttp { + val json = JSONObject() + json.put("longitude", MMkvHelper.getDouble(Const.LONGITUDE)) + json.put("latitude", MMkvHelper.getDouble(Const.LATITUDE)) + val body = apiInterface().getWeather(retrofits.getRequestBody(json.toString())) + body.getCodeStatus(weatherLiveDate, nowData) + } + } - 1 -> { - statusXT = 1 - contentXT = "建模中" - mTimeXT = if (bloodSugarData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (bloodSugarData.time.contains("-")) { - bloodSugarData.time - } else { - "${ - RxTimeTool.simpleDateFormat( - "yyyy-MM-dd HH", - RxTimeTool.string2Date( - "yyyy-MM-dd HH:mm:ss", - bloodSugarData.time - ) - ) - }:00" - } - } - - 2 -> { - statusXT = - if (bloodSugarData.bloodsugar.toFloat() == 0f) { - 0 - } else if (OrganStatusCalcUtil.bloodSugarStatu(bloodSugarData.bloodsugar.toFloat()) == 0) { - 1 - } else { - 2 - } - contentXT = if (bloodSugarData.bloodsugar.toFloat() == 0f) { - "--" - } else { - bloodSugarData.bloodsugar.toString() - } - mTimeXT = if (bloodSugarData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else { - "${ - RxTimeTool.simpleDateFormat( - "yyyy-MM-dd HH", - RxTimeTool.string2Date( - "yyyy-MM-dd HH:mm:ss", - bloodSugarData.time - ) - ) - }:00" - } - } - } - healthMonitoringList.add( - HealthMonitoringListBean( - "血糖", - statusXT, - mTimeXT, - contentXT, - R.mipmap.bg_bloodsugar, - R.mipmap.ic_bloodsugar, - 7 - ) - ) - - //尿酸 -// val statusNS = if (uricAcidData.value == "0") { -// 0 -// } else if (uricAcidData.message.contains("正常")) { -// R.mipmap.ic_health_normal -// } else { -// R.mipmap.ic_health_error -// } -// val contentNS = -// if (!TextUtils.isEmpty(uricAcidData.value)) uricAcidData.value else "--" -// val mTimeNS = uricAcidData.time.toLong().let { -// RxTimeTool.milliseconds2String( -// it, -// SimpleDateFormat("yyyy-MM-dd HH:mm") -// ) -// }.toString() - var statusNS = 0 - var contentNS = "" - var mTimeNS = "" - when (uricAcidData.status) { - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(uricAcidData.expireTime)) { - contentNS = "未开通" - mTimeNS = "免费体验100天" - statusNS = 3 - } else { - contentNS = "续费" - mTimeNS = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusNS = 0 - } - } - - 1 -> { - statusNS = 1 - contentNS = "建模中" - mTimeNS = if (uricAcidData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (uricAcidData.time.contains("-")) { - uricAcidData.time - } else { - "${ - RxTimeTool.simpleDateFormat( - "yyyy-MM-dd HH", - RxTimeTool.string2Date( - "yyyy-MM-dd HH:mm:ss", - uricAcidData.time - ) - ) - }:00" - } - } - - 2 -> { - statusNS = - if (uricAcidData.value == "0" || TextUtils.isEmpty(uricAcidData.value)) { - 0 - } else if (uricAcidData.message.contains("正常")) { - 1 - } else { - 2 - } - contentNS = - if (!TextUtils.isEmpty(uricAcidData.value)) uricAcidData.value else "--" - mTimeNS = milliseconds2String(uricAcidData.time) - } - } - healthMonitoringList.add( - HealthMonitoringListBean( - "尿酸", - statusNS, - mTimeNS, - contentNS, - R.mipmap.bg_niaosuan, - R.mipmap.ic_niaosuan, - 9, - sex = user.sex.toString() - ) - ) - - //血脂 - var statusXZ = 0 - var contentXZ = "" - var mTimeXZ = "" - when (bloodFatData.status) { - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(bloodFatData.expireTime)) { - contentXZ = "未开通" - mTimeXZ = "免费体验100天" - statusXZ = 3 - } else { - contentXZ = "续费" - mTimeXZ = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusXZ = 0 - } - } - - 1 -> { - statusXZ = 1 - contentXZ = "建模中" - mTimeXZ = if (bloodFatData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (bloodFatData.time.contains("-")) { - bloodFatData.time - } else { -// "${ -// RxTimeTool.simpleDateFormat( -// "yyyy-MM-dd HH", -// RxTimeTool.string2Date( -// "yyyy-MM-dd HH:mm:ss", -// bloodFatData.time -// ) -// ) -// }:00" - milliseconds2String(bloodFatData.time) - } - } - - 2 -> { - statusXZ = - if (bloodFatData.value == "0" || TextUtils.isEmpty(bloodFatData.value)) { - 0 - } else if (bloodFatData.message.contains("正常")) { - 1 - } else { - 2 - } - contentXZ = - if (!TextUtils.isEmpty(bloodFatData.value)) bloodFatData.value else "--" - mTimeXZ = milliseconds2String(bloodFatData.time) - } - } - healthMonitoringList.add( - HealthMonitoringListBean( - "血脂", - statusXZ, - mTimeXZ, - contentXZ, - R.mipmap.bg_fat, - R.mipmap.ic_fat, - 10 - ) - ) - }*/ -/* - "X2", "X1" -> { - //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存 - MMkvHelper.put(Const.X1_X2_Device, true) - //心率 - val statusXL = if (hrData.hr == 0) { - 0 - } else if (hrData.hrMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentXL = if (hrData.hr == 0) "--" else hrData.hr.toString() - val mTimeXL = milliseconds2String(hrData.hrTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "心率", - statusXL, - mTimeXL, - contentXL, - R.mipmap.bg_xl, - R.mipmap.ic_xl, - 0 - ) - ) - - //血氧 - val statusXY = if (soData.so == 0) { - 0 - } else if (soData.soMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentXY = if (soData.so == 0) "--" else soData.so.toString() - val mTimeXY = milliseconds2String(soData.soTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "血氧", - statusXY, - mTimeXY, - contentXY, - R.mipmap.bg_oo, - R.mipmap.ic_oo, - 1 - ) - ) - - //呼吸率 - val statusHXL = if (respiratoryData.respiratory == 0) { - 0 - } else if (respiratoryData.respiratoryMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentHXL = - if (respiratoryData.respiratory == 0) "--" else respiratoryData.respiratory.toString() - val mTimeHXL = milliseconds2String(respiratoryData.respiratoryTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "呼吸率", - statusHXL, - mTimeHXL, - contentHXL, - R.mipmap.bg_breath, - R.mipmap.ic_h_breath, - 2 - ) - ) - - //步数 - val contentBS = - if (stepData.step == 0) "--" else stepData.step.toString() - val mTimeBS = if (stepData.stepTime.isNullOrEmpty()) { - RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - } else (if (stepData.stepTime.contains("-")) { - stepData.stepTime.let { - it.substring(0, it.length - 3) - } - } else { - milliseconds2String(stepData.stepTime) - }) - val calorieBS = caloriesData - healthMonitoringList.add( - HealthMonitoringListBean( - "步数", - 0, - mTimeBS, - contentBS, - R.mipmap.bg_step, - R.mipmap.ic_steps, - 4, - calorie = calorieBS - ) - ) - - //睡眠 - val statusSM = 0 - val contentSM = if (sleepData.sleep.toLong() <= 0) { - "-小时-分" - } else { - sleepData.sleep.toLong().let { - TimeUtils.secToSpan( - it, - 18, - ContextCompat.getColor( - context, - R.color.col_464 - ), - Typeface.BOLD, - ).toString() - } - } - val mTimeSM = if (sleepData.sleepTime == 0) { - RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - } else { - milliseconds2String(sleepData.sleepTime.toString()) - } - healthMonitoringList.add( - HealthMonitoringListBean( - "睡眠", - statusSM, - mTimeSM, - contentSM, - R.mipmap.bg_h_sleep, - R.mipmap.ic_h_sleep, - 5 - ) - ) - - //血压 - val statusXYa = if (dbpData.GDbp == 0 && dbpData.DDbp == 0) { - 0 - } else if (dbpData.DbpMessage.contains("正常")) { - 1 - } else { - 2 - } - val contentXYa = if (dbpData.GDbp == 0 && dbpData.DDbp == 0) { - "--" - } else { - "${dbpData.GDbp}/${dbpData.DDbp}" - } - val mTimeXYa = milliseconds2String(dbpData.DbpTime) - healthMonitoringList.add( - HealthMonitoringListBean( - "血压", - statusXYa, - mTimeXYa, - contentXYa, - R.mipmap.bg_xya, - R.mipmap.ic_xya, - 6 - ) - ) - - //血糖 - var statusXT = 0 - var contentXT = "" - var mTimeXT = "" - when (bloodSugarData.model) {//如果有errorMsg则为建模中 - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(bloodSugarData.expireTime)) { - contentXT = "未开通" - mTimeXT = "免费体验100天" - statusXT = 3 - } else { - contentXT = "续费" - mTimeXT = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusXT = 0 - } - } - - 1 -> { - statusXT = 1 - contentXT = "建模中" - mTimeXT = if (bloodSugarData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (bloodSugarData.time.contains("-")) { - bloodSugarData.time - } else { - "${ - RxTimeTool.simpleDateFormat( - "yyyy-MM-dd HH", - RxTimeTool.string2Date( - "yyyy-MM-dd HH:mm:ss", - bloodSugarData.time - ) - ) - }" - } - } - - 2 -> { - statusXT = - if (bloodSugarData.bloodsugar.toFloat() == 0f) { - 0 - } else if (OrganStatusCalcUtil.bloodSugarStatu(bloodSugarData.bloodsugar.toFloat()) == 0) { - 1 - } else { - 2 - } - contentXT = if (bloodSugarData.bloodsugar.toFloat() == 0f) { - "--" - } else { - bloodSugarData.bloodsugar.toString() - } - mTimeXT = if (bloodSugarData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else { - "${ - // milliseconds2String(bloodFatData.time) - RxTimeTool.simpleDateFormat( - "yyyy-MM-dd HH", - RxTimeTool.string2Date( - "yyyy-MM-dd HH:mm:ss", - bloodSugarData.time - ) - ) - }:00" - } - } - } - healthMonitoringList.add( - HealthMonitoringListBean( - "血糖", - statusXT, - mTimeXT, - contentXT, - R.mipmap.bg_bloodsugar, - R.mipmap.ic_bloodsugar, - 7 - ) - ) - - //尿酸 -// val statusNS = if (uricAcidData.value == "0") { -// 0 -// } else if (uricAcidData.message.contains("正常")) { -// R.mipmap.ic_health_normal -// } else { -// R.mipmap.ic_health_error -// } -// val contentNS = -// if (!TextUtils.isEmpty(uricAcidData.value)) uricAcidData.value else "--" -// val mTimeNS = uricAcidData.time.toLong().let { -// RxTimeTool.milliseconds2String( -// it, -// SimpleDateFormat("yyyy-MM-dd HH:mm") -// ) -// }.toString() - var statusNS = 0 - var contentNS = "" - var mTimeNS = "" - when (uricAcidData.status) { - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(uricAcidData.expireTime)) { - contentNS = "未开通" - mTimeNS = "免费体验100天" - statusNS = 3 - } else { - contentNS = "续费" - mTimeNS = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusNS = 0 - } - } - - 1 -> { - statusNS = 1 - contentNS = "建模中" - mTimeNS = if (uricAcidData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (uricAcidData.time.contains("-")) { - uricAcidData.time - } else { - "${ - milliseconds2String(uricAcidData.time) - }" - } - } - - 2 -> { - statusNS = - if (uricAcidData.value == "0" || TextUtils.isEmpty(uricAcidData.value)) { - 0 - } else if (uricAcidData.message.contains("正常")) { - 1 - } else { - 2 - } - contentNS = - if (!TextUtils.isEmpty(uricAcidData.value)) uricAcidData.value else "--" - mTimeNS = milliseconds2String(uricAcidData.time) - } - } - - healthMonitoringList.add( - HealthMonitoringListBean( - "尿酸", - statusNS, - mTimeNS, - contentNS, - R.mipmap.bg_niaosuan, - R.mipmap.ic_niaosuan, - 9, - sex = user.sex.toString() - ) - ) - - //血脂 - var statusXZ = 0 - var contentXZ = "" - var mTimeXZ = "" - when (bloodFatData.status) { - //0 未开通 1:建模中 2:建模完成 - 0 -> { - if (TextUtils.isEmpty(bloodFatData.expireTime)) { - contentXZ = "未开通" - mTimeXZ = "免费体验100天" - statusXZ = 3 - } else { - contentXZ = "续费" - mTimeXZ = RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH:mm") - statusXZ = 0 - } - } - - 1 -> { - statusXZ = 1 - contentXZ = "建模中" - mTimeXZ = if (bloodFatData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" - } else if (bloodFatData.time.contains("-")) { - bloodFatData.time - } else { - milliseconds2String(bloodFatData.time) - } - } - - 2 -> { - statusXZ = - if (bloodFatData.value == "0" || TextUtils.isEmpty(bloodFatData.value)) { - 0 - } else if (bloodFatData.message.contains("正常")) { - 1 - } else { - 2 - } - contentXZ = - if (!TextUtils.isEmpty(bloodFatData.value)) bloodFatData.value else "--" - mTimeXZ = milliseconds2String(bloodFatData.time) - } - } - healthMonitoringList.add( - HealthMonitoringListBean( - "血脂", - statusXZ, - mTimeXZ, - contentXZ, - R.mipmap.bg_fat, - R.mipmap.ic_fat, - 10 - ) - ) - }*/ -// } - } - return healthMonitoringList - } - - @SuppressLint("SimpleDateFormat") - private fun milliseconds2String(strTime: String): String { - return RxTimeTool.milliseconds2String( - strTime.toLong() * 1000, - SimpleDateFormat("yyyy-MM-dd HH:mm") - ) - } - - fun getWeather(){ - startHttp { - val json = JSONObject() - json.put("longitude", MMkvHelper.getDouble(Const.LONGITUDE)) - json.put("latitude", MMkvHelper.getDouble(Const.LATITUDE)) - val body = apiInterface().getWeather(retrofits.getRequestBody(json.toString())) - body.getCodeStatus(weatherLiveDate, nowData) - } + suspend fun getDeviceFunctionLists(id:String):Boolean{ + val json = JSONObject() + json.put("id", id) + val body = apiInterface().getDeviceFunctionList(retrofits.getRequestBody(json.toString())) + body.getCodeStatus(functionLiveData, nowData) + return true } } \ No newline at end of file diff --git a/app/src/main/res/layout/act_device_active.xml b/app/src/main/res/layout/act_device_active.xml new file mode 100644 index 0000000..1b79c1e --- /dev/null +++ b/app/src/main/res/layout/act_device_active.xml @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/base/build.gradle b/base/build.gradle index fc52788..ccd81a2 100644 --- a/base/build.gradle +++ b/base/build.gradle @@ -2,6 +2,7 @@ plugins { id 'com.android.library' id 'kotlin-android' id 'kotlin-kapt' + id 'kotlin-parcelize' } def androidId = rootProject.ext.defaultSetting @@ -53,7 +54,6 @@ android { viewBinding{ enabled=true } - } repositories { diff --git a/base/src/main/java/com/xty/base/h5/CloudJSBridge.kt b/base/src/main/java/com/xty/base/h5/CloudJSBridge.kt index b52d040..12e1069 100644 --- a/base/src/main/java/com/xty/base/h5/CloudJSBridge.kt +++ b/base/src/main/java/com/xty/base/h5/CloudJSBridge.kt @@ -1,15 +1,19 @@ package com.xty.base.h5 import android.content.Context +import android.os.Bundle import android.webkit.JavascriptInterface import com.blankj.utilcode.util.GsonUtils import com.google.gson.Gson import com.xty.base.act.BaseVmAct +import com.xty.base.model.ScienceDetailBean import com.xty.base.model.WatchReChangeBean import com.xty.base.utils.PayUtils import com.xty.common.Const import com.xty.common.LogUtils import com.xty.common.MMkvHelper +import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager import com.xty.common.util.ToastUtils import org.json.JSONObject @@ -63,9 +67,11 @@ open class CloudJSBridge(val context: Context, val listener: IJsBridge) { fun gotoScienceDetail(str: String?){ LogUtils.e("CloudJSBridge","gotoScienceDetail str") str?.let { - + var detailBean = GsonUtils.fromJson(it, ScienceDetailBean::class.java) + var bundle = Bundle() + bundle.putString("id",detailBean.id) + RouteManager.goAct(ARouterUrl.SCIENCE_DETAIL, bundle) } - ToastUtils(context).showToast("敬请期待") } @JavascriptInterface @@ -76,4 +82,6 @@ open class CloudJSBridge(val context: Context, val listener: IJsBridge) { } } + + } \ No newline at end of file diff --git a/base/src/main/java/com/xty/base/model/ScienceDetailBean.kt b/base/src/main/java/com/xty/base/model/ScienceDetailBean.kt new file mode 100644 index 0000000..ae7aee7 --- /dev/null +++ b/base/src/main/java/com/xty/base/model/ScienceDetailBean.kt @@ -0,0 +1,3 @@ +package com.xty.base.model +data class ScienceDetailBean (var id:String){ +} \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle index 0ef692e..46e5d21 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -2,6 +2,7 @@ plugins { id 'com.android.library' id 'kotlin-android' id 'kotlin-kapt' + id 'kotlin-parcelize' } diff --git a/common/src/main/java/com/xty/common/Const.kt b/common/src/main/java/com/xty/common/Const.kt index a4ab845..083921d 100644 --- a/common/src/main/java/com/xty/common/Const.kt +++ b/common/src/main/java/com/xty/common/Const.kt @@ -1,6 +1,7 @@ package com.xty.common import androidx.lifecycle.MutableLiveData +import com.xty.network.model.DeviceFunctionBean import com.xty.network.model.MainBean import com.xty.network.model.MusicBean import com.xty.network.model.SettingBean @@ -70,6 +71,7 @@ class Const { val mainLiveData by lazy { MutableLiveData() } //个人信息数据 val otherLiveData by lazy { MutableLiveData() } val connectBlueDevice by lazy { ScanDeviceBean() } + val functionListDate by lazy { MutableLiveData>() } var battery = ""//电量信息 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 33d3b54..aeef5be 100644 --- a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt +++ b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt @@ -6,7 +6,8 @@ class ARouterUrl { const val MAIN_ACT = "/com/zj365/dc/activity/MainActivity" const val LOGIN_ACT = "/com/zj365/dc/activity/LoginAct" const val REGIST_ACT = "/com/zj365/dc/activity/RegisterAct" - const val DEVICE_ACTIVE = "/com/zj365/dc/activity/OneKeyBinderDeviceAct" + const val ONE_KEY_DEVICE_ACTIVE = "/com/zj365/dc/activity/OneKeyBinderDeviceAct" + const val DEVICE_ACTIVE = "/com/xty/health/act/DeviceActiveAct" const val BASIC_INFO = "/com/zj365/dc/act/BasicInfoAct" const val BIND_WX_PHONE = "/com/zj365/dc/act/BindWxPhone" const val DEVICE_CONNECT = "/com/zj365/dc/activity/DeviceConnectAct" diff --git a/common/src/main/java/com/xty/common/util/DeviceFunctionUtils.kt b/common/src/main/java/com/xty/common/util/DeviceFunctionUtils.kt new file mode 100644 index 0000000..6d86133 --- /dev/null +++ b/common/src/main/java/com/xty/common/util/DeviceFunctionUtils.kt @@ -0,0 +1,22 @@ +package com.xty.common.util + +import com.xty.network.model.DeviceFunctionBean + +object DeviceFunctionUtils { + + fun hasFunction(functionList:ArrayList,functionType:String) : Boolean{ + functionList.forEach { + if(it.type == functionType && it.status == 1){ + return true + } + } + return false + } + + fun hasFunction(bean:DeviceFunctionBean,functionType:String):Boolean{ + if(bean.type == functionType && bean.status == 1){ + return true + } + return false + } +} \ No newline at end of file diff --git a/common/src/main/res/drawable/progress_bg_info.xml b/common/src/main/res/drawable/progress_bg_info.xml new file mode 100644 index 0000000..04f6d7b --- /dev/null +++ b/common/src/main/res/drawable/progress_bg_info.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/bg_home_item.png b/common/src/main/res/mipmap-xxhdpi/bg_home_item.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/bg_home_item.png rename to common/src/main/res/mipmap-xxhdpi/bg_home_item.png diff --git a/config.gradle b/config.gradle index dd6d4ec..e9e364c 100644 --- a/config.gradle +++ b/config.gradle @@ -169,7 +169,8 @@ ext { stream : 'com.annimon:stream:1.2.1', rxjave : 'io.reactivex.rxjava2:rxjava:2.2.8', rxandroid : 'io.reactivex.rxjava2:rxandroid:2.1.1', - permission : 'com.yanzhenjie:permission:2.0.3', + permission : 'com.yanzhenjie:permission:2.0.3', + autoSize :'me.jessyan:autosize:1.2.1', //seekbar seekbar : 'com.github.Jay-Goo:RangeSeekBar:v3.0.0' diff --git a/health/build.gradle b/health/build.gradle index 0aa80a2..186386e 100644 --- a/health/build.gradle +++ b/health/build.gradle @@ -2,6 +2,7 @@ plugins { id 'com.android.library' id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' + id 'kotlin-parcelize' } diff --git a/health/src/main/java/com/zj365/health/act/ComparePageDataAct.kt b/health/src/main/java/com/zj365/health/act/ComparePageDataAct.kt index 4392cc7..1f5d1c3 100644 --- a/health/src/main/java/com/zj365/health/act/ComparePageDataAct.kt +++ b/health/src/main/java/com/zj365/health/act/ComparePageDataAct.kt @@ -10,6 +10,8 @@ import com.xty.base.act.BaseVmAct import com.xty.base.vm.BaseVm import com.xty.base.vp2.VpAdapter import com.xty.common.arouter.ARouterUrl +import com.xty.common.util.DeviceFunctionUtils +import com.xty.network.model.DeviceFunctionBean import com.zj365.health.R import com.zj365.health.databinding.ActComparePageBinding import com.zj365.health.fragment.BreathCompareDataFrag @@ -21,12 +23,13 @@ import com.zj365.health.fragment.XlCompareDataFrag import com.zj365.health.fragment.XueTangCompareDataFrag import com.zj365.health.fragment.XueYaCompareDataFrag import com.zj365.health.fragment.bloodlipid.BloodFatCompareDataFrag +import com.zj365.health.vm.ComparePageDataVm /** * 数据对比 */ @Route(path = ARouterUrl.COMPARE_PAGE_DATA_ACT) -class ComparePageDataAct : BaseVmAct() { +class ComparePageDataAct : BaseVmAct() { /** * userid */ @@ -34,7 +37,7 @@ class ComparePageDataAct : BaseVmAct() { val title by lazy { arrayOf( "心率数据对比", "血氧数据对比", "呼吸率数据对比","体温数据对比","睡眠数据对比", "血压数据对比" ,"血糖数据对比","尿酸数据对比","血脂数据对比" ) } val compareArray: Array by lazy { resources.getStringArray(R.array.compare_array) } var listFragment = mutableListOf() - + var functionList = ArrayList() /** */ val binding by lazy{ ActComparePageBinding.inflate(layoutInflater)} @@ -45,18 +48,38 @@ class ComparePageDataAct : BaseVmAct() { if (intent.extras!!.containsKey("id")) { id = intent.extras!!.getString("id").toString() } + + if(intent.extras!!.containsKey("functionList")){ + functionList = intent.extras!!.getParcelableArrayList("functionList")!! + } } - private fun initVp2() { + private fun initVp2(functionList :MutableList) { listFragment.clear() - listFragment.add(setArgumentFrag(XlCompareDataFrag(), id)) - listFragment.add(setArgumentFrag(XYangCompareDataFrag(), id)) - listFragment.add(setArgumentFrag(BreathCompareDataFrag (),id)) - listFragment.add(setArgumentFrag(TempCompareDataFrag(),id)) - listFragment.add(setArgumentFrag(SleepCompareDataFrag (),id)) - listFragment.add(setArgumentFrag(XueYaCompareDataFrag (),id)) - listFragment.add(setArgumentFrag(XueTangCompareDataFrag(),id)) - listFragment.add(setArgumentFrag(UricAcidCompareDataFrag(),id)) - listFragment.add(setArgumentFrag(BloodFatCompareDataFrag(),id)) + functionList.forEach { + if (DeviceFunctionUtils.hasFunction(it,"hr")){ + listFragment.add(setArgumentFrag(XlCompareDataFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"so")){ + listFragment.add(setArgumentFrag(XYangCompareDataFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"resp")){ + listFragment.add(setArgumentFrag(BreathCompareDataFrag (),id)) + }else if(DeviceFunctionUtils.hasFunction(it,"temp")){ + listFragment.add(setArgumentFrag(TempCompareDataFrag(),id)) + }else if(DeviceFunctionUtils.hasFunction(it,"sleep")){ + listFragment.add(setArgumentFrag(SleepCompareDataFrag (),id)) + + }else if(DeviceFunctionUtils.hasFunction(it,"dbp")){ + listFragment.add(setArgumentFrag(XueYaCompareDataFrag (),id)) + + }else if(DeviceFunctionUtils.hasFunction(it,"sugar")){ + listFragment.add(setArgumentFrag(XueTangCompareDataFrag(),id)) + + }else if(DeviceFunctionUtils.hasFunction(it,"uric")){ + listFragment.add(setArgumentFrag(UricAcidCompareDataFrag(),id)) + + }/*else if(it.type == "bloodFat" && it.status == 1){ + listFragment.add(setArgumentFrag(BloodFatCompareDataFrag(),id)) + }*/ + } binding.mVp2.adapter = VpAdapter(listFragment, this) binding.mVp2.isUserInputEnabled = false @@ -81,16 +104,25 @@ class ComparePageDataAct : BaseVmAct() { finish() } } - initTab() - initVp2() - + if(functionList.size == 0){ + mViewModel.getDeviceFunctionList(id) + }else{ + initTab(functionList) + initVp2(functionList) + } } - private fun initTab() { - compareArray.forEach { - val tab = binding.xTablayout.newTab() - tab.text = it - binding.xTablayout.addTab(tab) + private fun initTab(functionList :MutableList) { + functionList.forEach { + if(it.type == "ecg" || it.type == "step" || it.type == "bloodFat"){ + return@forEach + } + if (it.status == 1){ + val tab = binding.xTablayout.newTab() + tab.text = it.name + binding.xTablayout.addTab(tab) + } + } binding.xTablayout.setOnTabSelectedListener(object : XTabLayout.OnTabSelectedListener{ override fun onTabSelected(tab: XTabLayout.Tab?) { @@ -107,7 +139,14 @@ class ComparePageDataAct : BaseVmAct() { } override fun liveObserver() { + mViewModel.functionLiveData.observe(this){ + it.data.let { + functionList.addAll(it) + initTab(functionList) + initVp2(functionList) + } } + } fun changeTitle(position: Int) { binding.title.mTvTitle.text = title[position] diff --git a/health/src/main/java/com/zj365/health/act/HealthMainAct.kt b/health/src/main/java/com/zj365/health/act/HealthMainAct.kt index 927aaf9..fe9b91a 100644 --- a/health/src/main/java/com/zj365/health/act/HealthMainAct.kt +++ b/health/src/main/java/com/zj365/health/act/HealthMainAct.kt @@ -10,31 +10,45 @@ import androidx.viewpager2.widget.ViewPager2 import com.alibaba.android.arouter.facade.annotation.Route import com.androidkun.xtablayout.XTabLayout import com.gyf.immersionbar.ImmersionBar +import com.xty.base.act.BaseVmAct import com.xty.base.act.IBaseAct +import com.xty.base.vm.BaseVm import com.xty.base.vp2.VpAdapter import com.xty.common.* import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager +import com.xty.common.util.DeviceFunctionUtils import com.xty.common.weight.tablayout.listener.CustomTabEntity +import com.xty.network.model.DeviceFunctionBean import com.zj365.health.R import com.zj365.health.databinding.ActHealthMainBinding +import com.zj365.health.fragment.BreathCompareDataFrag import com.zj365.health.fragment.bloodlipid.BloodFatFrag import com.zj365.health.fragment.BreathFrag +import com.zj365.health.fragment.SleepCompareDataFrag import com.zj365.health.weight.DialogTip import com.zj365.health.fragment.SleepFrag import com.zj365.health.fragment.TemFrag +import com.zj365.health.fragment.TempCompareDataFrag +import com.zj365.health.fragment.UricAcidCompareDataFrag import com.zj365.health.fragment.UricAcidFrag +import com.zj365.health.fragment.XYangCompareDataFrag import com.zj365.health.fragment.XdFrag import com.zj365.health.fragment.XinlvFrag +import com.zj365.health.fragment.XlCompareDataFrag +import com.zj365.health.fragment.XueTangCompareDataFrag import com.zj365.health.fragment.XueTangFrag +import com.zj365.health.fragment.XueYaCompareDataFrag import com.zj365.health.fragment.XueyaFrag import com.zj365.health.fragment.XueyangFrag +import com.zj365.health.fragment.bloodlipid.BloodFatCompareDataFrag +import com.zj365.health.vm.HealthMainVm /** * 健康监测 详情 */ @Route(path = ARouterUrl.HEALTHMAIN) -class HealthMainAct : IBaseAct() { +class HealthMainAct : BaseVmAct() { var isDemonstrate: Boolean = false var page = 0 val binding by lazy { ActHealthMainBinding.inflate(layoutInflater) } @@ -42,6 +56,8 @@ class HealthMainAct : IBaseAct() { var tabName = arrayOf() var id = "" var sex = "1" + var functionType:String = "" + var functionList = ArrayList() val dialogBind by lazy { DialogTip(this, "需绑定中健三六五健康手表,才能查看", "去绑定") { RouteManager.goAct(ARouterUrl.DEVICE_CHOICE) @@ -51,8 +67,12 @@ class HealthMainAct : IBaseAct() { override fun setLayout(): View = binding.root override fun initData() { super.initData() - page = intent.extras!!.getInt("page") + // page = intent.extras!!.getInt("page") + functionType = intent.extras!!.getString("functionType").toString() isDemonstrate = intent.extras!!.getBoolean("isDemonstrate", false) + if(intent.extras!!.containsKey("functionList")){ + functionList = intent.extras!!.getParcelableArrayList("functionList")!! + } if (intent.extras!!.containsKey("id")) { id = intent.extras!!.getString("id").toString() } @@ -65,42 +85,21 @@ class HealthMainAct : IBaseAct() { super.initView() val deviceType = MMkvHelper.getString(Const.DEVICE_TYPE) + if(functionList.size == 0){ + mViewModel.getDeviceFunctionList(id) + }else{ + initTab(functionList) + initVp2(functionList) + } tabName = arrayOf( R.string.info_1, R.string.info_3, R.string.info_7, R.string.info_4, R.string.info_6, R.string.info_2, R.string.info_8, R.string.info_11/*, R.string.info_5, R.string.info_10*/ - ) /*when (deviceType) { - "", "U32" -> { - arrayOf( - R.string.info_1, R.string.info_3, R.string.info_7, - R.string.info_4, R.string.info_6, R.string.info_2, - R.string.info_8, R.string.info_11/*, R.string.info_5, - R.string.info_10*/ - ) - } - - "A3" -> { - arrayOf( - R.string.info_1, R.string.info_3, R.string.info_7, - R.string.info_4, R.string.info_6, R.string.info_2, - R.string.info_8, R.string.info_11*//*, R.string.info_10*//* - ) - } - - else -> { - arrayOf( - R.string.info_1, R.string.info_3, R.string.info_7, - R.string.info_6, R.string.info_2, R.string.info_8, - R.string.info_11*//*, R.string.info_10*//* - ) - } - }*/ + ) statusBar(binding.title.mView) initTitle() - initTab() - initVp2() if (isDemonstrate) { binding.mSubmit.visibility = View.VISIBLE binding.title.mTvTitle.text = resources.getString(R.string.health_sub_demonstrate) @@ -108,6 +107,16 @@ class HealthMainAct : IBaseAct() { } } + override fun liveObserver() { + mViewModel.functionLiveData.observe(this){ + it.data.let { + functionList.addAll(it) + initTab(functionList) + initVp2(functionList) + } + } + } + private fun setArgumentFrag(frag: Fragment, id: String = "", sex: String = "1"): Fragment { val bundle = Bundle() bundle.putString("id", id) @@ -118,9 +127,6 @@ class HealthMainAct : IBaseAct() { private fun initTitle() { binding.title.mTvTitle.text = resources.getString(R.string.health_sub) - var parentView = binding.title.mTvTitle.parent as View -// var bg = ContextCompat.getDrawable(this, R.drawable.shape_bg_health_round) -// parentView.background = bg binding.title.mIvBack.apply { this.setOnClickListener { finish() @@ -131,11 +137,21 @@ class HealthMainAct : IBaseAct() { //设置tab private val mTabEntities: java.util.ArrayList = java.util.ArrayList() - private fun initTab() { - tabName.forEach { - var tab = binding.xTablayout.newTab() - tab.text = resources.getString(it) - binding.xTablayout.addTab(tab) + private fun initTab(functionList :MutableList) { + functionList.forEach { + if (it.type == "step" || it.type == "bloodFat"){ + return@forEach + } + if (it.status == 1){ + var tab = binding.xTablayout.newTab() + tab.text = it.name + binding.xTablayout.addTab(tab) + + if(it.type == functionType){ + page = tab.position + } + } + } binding.xTablayout.setOnTabSelectedListener(object : XTabLayout.OnTabSelectedListener { override fun onTabSelected(tab: XTabLayout.Tab?) { @@ -163,46 +179,37 @@ class HealthMainAct : IBaseAct() { } //设置vp2 - private fun initVp2() { + private fun initVp2(functionList :MutableList) { listFragment.clear() - /*when (MMkvHelper.getString(Const.DEVICE_TYPE)) { - "", "U32" -> {*/ + functionList.forEach { + if (DeviceFunctionUtils.hasFunction(it,"hr")){ listFragment.add(setArgumentFrag(XinlvFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"so")){ listFragment.add(setArgumentFrag(XueyangFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"resp")){ listFragment.add(setArgumentFrag(BreathFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"temp")){ listFragment.add(setArgumentFrag(TemFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"sleep")){ listFragment.add(setArgumentFrag(SleepFrag(), id)) - listFragment.add(setArgumentFrag(XueyaFrag(), id)) - listFragment.add(setArgumentFrag(XueTangFrag(), id)) - listFragment.add(setArgumentFrag(UricAcidFrag(), id, sex)) - // listFragment.add(setArgumentFrag(XdFrag(), id)) - // listFragment.add(setArgumentFrag(BloodFatFrag(), id)) - /* } - "A3" -> { - listFragment.add(setArgumentFrag(XinlvFrag(), id)) - listFragment.add(setArgumentFrag(XueyangFrag(), id)) - listFragment.add(setArgumentFrag(BreathFrag(), id)) - listFragment.add(setArgumentFrag(TemFrag(), id)) - listFragment.add(setArgumentFrag(SleepFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"dbp")){ listFragment.add(setArgumentFrag(XueyaFrag(), id)) - listFragment.add(setArgumentFrag(XueTangFrag(), id)) - listFragment.add(setArgumentFrag(UricAcidFrag(), id, sex)) - // listFragment.add(setArgumentFrag(BloodFatFrag(), id)) - } - else -> { - listFragment.add(setArgumentFrag(XinlvFrag(), id)) - listFragment.add(setArgumentFrag(XueyangFrag(), id)) - listFragment.add(setArgumentFrag(BreathFrag(), id)) - listFragment.add(setArgumentFrag(SleepFrag(), id)) - listFragment.add(setArgumentFrag(XueyaFrag(), id)) + }else if(DeviceFunctionUtils.hasFunction(it,"sugar")){ listFragment.add(setArgumentFrag(XueTangFrag(), id)) + + }else if(DeviceFunctionUtils.hasFunction(it,"uric")){ listFragment.add(setArgumentFrag(UricAcidFrag(), id, sex)) - // listFragment.add(setArgumentFrag(BloodFatFrag(), id)) - } - }*/ + + }/*else if(it.type == "bloodFat" && it.status == 1){ + listFragment.add(setArgumentFrag(BloodFatCompareDataFrag(),id)) + }*/ + } + + + binding.mVp2.adapter = VpAdapter(listFragment, this) binding.mVp2.isUserInputEnabled = false @@ -233,25 +240,11 @@ class HealthMainAct : IBaseAct() { txtColInt = ContextCompat.getColor(this, R.color.col_515) ImmersionBar.with(this).statusBarDarkFont(true).init() binding.title.mIvReight.visibility = View.GONE -// if (position == 5 && tabName.size == 8) { -// bg = ContextCompat.getDrawable(this, R.drawable.shape_white)!! -// backId = R.mipmap.icon_back_black -// txtColInt = ContextCompat.getColor(this, R.color.col_515) -// ImmersionBar.with(this).statusBarDarkFont(true).init() -// binding.title.mIvReight.visibility = View.GONE -// } else { -// bg = ContextCompat.getDrawable(this, R.drawable.shape_bg_health_round)!! -// backId = R.mipmap.icon_back_white -// txtColInt = ContextCompat.getColor(this, R.color.white) -// ImmersionBar.with(this).statusBarDarkFont(false).init() -// //binding.title.mIvReight.visibility=View.VISIBLE -// } var parentView = binding.title.mTvTitle.parent as View parentView.background = bg binding.title.mTvTitle.setTextColor(txtColInt) binding.title.mIvBack.apply { -// this.setImageResource(backId) this.setOnClickListener { finish() } diff --git a/health/src/main/java/com/zj365/health/act/HealthSkyHourReportAct.kt b/health/src/main/java/com/zj365/health/act/HealthSkyHourReportAct.kt index 883486f..becb9f8 100644 --- a/health/src/main/java/com/zj365/health/act/HealthSkyHourReportAct.kt +++ b/health/src/main/java/com/zj365/health/act/HealthSkyHourReportAct.kt @@ -37,7 +37,9 @@ import com.xty.common.event.IntegralEvent import com.xty.common.setImageUser import com.xty.common.util.CommonToastUtils import com.xty.common.util.CommonUtils +import com.xty.common.util.DeviceFunctionUtils import com.xty.common.weight.CenterImageSpan +import com.xty.network.model.DeviceFunctionBean import com.zj365.health.R import com.zj365.health.act.exception.BaseExceptionDataAct import com.zj365.health.adapter.DayReportInfoAdapter @@ -105,6 +107,9 @@ class HealthSkyHourReportAct : BaseVmAct() { private val infoAdapter by lazy { DayReportInfoAdapter() } private val mAdapterCount by lazy { ReportAnalysisAdapter() } + var functionList = ArrayList() + + private val dialogBind by lazy { DialogTip(this, "需绑定中健三六五健康手表,才能查看", "去绑定") { RouteManager.goAct(ARouterUrl.DEVICE_CHOICE) @@ -178,6 +183,10 @@ class HealthSkyHourReportAct : BaseVmAct() { super.initData() isX1X2 = MMkvHelper.getBoolean(Const.X1_X2_Device, false) isEstimate = intent.getBooleanExtra("isEstimate", false) + + if(intent.extras!!.containsKey("functionList")){ + functionList = intent.extras!!.getParcelableArrayList("functionList")!! + } if (isEstimate) { binding.mTvTime.setCompoundDrawablesWithIntrinsicBounds( null, // left @@ -241,6 +250,10 @@ class HealthSkyHourReportAct : BaseVmAct() { } } + if(functionList.size == 0){ + mViewModel.getDeviceFunctionList(userId) + } + //设置tab //"用户信息", "器官功能分析", "睡眠监测", "中医分析", "中医养生指导", "西医分析", "西医指导", // "饮食指导", "运动指导", "睡眠方案建议", "营养处方建议", "统计分析", "综合分析" @@ -833,7 +846,7 @@ class HealthSkyHourReportAct : BaseVmAct() { ) // x1和x2没有体温 - if (!isX1X2 || isDemonstrate) { + if (DeviceFunctionUtils.hasFunction(functionList,"temp")|| isDemonstrate) { listInfo.add( ReportBean.HrInfo( "体温", @@ -1027,7 +1040,7 @@ class HealthSkyHourReportAct : BaseVmAct() { } list.add(respiratoryMean) - if (!isX1X2 || isDemonstrate) { + if (DeviceFunctionUtils.hasFunction(functionList,"temp")|| isDemonstrate) { val tempMean = com.xty.common.model.ReportBean().apply { title = "体温" count = it.data.tempMean.count @@ -1285,6 +1298,10 @@ class HealthSkyHourReportAct : BaseVmAct() { CommonToastUtils.showLoserToast("分享记录失败") } } + + mViewModel.functionLiveData.observe(this){ + functionList.addAll(it.data) + } } private fun goExceptionActivity(exceptionType: Int) { @@ -1679,7 +1696,7 @@ class HealthSkyHourReportAct : BaseVmAct() { binding.analysisTv1.text = "平均心率:" + it.data.signData.hr.avg + "次/分" binding.analysisTv2.text = "平均血氧:" + it.data.signData.so.avg + "%" binding.analysisTv3.text = "平均呼吸率:" + it.data.signData.respiratory.avg + "次/分" - if (isX1X2) { + if (!DeviceFunctionUtils.hasFunction(functionList,"temp")) { binding.analysisTv8.visibility = View.GONE } else { binding.analysisTv8.text = diff --git a/health/src/main/java/com/zj365/health/act/familyhealth/FamilyHealthAct.kt b/health/src/main/java/com/zj365/health/act/familyhealth/FamilyHealthAct.kt index 6ff4538..e6c6e7f 100644 --- a/health/src/main/java/com/zj365/health/act/familyhealth/FamilyHealthAct.kt +++ b/health/src/main/java/com/zj365/health/act/familyhealth/FamilyHealthAct.kt @@ -94,7 +94,7 @@ class FamilyHealthAct : BaseListAct() { RouteManager.goAct(ARouterUrl.FAMILY_GUARDIAN_LIST_ACT) } R.id.tv_current_time ->{ - RouteManager.goAct(ARouterUrl.FAMILY_HEALTH_REAL_TIME_ACT) + // RouteManager.goAct(ARouterUrl.FAMILY_HEALTH_REAL_TIME_ACT) } R.id.tv_watch ->{ diff --git a/health/src/main/java/com/zj365/health/act/healthcode/HealthBodyInquiryAct.kt b/health/src/main/java/com/zj365/health/act/healthcode/HealthBodyInquiryAct.kt new file mode 100644 index 0000000..b094c4d --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/healthcode/HealthBodyInquiryAct.kt @@ -0,0 +1,16 @@ +package com.zj365.health.act.healthcode + +import android.view.View +import com.xty.base.act.BaseVmAct +import com.xty.base.vm.BaseVm +import com.zj365.health.databinding.ActHealthBodyInquiryBinding + +class HealthBodyInquiryAct : BaseVmAct() { + + val binding by lazy { ActHealthBodyInquiryBinding.inflate(layoutInflater) } + + override fun liveObserver() { + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/act/healthcode/HealthCodeMainAct.kt b/health/src/main/java/com/zj365/health/act/healthcode/HealthCodeMainAct.kt new file mode 100644 index 0000000..9e305a7 --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/healthcode/HealthCodeMainAct.kt @@ -0,0 +1,14 @@ +package com.zj365.health.act.healthcode + +import android.view.View +import com.xty.base.act.BaseVmAct +import com.xty.base.vm.BaseVm +import com.zj365.health.databinding.ActHealthCodeMainBinding + +class HealthCodeMainAct : BaseVmAct() { + val binding by lazy { ActHealthCodeMainBinding.inflate(layoutInflater) } + override fun liveObserver() { + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt new file mode 100644 index 0000000..13b92df --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordMainAct.kt @@ -0,0 +1,37 @@ +package com.zj365.health.act.healthrecord + +import android.view.View +import androidx.recyclerview.widget.LinearLayoutManager +import com.xty.base.act.BaseVmAct +import com.xty.base.vm.BaseVm +import com.zj365.health.adapter.familyhealth.HealthFamilyTargetAdapter +import com.zj365.health.databinding.ActHealthRecordMainBinding + +class HealthRecordMainAct : BaseVmAct() { + + val binding by lazy { ActHealthRecordMainBinding.inflate(layoutInflater) } + + val mAdapter by lazy { HealthFamilyTargetAdapter() } + + 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.adapter = mAdapter + binding.recycler.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt new file mode 100644 index 0000000..bfb6bff --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/healthrecord/HealthRecordsListAct.kt @@ -0,0 +1,31 @@ +package com.zj365.health.act.healthrecord + +import android.view.View +import com.xty.base.act.BaseListAct +import com.xty.base.vm.BaseVm +import com.zj365.health.databinding.ActHealthRecordBinding +import com.zj365.health.databinding.ActHealthRecordsListBinding + +class HealthRecordsListAct : BaseListAct() { + + val binding by lazy { ActHealthRecordsListBinding.inflate(layoutInflater) } + override fun initAdapter() { + } + + 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/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt b/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt new file mode 100644 index 0000000..5330889 --- /dev/null +++ b/health/src/main/java/com/zj365/health/act/healthrecord/UploadHealthRecordAct.kt @@ -0,0 +1,26 @@ +package com.zj365.health.act.healthrecord + +import android.view.View +import com.xty.base.act.BaseListAct +import com.xty.base.act.BaseVmAct +import com.xty.base.vm.BaseVm +import com.zj365.health.databinding.ActUploadHealthRecordBinding + +class UploadHealthRecordAct : BaseVmAct() { + + val binding by lazy { ActUploadHealthRecordBinding.inflate(layoutInflater) } + + override fun liveObserver() { + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "上传报告" + binding.title.mIvBack.setOnClickListener { + finish() + } + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/vm/ComparePageDataVm.kt b/health/src/main/java/com/zj365/health/vm/ComparePageDataVm.kt new file mode 100644 index 0000000..56187e4 --- /dev/null +++ b/health/src/main/java/com/zj365/health/vm/ComparePageDataVm.kt @@ -0,0 +1,20 @@ +package com.zj365.health.vm + +import androidx.lifecycle.MutableLiveData +import com.xty.base.vm.BaseVm +import com.xty.network.model.DeviceFunctionBean +import com.xty.network.model.RespBody +import org.json.JSONObject + +class ComparePageDataVm :BaseVm() { + + val functionLiveData by lazy { MutableLiveData>>() } + fun getDeviceFunctionList(id:String){ + startHttp { + val json = JSONObject() + json.put("id", id) + val body = apiInterface().getDeviceFunctionList(retrofits.getRequestBody(json.toString())) + body.getCodeStatus(functionLiveData, nowData) + } + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/vm/HealthMainVm.kt b/health/src/main/java/com/zj365/health/vm/HealthMainVm.kt new file mode 100644 index 0000000..c6c5507 --- /dev/null +++ b/health/src/main/java/com/zj365/health/vm/HealthMainVm.kt @@ -0,0 +1,20 @@ +package com.zj365.health.vm + +import androidx.lifecycle.MutableLiveData +import com.xty.base.vm.BaseVm +import com.xty.network.model.DeviceFunctionBean +import com.xty.network.model.RespBody +import org.json.JSONObject + +class HealthMainVm : BaseVm() { + + val functionLiveData by lazy { MutableLiveData>>() } + fun getDeviceFunctionList(id:String){ + startHttp { + val json = JSONObject() + json.put("id", id) + val body = apiInterface().getDeviceFunctionList(retrofits.getRequestBody(json.toString())) + body.getCodeStatus(functionLiveData, nowData) + } + } +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/vm/ReportVm.kt b/health/src/main/java/com/zj365/health/vm/ReportVm.kt index 5d7aa53..89f943d 100644 --- a/health/src/main/java/com/zj365/health/vm/ReportVm.kt +++ b/health/src/main/java/com/zj365/health/vm/ReportVm.kt @@ -233,4 +233,14 @@ class ReportVm : BaseVm() { null } } + + val functionLiveData by lazy { MutableLiveData>>() } + fun getDeviceFunctionList(id:String){ + startHttp { + val json = JSONObject() + json.put("id", id) + val body = apiInterface().getDeviceFunctionList(retrofits.getRequestBody(json.toString())) + body.getCodeStatus(functionLiveData, nowData) + } + } } \ No newline at end of file diff --git a/health/src/main/res/layout/act_health_body_inquiry.xml b/health/src/main/res/layout/act_health_body_inquiry.xml new file mode 100644 index 0000000..654cdf8 --- /dev/null +++ b/health/src/main/res/layout/act_health_body_inquiry.xml @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_health_code_main.xml b/health/src/main/res/layout/act_health_code_main.xml new file mode 100644 index 0000000..d2ce8ee --- /dev/null +++ b/health/src/main/res/layout/act_health_code_main.xml @@ -0,0 +1,567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_health_record_main.xml b/health/src/main/res/layout/act_health_record_main.xml new file mode 100644 index 0000000..4b616da --- /dev/null +++ b/health/src/main/res/layout/act_health_record_main.xml @@ -0,0 +1,578 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_health_records_list.xml b/health/src/main/res/layout/act_health_records_list.xml new file mode 100644 index 0000000..9ced7ec --- /dev/null +++ b/health/src/main/res/layout/act_health_records_list.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_upload_health_record.xml b/health/src/main/res/layout/act_upload_health_record.xml new file mode 100644 index 0000000..af798f5 --- /dev/null +++ b/health/src/main/res/layout/act_upload_health_record.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/layout_health_record_test.xml b/health/src/main/res/layout/layout_health_record_test.xml new file mode 100644 index 0000000..dc2043e --- /dev/null +++ b/health/src/main/res/layout/layout_health_record_test.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/mipmap-xxhdpi/bg_health_record_test.png b/health/src/main/res/mipmap-xxhdpi/bg_health_record_test.png new file mode 100644 index 0000000000000000000000000000000000000000..ae96604430e9e8e03ddd9222abedcb3b973cba56 GIT binary patch literal 73631 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

P@sU$Q$=U!zDRk$XDvrwW7$ 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 literal 0 HcmV?d00001 diff --git a/health/src/main/res/mipmap-xxhdpi/icon_health_week_record.png b/health/src/main/res/mipmap-xxhdpi/icon_health_week_record.png new file mode 100644 index 0000000000000000000000000000000000000000..e08462c3cd759fedd05126bb8b7967c2280779d3 GIT binary patch literal 4911 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 literal 0 HcmV?d00001 diff --git a/health/src/main/res/mipmap-xxhdpi/icon_inquiry_record.png b/health/src/main/res/mipmap-xxhdpi/icon_inquiry_record.png new file mode 100644 index 0000000000000000000000000000000000000000..e13e04b85fc4af8cc644fa4648eff251aff9c797 GIT binary patch literal 5589 zcmV;`6)Nh9P)Px~k4Z#9RCr$1U3-jO#d-gIbMD>s`XM_&0b@*)kdlNbQVN!65;bk3CP=74aY@{S zG_+25yQK|PD*8~^s%iuc!5FfBWC3Hqff_a_i4mYg3atdFDvih=6(pF(0YWI|ZLfFP zJ!igZ=DcR+%$&#GYqGuq`R=*r&YAgs-}n1{^Ua)d2>`~&S)BD=oPvJxdr0U^5;%?} z2m&!NGniPN*XBh4+>>SHK-!YGQ3j-OA^ko-V0@u?EA8|3S7p|=bAh}q{jaA_`62h3 z?C)vWOS8jycg?;shyVg1l8l7F2Z-puWj}iOg3Is%fmqp@es~YoCY+qjgijLaw}`NU z8Oo*!1?**kqRv!fQx|tSrN&?$(&rd2&XHr|Liu}Ey)TdJujYo&+wpxbYhPb0|2zi= zS(~a~SsVHv!!EB~E5KLp_XS>Hj26K)V&YBy+`L_VvG`3^N0&CT_+l~

_gb#!*pz8`wkHaF z5fB1P6C(3}N#G%RV2|8O#Akr9x-|mk09?;@LGXEa=p2vXtU-7@+2nQ~utEB%fKUa% zrO8Hb57CoDW2r}E{}Js2^J5B#`w4sofD>B*QOErrx^V~N^Xkeu1z(gAWbwWe4I%mp z>VpMn4Gj(G@fF6%3~U@%`P4pu|C1iv6W<5WIwGveG9^DA9xbpg)ZqC+uJ_S{aV_&2 zK8~-|2RFi;J{FSf$HL-x(-ACs@_2iYo~ppAkv;`UkI;jAG=#L8}} z>1hRwP!zcRvIL;?#ZKbe#$NVymG9RB;pMkb&ff+Q$ADHw6fk@(?f3w8#k@js)kx^< z@m(UJ8JKz?x~8R}Cxq>8pfY?`|r{HDp9SFSa=zgXApk-e z5j-9cP4iGGzdBodYEe&|RFTM2_?`kq4$10scXwH5LI`<}34H}U~#NBd= ziPw>u&?$|m0iaeFT#pUVPo*|w>XBKtHlwXJ8bYpCYMq(Bn3QQ9Z=3yujoOBaEWlC| zWf5`z-ExW)5K1H1pr$4fHplOK@5$*+AajFwwZzS=Y>!L>LND|LKu8yIv{N;KFfcH_ z#KxuUyb~dfP-3ltP+3zh)*b*{er%cz*VX-l)zW-Gp2*S`XS~6n=OyHR!Sr$hR_kSg z^b((bDbq_x^qKesFrNa@Y7kZyHMADM93d_6*R67m&_LWJr%)FWO`cyjFKAP$aHz?o zMgvgw_UDkeA3{t~a`@@_Ss7Drxmp7jstG}m(NfIEGc!v?H1Yue=Q8jK0PjL}j^&tb zvm&293>F0@J?VLbPG2<;NU2GxrP_vw@KQ;eYN?Ov0s>ulrEP>~Sjt-=rni0m@>Q?d zq+|cJ>zi*L8}Zns4B80Bsf}8&fE3ii(a(^fC@_y#fiS7bGPXxF&F~$hOzmyQ)t2n~ z68sA=?||%0{OJ|+W*rbau6cFk(xodd1@Xn;=-v6qTdWV1%?_59wko0LVhx!^1j{sQ z(h=cOMV`usGM5Du>?|IxE!5?%rqy>pm?!)F-o%DW=#Bb_;A0~h|22dD9Kgv(1c3H} z>|eW1zn>QURQkGicS=nltkrv&S{S~qAuVC{XiczQR4LS{T|p@jbMuF`Zv65)Uate< zj?L4nDH{D6GoR0(k;=Jky}dyT3@l9E&waUa%(ZQ5Y6A#nRx5OA`r0JUM<^||GcA{N zy8*H5dR~JlxhWFSdMOhNhsN^0B`6+eu9-(z!1$5@D_h9%q9>(_i0|!|Q^eT{T~_pK z;(ecnc;^KkeW|P?=N+yoS8K*p5s~oZT+$p7yRJXHhQ!Dg5k=?aK)h`LRKlco7f8B7 zr-8WBo=3DQDJ(=6f@=kNrPt?b`5@G8McxnD0f^p`&4TDN3Wy`35ev_hO6pRZY1DcI zNmlfsOeQ4b5RfS~Nn<^tGCOV)1@64S13)QQZ2(9uMMRLyF9N(hj(b}+ewk{; z`pz5q^tr`Rz!rFSt}rri?x!(7KZGcmgWO3#;LFJCYXN(&@UNy4MdWdB4(*d7DcypK}nUA zqbxNldr=x2F)){^V}mIFBv6Q~yz)lz0iB7TM?J=hb` z-h{AEyag%8(5HDsNdktE{YOa}GD(a#M%Un_4I9YLNgW`5G|s)}SK>FK9#+Qj9L>{+ zb+dqoLFgkHnaA8TVYEkhzhHSbll((wdN+WmRMfQb0vN}$L&qBc$P)-nO(hUnL=+kk znk$&x>C#mQ3{P6BNI`;s28qd$(caDWOj(sv-5X=d5^MFdP;AtF$G(QDO~rF#UnGey z5z%Spj>k}BEEpUcNCybX>)4&pwOz(sP+F=>7W)`9A!o#76V=qw&@eu`{p&9-n-|Ai z1PFDH$a~Cuw`(NSQdCtZQXtekLQ#{-nkr&#>Xr|bfT))gW`<8`uJmXM1hL%O7q3rl z*mV4%VHk9wZA@JK((IgvIRSkq*D*evRR3jv?7Ww9ZCff0= zpmj@2Qy_%oZM|OaTN^gfuN8|l)P8Wfnz5Oib|d(dqe%h{WYOB5E|EWm;O1t3Y(5`+X&R<@ZQboUf z&HA3nbYVzkOpgZDZe%I*e=xZ~x#=cv}y8RJQA`b~(wtV)v z=P*4!p5O88hk=>JJzKGKhB2zn7@MRHcM5Hz=x%bQKeoOQr&=)a1 zesD?jz@~;QYv*QOCFA6iB=|#W2NX-p>#ZKyE5C*iLb+tZERO}~EGB%AB$knKUB&?PeYDj4fQNEn#6&d;o%b2s(5+HS)*4xpuO-MU5QV|S%y`;BFn z0uOqU)#iacJF@gOTaOsN7L@(04l3P}mmYT>c3=!hRbQEt7a064pt%fw>o*RsWsGcz zC|a*7uf?-KJVdQH()T*T0OXfUsmTID?Q3$EN^6!cgM#K8tj86C0_X84q6jRLXBoT$ z)Vx$WdF|noMKp4gpy*SQlcvR)YOplt|MqtR=X-BZF(4?m)2IpE-P`T;2=5}kZ<;^g z)W7u_auzL|?c!(y#J1}XuNjpin@L2Uk%_Z;z&6CdAhZzVYQP!Olw!?V0iiX*+6`Vx ziP?%zxN1{9FBJqd%;!}_bd}|pe{oE*?tL6epl&T6LLzbhyd&AtCvFCL`RoFwOzz721x25YWrF8 zX`6Y&&?)`3~itgSD# z5b43a-5O76FbjPBAh!JsIk{q4^WN8;n_pWM&o94}KoC;ljDyP>}N(U5UxBOO_ zrWCjLY9N@_fl?rXw9|n{TW3TezV&$-%l`#M+m~*ek=-JF#0l}=EPLpXw+bHnFTWGMYfeG-bo`W-CTGF!PE<*t1$2yHgZc z&NR)09}DJxXNcEH@3b&#Q@VhpDoRpqlQ}^EA7!Es5@VU~@kgPV^V<*w=AhK`n$i`z zI~6s_lA3BYq60m72jr!kK;%}UL(e4+gYgnE&ofi6kV?b7h&X0YkAV}wp4w5+o$J%m zrYKk-O&LJk6i=lO&f;>*@IGMJ_5&B$u|C3OACpN=RR)9T)~fY%fSHCa!d z`cxBuP}*wSwhDw2>-;~3RyDwrvGqPzoj``{GGUZ2-c07ZdSbfWAw2Y@RzK27O9^E@9vu`j?^f6BqOi|CL|d{ z+;TE4>(7A4=&g`>8+A`%HsYr48wrBshp zpArT|#C!~hmUrEY+GZDp&t7_EL-HXedWF=Fz$pi;c$LMtq19IVB+vS|+ApRb0!gfv z5EFn7g5^FY@k3(qQ2zz|yzqm`8~B6~nS3N+Ivql;h!Ti|q>NbT$4NH6jFXzqS8JKN zM{1W0pl&}`zt46WGkv7U-Uf++0Pu$AD6f1rVmu}VKcgIi0kz`i`E|j@kryWv<8}<7 zAEls>Plp`?;tdk=CkGGp9=qz=bZd|mkhg!GmjPHdFVS1N6gYgieJ2)jW*mb@`l+KO zGCqw#p9QcUpcBnIJ41RkX*9&h*(5D3Kp}ybB zRN09Kr zOOxKi8^>vOU<(eZfkg#`8k4@m^B~SmApeG$KSYXGhmn>t=9u_VFm0J#7Cm(3ulWW_ z7r#XZgzDgq>-ad1<>!cTMI^*~V&@(QLv-D@>G&$*p@;e71bl;tqP>^@9o0U-cSug& zshLFygc`vuS5KdmEE%~XVcJOQnMYar<>|osPGnO96ZVgjKbX5Sq0E2bgJVPt5MP zN)kR!Ory0=kIC{QCZ2}G14Pj`UW)Pf_&CKww%t&hTl7F^@xF#v$^`4d$)ADnVIX~? zKtMLs;TggB0Rub7lIX$3l%|HzJ1T(CU~J~qJS*3;#3f)>zYmcPy2)Ja4^RCr$HU3;)q)p`HEz0bK9MFS>PYzju(8Z%>R6}T6SSOX#x6DN(d)uuG# zt3JR->%_KcXF6VITKh+v4uV>P0#0(TnpmyYR|IV{Qv+O3!b20L)+W_zfh$_0JnlVb z@6}oF?^|o_ea;1h#`3*|BM`k|pd&pzt7WIiazrB>O8=-{KoLiq?=+l{N zlC#M@)p_)0eUSQB{Zm3g2U;_B0Rl4sCJ}0*K#i9(80U+69QB1dXq-|1-Bp0W~+`?*xR}-QHkutp1anQ>gvz z5kmg~^1l{W{kuJn-CrN!_E*1~^O)k4fE|S zXvP!y2&Bi}I^Bm7%M-+dB!nnX;H9%4`ssZG0|QRz7|2UT)_lF$)ARR5s~rI9XhwvG zo2ao|uXzb`x8T^pdb8GSGnxRU7jkX>PD$#eK<=hUW%gI+F@M|76|>3b1ZOXM1~)e* zuY`IZt|HEY01+_HKorGIPoH|}H!b`QxtDRHxg5eE=J4kNw zh8P}3CLwk5K*44ESuzM1>4E*HJaO8Rw-JQEYe&}p86w;Ypdu7wo^&Ru*7_(xpD$n@ zF>O0fejhR&)Y}_F^^rgrMR+T*rmoGNXuFjKr(42F2h(1EgE1=u9iV=Q5sjeAyp&f} zIj~Xye&dM7s{nBnQAj3S&z_nfX}FVSAh!W8S=gs|wshFpHsJ`yn7 z9FR6r2%`v31}!6Dq(Ru~G9 z0$@T2Fcp3(_|zGN`WwzZ)lW;Zx=_nP62`agSPP^H&8WPj&P#}E)QyD^EGTnZBBB|H zQ_&R+3@+Kd=F;Ayk6brhp*V8L-LeG`O=om?pV}O~d6H}$;$~CzvHKxvz1DFiW z60+bXiA)Sl4s2LS)Y#E78T*oSop>Uf>yydg0RZD~LhrGs38K}y6PN5-b6?)u_-cE! z#WgF49FnoGtYHuaaF9HJkt3{3r!8B(lhc+#)9+v#odo8QxIBazTDAW2WW%{towsvI zbrB9#3GaxrMgz)L>j7M{>*>L)r@5#Y8zY$&^~gM&@>VDcA)sZX!jw{YW*F(L4AO~f z&{>!-@;IwVg@)$TOcrRth{*#f-356Z1=qtN50+)LRCFajR%B`lfIQ7!a&h7avt|xO zyEUXh#-7HaVytEEmt4Av&GMQhjI{F6&mPfp^yqu%t6D_+D5k1cII)k`x^x`|d{vjL?9`5MLK#-ehx<-(aT zE~X_$B@eRlB*d;&pS~r4sRXZWWDXJow&|i-&kqZg(m;`yJ1UXksPJ!zT zfkX$0s=PNMT5q0k?@5;(_%MK2cMqTcw}A=GPfU9ivg}w1a-jCSnnzBAN|VQi@ammU zX-!s+k5{~Sv_L9llF3CmvTJH%+Ee(&(GNSw=fAwHx4m!TYa*8*d%aJwmxM8(2d}j+U3aqi2pm` z2Okl~hsR8NHOokm>c%Cg*@Lu2-V{J>ao zAg^3nkeY=3?nCq2zC)WTf4)OIk3O28t=XHEt-a#NtO3IU@#7XGDi~EMx^{eHLwNZc zj}2xGnO4V4)}W`Ip+IP3mNhV!iAlQc?i8JMjQze*8k@+X!Z3+@@-Sj0VJ6GNT=q^r zmB-4|mFlUyn!X?PkLlM5S%4oi&1JSfNwV44_2(+BmLc5buRo?jI2k8-+5__bvim%&HS0kTn62Z z1mJd$1bbqpa;B`H2(@t@lP>IzvXFL8&%!AGc5&(d@pT31x( zJyD;@`UrpkTrrNy$id*kIAWq^dR-MKOC~FjrCbCVpDhZpH4?P8>%iBS@{32vqL*O3 zT0q>$B$EwIGSLhmGAoRaDG7-74FPt-=Ts&gIruszv#yE-FDitSaq`y`$oZmTwC!%% zv(a_&g0*JW!PKyvwfxCVI1>wonbO{5L$ji&PU^VC9ob(k&pe2MId!xoqCJ7guoXpA z%%ohXWaJP3`;o!i)RVmw&=r)2zL<~SPoSyX+jwU)&Yl}JQ+5RsmO4w|0!*%%&fMZP zfW%*Lu6TDTgA*GkOOPd#T{04^po}`piEvC_GM0-D>K?;p~1W%+fVKEN_CPvxV66svUV}j+iFgI@Us`m zRWa||&;0GHZ$^Xxzn)oNIxP>ez9$!N2in#ZzzJ}@CFn89v|4pWE`H^q!K~N!_^gSt z#KINtP52~p`Jx;-F+XP7@{`}+_S5{WD+eIYZYI^Nu6u5WBldM{>aYewPP>+i)(~Fw z%7dy~Z5yd3^7Z$?GCl%wS&W>Nf8v7yInyB5v6pFNP}Hf5WN2C(N{}^~P_eo08~rw# z3^L=BAWKcQ8K1Ts#bZ~YvL#TvG*#Av;Au=hQImr-d(n*JpgGr;idKB{Laah>_!VwokZs?)$sAMLNC`Et9*c`BsHyyucqtC{>|Z z5JJS3;?JbJ)dpm($+|$KpNr&eClVtmt(Hs%A$C9hnXkR?J-)eH@A(Tvyfq5NlFMJK zW8Wap2_h7=49yUmxH*Do)RRfnNF2x){>KBv@dXbM5*N)*s+Vc)MG#8`Vyi4mm1kt` z`DNpjvdlf#ELSA5e9-Nisi!j4^Ur)I{h9l*&kU7w0q`8=%z|v8I(i6oJT!I%?j8Vm z7c)H3t`@4Sj~ILs(YR7FRq7mV4dHL^xNk7)4dlX$Q$@|!oL#rbbS@WF%~B5)+ELjl zbICJx*!7_qWo)wFR>R()92&AwJ$@%zr(?6R3k%o`nEi@;mOL5CIe@uf& zPHi3Emv?B8b!Ws{ZOFQW>U4O{f*rw&X{@jvfy+%K=om-thE?i9!>ugr5VoU$0y3EK z-1KV{gTtS*HZT8VSvH0-!>Of`j%s-b8SNb31v`dR(O#`92n3=sa1Q`ZH#D71lVNq= z&gHK9bXRR zSTTeb{A7q}vYQP;11jbbTL>D=U<3BL39JZ%s64Q1jMKSwVy_ym^tYwhBg*{zb^TXu zssq?=JL|cnCzQR-H6p`P?E62G$&gh8`SKA}AW|TIM?Ev5nQS#X&^P0J=*|Da+wml= z56v*irl4aS$`!K=DBB`y^sPJNs#*qz;LqByY%1jWdd#w^q9`<8(G2;h%7Of)pM1wW zGa~EB{xHhk_+$syF|O9%So1qA<_q0i=U$(TG?iJjL{av4l87pH&)Tqb3SeU!WO!US z#;}6NK(;IG8Do;|_*5zyI!S#N=c1StrX6aiztp{rXR`hH{YBmJdR^NdK>WfFr(g4Y zHxf~`Pv6FGPDAK@7yxG&@rhbx@>mJ7s=`SoVu88EI8NV5K;t~$k@tH*-L*CKi9^lCg1tDEz>K5F1K}jNdu!G+ZWqHoJ{%gC+0Jv}CvV|aUrIrX=u=leZ7+TyNH#-oJSF83@ zIZ84+9t63F}xtN5BdO}7+sAxkSM8~*FtLaV1L_?H&0E)TmXI{U(TM+B^>)W{W zw?Jf1LY`05iAIW4sqlbB4346DrM(4NzKX%fh4E8Sl)KqY(5JJ8NAb;-cH3^vk4QzfmQ;n zK$g8v9N5se_?ANjxqo=s*(Kt?fDn_314{Oy(*TDk7?~v>tEZo26;6XpGCp#~&g`v@ zeJk5X2Me&9d@-=0@7hBGdFH0&XF&&+$o3p0{=7{n*TZ--4`Xn2WlDCGx&zOW*@&Xck5e zjw!X;AF$ny{vbh~@%-|yU@2CkOf=*-{xH5(O?svBvNeO1%eHKfZ>)Vk&fR{`9a*Ef zM815l65uYL*0Lf%1TPwQp$f5qr%LYS^3NVQpyU^tWQ*)-L5kngaf6Q~z~;&2K0D z*UU}J`k{blK}8Yt+|}&u4&Vw)3x<*PG@(2&b~DcV(aI}vV$X_VpMS4u-2%dceFQeC zyWN7z>I7oBK>SvtE!gXX>0_~tOo{?d7a(qjJe$P3%3{=8#oD7ut1#LP*=_{5j*o4P&e!Ku?pa- zM|RN?R2U;RNY4q33N&|eSE5h zJbLA}IXB&7Cx(Iid*XZf&dqx+2gv?Wp!~XrYJk0yssXFRLyY5NZ=LogtcUGBK7cFC zznZ;1Mkxj2;_YjGeh*ZAv!vbktSxt4j3wL#0*(Vj3?G55)n0>KlJWKeiAtS=DKhV1 zDmpp0X!r2}oQxg_qoT9vC_;8!-+~fv*mm}f_lMF_`AXh7|9db8GK5cymo@Ru?azb;Cc1V~!C<_)pr ziwi=xqW)%?E!iW)S3hVQd|@?j>qdTve!#ykhiqXR!f(|{4w;PvvCIIo77Fol3Gg~# oxxS~T{l70fe&Agy58>ecA93mCk;&vu$^ZZW07*qoM6N<$f)x2vSO5S3 literal 0 HcmV?d00001 diff --git a/health/src/main/res/mipmap-xxhdpi/icon_video_inquriy.png b/health/src/main/res/mipmap-xxhdpi/icon_video_inquriy.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ba0630eefe45d3e056a85b73dabb3301d561ee GIT binary patch literal 4738 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 literal 0 HcmV?d00001 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 991f1ee..5c74318 100644 --- a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt @@ -23,6 +23,7 @@ import com.xty.common.bracelet.YCBBlueConnectHelper import com.xty.common.event.BlueToothConnectEvent import com.xty.common.event.MyInfoEvent import com.xty.common.event.ReChangeEvent +import com.xty.common.setImage import com.xty.common.util.PermissionUtils import com.xty.network.MyRetrofit import com.xty.network.model.SettingBean @@ -161,38 +162,26 @@ class DevInfoAct : BaseVmAct() { } mViewModel.deviceInfo.observe(this) { - - binding.mNickName.text = "设备名称:${it.data.watchName?:""}" - binding.mNum.text = "设备编码:${it.data.bluetooth?:""}" - binding.mCode.text = "物联网卡:${it.data.iccid?:""}" - binding.mActiveCode.text = "流量到期:${it.data.flowExpireTime?:""}" - binding.mActiveCode.visibility = View.VISIBLE - - setDevicePic(it.data.deviceType, binding.ivDevice) - } - } - - - private fun setDevicePic(type: String?, imageView: ImageView) { - if (type == null) { - return - } - when (type) { - "U32" -> { - imageView.setImageResource(R.mipmap.ic_watch_u32_big) + if(it.data.bindType == 1){ + binding.mNickName.text = "设备名称:${it.data.watchName?:""}" + binding.mNum.text = "设备编码:${it.data.bluetooth?:""}" + binding.mCode.text = "物联网卡:${it.data.iccid?:""}" + binding.mActiveCode.text = "流量到期:${it.data.flowExpireTime?:""}" + binding.mActiveCode.visibility = View.VISIBLE + binding.ivDevice.setImage(this,it.data.deviceImageUrl) + + }else{ + binding.mNickName.text = "设备名称:${it.data.watchName?:""}" + binding.mNum.text = "设备编码:${it.data.bluetooth?:""}" + binding.mCode.text = "设备激活码:${it.data.activationCode?:""}" + binding.mActiveCode.text = "设备激活码:${it.data.activationCode?:""}" + binding.mActiveCode.visibility = View.GONE + binding.tvRecharge.visibility = View.GONE + binding.tvDeviceSetting.visibility = View.GONE + binding.ivDevice.setImage(this,it.data.deviceImageUrl) } - "A3" -> { - imageView.setImageResource(R.mipmap.ic_watch_a3_big) - } - "X1" -> { - imageView.setImageResource(R.mipmap.ic_watch_x1_big) - } - - "X2" -> { - imageView.setImageResource(R.mipmap.ic_watch_x2_big) - } } } diff --git a/mine/src/main/java/com/zj365/mime/weight/FactorySettingDialog.kt b/mine/src/main/java/com/zj365/mime/weight/FactorySettingDialog.kt index 035926a..c60a5aa 100644 --- a/mine/src/main/java/com/zj365/mime/weight/FactorySettingDialog.kt +++ b/mine/src/main/java/com/zj365/mime/weight/FactorySettingDialog.kt @@ -25,4 +25,10 @@ class FactorySettingDialog(context: Context,var title:String,var confirm:()->Uni fun changeTextSetting() { binding.mTitle.gravity=Gravity.LEFT } + + fun isShow(){ + if (!isShowing) { + show() + } + } } \ No newline at end of file diff --git a/network/build.gradle b/network/build.gradle index cd010f9..f6bfc5d 100644 --- a/network/build.gradle +++ b/network/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-parcelize' def androidId = rootProject.ext.defaultSetting def rely = rootProject.ext.relyOn @@ -39,6 +40,7 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } + } dependencies { diff --git a/network/src/main/java/com/xty/network/ApiInterface.kt b/network/src/main/java/com/xty/network/ApiInterface.kt index bb3da98..3d812fb 100644 --- a/network/src/main/java/com/xty/network/ApiInterface.kt +++ b/network/src/main/java/com/xty/network/ApiInterface.kt @@ -471,6 +471,9 @@ interface ApiInterface { @POST("customer/index") suspend fun getMainInfo(@Body rb: RequestBody): RespBody + @POST("customer/user/getDeviceFuncList") + suspend fun getDeviceFunctionList(@Body rb: RequestBody) :RespBody> + /** * 首页小贴士 */ @@ -903,6 +906,11 @@ interface ApiInterface { */ @GET("customer/analyse/coupeNew") suspend fun getScinceList(): RespBody> + /** + * 健康科普详情 + */ + @GET("customer/analyse/coupeDetail") + suspend fun getScinceDetail(@Query("id") id: String):RespBody /** * 获取首页布局 diff --git a/network/src/main/java/com/xty/network/model/DeviceBean.kt b/network/src/main/java/com/xty/network/model/DeviceBean.kt index 1d129ab..c1d2dad 100644 --- a/network/src/main/java/com/xty/network/model/DeviceBean.kt +++ b/network/src/main/java/com/xty/network/model/DeviceBean.kt @@ -1,3 +1,3 @@ package com.xty.network.model -data class DeviceBean(val imageUrl:String,val watchTypeName:String,val watchType:Int,val deviceType:String) +data class DeviceBean(val imageUrl:String,val watchTypeName:String,val watchType:Int,val deviceType:String,val bindType:Int) diff --git a/network/src/main/java/com/xty/network/model/DeviceFunctionBean.kt b/network/src/main/java/com/xty/network/model/DeviceFunctionBean.kt new file mode 100644 index 0000000..87546a0 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/DeviceFunctionBean.kt @@ -0,0 +1,13 @@ +package com.xty.network.model + +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + + +@Parcelize +data class DeviceFunctionBean( + val name:String, //功能名 + val type:String, //功能类型 + val status:Int //0,无,1,有 + +): Parcelable diff --git a/network/src/main/java/com/xty/network/model/HealthMonitoringListBean.kt b/network/src/main/java/com/xty/network/model/HealthMonitoringListBean.kt index cc4d37d..13347f2 100644 --- a/network/src/main/java/com/xty/network/model/HealthMonitoringListBean.kt +++ b/network/src/main/java/com/xty/network/model/HealthMonitoringListBean.kt @@ -11,6 +11,7 @@ data class HealthMonitoringListBean( var buttonBg: Int, var buttonIcon: Int, var type: Int,//0.心率、1.血氧、2.呼吸率、3.体温、4.步数、5.睡眠、6.血压、7.血糖、8.心电、9.尿酸、10.血脂。 + var functionType:String, //功能code var sex: String = "",//性别1:男,2:女 var calorie: String? = "" ) \ No newline at end of file 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 b7ab7cf..7111a4f 100644 --- a/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt +++ b/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt @@ -15,6 +15,8 @@ data class UserEquipmentInformationizationBean( val power: String,//电量 val linkStatus: String,//连接状态 val iccid:String,//物联网卡 + val bindType:Int, //1,中健4G,2,鹏升4G + val deviceImageUrl:String,//手表图片 val flowExpireTime:String,//流量到期时间 val deviceTotal: DeviceTotal,//物联网设备统计 val adorn: Adorn,//佩戴时长对象 diff --git a/server/src/main/java/com/xty/server/act/ScienceDetailAct.kt b/server/src/main/java/com/xty/server/act/ScienceDetailAct.kt index af978cc..4054630 100644 --- a/server/src/main/java/com/xty/server/act/ScienceDetailAct.kt +++ b/server/src/main/java/com/xty/server/act/ScienceDetailAct.kt @@ -19,12 +19,19 @@ class ScienceDetailAct:BaseVmAct() { val binding by lazy{ActScienceDetailBinding.inflate(layoutInflater)} var bean: ScienceBean?=null var job: Job?=null + + var id:String? = null override fun setLayout()=binding.root override fun initData() { super.initData() isDarkBar=true intent.extras?.let { - bean=intent.extras!!.getSerializable("bean") as ScienceBean + if(it.containsKey("bean")){ + bean=intent.extras!!.getSerializable("bean") as ScienceBean + + }else if(it.containsKey("id")){ + id = it.getString("id") + } } } @@ -42,6 +49,10 @@ class ScienceDetailAct:BaseVmAct() { binding.mRich.loadDataWithBaseURL(null,bean!!.content,"text/html", "utf-8", null); } + + id?.let { + mViewModel.getDetailForId(it) + } } private fun startDelay() { @@ -59,5 +70,15 @@ class ScienceDetailAct:BaseVmAct() { } override fun liveObserver() { + + mViewModel.detailLiveData.observe(this){ + it.data.let { + binding.mTvSubTitle.text = it.name + binding.mTvOrgName.text = it.orgName + binding.mTvReleaseTime.text = it.time + WebViewOrigin().initWebSettings(this,binding.mRich) + binding.mRich.loadDataWithBaseURL(null,it.content,"text/html", "utf-8", null); + } + } } } \ No newline at end of file diff --git a/server/src/main/java/com/xty/server/vm/ScienceDetailVm.kt b/server/src/main/java/com/xty/server/vm/ScienceDetailVm.kt index 34cfbde..6269c5d 100644 --- a/server/src/main/java/com/xty/server/vm/ScienceDetailVm.kt +++ b/server/src/main/java/com/xty/server/vm/ScienceDetailVm.kt @@ -3,13 +3,26 @@ package com.xty.server.vm import androidx.lifecycle.MutableLiveData import com.xty.base.vm.BaseVm import com.xty.network.model.RespBody +import com.xty.network.model.ScienceBean +import org.json.JSONObject class ScienceDetailVm:BaseVm() { val anyLive by lazy{MutableLiveData>()} + + val detailLiveData by lazy { MutableLiveData>() } fun startSetScore(){ startHttp { var body=apiInterface().saveScore() body.getCodeStatus(anyLive,nowData) } } + + fun getDetailForId(id:String){ + + startHttp { + var body=apiInterface().getScinceDetail(id) + body.getCodeStatus(detailLiveData,nowData) + + } + } } \ No newline at end of file