diff --git a/app/src/main/java/com/xjjk/healthyclients/view/HomeWatchView.kt b/app/src/main/java/com/xjjk/healthyclients/view/HomeWatchView.kt
index f5b4e2d..e095135 100644
--- a/app/src/main/java/com/xjjk/healthyclients/view/HomeWatchView.kt
+++ b/app/src/main/java/com/xjjk/healthyclients/view/HomeWatchView.kt
@@ -1,6 +1,7 @@
package com.xjjk.healthyclients.view
import android.content.Context
+import android.graphics.Color
import android.os.Handler
import android.os.Looper
import android.util.AttributeSet
@@ -26,11 +27,11 @@ class HomeWatchView(context: Context?, attrs: AttributeSet?) :
RelativeLayout(context, attrs, 0), ViewPagerAdapter.OnCreateFragmentListener {
- companion object {
+ companion object {
/** 自动轮播间隔时间(毫秒) */
private const val AUTO_PLAY_INTERVAL = 5000L
}
- private var hasWatch :Boolean=false
+ private var hasWatch: Boolean = false
var mContext: Context? = context
var mBinding: LayoutHomeItemWatchBinding = DataBindingUtil.inflate(
@@ -60,25 +61,23 @@ class HomeWatchView(context: Context?, attrs: AttributeSet?) :
fun init(fragment: Fragment) {
val arrayOf = arrayOf("心脑血管", "癌症", "慢呼", "糖尿病", "亚健康")
- mBinding.watchTabLayout.onCreateTab(arrayOf, 1) {tab->
+ mBinding.watchTabLayout.onCreateTab(arrayOf, 1) { tab ->
if (tab?.position != 0) {
mBinding.emptyText.visibility = View.VISIBLE
mBinding.emptyText.text = "紧急开发中"
mBinding.viewPager.visibility = View.GONE
+ mBinding.layoutNoWatch.visibility = View.GONE
stopAutoPlay()
} else {
if (!DataStoreManager.isLogin()) {
- mBinding.viewPager.visibility = View.GONE
- mBinding.emptyText.visibility = View.VISIBLE
- mBinding.emptyText.text = "暂未登录"
- }else if (hasWatch) {
+ showLoginEmpty()
+ } else if (hasWatch) {
mBinding.viewPager.visibility = View.VISIBLE
mBinding.emptyText.visibility = View.GONE
+ mBinding.layoutNoWatch.visibility = View.GONE
startAutoPlay()
} else {
- mBinding.viewPager.visibility = View.GONE
- mBinding.emptyText.visibility = View.VISIBLE
- mBinding.emptyText.text = "您目前未配备智能穿戴设备"
+ showNoWatchPlaceholder()
}
}
@@ -111,18 +110,36 @@ class HomeWatchView(context: Context?, attrs: AttributeSet?) :
fun setWatchInfo(watchInfo: WatchInfoBean?) {
if (watchInfo?.hasWatch == true) {
+ hasWatch = true
mBinding.viewPager.visibility = View.VISIBLE
- mBinding.watchName.visibility = View.VISIBLE
mBinding.emptyText.visibility = View.GONE
+ mBinding.layoutNoWatch.visibility = View.GONE
+ mBinding.watchName.setTextColor(Color.parseColor("#14BEBE"))
mBinding.watchName.text = "监测工具编码:${watchInfo.watchNo}"
} else {
+ hasWatch = false
+ mBinding.watchName.setTextColor(Color.parseColor("#808080"))
+ mBinding.watchName.text = "监测工具编码:暂无信息"
mBinding.viewPager.visibility = View.GONE
- mBinding.watchName.visibility = View.GONE
- mBinding.emptyText.visibility = View.VISIBLE
- mBinding.emptyText.text = "您目前未配备智能穿戴设备"
+ showNoWatchPlaceholder()
}
}
+ /** 展示未登录占位文字 */
+ private fun showLoginEmpty() {
+ mBinding.viewPager.visibility = View.GONE
+ mBinding.emptyText.visibility = View.VISIBLE
+ mBinding.emptyText.text = "暂未登录"
+ mBinding.layoutNoWatch.visibility = View.GONE
+ }
+
+ /** 展示已登录但未绑定手表的图文占位视图 */
+ private fun showNoWatchPlaceholder() {
+ mBinding.viewPager.visibility = View.GONE
+ mBinding.emptyText.visibility = View.GONE
+ mBinding.layoutNoWatch.visibility = View.VISIBLE
+ }
+
/**
* 接收手表详细数据并通过 EventBus 通知各 WatchItemFragment 刷新
* @param dataList 接口返回的手表各项健康数据列表(索引与 Tab position 对应)
diff --git a/app/src/main/java/com/xjjk/healthyclients/view/WatchBindDialog.kt b/app/src/main/java/com/xjjk/healthyclients/view/WatchBindDialog.kt
new file mode 100644
index 0000000..dca5279
--- /dev/null
+++ b/app/src/main/java/com/xjjk/healthyclients/view/WatchBindDialog.kt
@@ -0,0 +1,118 @@
+package com.xjjk.healthyclients.view
+
+import android.app.AlertDialog
+import android.content.Context
+import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
+import android.os.Build
+import android.os.Bundle
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.WindowManager
+import android.widget.LinearLayout
+import android.widget.RatingBar
+import android.widget.Toast
+import androidx.databinding.DataBindingUtil
+import com.sw.healthyclients.view.CustomToast
+import com.xjjk.healthyclients.R
+import com.xjjk.healthyclients.databinding.DialogAppraiseBinding
+
+class AppraiseDialog constructor(
+ context: Context
+) : AlertDialog(context) {
+ lateinit var mOnSubmitClickListener: OnSubmitClickListener
+ lateinit var binding: DialogAppraiseBinding
+
+ init {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ create()
+ } else {
+ onCreate(null)
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = DataBindingUtil.inflate(
+ LayoutInflater.from(context),
+ R.layout.dialog_appraise, null, false
+ )
+ setContentView(binding.root)
+ window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))//设置dialog背景透明
+ window?.setGravity(Gravity.BOTTOM)
+ window?.setLayout(
+ context.resources.displayMetrics.widthPixels,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );//设置对话框大小
+ window?.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)
+ binding.btnSubmit.setOnClickListener {
+ if (getRating()==0F) {
+ CustomToast.makeText(context, "您还没有选择星级评分", Toast.LENGTH_SHORT).show()
+ return@setOnClickListener
+ }
+ if (this::mOnSubmitClickListener.isInitialized) {
+ mOnSubmitClickListener?.onSubmitClick(this@AppraiseDialog)
+ }
+ this.cancel()
+ }
+ binding.btnClose.setOnClickListener {
+ if (this::mOnSubmitClickListener.isInitialized) {
+ mOnSubmitClickListener?.onCancelClick(this@AppraiseDialog)
+ }
+ this.cancel()
+ }
+
+ }
+
+ fun setOnSubmitClickListener(onSubmitClickListener: OnSubmitClickListener): AppraiseDialog {
+ this.mOnSubmitClickListener = onSubmitClickListener
+ return this
+ }
+
+ interface OnSubmitClickListener {
+ fun onSubmitClick(viewDialog: AppraiseDialog)
+ fun onCancelClick(viewDialog: AppraiseDialog){}
+ }
+
+ fun setDialogTitle(title: String, titleSize: Float = 18f): AppraiseDialog {
+ binding.tvTitle.visibility = View.VISIBLE
+ binding.tvTitle.text = title
+ binding.tvTitle.textSize = titleSize
+ return this
+ }
+
+ fun setContentHint(text: String, textSize: Float = 13f): AppraiseDialog {
+ binding.etAppraise.hint = text
+ binding.etAppraise.textSize = textSize
+ return this
+ }
+
+ fun setBtnText(text: String, btnTextSize: Float = 18f): AppraiseDialog {
+ binding.btnSubmit.text = text
+ binding.btnSubmit.textSize = btnTextSize
+ return this
+ }
+
+ fun setDialogCancelable(flag: Boolean): AppraiseDialog {
+ setCancelable(flag)
+ return this
+ }
+
+ fun getAppraiseContext(): String {
+ return binding.etAppraise.text.trim().toString()
+ }
+
+ fun getRatingBar(): RatingBar {
+ return binding.ratingBar
+ }
+ fun getRating(): Float {
+ return getRatingBar().rating
+ }
+ /**
+ * 获取匿名状态
+ */
+ fun getAnonymityStatus(): Boolean {
+ return binding.cbAnonymity.isChecked
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxhdpi/icon_empty1.png b/app/src/main/res/drawable-xxhdpi/icon_empty1.png
new file mode 100644
index 0000000..888ec95
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_empty1.png differ
diff --git a/app/src/main/res/layout/dialog_bind_watch.xml b/app/src/main/res/layout/dialog_bind_watch.xml
new file mode 100644
index 0000000..ccab95e
--- /dev/null
+++ b/app/src/main/res/layout/dialog_bind_watch.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_home_item_watch.xml b/app/src/main/res/layout/layout_home_item_watch.xml
index 0b27efb..ac71649 100644
--- a/app/src/main/res/layout/layout_home_item_watch.xml
+++ b/app/src/main/res/layout/layout_home_item_watch.xml
@@ -6,9 +6,9 @@
+
+
+
+
+
+
+
+
+
+
+