中建365-二期优化

develop
wlh 1 year ago
parent 4176e8ed0f
commit 69a139a865

@ -179,6 +179,10 @@
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity android:name="com.zj365.dc.activity.WatchFamilyHealthAct"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name="com.zj365.mime.act.MyInfoAct"
android:launchMode="singleTop"

@ -48,7 +48,7 @@ class LoginAct : BaseVmAct<LoginVm>() {
val dialogBind by lazy {
DialogTipNew(this,"温馨提示", "恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。", "前往","取消",false,{
DialogTipNew(this,"温馨提示", "恭喜您成为中健三六五大家庭的一员,为了提供更好的信息服务,请完善您的基本信息。", "前往","取消",false,{
RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE)
EventBus.getDefault().post(LoginOrRegisterEvent())
finish()

@ -0,0 +1,43 @@
package com.zj365.dc.activity
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
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.zj365.dc.databinding.ActWatchFamilyHealthBinding
import com.zj365.dc.fragment.DynamicManagementFrag
@Route(path = ARouterUrl.WATCH_FAMILY_HEALTH)
class WatchFamilyHealthAct : BaseVmAct<BaseVm>() {
val binding by lazy { ActWatchFamilyHealthBinding.inflate(layoutInflater) }
var showIdInfo = ""
override fun liveObserver() {
}
override fun initView() {
super.initView()
statusBar(binding.title.mView)
binding.title.mTvTitle.text ="健康监测"
binding.title.mIvBack.setOnClickListener {
finish()
}
showIdInfo = intent.extras!!.getString("id","")
supportFragmentManager.beginTransaction().replace(binding.container.id, setArgumentFrag(DynamicManagementFrag(),showIdInfo)).commit()
}
private fun setArgumentFrag(frag: Fragment, id: String = ""): Fragment {
val bundle = Bundle()
bundle.putString("id", id)
frag.arguments = bundle
return frag
}
override fun setLayout() = binding.root
}

@ -19,7 +19,13 @@ class HomeTopLayoutAdapter(var mContext: Context): BaseAdapter<HomeLayoutBean.Ho
var screenWidth = context.resources.displayMetrics.widthPixels
val layoutParam = holder.getView<LinearLayout>(R.id.root).layoutParams
if (data.size < 4){
layoutParam.width = screenWidth /4
}else{
layoutParam.width = screenWidth /data.size
}
holder.getView<LinearLayout>(R.id.root).layoutParams = layoutParam
holder.getView<ImageView>(R.id.img_top).setImage(context,item.imageUrl)

@ -100,7 +100,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
private val dialogInfoUn by lazy {
DialogTip(requireContext(), "请完善基本信息") {
RouteManager.goAct(ARouterUrl.INFO_SIMPLE)
RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE)
}
}
private val reqGpsPermissionDialog by lazy {
@ -117,16 +117,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
}
}
//重签名
private val signDialog by lazy {
AgainSignDialog(requireContext(), {
RouteManager.goAct(ARouterUrl.LOGIN_ACT)
requireActivity().finish()
}) {
RouteManager.goAct(ARouterUrl.AGAIN_SIGN)
}
}
//健康监测按钮数据集合
private var healthMonitoringList: MutableList<HealthMonitoringListBean> =
mutableListOf()//(小于等于9)
@ -167,12 +157,19 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
isShrinkage =
MMkvHelper.getBoolean(Const.Health_Monitoring_Shrinkage + MMkvHelper.getLong(Const.USER_ID))
if(arguments?.containsKey("id") == true){
showIdInfo = arguments?.getString("id").toString()
}else{
showIdInfo =if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") {
""
} else {
MMkvHelper.getLong(Const.USER_ID).toString()
}
}
//点击事件
setOnClickListener()
@ -244,21 +241,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
}
7 -> { //血糖
// mHealthAdapter.xtangInfo?.apply {
// if (model == 0) {
// bundle.clear()
// bundle.putBoolean("isOpen", false)
// if (showIdInfo.isNullOrEmpty()) {//给自己开通
// bundle.putString("id", CommonUtils.getMyUserId())
// } else {//给他人开通
// bundle.putString("id", showIdInfo)
// }
//
// RouteManager.goAct(ARouterUrl.XT_OPEN, bundle)
// } else {
// goPage(index)
// }
// }
val deviceType = MMkvHelper.getString(Const.DEVICE_TYPE)
/*if (deviceType == "X1" || deviceType == "X2") {
goPage(5)
@ -310,7 +292,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
override fun onResume() {
super.onResume()
mViewModel.getWarningMsg()
// mViewModel.getWarningMsg()
}
//点击事件
@ -344,51 +326,10 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
CommonToastUtils.showToast("敬请期待")
return@OnClickListener
/*val btnStr = binding.mHeader.mWearManager.text
if (btnStr == "佩戴管理") {
if (MMkvHelper.getInt(Const.Watch_Device_Type) == Const.Companion.WatchDevice.LightA3.ordinal) {//4G手表
RouteManager.goAct(ARouterUrl.WEAR_MANAGER)
} else if (YCBBlueConnectHelper.getBlueStatus(false)) {//蓝牙手表并已经连接
RouteManager.goAct(ARouterUrl.DEVICE_SETTING)
} else {
if (blueTooth()) {
bundle.clear()
bundle.putBoolean("isBind", true)
bundle.putString("devMac", CommonUtils.getBlueToothMac())
RouteManager.goAct(ARouterUrl.DEVICE_CONNECT, bundle)
} else {
dialogBind.show()
}
}
} else {
RouteManager.goAct(ARouterUrl.DEVICE_CHOICE)
}*/
}
//评估
R.id.mCard -> {
// if (isDemonstrate) {
// bundle.clear()
// bundle.putBoolean("isDemonstrate", isDemonstrate)
//// RouteManager.goAct(ARouterUrl.HEALTH_24HOUR_REPORT, bundle)//新24小时
// RouteManager.goAct(ARouterUrl.HEALTH_ESTIMATE, bundle)//新24小时
// return@OnClickListener
// }
//// if (!canGoto24Healthresult) {
//// showToast("数据不足或数据建模中,无法查看健康评估")
//// return@OnClickListener
//// }
// CommonUtils.getMyUserInfo()?.apply {
// bundle.clear()
// bundle.putString("id", showIdInfo)
// bundle.putString(
// "openId",
// if (openId.isNullOrEmpty()) "" else openId
// )
// bundle.putSerializable("reportBean", reportBean)
//// RouteManager.goAct(ARouterUrl.HEALTH_24HOUR_REPORT, bundle)//新24小时
// RouteManager.goAct(ARouterUrl.HEALTH_ESTIMATE, bundle)//新24小时
//// RouteManager.goAct(ARouterUrl.HEALTH_STATUS, bundle)//旧版健康分析改24小时分析接口调用
// }
bundle.clear()
bundle.putSerializable("index", ReportVm.ReportInfoType.Hour)
bundle.putString("id", showIdInfo)
@ -448,7 +389,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
bundle.putBoolean("isDemonstrate", isDemonstrate)
bundle.putInt("pageType", 0)
bundle.putString("titleName", "日报")
// RouteManager.goAct(ARouterUrl.HEALTH_REPORT, bundle)//老版(日周月年)报
RouteManager.goAct(ARouterUrl.HEALTH_SKY_HOUR_REPORT, bundle)
}
//周报
@ -459,8 +399,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
bundle.putSerializable("index", ReportVm.ReportInfoType.Week)
bundle.putBoolean("isDemonstrate", isDemonstrate)
bundle.putString("titleName", "周报")
// bundle.putInt("pageType", 1)
// RouteManager.goAct(ARouterUrl.HEALTH_REPORT, bundle)//老版(日周月年)报
RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle)
}
//月报
@ -471,8 +410,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
bundle.putSerializable("index", ReportVm.ReportInfoType.Month)
bundle.putBoolean("isDemonstrate", isDemonstrate)
bundle.putString("titleName", "月报")
// bundle.putInt("pageType", 2)
// RouteManager.goAct(ARouterUrl.HEALTH_REPORT, bundle)//老版(日周月年)报
RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle)
}
//年报
@ -483,8 +420,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
bundle.putSerializable("index", ReportVm.ReportInfoType.Year)
bundle.putBoolean("isDemonstrate", isDemonstrate)
bundle.putString("titleName", "年报")
// bundle.putInt("pageType", 3)
// RouteManager.goAct(ARouterUrl.HEALTH_REPORT, bundle)//老版(日周月年)报
RouteManager.goAct(ARouterUrl.HEALTH_WEEK_MONTH_HOUR_REPORT, bundle)
}
//24小时健康评估
@ -577,13 +512,13 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
private fun request() {
mViewModel.getAllInfo(showIdInfo, false)
mViewModel.getMySetting()
// mViewModel.getMySetting()
mViewModel.getTips()
mViewModel.getRank(2)
if(MMkvHelper.contains(Const.LATITUDE) && MMkvHelper.contains(Const.LONGITUDE)){
mViewModel.getWeather()
}else{
if (MMkvHelper.getLong(Const.USER_ID).toString() == "0"){
if (showIdInfo == ""){
}else{
if(EasyPermissions.hasPermissions(requireContext(), Manifest.permission.ACCESS_COARSE_LOCATION,
@ -752,47 +687,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
}
}
/**
* 设置天气信息
*/
private fun setWeatherInfo(weather: MainBean.Weather?) {
if (null == weather) {
binding.mHeader.tvWeather.visibility = View.GONE
} else {
weather.apply {
if (weatherNo.isNullOrEmpty()) {
binding.mHeader.tvWeather.visibility = View.GONE
return
}
var icon = when (weatherNo) {
"32" -> {//晴天
"晴天"
}
"44" -> {//多云
"多云"
}
"20" -> {//阴天
"阴天"
}
"12" -> {//雨天
"雨天"
}
"45" -> {//雷阵雨
"雷阵雨"
}
"16" -> {//雪
""
}
else -> {
"晴天"
}
}
binding.mHeader.tvWeather.text = "${icon} ${weatherInfo}"
}
}
}
/**
* 获取所有信息
*/
@ -873,7 +767,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
dialogInfoUn.show()
}
isDemonstrate = bean.demonstrate == 1 //1 演示模式0 普通模式
(requireActivity() as MainActivity).isDemonstrate = isDemonstrate
// (requireActivity() as MainActivity).isDemonstrate = isDemonstrate
if (isDemonstrate) {
binding.mHeader.mWearInfo.visibility = View.INVISIBLE
} else {
@ -881,7 +775,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
}
if (showIdInfo.isNotEmpty()) { //自己
if (showIdInfo == CommonUtils.getMyUserId()) { //自己
Const.otherLiveData.value = bean
}
Const.battery = bean.power
@ -890,7 +784,10 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
binding.mHeader.tvNowTime.text = bean.nowDay
binding.mHeader.tvLanuDate.text = bean.chinaDay
// setWeatherInfo(bean.weather)
//设置用户头像
setUserImage(bean.user.id.toString(), bean.user.image, bean.user.sex.toString())
binding.mHeader.tvUserName.text = bean.user.name
bean.bmiInfo?.let {
binding.mHeader.mBMI.text = "BMI ${it.bmi}"
@ -912,7 +809,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
} else if (Const.Companion.WatchDevice.LightA3.ordinal == bean.watchType) {//如果是4G设备设置连接状态与电量信息
} else {*/
if (showIdInfo.isEmpty()) { //自己
if (showIdInfo ==CommonUtils.getMyUserId()) { //自己
val localBlueMac = MMkvHelper.getString(Const.Blue_Tooth)
if (YCBBlueConnectHelper.getBleNowStatus() == YCBBlueConnectHelper.BLEConnectState.DisConnect) {//如果本地有蓝牙信息且属于未连接状态,则直接连接
LogUtils.d("startConnect::${localBlueMac}")
@ -946,6 +843,8 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
} else {
MMkvHelper.put(Const.DEVICE_TYPE, deviceType)
}
requestByDeviceModel()
if (healthMonitoringListData.size > 9) {
for ((index, healthMonitoringListBean) in healthMonitoringListData.withIndex()) {
if (index < 9) {
@ -997,16 +896,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
return@observe
}
/*if (mFamilyAdapter.position != -1) {
if (mFamilyAdapter.getItem(mFamilyAdapter.position).userJointId != it.data.user?.id) {
if (mFamilyAdapter.position == 0 && it.data.user?.id.toString() == CommonUtils.getMyUserId()) {//如果是自己,啥也不做
} else {
LogUtils.e("当前用户与请求用户信息不一致,不作处理!")
return@observe
}
}
}*/
reportBean = it.data
@ -1030,16 +919,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
healthResult,
if (it.data.star.isNullOrEmpty()) 0 else it.data.star.toInt()
)
// if (healthResult == 3) {
// binding.mCom.mHealthStatus.setCompoundDrawables(null, null, null, null)
// } else {
// var drawable = ContextCompat.getDrawable(
// requireContext(),
// UserInfoDefin.healthIcon[healthResult + 1]
// )
// drawable!!.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight)
// binding.mCom.mHealthStatus.setCompoundDrawables(drawable, null, null, null)
// }
}
//个人设置信息获取
@ -1067,9 +946,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
if (settingBean.user.avatarUrl.isEmpty()) "" else settingBean.user.avatarUrl
}*/
//设置用户头像
setUserImage(settingBean.user.id, settingBean.user.avatarUrl, settingBean.user.sex.toString())
binding.mHeader.tvUserName.text = settingBean.user.name
if (settingBean.user.bluetooth.isNullOrEmpty()) { //没有mac地址表示未绑定
// binding.mContent.visibility = View.VISIBLE
@ -1088,7 +965,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
val againTime = RxTimeTool.string2Milliseconds("2022-07-01 21:00:00")
val signTime = RxTimeTool.string2Milliseconds(signTime)
if (signTime < againTime) {
signDialog.show()
//signDialog.show()
}
}
/* if (CommonUtils.isBlueTooth(MMkvHelper.getInt(Const.Watch_Device_Type))) {//如果是蓝牙设备
@ -1176,12 +1053,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
setTips(list)
}
// //步数信息
// mViewModel.dkInfo.observe(this) {
// mHealthAdapter.dkBean = it.data
// mHealthAdapter.notifyDataSetChanged()
// }
//步数上传
mViewModel.uploadStep.observe(this) {
//步数上传成功
@ -1190,43 +1061,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
mViewModel.getAllInfo(showIdInfo, false)
}
//我家人信息
/* mViewModel.familyLive.observe(this) {
it.data.add(0, FamilyBean().apply {
this.fCall = ""
})
var selectPosition = 0
if (showIdInfo.isNotEmpty()) {
it.data.forEachIndexed { index, familyBean ->
if (showIdInfo == familyBean.userJointId.toString()) {
selectPosition = index
return@forEachIndexed
}
}
//如果家人解绑了 则直接查自己的
if (selectPosition == 0) {
showIdInfo = ""
}
}
// val content =
// getString(R.string.family_num, "" + "${it.data.size - 1}")
// binding.mGriddingList.tvFamilyContent.text = setStrSpan(
// content,
// 15,
// getColor(R.color.col_25C),
// Typeface.BOLD,
// content.length - 3 - (it.data.size - 1).toString().length,
// content.length - 3
// )
it.data.add(FamilyBean().apply {
this.fCall = "家人"
})
mFamilyAdapter.position = selectPosition
mFamilyAdapter.setNewInstance(it.data)
}*/
//手表信息组装上传
mViewModel.allDataInfo.observe(this) {
if (null == it || it["data"] == null || it["data"] !is ArrayList<*>) {
@ -1333,7 +1167,6 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
when (MMkvHelper.getInt(Const.Watch_Device_Type)) {//如果是4GA3设备则隐藏心电板块
Const.Companion.WatchDevice.LightA3.ordinal -> {
getXtInfo(showIdInfo, false)//获取血糖信息
// get24HourReportInfo(showIdInfo)//获取24小时日报
}
else -> {
@ -1544,28 +1377,8 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
)
)
}
// text =
// setStrSpan(content, 13, getColor(com.xty.health.R.color.col_ff7), Typeface.BOLD, content.length - 3 - percent.length, content.length - 3)
}
// /**
// * 设置设备信息
// */
// private fun setBindDeviceInfo(deviceInfo: MainBean.DeviceTotal?) {
// deviceInfo?.let {
// binding.mChildView.tvXueyaNum.text = "已绑定" + it.sphygmomanometer + "台"
// binding.mChildView.tvXuetangNum.text = "已绑定" + it.bloodGlucose + "台"
// }
// binding.mChildView.llXueya.setOnClickListener {
// //已绑定血压列表
// RouteManager.goAct(ARouterUrl.XUEYAJI_BIND_LIST, null)
// }
// binding.mChildView.llXuetang.setOnClickListener {
// //已绑定血糖列表
// RouteManager.goAct(ARouterUrl.XUETANGYI_BIND_LIST, null)
// }
// }
private fun initBlueToothStatu() {

@ -60,15 +60,6 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
val binding by lazy { FragHealthBinding.inflate(layoutInflater) }
//重签名
private val signDialog by lazy {
AgainSignDialog(requireContext(), {
RouteManager.goAct(ARouterUrl.LOGIN_ACT)
requireActivity().finish()
}) {
RouteManager.goAct(ARouterUrl.AGAIN_SIGN)
}
}
private var canGoto24Healthresult: Boolean = true
private var isDemonstrate: Boolean = false
@ -99,11 +90,6 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
RouteManager.goAct(ARouterUrl.DEVICE_CHOICE)
}
}
private val dialogInfoUn by lazy {
DialogTip(requireContext(), "请完善基本信息") {
RouteManager.goAct(ARouterUrl.INFO_SIMPLE)
}
}
override fun setLayout(): View = binding.root
override fun initView() {
super.initView()
@ -511,36 +497,6 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
}
private var onClickListener = View.OnClickListener {
when (it.id) {
R.id.ll_health_records -> { //健康档案
bundle.putString("id", showIdInfo)
RouteManager.goAct(ARouterUrl.HEALTH_RECORD, bundle)
}
//防癌
R.id.ll_cancer_screening -> {
// onEventObject(requireContext(), UmengEventId.HealthRisk)
bundle.clear()
bundle.putString("id", showIdInfo)
RouteManager.goAct(ARouterUrl.PRVENT_CANCER, bundle)
// showToast("功能暂未开通,敬请期待")
}
//舌诊
R.id.ll_ai_tongue_diagnosis -> {
onEventObject(requireContext(), UmengEventId.HealthRisk)
bundle.clear()
bundle.putString("id", showIdInfo)
RouteManager.goAct(ARouterUrl.TONGUE_MAIN_ACTIVITY, bundle)
// showToast("功能暂未开通,敬请期待")
}
}
}
// 刷新注册
private fun refresh() {
refresh.setRefresh(binding.mRefresh) {
@ -591,7 +547,6 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
}else{
binding.mBannerCardTwo.visibility = View.VISIBLE
mMiddleBannerAdapter.setDatas(it[2])
// mMiddleBannerAdapter.notifyDataSetChanged()
}
@ -601,33 +556,6 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
mViewModel.scinceLive.observe(this) {
adapterSince.setNewInstance(it.data)
}
//我家人信息
mViewModel.familyLive.observe(this) {
mFamilyAdapter.data.clear()
it.data.add(0, FamilyBean().apply {
this.fCall = ""
})
var selectPosition = 0
if (showIdInfo.isNotEmpty()) {
it.data.forEachIndexed { index, familyBean ->
if (showIdInfo == familyBean.userJointId.toString()) {
selectPosition = index
return@forEachIndexed
}
}
//如果家人解绑了 则直接查自己的
if (selectPosition == 0) {
showIdInfo = ""
}
}
it.data.add(FamilyBean().apply {
this.fCall = "家人"
})
mFamilyAdapter.position = selectPosition
mFamilyAdapter.setNewInstance(it.data)
}
mViewModel.layoutLive.observe(this){
layoutTopAdapter.setNewInstance(it.data.top)
if(it.data.middle.size <= 6){
@ -663,22 +591,8 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
binding.mCom.mRecycle.adapter = mFamilyAdapter
mFamilyAdapter.setOnItemClickListener { adapter, view, position ->
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) {
showFamily = null
""
} else {
showFamily = bean
bean.userJointId.toString()
}
mFamilyAdapter.position = position
mFamilyAdapter.notifyDataSetChanged()
EventBus.getDefault().post(ChangeFamilyEvent(showIdInfo))
RouteManager.goAct(ARouterUrl.FAMILY_HEALTH_ACT)
}
}
@ -700,28 +614,6 @@ HealthHomeFrag : BaseVmFrag<HomeVm>() {
reqGpsPermissionDialog.show()
}
//个人信息修改 主界面刷新
@Subscribe(threadMode = ThreadMode.MAIN)
fun refresh(event: MyInfoEvent) {
if (dialogBind.isShowing) {
dialogBind.dismiss()
}
request()
}
//家人信息改变 刷新
@Subscribe(threadMode = ThreadMode.MAIN)
fun familyChange(event: FamilyEvent) {
// mViewModel.getMyFamilyList()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun againSignEvent(event: AgainSignEvent) {
signDialog.dismiss()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun loginOrRegisterChange(event: LoginOrRegisterEvent){
showIdInfo =if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") {

@ -6,6 +6,7 @@ import android.net.Uri
import android.os.Build
import android.view.View
import androidx.annotation.RequiresApi
import cn.jpush.android.api.JPushInterface
import com.xty.base.dialog.AppUpdateDialog
import com.xty.base.fragment.BaseVmFrag
import com.xty.common.*
@ -65,12 +66,6 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
var inviteCustodyBean: InviteCustodyBean? = null
private val dialogBind by lazy {
DialogTip(requireContext(), "需绑定中健三六五健康手表,才能查看", "去绑定") {
RouteManager.goAct(ARouterUrl.DEVICE_CHOICE)
}
}
val dialogInvite by lazy {
DialogTipNew(requireContext(), "监护邀请","", "确认","取消",false,{
inviteCustodyBean?.let {
@ -185,13 +180,6 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
RouteManager.goAct(ARouterUrl.SUBMIT_REPORTMain, bundle)
}
}
/*binding.llOrder.setOnClickListener {
if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){
RouteManager.goAct(ARouterUrl.LOGIN_ACT)
}else {
CommonToastUtils.showToast("敬请期待")
}
}*/
binding.mllMember.setOnClickListener {
if(MMkvHelper.getLong(Const.USER_ID).toString() == "0"){
@ -250,9 +238,7 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
bundle.putBoolean("isDemonstrate", isDemonstrate)
bundle.putInt("pageType", 0)
bundle.putString("titleName", "日报")
// RouteManager.goAct(ARouterUrl.HEALTH_REPORT, bundle)//老版(日周月年)报
RouteManager.goAct(ARouterUrl.HEALTH_SKY_HOUR_REPORT, bundle)
// CommonToastUtils.showToast("敬请期待")
}
}
binding.llStartBs.setOnClickListener {
@ -329,10 +315,6 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
RouteManager.goAct(ARouterUrl.LOGIN_ACT)
}else {
CommonToastUtils.showToast("敬请期待")
/* bundle.clear()
bundle.putString("id", user?.id)
RouteManager.goAct(ARouterUrl.ORDER_LIST, bundle)*/
}
}
@ -392,10 +374,8 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
private fun refresh() {
refresh.setRefresh(binding.mRefresh) {
mViewModel.getMySetting()
// }
mViewModel.getAllInfo(showIdInfo,false)
// mViewModel.getScore(1)
mViewModel.searchInviteInfo()
}
}
@ -471,6 +451,14 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
mViewModel.settingLive.observe(this) {
if (null == it.data) return@observe
it.data.let { settingBean ->
if (BuildConfig.isRelease) {//设置极光推送别名
JPushInterface.setAlias(
requireContext(),
settingBean.user.id.toInt(),
"user_release_${settingBean.user.id}"
)
}
Const.mainLiveData.value = settingBean
// binding.mNoNetwork.root.visibility = View.GONE
}

@ -1,226 +0,0 @@
/*
package com.zj365.dc.fragment
import android.view.View
import androidx.recyclerview.widget.*
import com.tencent.qcloud.tuikit.tuiconversation.classicui.util.TUIConversationUtils
import com.xty.base.fragment.BaseVmFrag
import com.xty.common.*
import com.xty.common.arouter.ARouterUrl
import com.xty.common.arouter.RouteManager
import com.xty.common.util.CommonUtils
import com.xty.network.model.ExpertBean
import com.xty.network.model.KeeperBean
import com.xty.network.model.ScienceBean
class ServerFrag : BaseVmFrag<ServerVm>() {
val binding by lazy { FragServerBinding.inflate(layoutInflater) }
val adapterSince by lazy { ScienceAdapter() }
val gjAdalter by lazy { GjAdapter() }
val proAdalter by lazy { ProAdapter() }
val sexIcon by lazy { arrayOf(R.mipmap.ic_male, R.mipmap.ic_female) }
var clickOnline: KeeperBean? = null
override fun setLayout(): View = binding.root
override fun setViewModel() = ServerVm()
override fun observer() {
mViewModel.keeperLive.observe(this) {
binding.mNoNetwork.root.visibility = View.GONE
if (!it.data.isNullOrEmpty()) {
val keeperBean = it.data[0]
clickOnline = keeperBean
binding.mDocName.text = keeperBean.realname
binding.mDocName.tag = keeperBean.id
binding.mPosition.text = keeperBean.positionName
binding.mImageSex.setImageResource(sexIcon[keeperBean.getGenderValue()])
binding.mTvLoc.text =
"${if (keeperBean.organization.isNullOrEmpty()) "无" else keeperBean.organization} ${if (keeperBean.dictName.isNullOrEmpty()) "无" else keeperBean.dictName}"
binding.mTitleGj.visibility = View.VISIBLE
// binding.mViewGj.visibility = View.VISIBLE
binding.mPhoto.tag =
if (keeperBean.avatar.isNullOrEmpty()) "" else getImageUrl(keeperBean.avatar)
binding.mPhoto.apply {
setImageUser(requireContext(), getImageUrl(keeperBean.avatar))
}
binding.llgj.visibility = View.VISIBLE
} else {
binding.llgj.visibility = View.GONE
binding.mTitleGj.visibility = View.GONE
// binding.mViewGj.visibility = View.GONE
}
}
mViewModel.keeperLiveList.observe(this) {
binding.mNoNetwork.root.visibility = View.GONE
var listAll = mutableListOf<List<KeeperBean>>()
var step = (0 until it.data.size).step(2)
for (i in step) {
var list = mutableListOf<KeeperBean>()
list.add(it.data[i])
if (it.data.size > i + 1) {
list.add(it.data[i + 1])
}
listAll.add(list)
}
gjAdalter.setNewInstance(it.data)
}
mViewModel.scinceLive.observe(this) {
binding.mNoNetwork.root.visibility = View.GONE
adapterSince.setNewInstance(it.data)
}
mViewModel.expertInfoList.observe(this) {
var listAll = mutableListOf<List<ExpertBean>>()
var step = (0 until it.data.records.size)
for (i in step) {
var list = mutableListOf<ExpertBean>()
list.add(it.data.records[i])
listAll.add(list)
}
proAdalter.setNewInstance(it.data.records)
}
}
override fun initView() {
super.initView()
statusBar(binding.mStatusBar)
initProAdapter()
initGjAdapter()
initAdapter()
binding.mNoNetwork.mRefreshBtn.isSelected = true
binding.mNoNetwork.mRefreshBtn.setOnClickListener {
mViewModel.getExpertInfoList(1, 20)
mViewModel.getKeeper()
mViewModel.getKeeperList()
mViewModel.getScinceList()
}
binding.mTvOnLine.setOnClickListener {
clickOnline?.let {
bundle.clear()
bundle.putSerializable("bean", clickOnline)
RouteManager.goAct(ARouterUrl.ONLINE_MAKE, bundle)
}
}
binding.llNext.setOnClickListener {
onEventObject(requireContext(), UmengEventId.OperGuide)
RouteManager.goAct(ARouterUrl.GUIDE)
}
mViewModel.getExpertInfoList(1, 20)
mViewModel.getKeeper()
mViewModel.getKeeperList()
mViewModel.getScinceList()
binding.clGj.setOnClickListener {
bundle.clear()
CommonUtils.getMyUserInfo()?.let {
val name = binding.mDocName.text?.toString()
val toUserId = binding.mDocName.tag?.toString()
val fromUserId = id?.toString()
val chatImage = binding.mPhoto.tag?.toString()
if (toUserId.isNullOrEmpty() || fromUserId.isNullOrEmpty()) {
return@setOnClickListener
}
// bundle.putString("title",name)
// bundle.putString("toUserId",toUserId)
// bundle.putString("fromUserId", fromUserId)
// bundle.putString("chatImage", chatImage)
// RouteManager.goAct(ARouterUrl.CHAT_MSG,bundle)
TUIConversationUtils.startAYSingleChatActivity("man_$toUserId", name, chatImage);
}
}
refresh()
}
override fun onResume() {
super.onResume()
if (!checkNetworkAvailable(requireContext())) {
binding.mNoNetwork.root.visibility = View.VISIBLE
} else {
// if (binding.mNoNetwork.root.visibility == View.VISIBLE) {
LogUtils.e("yansu:4444444444444444444444")
mViewModel.getExpertInfoList(1, 20)
mViewModel.getKeeper()
mViewModel.getKeeperList()
// mViewModel.getScinceList()
// }
}
}
// 刷新注册
private fun refresh() {
refresh.setRefresh(binding.mRefresh) {
mViewModel.getExpertInfoList(1, 20)
mViewModel.getKeeper()
mViewModel.getKeeperList()
mViewModel.getScinceList()
}
}
private fun initProAdapter() {
binding.mRecycleprofession.layoutManager =
LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false)
binding.mRecycleprofession.adapter = proAdalter
// val pageHelper = LinearSnapHelper()
// pageHelper.attachToRecyclerView(binding.mRecycleprofession)
gjAdalter.addChildClickViewIds(R.id.mImage, R.id.card1)
gjAdalter.setOnItemChildClickListener { adapter, view, position ->
when (view.id) {
R.id.mImage -> {
bundle.clear()
val bean = adapter.getItem(position) as KeeperBean;
bundle.putSerializable("url", bean.introUrl)
bundle.putString("titleName", requireContext().getString(R.string.title_name))
RouteManager.goAct(ARouterUrl.EXPERT_CHIEF, bundle)
}
R.id.card1 -> {
bundle.clear()
val bean = adapter.getItem(position) as KeeperBean;
bundle.putSerializable("bean", bean)
RouteManager.goAct(ARouterUrl.HOUSEKEEP_INFO, bundle)
}
}
}
proAdalter.setOnItemClickListener { adapter, view, position ->
bundle.clear()
val bean = adapter.getItem(position) as ExpertBean;
bundle.putSerializable("url", bean.infoPhotoUrl)
RouteManager.goAct(ARouterUrl.EXPERT_CHIEF, bundle)
}
}
private fun initGjAdapter() {
binding.mRecycle.layoutManager =
LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false)
binding.mRecycle.adapter = gjAdalter
// val pageHelper = LinearSnapHelper()
// pageHelper.attachToRecyclerView(binding.mRecycle)
}
private fun initAdapter() {
binding.mRecycleNews.layoutManager = LinearLayoutManager(requireContext())
binding.mRecycleNews.adapter = adapterSince
adapterSince.setOnItemClickListener { adapter, view, position ->
bundle.clear()
var bean = adapter.getItem(position) as ScienceBean
bundle.putSerializable("bean", bean)
onEventObject(requireContext(), UmengEventId.HealthScience, "${bean.name}")
RouteManager.goAct(ARouterUrl.SCIENCE_DETAIL, bundle)
}
}
}*/

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/title_white_bar"
android:id="@+id/title"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="-12dp"
android:layout_below="@+id/title"
android:id="@+id/container"/>
</RelativeLayout>

@ -20,7 +20,6 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="@dimen/dp_30"
app:srlAccentColor="@color/white">
<com.scwang.smart.refresh.header.ClassicsHeader
@ -178,7 +177,7 @@
<TextView
android:id="@+id/mCoupon"
android:layout_width="37dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/col_313"

@ -19,6 +19,7 @@ class ARouterUrl {
const val CALORIE_ANALYZE = "/com/zj365/dc/activity/CalorieAnalyzeAct"
const val RECOGNIZE_RESULT = "/com/zj365/dc/activity/RecognizeResultAct"
const val MESSAGE_DETAIL_NEW = "/com/zj365/dc/activity/MessageDetailNewAct"
const val WATCH_FAMILY_HEALTH = "/com/zj365/dc/activity/WatchFamilyHealthAct"
// const val FAMILY_INFO="/com/zj365/dc/act/FamilyMainAct"

@ -0,0 +1,198 @@
package com.xty.common.util;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import com.xty.common.R;
import com.yanzhenjie.permission.AndPermission;
import com.yanzhenjie.permission.Rationale;
import com.yanzhenjie.permission.RequestExecutor;
import com.yanzhenjie.permission.runtime.Permission;
import java.util.List;
public class PermissionUtils {
public final static int REQUEST_CODE_SETTING = 103;
/**
*
*/
public interface PermissionSuccessListener {
void onSuccess();
}
/**
*
*/
public interface PermissionFailedListener {
void onFailed();
}
/**
* @param context
* @param listener
* @param permissions
*/
@SuppressLint("WrongConstant")
public static void requestPermission(final Context context, final PermissionSuccessListener listener, String... permissions) {
final PermissionSetting mSetting = new PermissionSetting(context);
AndPermission.with(context)
.runtime()
.permission(permissions)
.rationale(new DefaultRationale())
.onGranted(permissions1 -> {
if (listener != null) {
listener.onSuccess();
}
})
.onDenied(permissions12 -> {
if (AndPermission.hasAlwaysDeniedPermission(context, permissions12)) {
mSetting.showSetting(permissions12);
}
})
.start();
}
/**
* @param context
* @param listener
* @param failedListener
* @param permissions
*/
@SuppressLint("WrongConstant")
public static void requestPermission(final Context context, final PermissionSuccessListener listener, final PermissionFailedListener failedListener, String... permissions) {
final PermissionSetting mSetting = new PermissionSetting(context);
AndPermission.with(context)
.runtime()
.permission(permissions)
.rationale(new DefaultRationale())
.onGranted(permissions1 -> {
if (listener != null) {
listener.onSuccess();
}
})
.onDenied(permissions12 -> {
if (failedListener != null)
failedListener.onFailed();
if (AndPermission.hasAlwaysDeniedPermission(context, permissions12)) {
mSetting.showSetting(permissions12);
}
})
.start();
}
/**
*
*
* @param activity
*/
public static void toPermissionSetting(Activity activity) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {
toSystemConfig(activity);
} else {
try {
toApplicationInfo(activity);
} catch (Exception e) {
e.printStackTrace();
toSystemConfig(activity);
}
}
}
/**
*
*
* @param activity
*/
public static void toApplicationInfo(Activity activity) {
Intent localIntent = new Intent();
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
localIntent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
localIntent.setData(Uri.fromParts("package", activity.getPackageName(), null));
activity.startActivity(localIntent);
}
/**
*
*
* @param activity
*/
public static void toSystemConfig(Activity activity) {
try {
Intent intent = new Intent(Settings.ACTION_SETTINGS);
activity.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @descriptiondialog
* @author
* @time 18-7-26 2:15
**/
public final static class DefaultRationale implements Rationale<List<String>> {
@Override
public void showRationale(Context context, List<String> data, RequestExecutor executor) {
List<String> permissionNames = Permission.transformText(context, data);
String message = context.getString(R.string.message_permission_rationale, TextUtils.join("\n", permissionNames));
new androidx.appcompat.app.AlertDialog.Builder(context)
.setTitle(R.string.title_dialog)
.setMessage(message)
.setPositiveButton(R.string.resume, (dialog, which) -> executor.execute())
.setNegativeButton(R.string.cancel, (dialog, which) -> executor.cancel())
.show();
}
}
/**
* @descriptiondialog
* @author
* @time 18-7-26 2:14
**/
public final static class PermissionSetting {
private final Context mContext;
public PermissionSetting(Context context) {
this.mContext = context;
}
public void showSetting(final List<String> permissions) {
List<String> permissionNames = Permission.transformText(mContext, permissions);
String message = mContext.getString(R.string.message_permission_always_failed, TextUtils.join("\n", permissionNames));
new androidx.appcompat.app.AlertDialog.Builder(mContext)
.setCancelable(false)
.setTitle(R.string.title_dialog)
.setMessage(message)
.setPositiveButton(R.string.setting, (dialog, which) -> {
setPermission(mContext);
})
.setNegativeButton(R.string.no, (dialog, which) -> {
})
.show();
}
/**
* Set permissions.
*/
private void setPermission(Context context) {
AndPermission.with(context)
.runtime()
.setting()
.start(REQUEST_CODE_SETTING);
}
}
}

@ -550,6 +550,13 @@
<string name="desc_title"><Data><![CDATA[<font color="#09927B"><b>%1$s</b></font>]]></Data></string>
<string name="desc_sub_title"><Data><![CDATA[<font color="#09927B">%1$s</font>]]></Data></string>
<string name="title_dialog">提示</string>
<string name="message_permission_rationale">允许以下权限以便程序继续执行:\n\n%1$s</string>
<string name="message_permission_always_failed">我们需要以下权限,请在设置中为我们开启:\n\n%1$s</string>
<string name="resume">继续</string>
<string name="no"></string>
<string name="prev_title">中健三六五用户个人信息保护指引</string>
<string name="prev_content">非常感谢您使用中健三六五APP我们深知保护个人隐私的重要性所以请您在使用前仔细阅读并充分理解《用户协议》和《隐私政策》的内容。\n如果您同意《用户协议》和《隐私政策》请点击“同意并使用”开始使用我们的产品和服务。\n谨记中健三六五健康数据仅作为参考不作为诊断依据。</string>
<string name="agree_prev">同意并继续</string>

@ -25,17 +25,17 @@ ext {
url = [
//
debug_url : "https://app.zhongjian365.com/app/",
/*debug_url : "https://app.zhongjian365.com/app/",
release_url: "https://app.zhongjian365.com/app/",
h5_debug_url : "https://built.zhongjian365.com/",
h5_release_url : "https://built.zhongjian365.com/"
h5_release_url : "https://built.zhongjian365.com/"*/
//
/* debug_url : "http://java01.zhongjian365.com/app/",
release_url: "http://java01.zhongjian365.com/app/",*/
debug_url : "http://java01.zhongjian365.com/app/",
release_url: "http://java01.zhongjian365.com/app/",
/* h5_debug_url : "http://testbuilt.zhongjian365.com/",
h5_release_url : "http://testbuilt.zhongjian365.com/"*/
h5_debug_url : "http://testbuilt.zhongjian365.com/",
h5_release_url : "http://testbuilt.zhongjian365.com/"
]
@ -169,6 +169,7 @@ 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',
//seekbar
seekbar : 'com.github.Jay-Goo:RangeSeekBar:v3.0.0'

@ -93,6 +93,15 @@ class FamilyHealthAct : BaseListAct<FamilyHealthVm>() {
R.id.user_avatar_recycler ->{
RouteManager.goAct(ARouterUrl.FAMILY_GUARDIAN_LIST_ACT)
}
R.id.tv_current_time ->{
RouteManager.goAct(ARouterUrl.FAMILY_HEALTH_REAL_TIME_ACT)
}
R.id.tv_watch ->{
bundle.clear()
bundle.putString("id",familyHealthBean.userId.toString())
RouteManager.goAct(ARouterUrl.WATCH_FAMILY_HEALTH,bundle)
}
}
}
}

@ -6,6 +6,11 @@ import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.alibaba.android.arouter.facade.annotation.Route
import com.amap.api.maps.AMap
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.UiSettings
import com.amap.api.maps.model.CameraPosition
import com.amap.api.maps.model.LatLng
import com.xty.base.act.BaseVmAct
import com.xty.base.vm.BaseVm
import com.xty.common.arouter.ARouterUrl
@ -22,6 +27,10 @@ class FamilyHealthRealTimeAct : BaseVmAct<BaseVm>() {
val binding by lazy { ActFamilyHealthRealTimeBinding.inflate(layoutInflater) }
val mAdapter by lazy { FamilyHealthRealTimeAdapter() }
private var aMap: AMap? = null
private var latLng = LatLng(28.206548, 112.893712) //坐标
override fun liveObserver() {
}
@ -34,6 +43,18 @@ class FamilyHealthRealTimeAct : BaseVmAct<BaseVm>() {
finish()
}
initAdapter()
aMap = binding.mapView.map
aMap?.let {
val uiSettings: UiSettings = it.uiSettings
uiSettings.setLogoBottomMargin(-50) //隐藏logo
uiSettings.isZoomControlsEnabled=false
var cameraUpdate = CameraUpdateFactory.newCameraPosition(
CameraPosition(latLng, 15f, 0f, 0f)
)
it.moveCamera(cameraUpdate)
}
}
fun initAdapter(){

@ -654,6 +654,7 @@
</LinearLayout>
<TextView
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_14"

Loading…
Cancel
Save