|
|
@ -3,22 +3,18 @@ package com.zj365.dc.fragment
|
|
|
|
import android.Manifest
|
|
|
|
import android.Manifest
|
|
|
|
import android.annotation.SuppressLint
|
|
|
|
import android.annotation.SuppressLint
|
|
|
|
import android.content.Intent
|
|
|
|
import android.content.Intent
|
|
|
|
import android.graphics.Color
|
|
|
|
|
|
|
|
import android.graphics.drawable.Drawable
|
|
|
|
|
|
|
|
import android.os.Build
|
|
|
|
import android.os.Build
|
|
|
|
import android.provider.Settings
|
|
|
|
import android.provider.Settings
|
|
|
|
import android.text.Spannable
|
|
|
|
import android.text.Spannable
|
|
|
|
import android.text.SpannableString
|
|
|
|
import android.text.SpannableString
|
|
|
|
import android.text.TextUtils
|
|
|
|
import android.text.TextUtils
|
|
|
|
|
|
|
|
import android.text.method.KeyListener
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import androidx.core.content.ContextCompat
|
|
|
|
import androidx.core.content.ContextCompat
|
|
|
|
import androidx.core.view.isVisible
|
|
|
|
import androidx.core.view.isVisible
|
|
|
|
import androidx.lifecycle.MutableLiveData
|
|
|
|
import androidx.lifecycle.MutableLiveData
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
|
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
|
|
|
|
import cn.jpush.android.api.JPushInterface
|
|
|
|
import cn.jpush.android.api.JPushInterface
|
|
|
|
import com.gyf.immersionbar.ImmersionBar
|
|
|
|
|
|
|
|
import com.tamsiree.rxkit.RxTimeTool
|
|
|
|
import com.tamsiree.rxkit.RxTimeTool
|
|
|
|
import com.xty.base.fragment.BaseVmFrag
|
|
|
|
import com.xty.base.fragment.BaseVmFrag
|
|
|
|
import com.xty.base.utils.UserInfoDefin
|
|
|
|
import com.xty.base.utils.UserInfoDefin
|
|
|
@ -53,23 +49,23 @@ import com.xty.common.util.CommonToastUtils
|
|
|
|
import com.xty.common.util.CommonUtils
|
|
|
|
import com.xty.common.util.CommonUtils
|
|
|
|
import com.xty.common.weight.CenterImageSpan
|
|
|
|
import com.xty.common.weight.CenterImageSpan
|
|
|
|
import com.xty.common.work.MyWorkManger
|
|
|
|
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.MyRetrofit
|
|
|
|
import com.xty.network.model.DeviceFunctionBean
|
|
|
|
import com.xty.network.model.DeviceFunctionBean
|
|
|
|
import com.xty.network.model.FamilyBean
|
|
|
|
|
|
|
|
import com.xty.network.model.HealthMonitoringListBean
|
|
|
|
import com.xty.network.model.HealthMonitoringListBean
|
|
|
|
import com.xty.network.model.MainBean
|
|
|
|
|
|
|
|
import com.xty.network.model.MessageBean
|
|
|
|
import com.xty.network.model.MessageBean
|
|
|
|
import com.xty.network.model.ReportBean
|
|
|
|
import com.xty.network.model.ReportBean
|
|
|
|
import com.zj365.dc.BuildConfig
|
|
|
|
import com.zj365.dc.BuildConfig
|
|
|
|
import com.zj365.dc.R
|
|
|
|
import com.zj365.dc.R
|
|
|
|
|
|
|
|
|
|
|
|
import com.zj365.dc.adapter.HealthMonitoringAdapter
|
|
|
|
import com.zj365.dc.adapter.HealthMonitoringAdapter
|
|
|
|
import com.zj365.dc.databinding.FragDynamicManagementBinding
|
|
|
|
import com.zj365.dc.databinding.FragDynamicManagementBinding
|
|
|
|
import com.zj365.dc.vm.DynamicManagementVm
|
|
|
|
import com.zj365.dc.vm.DynamicManagementVm
|
|
|
|
import com.zj365.health.vm.ReportVm
|
|
|
|
import com.zj365.health.vm.ReportVm
|
|
|
|
import com.zj365.health.weight.DialogTip
|
|
|
|
import com.zj365.health.weight.DialogTip
|
|
|
|
|
|
|
|
import com.zj365.mime.weight.NoticeSettingDialog
|
|
|
|
|
|
|
|
import io.reactivex.Observable
|
|
|
|
|
|
|
|
import io.reactivex.Observer
|
|
|
|
|
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
|
|
|
|
|
|
|
import io.reactivex.disposables.Disposable
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
import kotlinx.coroutines.Job
|
|
|
|
import kotlinx.coroutines.Job
|
|
|
|
import kotlinx.coroutines.delay
|
|
|
|
import kotlinx.coroutines.delay
|
|
|
@ -80,8 +76,7 @@ import org.json.JSONArray
|
|
|
|
import org.json.JSONObject
|
|
|
|
import org.json.JSONObject
|
|
|
|
import pub.devrel.easypermissions.EasyPermissions
|
|
|
|
import pub.devrel.easypermissions.EasyPermissions
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
import java.util.regex.Matcher
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
import java.util.regex.Pattern
|
|
|
|
|
|
|
|
import kotlin.math.max
|
|
|
|
import kotlin.math.max
|
|
|
|
import kotlin.math.min
|
|
|
|
import kotlin.math.min
|
|
|
|
|
|
|
|
|
|
|
@ -150,6 +145,8 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
|
|
|
|
"心率", "血氧", "呼吸率", "体温", "步数", "睡眠", "血压", "血糖", "心电", "尿酸", "血脂"
|
|
|
|
"心率", "血氧", "呼吸率", "体温", "步数", "睡眠", "血压", "血糖", "心电", "尿酸", "血脂"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private var getHealthInfoJob: Job? = null
|
|
|
|
|
|
|
|
|
|
|
|
@SuppressLint("ResourceType")
|
|
|
|
@SuppressLint("ResourceType")
|
|
|
|
override fun initView() {
|
|
|
|
override fun initView() {
|
|
|
|
super.initView()
|
|
|
|
super.initView()
|
|
|
@ -477,6 +474,8 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
|
|
|
|
// mViewModel.getMySetting()
|
|
|
|
// mViewModel.getMySetting()
|
|
|
|
mViewModel.getTips()
|
|
|
|
mViewModel.getTips()
|
|
|
|
mViewModel.getRank(2)
|
|
|
|
mViewModel.getRank(2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
get24HourReportInfo(showIdInfo)// 这里调用一次接口,防止首次进入App不会刷新评估状态
|
|
|
|
if(MMkvHelper.contains(Const.LATITUDE) && MMkvHelper.contains(Const.LONGITUDE)){
|
|
|
|
if(MMkvHelper.contains(Const.LATITUDE) && MMkvHelper.contains(Const.LONGITUDE)){
|
|
|
|
mViewModel.getWeather()
|
|
|
|
mViewModel.getWeather()
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
@ -733,7 +732,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
|
|
|
|
Const.functionListDate.value = functionList
|
|
|
|
Const.functionListDate.value = functionList
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
startUpdateHealthInfoLive()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取首页所有信息返回
|
|
|
|
//获取首页所有信息返回
|
|
|
@ -790,7 +789,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
|
|
|
|
} else {*/
|
|
|
|
} else {*/
|
|
|
|
if (showIdInfo == MMkvHelper.getLong(Const.USER_ID).toString()) { //自己
|
|
|
|
if (showIdInfo == MMkvHelper.getLong(Const.USER_ID).toString()) { //自己
|
|
|
|
val localBlueMac = MMkvHelper.getString(Const.Blue_Tooth)
|
|
|
|
val localBlueMac = MMkvHelper.getString(Const.Blue_Tooth)
|
|
|
|
if (YCBBlueConnectHelper.getBleNowStatus() == YCBBlueConnectHelper.BLEConnectState.DisConnect) {//如果本地有蓝牙信息且属于未连接状态,则直接连接
|
|
|
|
/*if (YCBBlueConnectHelper.getBleNowStatus() == YCBBlueConnectHelper.BLEConnectState.DisConnect) {//如果本地有蓝牙信息且属于未连接状态,则直接连接
|
|
|
|
LogUtils.d("startConnect::${localBlueMac}")
|
|
|
|
LogUtils.d("startConnect::${localBlueMac}")
|
|
|
|
if (localBlueMac.isNullOrEmpty()) {
|
|
|
|
if (localBlueMac.isNullOrEmpty()) {
|
|
|
|
mainUIUpdate(YCBBlueConnectHelper.BLEConnectState.DisConnect)//刷新蓝牙连接状态
|
|
|
|
mainUIUpdate(YCBBlueConnectHelper.BLEConnectState.DisConnect)//刷新蓝牙连接状态
|
|
|
@ -800,13 +799,14 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (YCBBlueConnectHelper.getBleNowStatus() == YCBBlueConnectHelper.BLEConnectState.Connected) {
|
|
|
|
} else if (YCBBlueConnectHelper.getBleNowStatus() == YCBBlueConnectHelper.BLEConnectState.Connected) {
|
|
|
|
getConnectStatus()
|
|
|
|
getConnectStatus()
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
get24HourReportInfo(showIdInfo)// 这里调用一次接口,防止首次进入App不会刷新评估状态
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//设置健康监测按钮列表数据
|
|
|
|
//设置健康监测按钮列表数据
|
|
|
|
healthMonitoringList.clear()
|
|
|
|
healthMonitoringList.clear()
|
|
|
@ -1209,6 +1209,52 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private var mDisposable: Disposable? = null
|
|
|
|
|
|
|
|
fun startUpdateHealthInfoLive(){
|
|
|
|
|
|
|
|
LogUtils.e("DynamicManagementFrag","刷新数据")
|
|
|
|
|
|
|
|
getHealthInfoJob = mainScope.launch (Dispatchers.IO){
|
|
|
|
|
|
|
|
if(mDisposable == null){
|
|
|
|
|
|
|
|
Observable.interval(1000 * 60,60*60*1000,TimeUnit.MILLISECONDS)
|
|
|
|
|
|
|
|
.observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<Long>{
|
|
|
|
|
|
|
|
override fun onSubscribe(d: Disposable) {
|
|
|
|
|
|
|
|
mDisposable = d
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onError(e: Throwable) {
|
|
|
|
|
|
|
|
cancelTimer()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onComplete() {
|
|
|
|
|
|
|
|
cancelTimer()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onNext(t: Long) {
|
|
|
|
|
|
|
|
LogUtils.e("DynamicManagementFrag","刷新数据${t}s")
|
|
|
|
|
|
|
|
mViewModel.getAllInfo(showIdInfo, false,true)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun cancelTimer(){
|
|
|
|
|
|
|
|
mDisposable?.let {
|
|
|
|
|
|
|
|
if(it.isDisposed){
|
|
|
|
|
|
|
|
it.dispose()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onDestroyView() {
|
|
|
|
|
|
|
|
cancelTimer()
|
|
|
|
|
|
|
|
super.onDestroyView()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun mainUIUpdate(connectState: YCBBlueConnectHelper.BLEConnectState) {
|
|
|
|
private fun mainUIUpdate(connectState: YCBBlueConnectHelper.BLEConnectState) {
|
|
|
|
mainScope.launch(Dispatchers.Main) {
|
|
|
|
mainScope.launch(Dispatchers.Main) {
|
|
|
|
when (connectState) {
|
|
|
|
when (connectState) {
|
|
|
|