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 9dba305..25e68e0 100644 --- a/app/src/main/java/com/zj365/dc/activity/DeviceChoiceAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/DeviceChoiceAct.kt @@ -1,7 +1,6 @@ package com.zj365.dc.activity import android.view.View -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import com.alibaba.android.arouter.facade.annotation.Route import com.tamsiree.rxkit.RxActivityTool @@ -29,20 +28,18 @@ class DeviceChoiceAct : BaseVmAct() { private val deviceAdapter by lazy { DeviceChoiceAdapter() } private var isLogin = false - private val data = mutableListOf( - DeviceBean(R.mipmap.ic_watch_gs29u, "4G(GS29U)", 1), - DeviceBean(R.mipmap.ic_watch_ps360, "4G(PS360)", 1) - /* DeviceBean(R.mipmap.ic_watch_x1, "4G手表(X1)", 1), - DeviceBean(R.mipmap.ic_blutooth_watch, "蓝牙手表(U32)", 0)*/ - ) override fun liveObserver() { + mViewModel.deviceTypeListLiveData.observe(this){ + deviceAdapter.setNewInstance(it.data) + } } override fun initData() { super.initData() isLogin = intent.getBooleanExtra("isLogin", false) + } override fun initView() { @@ -62,11 +59,11 @@ class DeviceChoiceAct : BaseVmAct() { layoutManager = LinearLayoutManager(this@DeviceChoiceAct) adapter = deviceAdapter } - deviceAdapter.setNewInstance(data) + deviceAdapter.setOnItemClickListener { adapter, _, position -> val device = adapter.data[position] as DeviceBean - val type = device.type + val type = device.watchType if (type != 0) { bundle.clear() bundle.putInt("type", type) @@ -92,6 +89,7 @@ class DeviceChoiceAct : BaseVmAct() { } } } + mViewModel.getDeviceType() } override fun onBackPressed() { diff --git a/app/src/main/java/com/zj365/dc/activity/LoginAct.kt b/app/src/main/java/com/zj365/dc/activity/LoginAct.kt index 7118e11..f8d03fa 100644 --- a/app/src/main/java/com/zj365/dc/activity/LoginAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/LoginAct.kt @@ -47,7 +47,7 @@ class LoginAct : BaseVmAct() { val dialogBind by lazy { - DialogTipNew(this, "恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。", "前往","取消",false,{ + DialogTipNew(this,"温馨提示", "恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。", "前往","取消",false,{ RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE) }){ EventBus.getDefault().post(LoginOrRegisterEvent()) diff --git a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt index 8f208c5..80b1216 100644 --- a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt +++ b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt @@ -21,6 +21,7 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.fastjson.JSON import com.amap.api.location.AMapLocationClient import com.amap.api.location.AMapLocationClientOption +import com.blankj.utilcode.util.ArrayUtils import com.google.android.material.bottomnavigation.BottomNavigationItemView import com.google.android.material.bottomnavigation.BottomNavigationMenuView import com.lifesense.android.ble.core.serializer.AbstractMeasureData @@ -31,6 +32,7 @@ import com.tencent.qcloud.tuicore.TUIConstants import com.tencent.qcloud.tuikit.tuichat.util.PermissionHelper import com.xty.base.act.BaseVmAct import com.xty.base.dialog.AppUpdateDialog +import com.xty.base.dialog.DialogActivities import com.xty.base.vp2.VpAdapter import com.xty.common.Const import com.xty.common.MMkvHelper @@ -38,10 +40,13 @@ import com.xty.common.aMapUtils.AmapInit import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager import com.xty.common.bracelet.checkBlueConnectPermission +import com.xty.common.event.LoginOrRegisterEvent import com.xty.common.event.MeasureWeightEvent import com.xty.common.event.MqttReceive import com.xty.common.util.CommonToastUtils +import com.xty.common.util.CommonUtils import com.xty.common.util.ViewScreenshotUtils +import com.xty.network.model.InviteCustodyBean import com.zj365.dc.BuildConfig import com.zj365.dc.R import com.zj365.dc.databinding.ActivityMainBinding @@ -52,6 +57,7 @@ import com.zj365.dc.fragment.MineFrag import com.zj365.dc.vm.MainVm import com.zj365.health.act.binddevice.BaseDeviceBindListAct import com.zj365.health.act.binddevice.BlueUtil +import com.zj365.health.weight.DialogTipNew import com.zj365.mime.act.DevInfoAct import io.reactivex.functions.Consumer import kotlinx.coroutines.delay @@ -79,6 +85,8 @@ class MainActivity : BaseVmAct(), Consumer { private var mLocationClient: AMapLocationClient? = null private var mLocationOption: AMapLocationClientOption? = null + var inviteCustodyBean:InviteCustodyBean? = null + private val dialog by lazy { AppUpdateDialog(this) { if (it) { @@ -87,6 +95,19 @@ class MainActivity : BaseVmAct(), Consumer { } } + val dialogInvite by lazy { + DialogTipNew(this, "监护邀请","138****3415用户邀请您成为 监护人", "确认","取消",false,{ + inviteCustodyBean?.let { + mViewModel.confirmInvite(it.id,"1") + } + }){ + inviteCustodyBean?.let { + mViewModel.confirmInvite(it.id,"0") + } + } + + } + private fun initUnreadCountReceiver() { unreadCountReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { @@ -124,7 +145,7 @@ class MainActivity : BaseVmAct(), Consumer { initVp2() initBottomNav() addNv() -// mViewModel.getVersionNew() + mViewModel.getVersionNew() initUnreadCountReceiver() JPushInterface.setBadgeNumber(this, 0) @@ -135,6 +156,9 @@ class MainActivity : BaseVmAct(), Consumer { MMkvHelper.getLong(Const.USER_ID).toString() } mViewModel.getUserEquipmentInformationizationRequest(userId) + mViewModel.getBanners(userId,3) + mViewModel.getIsDemonstate() + mViewModel.searchInviteInfo() // mViewModel.getBindList(BaseDeviceBindListAct.DeviceType.BODYFAT.type) } @@ -261,6 +285,29 @@ class MainActivity : BaseVmAct(), Consumer { } } + mViewModel.isDemonstrateData.observe(this){ + isDemonstrate = it.data == "1" + } + + mViewModel.findInfoLiveData.observe(this){ + if (it.data != null){ + inviteCustodyBean = it.data + dialogInvite.setContentNew("${CommonUtils.replaceMiddleNumber(it.data.phone)}用户邀请您成为 监护人") + dialogInvite.show() + } + + } + + mViewModel.bannerLive.observe(this){ + + it[3]?.let { + if(it != null && it.size > 0){ + // DialogActivities(this,it[0].imgUrl).show() + } + } + + } + //未读消息操作 /* mViewModel.countLive.observe(this) { setUnreadcount(it.data.count) diff --git a/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt b/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt index 6b82632..1d23dd6 100644 --- a/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt @@ -1,5 +1,6 @@ package com.zj365.dc.activity +import android.text.Html import android.view.View import com.alibaba.android.arouter.facade.annotation.Route import com.xty.base.act.BaseVmAct @@ -39,7 +40,7 @@ class MessageDetailNewAct: BaseVmAct() { msgBean?.let { binding.tvMsgTitle.text = it.notifyTitle binding.tvMsgTime.text = Dateutils.formatTime(it.notifyCreateTime,Dateutils.YYYY_MM_DD_HH_MM) - binding.tvMsgContent.text = it.notifyContent + binding.tvMsgContent.text = Html.fromHtml(it.notifyContent) } 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 1d3905f..0139149 100644 --- a/app/src/main/java/com/zj365/dc/activity/OneKeyBinderDeviceAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/OneKeyBinderDeviceAct.kt @@ -4,10 +4,12 @@ import android.content.Intent import android.view.View import com.alibaba.android.arouter.facade.annotation.Route import com.google.gson.Gson +import com.tamsiree.rxkit.RxActivityTool import com.tencent.qcloud.tuikit.tuichat.util.PermissionHelper import com.xty.base.act.BaseVmAct import com.xty.common.LogUtils import com.xty.common.arouter.ARouterUrl +import com.xty.common.util.CommonToastUtils import com.xty.common.xqr_code.XQRCodeAct import com.xuexiang.xqrcode.XQRCode import com.zj365.dc.databinding.ActBinderDeviceOneKeyBinding @@ -19,6 +21,10 @@ class OneKeyBinderDeviceAct : BaseVmAct() { val binding by lazy { ActBinderDeviceOneKeyBinding.inflate(layoutInflater) } override fun liveObserver() { + mViewModel.bindResult.observe(this){ + CommonToastUtils.showToast("绑定成功") + finish() + } } @@ -33,7 +39,8 @@ class OneKeyBinderDeviceAct : BaseVmAct() { startScan() } binding.tvBackHome.setOnClickListener { - + RxActivityTool.finishActivity(DeviceChoiceAct::class.java) + finish() } } @@ -74,8 +81,7 @@ class OneKeyBinderDeviceAct : BaseVmAct() { LogUtils.d("扫描结果:$result") binding.tvErrorMsg.visibility = View.GONE if (!result.isNullOrEmpty()) { - val gson = Gson() - var scanInfoBean = gson.fromJson(result, ScanInfoBean::class.java) + mViewModel.binderDevice(result) } else { binding.tvErrorMsg.visibility = View.VISIBLE binding.tvScan.text = "继续绑定" 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 099642d..81a300c 100644 --- a/app/src/main/java/com/zj365/dc/activity/WelcomeAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/WelcomeAct.kt @@ -137,8 +137,8 @@ class WelcomeAct : BaseVmAct() { mainScope.launch(Dispatchers.IO) { LogUtils.d("BlueTooth Connect!!!") - YCBBlueConnectHelper.connectionBlueTooth(mac, true) { - } + /* YCBBlueConnectHelper.connectionBlueTooth(mac, true) { + }*/ } } diff --git a/app/src/main/java/com/zj365/dc/adapter/DeviceChoiceAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/DeviceChoiceAdapter.kt index 42a74c5..1520b05 100644 --- a/app/src/main/java/com/zj365/dc/adapter/DeviceChoiceAdapter.kt +++ b/app/src/main/java/com/zj365/dc/adapter/DeviceChoiceAdapter.kt @@ -1,15 +1,17 @@ package com.zj365.dc.adapter +import android.widget.ImageView import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.xty.base.adapter.BaseAdapter +import com.xty.common.setImage import com.xty.network.model.DeviceBean import com.zj365.dc.R class DeviceChoiceAdapter:BaseAdapter(R.layout.item_device_choice) { override fun convert(holder: BaseViewHolder, item: DeviceBean) { - holder.setImageResource(R.id.iv_device_icon,item.resId) - holder.setText(R.id.tv_device_name,item.name) + holder.getView(R.id.iv_device_icon).setImage(context,item.imageUrl) + holder.setText(R.id.tv_device_name,"${item.watchTypeName}(${item.deviceType})") } } \ No newline at end of file diff --git a/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt index 7bea6f7..5f0bff7 100644 --- a/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt +++ b/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt @@ -1,5 +1,6 @@ package com.zj365.dc.adapter +import android.text.Html import android.text.TextUtils import android.view.View import android.view.ViewGroup @@ -23,7 +24,7 @@ class HomeMessageAdapter : BaseAdapter(R.layout.item_home_message holder.getView(R.id.img_msg).setImageDrawable(context.resources.getDrawable(R.mipmap.icon_msg_welfare)) } holder.setText(R.id.tv_msg_title,item.name) - holder.setText(R.id.tv_msg_content,item.msg) + holder.setText(R.id.tv_msg_content, Html.fromHtml(item.msg)) if(!TextUtils.isEmpty(item.time)){ holder.setText(R.id.tv_msg_time,Dateutils.formatTime(item.time.toLong(),Dateutils.YYYY_MM_DD_HH_MM)) } 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 321a603..50f0a5b 100644 --- a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt @@ -36,6 +36,7 @@ import com.xty.common.bracelet.YCBOrder import com.xty.common.bracelet.checkBlueConnectPermission import com.xty.common.bracelet.getBluePermission import com.xty.common.bracelet.isGpsOpen +import com.xty.common.event.AddSuccessEvent import com.xty.common.event.BlueToothConnectEvent import com.xty.common.event.ChangeFamilyEvent import com.xty.common.event.FamilyEvent @@ -1104,7 +1105,7 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission signDialog.show() } } - if (CommonUtils.isBlueTooth(MMkvHelper.getInt(Const.Watch_Device_Type))) {//如果是蓝牙设备 + /* if (CommonUtils.isBlueTooth(MMkvHelper.getInt(Const.Watch_Device_Type))) {//如果是蓝牙设备 startGetDeviceInfoLive() if (settingBean.user.bluetooth != MMkvHelper.getString(Const.Blue_Tooth)) {//如果不是同一设备 YCBBlueConnectHelper.disconnect()//断开蓝牙,断开后收到BlueToothConnectEvent会自动连接 @@ -1114,7 +1115,7 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission mainUIUpdate(YCBBlueConnectHelper.BLEConnectState.Connecting)//刷新蓝牙连接状态 connect(settingBean.user.bluetooth) } - } + }*/ } if (Const.Companion.WatchDevice.LightA3.ordinal == Const.watchType) {//如果是4G设备,设置连接状态与电量信息 @@ -1669,7 +1670,7 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission //家人信息改变 刷新 @Subscribe(threadMode = ThreadMode.MAIN) fun familyChange(event: FamilyEvent) { - mViewModel.getMyFamilyList() + // mViewModel.getMyFamilyList() } /** @@ -1741,4 +1742,9 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission override fun onPermissionsDenied(requestCode: Int, perms: MutableList) { } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun addSuccess(event: AddSuccessEvent){ + request() + } } \ No newline at end of file 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 000bddb..3d009c1 100644 --- a/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/HealthHomeFrag.kt @@ -290,7 +290,7 @@ HealthHomeFrag : BaseVmFrag() { } else ->{ - + CommonToastUtils.showToast("敬请期待") } } } @@ -507,7 +507,7 @@ HealthHomeFrag : BaseVmFrag() { private fun request() { mViewModel.getBanners(CommonUtils.getMyUserId(),1)//当期登录用户id - mViewModel.getMyFamilyList() + // mViewModel.getMyFamilyList() mViewModel.getScinceList() @@ -596,6 +596,7 @@ HealthHomeFrag : BaseVmFrag() { if (position == mFamilyAdapter.data.size - 1) { //第一期暂不做 /* onEventObject(requireContext(), UmengEventId.Family) RouteManager.goAct(ARouterUrl.BIND_FAMILY)*/ + RouteManager.goAct(ARouterUrl.FAMILY_HEALTH_ACT) } else { var bean = adapter.getItem(position) as FamilyBean showIdInfo = if (bean.id == 0) { @@ -643,7 +644,7 @@ HealthHomeFrag : BaseVmFrag() { //家人信息改变 刷新 @Subscribe(threadMode = ThreadMode.MAIN) fun familyChange(event: FamilyEvent) { - mViewModel.getMyFamilyList() + // mViewModel.getMyFamilyList() } 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 3600b37..6c816cb 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt @@ -12,6 +12,7 @@ import com.xty.common.* import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager import com.xty.common.bracelet.YCBBlueConnectHelper +import com.xty.common.event.AddSuccessEvent import com.xty.common.event.LoginOrRegisterEvent import com.xty.common.event.LoginOutEvent import com.xty.common.event.MyInfoEvent @@ -339,8 +340,8 @@ class MineFrag : BaseVmFrag(),EasyPermissions.PermissionCallbacks { mViewModel.unbindLive.observe(this) { user!!.bluetooth = "" - YCBBlueConnectHelper.disconnect() - YCBBlueConnectHelper.cancelTimer() + /* YCBBlueConnectHelper.disconnect() + YCBBlueConnectHelper.cancelTimer()*/ EventBus.getDefault().post(MyInfoEvent()) //刷新个人信息 } /* mViewModel.signLive.observe(this) { @@ -382,6 +383,11 @@ class MineFrag : BaseVmFrag(),EasyPermissions.PermissionCallbacks { refreshLogoutUI() } + @Subscribe(threadMode = ThreadMode.MAIN) + fun addSuccess(event: AddSuccessEvent){ + mViewModel.getMySetting() + mViewModel.getScore(1) + } diff --git a/app/src/main/java/com/zj365/dc/vm/DeviceChoiceVm.kt b/app/src/main/java/com/zj365/dc/vm/DeviceChoiceVm.kt index 07561f3..3f091ac 100644 --- a/app/src/main/java/com/zj365/dc/vm/DeviceChoiceVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/DeviceChoiceVm.kt @@ -1,7 +1,21 @@ package com.zj365.dc.vm +import androidx.lifecycle.MutableLiveData import com.xty.base.vm.BaseVm +import com.xty.network.model.DeviceBean +import com.xty.network.model.RespBody +import org.json.JSONObject class DeviceChoiceVm:BaseVm() { + val deviceTypeListLiveData by lazy { MutableLiveData>> ()} + + fun getDeviceType(){ + startHttp { + var json = JSONObject() + val response = apiInterface().getDeviceTypeList(retrofits.getRequestBody(json.toString())) + response.getCodeStatus(deviceTypeListLiveData, 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 d8a27c2..78b56a3 100644 --- a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt @@ -261,8 +261,8 @@ class DynamicManagementVm : BaseVm() { ): MutableList { val healthMonitoringList: MutableList = mutableListOf() bean.apply { - when (deviceType) { - "U32", "" -> { //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存 + /*when (deviceType) { + "U32", "" -> { //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存*/ MMkvHelper.put(Const.X1_X2_Device, false) //心率 val statusXL = if (hrData.hr == 0) { @@ -702,9 +702,9 @@ class DynamicManagementVm : BaseVm() { 10 ) )*/ - } +// } - "A3" -> { + /*"A3" -> { //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存 MMkvHelper.put(Const.X1_X2_Device, false) //心率 @@ -1106,8 +1106,8 @@ class DynamicManagementVm : BaseVm() { 10 ) ) - } - + }*/ +/* "X2", "X1" -> { //其他界面要用到是否为x1,x2的设备判断,这里坐下缓存 MMkvHelper.put(Const.X1_X2_Device, true) @@ -1474,8 +1474,8 @@ class DynamicManagementVm : BaseVm() { 10 ) ) - } - } + }*/ +// } } return healthMonitoringList } diff --git a/app/src/main/java/com/zj365/dc/vm/MainVm.kt b/app/src/main/java/com/zj365/dc/vm/MainVm.kt index 03b2f7f..c6a6753 100644 --- a/app/src/main/java/com/zj365/dc/vm/MainVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/MainVm.kt @@ -5,13 +5,20 @@ import android.content.Context import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import com.xty.base.vm.BaseVm +import com.xty.common.Const +import com.xty.common.MMkvHelper import com.xty.common.util.CommonUtils +import com.xty.network.model.BannerBean import com.xty.network.model.BindDeviceListBean +import com.xty.network.model.InviteCustodyBean import com.xty.network.model.RespBody import com.xty.network.model.UnReadMessageBean import com.xty.network.model.Update import com.xty.network.model.UserEquipmentInformationizationBean +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.json.JSONObject class MainVm : BaseVm() { @@ -24,6 +31,15 @@ class MainVm : BaseVm() { val saveSuccess by lazy { MutableLiveData>() } val boundDevices by lazy{MutableLiveData>>()} + + val bannerLive by lazy { MutableLiveData>>() } + + val isDemonstrateData by lazy { MutableLiveData>() } + + val findInfoLiveData by lazy { MutableLiveData>() } + + val confirmInviteLiveData by lazy { MutableLiveData>() } + /** * 设备类型1,血压计,2,血糖仪.3体脂秤 */ @@ -91,4 +107,79 @@ class MainVm : BaseVm() { response.getCodeStatus(getUserEquipmentInformationization, nowData) } } + + fun getBanners(id: String?,location:Int){ + startHttp(false) { + + withContext(Dispatchers.IO){ + val userId = if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") { + "" + } else { + MMkvHelper.getLong(Const.USER_ID).toString() + } + var nowLine = async{apiInterface().getBanners(userId,location)} + var showInfo = nowLine.await() + // var value=apiInterface().getBanners(retrofits.getRequestBody(json.toString())) + var dataMap = setMapValue(bannerLive.value,showInfo.data,location) + if (dataMap != null){ + bannerLive.postValue(dataMap) + } + // value.getCodeStatus(bannerLive,nowData) + } + + } + } + + fun getIsDemonstate(){ + startHttp(false) { + + withContext(Dispatchers.IO){ + val userId = if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") { + "" + } else { + MMkvHelper.getLong(Const.USER_ID).toString() + } + var json = JSONObject() + json.put("id", userId) + val response = apiInterface().getIsDemonstrate(retrofits.getRequestBody(json.toString())) + // value.getCodeStatus(bannerLive,nowData) + response.getCodeStatus(isDemonstrateData,nowData) + } + + } + } + + fun searchInviteInfo(){ + startHttp(false) { + var json = JSONObject() + val response = apiInterface().findConfirmInfo(retrofits.getRequestBody(json.toString())) + response.getCodeStatus(findInfoLiveData, nowData) + } + } + + fun confirmInvite(id:String, status:String){ + startHttp(false) { + var json = JSONObject() + json.put("id",id) + json.put("status",status) + val response = apiInterface().confirmInvited(retrofits.getRequestBody(json.toString())) + response.getCodeStatus(confirmInviteLiveData,nowData) + } + + } + + fun setMapValue(map: MutableMap>?, list: MutableList?, type: Int): MutableMap>? { + if (list == null) { + return null + } else { //当得到的值不是空的时候 + var mapNew = mutableMapOf>() + if (map == null) { + mapNew[type] = list + return mapNew + } else { + map[type] = list + return map + } + } + } } \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_nav_bar.xml b/app/src/main/res/menu/bottom_nav_bar.xml index 8c12d14..980abb8 100644 --- a/app/src/main/res/menu/bottom_nav_bar.xml +++ b/app/src/main/res/menu/bottom_nav_bar.xml @@ -16,7 +16,7 @@ () { + override fun onResourceReady( + resource: Bitmap, + transition: Transition? + ) { + if (resource != null) { + binding.imgActivies.setImageBitmap(resource) + } + } + })*/ + } + binding.imgClose.setOnClickListener { dismiss() } + + binding.imgActivies.setOnClickListener { + + } + } +} \ No newline at end of file diff --git a/base/src/main/res/layout/dialog_activities.xml b/base/src/main/res/layout/dialog_activities.xml new file mode 100644 index 0000000..e41d590 --- /dev/null +++ b/base/src/main/res/layout/dialog_activities.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/base/src/main/res/values/colors.xml b/base/src/main/res/values/colors.xml index 011e5fd..2da36ac 100644 --- a/base/src/main/res/values/colors.xml +++ b/base/src/main/res/values/colors.xml @@ -39,4 +39,6 @@ #00000000 #f74c31 #6EA8F6 + #FDA481 + #F7891D \ No newline at end of file diff --git a/common/src/main/java/com/xty/common/event/AddSuccessEvent.kt b/common/src/main/java/com/xty/common/event/AddSuccessEvent.kt new file mode 100644 index 0000000..968b61a --- /dev/null +++ b/common/src/main/java/com/xty/common/event/AddSuccessEvent.kt @@ -0,0 +1,4 @@ +package com.xty.common.event + +class AddSuccessEvent { +} \ No newline at end of file diff --git a/common/src/main/res/drawable/shape_r7_5f2_481.xml b/common/src/main/res/drawable/shape_r7_5f2_481.xml new file mode 100644 index 0000000..1a60f8e --- /dev/null +++ b/common/src/main/res/drawable/shape_r7_5f2_481.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png b/common/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png rename to common/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_h_breath.png b/common/src/main/res/mipmap-xxhdpi/ic_h_breath.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_h_breath.png rename to common/src/main/res/mipmap-xxhdpi/ic_h_breath.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_h_sleep.png b/common/src/main/res/mipmap-xxhdpi/ic_h_sleep.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_h_sleep.png rename to common/src/main/res/mipmap-xxhdpi/ic_h_sleep.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_niaosuan.png b/common/src/main/res/mipmap-xxhdpi/ic_niaosuan.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_niaosuan.png rename to common/src/main/res/mipmap-xxhdpi/ic_niaosuan.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_oo.png b/common/src/main/res/mipmap-xxhdpi/ic_oo.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_oo.png rename to common/src/main/res/mipmap-xxhdpi/ic_oo.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_steps.png b/common/src/main/res/mipmap-xxhdpi/ic_steps.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_steps.png rename to common/src/main/res/mipmap-xxhdpi/ic_steps.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_temp.png b/common/src/main/res/mipmap-xxhdpi/ic_temp.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_temp.png rename to common/src/main/res/mipmap-xxhdpi/ic_temp.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_xl.png b/common/src/main/res/mipmap-xxhdpi/ic_xl.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_xl.png rename to common/src/main/res/mipmap-xxhdpi/ic_xl.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_xya.png b/common/src/main/res/mipmap-xxhdpi/ic_xya.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_xya.png rename to common/src/main/res/mipmap-xxhdpi/ic_xya.png diff --git a/common/src/main/res/mipmap-xxhdpi/icon_about_logo.png b/common/src/main/res/mipmap-xxhdpi/icon_about_logo.png new file mode 100644 index 0000000..4dd0970 Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_about_logo.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/icon_arrow_right.png b/common/src/main/res/mipmap-xxhdpi/icon_arrow_right.png new file mode 100644 index 0000000..e5c2aae Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_arrow_right.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/icon_close.png b/common/src/main/res/mipmap-xxhdpi/icon_close.png new file mode 100644 index 0000000..fb237f2 Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_close.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/icon_power_gray.png b/common/src/main/res/mipmap-xxhdpi/icon_power_gray.png new file mode 100644 index 0000000..e5f35eb Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_power_gray.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/icon_power_green.png b/common/src/main/res/mipmap-xxhdpi/icon_power_green.png new file mode 100644 index 0000000..99a713f Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/icon_power_green.png differ diff --git a/health/src/main/java/com/zj365/health/act/familyhealth/AddFamilyGuardianAct.kt b/health/src/main/java/com/zj365/health/act/familyhealth/AddFamilyGuardianAct.kt index f92188f..0d13045 100644 --- a/health/src/main/java/com/zj365/health/act/familyhealth/AddFamilyGuardianAct.kt +++ b/health/src/main/java/com/zj365/health/act/familyhealth/AddFamilyGuardianAct.kt @@ -5,9 +5,11 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.xty.base.act.BaseVmAct import com.xty.base.vm.BaseVm import com.xty.common.arouter.ARouterUrl +import com.xty.common.event.AddSuccessEvent import com.xty.common.util.CommonToastUtils import com.zj365.health.databinding.ActAddFamilyGuardianBinding import com.zj365.health.vm.AddFamilyGuardianVm +import org.greenrobot.eventbus.EventBus @Route(path = ARouterUrl.ADD_FAMILY_GUARDIAN_ACT) class AddFamilyGuardianAct : BaseVmAct() { @@ -21,7 +23,8 @@ class AddFamilyGuardianAct : BaseVmAct() { override fun liveObserver() { mViewModel.submitLiveData.observe(this){ - + EventBus.getDefault().post(AddSuccessEvent()) + finish() } } 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 012daec..0721f07 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 @@ -1,17 +1,34 @@ package com.zj365.health.act.familyhealth +import androidx.recyclerview.widget.LinearLayoutManager import com.alibaba.android.arouter.facade.annotation.Route -import com.xty.base.act.BaseVmAct -import com.xty.base.vm.BaseVm +import com.blankj.utilcode.util.GsonUtils +import com.xty.base.act.BaseListAct import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager +import com.xty.common.event.AddSuccessEvent +import com.xty.network.model.CancerGoodsBean +import com.xty.network.model.FamilyHealthBean +import com.zj365.health.R import com.zj365.health.adapter.familyhealth.HealthFamilyAdapter import com.zj365.health.databinding.ActHealthFamilyBinding +import com.zj365.health.vm.FamilyHealthVm +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode @Route(path = ARouterUrl.FAMILY_HEALTH_ACT) -class FamilyHealthAct : BaseVmAct() { +class FamilyHealthAct : BaseListAct() { val binding by lazy { ActHealthFamilyBinding.inflate(layoutInflater) } - val adapter by lazy { HealthFamilyAdapter() } + val mAdapter by lazy { HealthFamilyAdapter() } override fun liveObserver() { + mViewModel.familyHealthListData.observe(this){ + mAdapter.setNewInstance(it.data) + } + + mViewModel.exitCustody.observe(this){ + page =1 + loadData() + } } override fun setLayout() = binding.root @@ -25,7 +42,37 @@ class FamilyHealthAct : BaseVmAct() { } } + override fun initAdapter() { + setRecycleRefresh(binding.recyclerView, binding.mRefresh, true) + binding.recyclerView.layoutManager = LinearLayoutManager(this) + binding.recyclerView.adapter = mAdapter + mAdapter.addChildClickViewIds(R.id.tv_add_cancel, R.id.tv_watch,R.id.tv_current_time) + mAdapter.setOnItemChildClickListener { adapter, view, position -> + val familyHealthBean = adapter.data[position] as FamilyHealthBean + when (view.id) { + R.id.tv_add_cancel -> { + if(familyHealthBean.isMy == 1){ + RouteManager.goAct(ARouterUrl.ADD_FAMILY_GUARDIAN_ACT) + }else{ + mViewModel.exitCustody(familyHealthBean.id.toString()) + } + } + } + } + } + + override fun loadData() { + mViewModel.getFamilyHealthList() + } + override fun initData() { super.initData() } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun addSuccess(event: AddSuccessEvent){ + page = 1 + loadData() + } + } \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyAdapter.kt b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyAdapter.kt index b165729..12a8556 100644 --- a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyAdapter.kt +++ b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyAdapter.kt @@ -1,12 +1,88 @@ package com.zj365.health.adapter.familyhealth +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.tencent.qcloud.tuikit.timcommon.component.impl.GlideEngine import com.xty.base.adapter.BaseAdapter +import com.xty.common.setImageUser +import com.xty.network.model.FamilyHealthBean import com.zj365.health.R +import de.hdodenhof.circleimageview.CircleImageView -class HealthFamilyAdapter: BaseAdapter(R.layout.item_health_family) { - override fun convert(holder: BaseViewHolder, item: Any) { +class HealthFamilyAdapter: BaseAdapter(R.layout.item_health_family) { + val mAdapterTaget by lazy { HealthFamilyTargetAdapter() } + val mAvatarAdapter by lazy { HealthFamilyUserAvatorAdapter() } + + override fun convert(holder: BaseViewHolder, item: FamilyHealthBean) { + + var tvRelation = holder.getView(R.id.tv_relation) + + var tvPower = holder.getView(R.id.tv_power) + + var recycler = holder.getView(R.id.recycler) + + var tvAddOrCancel = holder.getView(R.id.tv_add_cancel) + + var avatarRecycler = holder.getView(R.id.user_avatar_recycler) + + avatarRecycler.layoutManager = LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false) + avatarRecycler.adapter = mAvatarAdapter + + holder.setText(R.id.tv_family_name,item.name) + holder.getView(R.id.img_avator).setImageUser(context,item.avatarUrl) + tvRelation.text = item.relation + if(item.isMy == 1){ ////是否本人0,否,1,是 + + tvRelation.background = context.resources.getDrawable(R.drawable.shape_r7_3fe_8f6) + tvRelation.setTextColor(context.resources.getColor(R.color.col_6ea)) + + tvAddOrCancel.text ="添加监护人" + tvAddOrCancel.background = context.resources.getDrawable(R.drawable.shape_r25_02c) + tvAddOrCancel.setTextColor(context.resources.getColor(R.color.white)) + + holder.setGone(R.id.user_avatar_recycler,false) + holder.setGone(R.id.tv_num,false) + holder.setGone(R.id.tv_watch_him,true) + item.avatarList?.let { + mAvatarAdapter.setNewInstance(it) + holder.setText(R.id.tv_num,"${it.size}/10") + } + + }else { + tvRelation.background = context.resources.getDrawable(R.drawable.shape_r7_5f2_481) + tvRelation.setTextColor(context.resources.getColor(R.color.col_481)) + + tvAddOrCancel.text ="退出监护" + tvAddOrCancel.background = context.resources.getDrawable(R.drawable.shape_r25_stroke_02c) + tvAddOrCancel.setTextColor(context.resources.getColor(R.color.col_02c)) + + holder.setGone(R.id.user_avatar_recycler,true) + holder.setGone(R.id.tv_num,true) + holder.setGone(R.id.tv_watch_him,false) + + + } + if(item.power != null){ + item.power?.let { + tvPower.text = "${it}%" + } + }else{ + tvPower.text = "--%" + } + + + val drawableLeft = context.resources.getDrawable(R.mipmap.icon_power_green) + drawableLeft.setBounds(0,0,drawableLeft.minimumWidth,drawableLeft.minimumHeight) + tvPower.setCompoundDrawables(drawableLeft,null,null,null) + tvPower.compoundDrawablePadding = 5 + + + recycler.layoutManager = LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false) + recycler.adapter = mAdapterTaget + mAdapterTaget.setNewInstance(item.dataList) } } \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyTargetAdapter.kt b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyTargetAdapter.kt index 8eb01bf..3a618f6 100644 --- a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyTargetAdapter.kt +++ b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyTargetAdapter.kt @@ -1,11 +1,113 @@ package com.zj365.health.adapter.familyhealth +import android.graphics.Color +import android.graphics.Typeface +import android.widget.ImageView +import android.widget.TextView +import androidx.core.content.ContextCompat import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.tencent.qcloud.tuikit.timcommon.component.impl.GlideEngine import com.xty.base.adapter.BaseAdapter +import com.xty.common.util.SpannableUtils +import com.xty.network.model.FamilyHealthBean import com.zj365.health.R -class HealthFamilyTargetAdapter : BaseAdapter(R.layout.item_health_family_target) { - override fun convert(holder: BaseViewHolder, item: String) { - TODO("Not yet implemented") +class HealthFamilyTargetAdapter : BaseAdapter(R.layout.item_health_family_target) { + + //器官名 + private val units = arrayOf( + R.string.info_1_unit, R.string.info_3_unit, R.string.info_7_unit, + R.string.info_4_unit, R.string.info_2_unit, R.string.info_9_unit, + R.string.info_8_unit, + R.string.info_10_unit, R.string.info_6_unit + ) + + override fun convert(holder: BaseViewHolder, item: FamilyHealthBean.FamilyTargetBean) { + var imgTarget = holder.getView(R.id.img_target) + var tvValue = holder.getView(R.id.tv_value) + holder.setText(R.id.tv_name,item.name) + var contentValue ="" + if(item.type == 5){ + if(item.value == "0/0"){ + contentValue = "--" + }else{ + contentValue = item.value + } + }else{ + contentValue = if (item.value == "0") "--" else item.value + } + + + if(item.status == 1){ + tvValue.setTextColor(Color.parseColor("#7C7C7C")) + tvValue.text = SpannableUtils.setStrSpan( + "${contentValue}${context.getString(units[item.type-1])}", + 14, + ContextCompat.getColor( + context, R.color.col_c7c + ), + Typeface.BOLD, + 0, + "${contentValue}${context.getString(units[item.type-1])}".length - + context.getString(units[item.type-1]).length) + }else{ + tvValue.setTextColor(Color.parseColor("#F7891D")) + tvValue.text = SpannableUtils.setStrSpan( + "${contentValue}${context.getString(units[item.type-1])}", + 14, + ContextCompat.getColor( + context, R.color.col_91d + ), + Typeface.BOLD, + 0, + "${contentValue}${context.getString(units[item.type-1])}".length - + context.getString(units[item.type-1]).length) + } + + + when(item.type){ + 1 ->{ + imgTarget.setImageResource(R.mipmap.ic_xl) + + + } + + 2 ->{ + imgTarget.setImageResource(R.mipmap.ic_oo) + + } + + 3 ->{ + imgTarget.setImageResource(R.mipmap.ic_h_breath) + + } + + 4 ->{ + imgTarget.setImageResource(R.mipmap.ic_temp) + + } + + 5 ->{ + imgTarget.setImageResource(R.mipmap.ic_xya) + + } + + 6 ->{ + imgTarget.setImageResource(R.mipmap.ic_steps) + + + } + 7 ->{ + imgTarget.setImageResource(R.mipmap.ic_bloodsugar) + + + } + 8 ->{ + imgTarget.setImageResource(R.mipmap.ic_niaosuan) + + + } + } + } } \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyUserAvatorAdapter.kt b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyUserAvatorAdapter.kt index a34ba9c..a6d0090 100644 --- a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyUserAvatorAdapter.kt +++ b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/HealthFamilyUserAvatorAdapter.kt @@ -15,7 +15,13 @@ class HealthFamilyUserAvatorAdapter : BaseAdapter(R.layout.item_health_f if (position == 0){ setMargins(holder.itemView,0,0,0,0) } - holder.getView(R.id.img_user_avator).setImageUser(context,item) + if (item != null){ + holder.getView(R.id.img_user_avator).setImageUser(context,item) + + }else{ + holder.getView(R.id.img_user_avator).setImageResource(R.mipmap.icon_default_avator) + + } } diff --git a/health/src/main/java/com/zj365/health/fragment/SleepFrag.kt b/health/src/main/java/com/zj365/health/fragment/SleepFrag.kt index 3d0450c..1c29b63 100644 --- a/health/src/main/java/com/zj365/health/fragment/SleepFrag.kt +++ b/health/src/main/java/com/zj365/health/fragment/SleepFrag.kt @@ -96,7 +96,7 @@ class SleepFrag : BaseVmFrag() { var listFrag = mutableListOf() val tabs = arrayOf("日", "周", "月","年") - private val activeColor: Int = Color.parseColor("#25C8D0") + private val activeColor: Int = Color.parseColor("#02C191") private val normalColor: Int = Color.parseColor("#7C7C7C") private val activeSize = 15F private val normalSize = 15F @@ -243,10 +243,10 @@ class SleepFrag : BaseVmFrag() { }else{ isAudioPlay = true musicInfoBinding.mImagePlay.setImageResource(R.mipmap.ic_pause) - musicInfoBinding.mName.setTextColor(resources.getColor(R.color.col_25C)) + musicInfoBinding.mName.setTextColor(resources.getColor(R.color.col_02c)) musicInfoBinding.mName.setTypeface(null, Typeface.BOLD) musicInfoBinding.mPosition.setTypeface(null, Typeface.BOLD) - musicInfoBinding.mPosition.setTextColor(resources.getColor(R.color.col_25C)) + musicInfoBinding.mPosition.setTextColor(resources.getColor(R.color.col_02c)) file.path?.let { it1 -> diff --git a/health/src/main/java/com/zj365/health/vm/FamilyHealthVm.kt b/health/src/main/java/com/zj365/health/vm/FamilyHealthVm.kt new file mode 100644 index 0000000..7ac2a21 --- /dev/null +++ b/health/src/main/java/com/zj365/health/vm/FamilyHealthVm.kt @@ -0,0 +1,31 @@ +package com.zj365.health.vm + +import androidx.lifecycle.MutableLiveData +import com.xty.base.vm.BaseVm +import com.xty.network.model.FamilyHealthBean +import com.xty.network.model.RespBody +import org.json.JSONObject + +class FamilyHealthVm :BaseVm() { + + val familyHealthListData by lazy { MutableLiveData>>() } + + val exitCustody by lazy { MutableLiveData>() } + fun getFamilyHealthList(){ + startHttp (true){ + + val json = JSONObject() + val request = apiInterface().getFamilyList(retrofits.getRequestBody(json.toString())) + request.getCodeStatus(familyHealthListData,nowData) + } + } + + fun exitCustody(id:String){ + startHttp (true){ + val request = apiInterface().exitCustody(id) + request.getCodeStatus(exitCustody,nowData) + } + } + + +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/weight/DialogTipNew.kt b/health/src/main/java/com/zj365/health/weight/DialogTipNew.kt index 5d92ac8..dc94f00 100644 --- a/health/src/main/java/com/zj365/health/weight/DialogTipNew.kt +++ b/health/src/main/java/com/zj365/health/weight/DialogTipNew.kt @@ -10,7 +10,8 @@ import com.zj365.health.databinding.DialogTipToastBinding class DialogTipNew( context: Context, - var title: String, + var title: String? = "温馨提示", + var content:String, var confirmText: String? = "确定", var cancelText:String? = "取消", var isSingleBtn:Boolean = false, @@ -22,7 +23,8 @@ class DialogTipNew( override fun initView() { super.initView() setDialogPadding(SizeUtil.dp2px(context, 40f), 0, SizeUtil.dp2px(context, 40f), 0) - binding.mTitle.text = title + // binding.mTitle.text = content + binding.tvTitle.text = title if (isSingleBtn) { binding.clTwoBtnLayout.visibility = View.GONE @@ -46,4 +48,8 @@ class DialogTipNew( } } + + fun setContentNew(content:String){ + binding.mTitle.text= content + } } \ No newline at end of file diff --git a/health/src/main/res/drawable/shape_title_section.xml b/health/src/main/res/drawable/shape_title_section.xml index 9422167..f5840bf 100644 --- a/health/src/main/res/drawable/shape_title_section.xml +++ b/health/src/main/res/drawable/shape_title_section.xml @@ -1,7 +1,7 @@ - + - + android:layout_height="match_parent" + android:background="@color/col_f4f"> + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/dialog_tip_toast.xml b/health/src/main/res/layout/dialog_tip_toast.xml index f5a6f64..2aa299c 100644 --- a/health/src/main/res/layout/dialog_tip_toast.xml +++ b/health/src/main/res/layout/dialog_tip_toast.xml @@ -11,6 +11,7 @@ android:orientation="vertical"> @@ -52,6 +52,7 @@ + /> @@ -92,6 +95,9 @@ + + + \ No newline at end of file diff --git a/health/src/main/res/layout/item_health_family_target.xml b/health/src/main/res/layout/item_health_family_target.xml index ee72caa..3284200 100644 --- a/health/src/main/res/layout/item_health_family_target.xml +++ b/health/src/main/res/layout/item_health_family_target.xml @@ -3,27 +3,30 @@ xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:gravity="center" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> + android:layout_width="@dimen/dp_71" + android:layout_height="@dimen/dp_71"> + android:textSize="@dimen/sp_10"/> \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/act/AboutAct.kt b/mine/src/main/java/com/zj365/mime/act/AboutAct.kt index 34c7a27..46df3ff 100644 --- a/mine/src/main/java/com/zj365/mime/act/AboutAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/AboutAct.kt @@ -6,6 +6,7 @@ import com.blankj.utilcode.util.ArrayUtils import com.xty.base.act.BaseVmAct import com.xty.common.MMkvHelper import com.xty.common.arouter.ARouterUrl +import com.xty.common.arouter.RouteManager import com.xty.common.getImageUrl import com.xty.common.setImage import com.xty.common.util.CommonToastUtils @@ -33,7 +34,25 @@ class AboutAct: BaseVmAct() { statusBar(binding.title.mView) binding.title.mIvBack.setOnClickListener { finish() } binding.title.mTvTitle.text = getString(R.string.about) - mViewModel.getAbout() + + binding.mVersion.text="版本号: V${packageManager.getPackageInfo(this.packageName,0).versionName}" + + binding.tvUserPrivate.setOnClickListener { + bundle.clear() + bundle.putString("title", "用户协议") + bundle.putBoolean("isAgree", false) + bundle.putString("url","https://dc.zhongjian365.com/agreement.html") + RouteManager.goAct(ARouterUrl.AGREEMNT_READ_WEB_ACT, bundle) + } + + binding.tvPrivate.setOnClickListener { + bundle.clear() + bundle.putString("title", "隐私政策") + bundle.putBoolean("isAgree", false) + bundle.putString("url","https://dc.zhongjian365.com/privacy.html") + RouteManager.goAct(ARouterUrl.AGREEMNT_READ_WEB_ACT, bundle) + } + // mViewModel.getAbout() binding.mVersion.setOnClickListener { openLogFlag++ @@ -48,13 +67,7 @@ class AboutAct: BaseVmAct() { mViewModel.prevLive.observe(this){ if (!ArrayUtils.isEmpty(it.data)){ it.data[0].let { - binding.mVersion.text="版本号: V${packageManager.getPackageInfo(this.packageName,0).versionName}" - binding.mWebSite.text=Html.fromHtml(String.format(getString(R.string.about_info),"公司网址:",it.website)) - binding.mPhone.text=Html.fromHtml(String.format(getString(R.string.about_info),"联系电话:",it.phone)) - binding.mEmail.text=Html.fromHtml(String.format(getString(R.string.about_info),"邮箱地址:",it.email)) - binding.mCode.apply { - setImage(context,getImageUrl(it.qrCode)) - } + } } 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 82e6882..e12eac7 100644 --- a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt @@ -58,7 +58,7 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks { if (userBean != null) { user = userBean as SettingBean.User } - userId = intent.getStringExtra("userId") + // userId = intent.getStringExtra("userId") } override fun initView() { @@ -79,16 +79,17 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks { } } user?.let { - binding.mNickName.text = "设备名称:${it.watchName}" + mViewModel.getUserDeviceInfo(it.id) + /* binding.mNickName.text = "设备名称:${it.watchName}" binding.mNum.text = "设备地址:${it.bluetooth}" binding.mCode.text = "设备编号:${it.deviceId}" binding.mActiveCode.text = "设备激活码:${it.activationCode}" - binding.mActiveCode.visibility = View.VISIBLE + binding.mActiveCode.visibility = View.VISIBLE*/ // setDevicePic(it.deviceType, binding.ivDevice) } userId?.let { - mViewModel.getUserDeviceInfo(userId!!) + } @@ -115,6 +116,8 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks { }, 8, span.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE) + binding.tvContactKefu.text = span + } @@ -127,8 +130,8 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks { Const.watchType = -1//将手表型号恢复初始值 Const.battery = ""//电池信息恢复初始值 MMkvHelper.remove(Const.Blue_Tooth)//清除蓝牙信息 - YCBBlueConnectHelper.disconnect() - YCBBlueConnectHelper.cancelTimer() + /* YCBBlueConnectHelper.disconnect() + YCBBlueConnectHelper.cancelTimer()*/ MMkvHelper.clearWhatchInfo()//删除手表信息 EventBus.getDefault().post(BlueToothConnectEvent())//刷新蓝牙连接信息 EventBus.getDefault().post(MyInfoEvent()) //刷新个人信息 @@ -140,7 +143,7 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks { binding.mNickName.text = "设备名称:${it.data.watchName?:""}" binding.mNum.text = "设备编码:${it.data.bluetooth?:""}" binding.mCode.text = "物联网卡:${it.data.deviceCode?:""}" - binding.mActiveCode.text = "流量到期:${it.data.activationCode?:""}" + binding.mActiveCode.text = "流量到期:${it.data.activationTime?:""}" binding.mActiveCode.visibility = View.VISIBLE setDevicePic(it.data.deviceType, binding.ivDevice) diff --git a/mine/src/main/java/com/zj365/mime/act/SettingNewAct.kt b/mine/src/main/java/com/zj365/mime/act/SettingNewAct.kt index bf10e2a..f6f9646 100644 --- a/mine/src/main/java/com/zj365/mime/act/SettingNewAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/SettingNewAct.kt @@ -148,10 +148,10 @@ class SettingNewAct: BaseVmAct() { MyRetrofit.get().BLUETOOTH_MAC = ""//清除蓝牙信息 MMkvHelper.remove(Const.Blue_Tooth)//清除蓝牙信息 MMkvHelper.clearUserInfo()//清除用户登录信息 - YCBBlueConnectHelper.disconnect()//断开蓝牙连接 - YCBBlueConnectHelper.cancelTimer()//断开重连定时器 + /*YCBBlueConnectHelper.disconnect()//断开蓝牙连接 + YCBBlueConnectHelper.cancelTimer()//断开重连定时器*/ EventBus.getDefault().post(LoginOutEvent()) - EventBus.getDefault().post(BlueToothConnectEvent())//刷新蓝牙连接信息 + // EventBus.getDefault().post(BlueToothConnectEvent())//刷新蓝牙连接信息 RouteManager.goAct(ARouterUrl.LOGIN_ACT) finish() } diff --git a/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt index 9ed2075..9212d4d 100644 --- a/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt +++ b/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt @@ -2,6 +2,7 @@ package com.zj365.mime.adapter import android.content.Context import android.graphics.drawable.GradientDrawable +import android.text.Html import android.view.View import android.view.ViewGroup import android.widget.CheckBox @@ -39,7 +40,7 @@ class MessageAdapter():BaseAdapter(R.layout.item_message) { // }else if(item is MessageTypeDataBean.MessageTypeBean){ holder.setGone(R.id.mRelMsg,false).setGone(R.id.mChat,true) - holder.setText(R.id.mContent,item.notifyContent) + holder.setText(R.id.mContent, Html.fromHtml(item.notifyContent)) .setText(R.id.mTvTime,RxTimeTool.milliseconds2String(item.notifyCreateTime)) .setText(R.id.notifyTitle,item.notifyTitle) // changeStatus(holder.getView(R.id.mContent),item.notifyStatus) diff --git a/mine/src/main/res/layout/act_about.xml b/mine/src/main/res/layout/act_about.xml index f02640f..1a6e676 100644 --- a/mine/src/main/res/layout/act_about.xml +++ b/mine/src/main/res/layout/act_about.xml @@ -23,14 +23,14 @@ android:layout_height="@dimen/dp_76" android:layout_gravity="center" android:layout_marginTop="@dimen/dp_43" - android:src="@mipmap/ic_logo" /> + android:src="@mipmap/icon_about_logo" /> @@ -43,8 +43,35 @@ android:layout_marginTop="@dimen/dp_14" android:text="版本号" android:textColor="@color/col_c7c" + android:textStyle="bold" android:textSize="@dimen/sp_15" /> + + + + + + @@ -75,106 +102,27 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="@dimen/dp_14" - android:text="湖南中健三六五健康科技有限公司 版权所有" + android:text="中健三六五健康科技有限公司 版权所有" android:textColor="@color/col_c7c" - android:textSize="@dimen/sp_15" /> + android:textSize="@dimen/sp_13" /> + android:textSize="@dimen/sp_13" /> - - - - - - - - - - - - - - - - - - - - - - - - + android:textSize="@dimen/sp_13" /> \ No newline at end of file diff --git a/mine/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png b/mine/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png deleted file mode 100644 index 1cf7071..0000000 Binary files a/mine/src/main/res/mipmap-xxhdpi/ic_bloodsugar.png and /dev/null differ diff --git a/mine/src/main/res/mipmap-xxhdpi/ic_h_breath.png b/mine/src/main/res/mipmap-xxhdpi/ic_h_breath.png deleted file mode 100644 index bf74627..0000000 Binary files a/mine/src/main/res/mipmap-xxhdpi/ic_h_breath.png and /dev/null differ diff --git a/mine/src/main/res/mipmap-xxhdpi/ic_oo.png b/mine/src/main/res/mipmap-xxhdpi/ic_oo.png deleted file mode 100644 index 05f1103..0000000 Binary files a/mine/src/main/res/mipmap-xxhdpi/ic_oo.png and /dev/null differ diff --git a/mine/src/main/res/mipmap-xxhdpi/ic_temp.png b/mine/src/main/res/mipmap-xxhdpi/ic_temp.png deleted file mode 100644 index 62bdfd7..0000000 Binary files a/mine/src/main/res/mipmap-xxhdpi/ic_temp.png and /dev/null differ diff --git a/mine/src/main/res/mipmap-xxhdpi/ic_xl.png b/mine/src/main/res/mipmap-xxhdpi/ic_xl.png deleted file mode 100644 index 9349319..0000000 Binary files a/mine/src/main/res/mipmap-xxhdpi/ic_xl.png and /dev/null differ diff --git a/mine/src/main/res/mipmap-xxhdpi/ic_xya.png b/mine/src/main/res/mipmap-xxhdpi/ic_xya.png deleted file mode 100644 index 717b5b9..0000000 Binary files a/mine/src/main/res/mipmap-xxhdpi/ic_xya.png and /dev/null differ diff --git a/network/src/main/java/com/xty/network/ApiInterface.kt b/network/src/main/java/com/xty/network/ApiInterface.kt index c74f7eb..9891e7e 100644 --- a/network/src/main/java/com/xty/network/ApiInterface.kt +++ b/network/src/main/java/com/xty/network/ApiInterface.kt @@ -1702,4 +1702,41 @@ interface ApiInterface { */ @POST("customer/family/addFamily") suspend fun addFamilyGuardian(@Body rb: RequestBody): RespBody + + /** + * 家人健康列表 + */ + @POST("customer/family/familyList") + suspend fun getFamilyList(@Body rb:RequestBody) : RespBody> + + /** + * 退出监护 + */ + @GET("customer/family/remove") + suspend fun exitCustody(@Query("id") id: String): RespBody + + + /** + * 获取演示模式 + */ + @POST("customer/user/isDemonstrate") + suspend fun getIsDemonstrate(@Body rb:RequestBody):RespBody + + /** + * 查询被邀请监护人信息 + */ + @POST("customer/family/findConfirmInfo") + suspend fun findConfirmInfo(@Body rb:RequestBody):RespBody + + /** + * 确认邀请 + */ + @POST("customer/family/confirmInfo") + suspend fun confirmInvited(@Body rb:RequestBody):RespBody + + /** + * 获取设备型号 + */ + @POST("customer/user/getDeviceTypeList") + suspend fun getDeviceTypeList(@Body rb:RequestBody):RespBody> } \ No newline at end of file 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 7d77e86..1d129ab 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 resId:Int,val name:String,val type:Int) +data class DeviceBean(val imageUrl:String,val watchTypeName:String,val watchType:Int,val deviceType:String) diff --git a/network/src/main/java/com/xty/network/model/FamilyHealthBean.kt b/network/src/main/java/com/xty/network/model/FamilyHealthBean.kt new file mode 100644 index 0000000..87087ea --- /dev/null +++ b/network/src/main/java/com/xty/network/model/FamilyHealthBean.kt @@ -0,0 +1,24 @@ +package com.xty.network.model + +data class FamilyHealthBean ( + var id:Long, + var userId:Long, + var name:String, + var relation:String, //关系 + var avatarUrl:String, + var isMy:Int, //是否本人0,否,1,是 + var power:String?, //电量 + var dataList: ArrayList ,//数据列表 + var avatarList:ArrayList? +) { + + data class FamilyTargetBean( + var name:String,//名称 + var type:Int, //类型1,心率,2,血氧,3.呼吸率,4.体温,5,血压,6.步数,7,血糖,8,尿酸 + var status:Int,//状态:0,异常,1,正常 + var value:String //值 + + ){ + + } +} \ No newline at end of file diff --git a/network/src/main/java/com/xty/network/model/InviteCustodyBean.kt b/network/src/main/java/com/xty/network/model/InviteCustodyBean.kt new file mode 100644 index 0000000..42ffa78 --- /dev/null +++ b/network/src/main/java/com/xty/network/model/InviteCustodyBean.kt @@ -0,0 +1,4 @@ +package com.xty.network.model + +data class InviteCustodyBean(val phone:String,val id:String) { +} \ No newline at end of file