add body and wrist page.
authorkfl_614 <kfl_614@163.com>
Thu, 17 Dec 2020 07:45:14 +0000 (15:45 +0800)
committerkfl_614 <kfl_614@163.com>
Thu, 17 Dec 2020 07:45:14 +0000 (15:45 +0800)
app/src/main/java/com/ic/temperature/MainActivity.kt
app/src/main/java/com/ic/temperature/utils/DisplayType.kt [new file with mode: 0644]
app/src/main/java/com/ic/temperature/viewmodel/TemperatureViewModel.kt
app/src/main/res/layout/activity_main.xml
app/src/main/res/layout/stub_view_body_and_wrist_temp.xml [new file with mode: 0644]
app/src/main/res/layout/stub_view_normal_temp.xml

index 44131ed..9643ea6 100644 (file)
@@ -6,6 +6,7 @@ import android.os.PowerManager
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.ViewModelProvider
 import com.ic.temperature.databinding.ActivityMainBinding
+import com.ic.temperature.utils.DisplayType
 import com.ic.temperature.utils.ICViewModelFactory
 import com.ic.temperature.viewmodel.TemperatureViewModel
 
@@ -85,13 +86,22 @@ class MainActivity : AppCompatActivity() {
         viewModel.apply {
             println("initObserver...")
             isJustShowBodyTempView.observe(that) {
-                if (it) {
-                    if (!binding.justTempView.isInflated)
-                        binding.justTempView.viewStub?.inflate()
-
-                } else {
-                    if (!binding.normalView.isInflated)
-                        binding.normalView.viewStub?.inflate()
+                when (it) {
+                    DisplayType.JUST_BODY_TEMP -> {
+                        if (!binding.justTempView.isInflated) {
+                            binding.justTempView.viewStub?.inflate()
+                        }
+                    }
+                    DisplayType.BODY_AND_WRIST_TEMP -> {
+                        if (!binding.bodyTempAndWristTempView.isInflated) {
+                            binding.bodyTempAndWristTempView.viewStub?.inflate()
+                        }
+                    }
+                    DisplayType.ALL -> {
+                        if (!binding.normalView.isInflated) {
+                            binding.normalView.viewStub?.inflate()
+                        }
+                    }
                 }
             }
             mBodyTemp.observe(that) {
diff --git a/app/src/main/java/com/ic/temperature/utils/DisplayType.kt b/app/src/main/java/com/ic/temperature/utils/DisplayType.kt
new file mode 100644 (file)
index 0000000..79a49e9
--- /dev/null
@@ -0,0 +1,5 @@
+package com.ic.temperature.utils
+
+enum class DisplayType {
+    ALL, JUST_BODY_TEMP, BODY_AND_WRIST_TEMP
+}
\ No newline at end of file
index 071d1a8..17f2f12 100644 (file)
@@ -13,14 +13,11 @@ import com.ic.temperature.R
 import com.ic.temperature.domain.Temperature
 import com.ic.temperature.repository.ITemRepositoryCallback
 import com.ic.temperature.repository.TemperatureRepository
-import com.ic.temperature.utils.Constants
+import com.ic.temperature.utils.*
 import com.ic.temperature.utils.Constants.KEY_ANTI_EVENT
 import com.ic.temperature.utils.Constants.STATE_ANTI_NONE
 import com.ic.temperature.utils.Constants.STATE_ANTI_OFF
 import com.ic.temperature.utils.Constants.STATE_ANTI_ON
-import com.ic.temperature.utils.IcLog
-import com.ic.temperature.utils.StringUtils
-import com.ic.temperature.utils.SystemUtils
 import java.lang.ref.WeakReference
 
 class TemperatureViewModel() : ViewModel() {
@@ -231,8 +228,18 @@ class TemperatureViewModel() : ViewModel() {
         mutableLiveData
     }
     val isJustShowBodyTempView by lazy {
-        val mutableLiveData = MutableLiveData<Boolean>()
-        mutableLiveData.value = isDisableWristTemp && isDisableEnvTemp
+        val mutableLiveData = MutableLiveData<DisplayType>()
+
+        if (isDisableWristTemp && isDisableEnvTemp) {
+            //没有腕温,没有环境温度,只有体温
+            mutableLiveData.value = DisplayType.JUST_BODY_TEMP
+        } else if (isDisableEnvTemp) {
+            //没有环境温度,那么就只显示体温和腕温
+            mutableLiveData.value = DisplayType.BODY_AND_WRIST_TEMP
+        } else {
+            //三种温度都显示
+            mutableLiveData.value = DisplayType.ALL
+        }
         mutableLiveData
     }
     //=================================
index 9cf8b23..938d7dc 100644 (file)
             ic:bodyTemp="@{bodyTemp}" />
 
 
+        <ViewStub
+            android:id="@+id/bodyTempAndWristTempView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout="@layout/stub_view_body_and_wrist_temp"
+            ic:bodyTemp="@{bodyTemp}"
+            ic:wristTemp="@{wristTemp}" />
+
         <!--支持体温,腕温,环境温度时的UI-->
         <ViewStub
             android:id="@+id/normalView"
diff --git a/app/src/main/res/layout/stub_view_body_and_wrist_temp.xml b/app/src/main/res/layout/stub_view_body_and_wrist_temp.xml
new file mode 100644 (file)
index 0000000..f0b7849
--- /dev/null
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+
+        <variable
+            name="bodyTemp"
+            type="String" />
+
+        <variable
+            name="wristTemp"
+            type="String" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@{wristTemp}"
+            android:textColor="#FFFFFF"
+            android:textSize="40sp"
+            app:layout_constraintBottom_toTopOf="@+id/guideline15"
+            app:layout_constraintEnd_toStartOf="@+id/guideline13" />
+
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_wrist_str"
+            android:textColor="#FFFFFF"
+            android:textSize="36sp"
+            app:layout_constraintBottom_toTopOf="@+id/guideline15"
+            app:layout_constraintEnd_toStartOf="@+id/guideline14"
+            app:layout_constraintStart_toStartOf="parent" />
+
+
+        <ImageView
+            android:id="@+id/imageView"
+            android:layout_width="70dp"
+            android:layout_height="70dp"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_temp_wrist"
+            app:layout_constraintBottom_toTopOf="@+id/guideline15"
+            app:layout_constraintEnd_toStartOf="@+id/guideline11"
+            app:layout_constraintStart_toStartOf="@+id/guideline14" />
+
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_unit"
+            android:textColor="#FFFFFF"
+            android:textSize="48sp"
+            app:layout_constraintBottom_toTopOf="@+id/guideline15"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="@+id/guideline13" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="32dp"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_str"
+            android:textColor="#FFFFFF"
+            android:textSize="36sp"
+            app:layout_constraintBottom_toTopOf="@+id/guideline12"
+            app:layout_constraintEnd_toStartOf="@+id/guideline14"
+            app:layout_constraintStart_toStartOf="parent" />
+
+        <ImageView
+            android:layout_width="70dp"
+            android:layout_height="70dp"
+            android:layout_marginBottom="32dp"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_temp_human"
+            app:layout_constraintBottom_toTopOf="@+id/guideline12"
+            app:layout_constraintEnd_toStartOf="@+id/guideline11" />
+
+        <TextView
+
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="32dp"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_unit"
+            android:textColor="#FFFFFF"
+            android:textSize="48sp"
+            app:layout_constraintBottom_toTopOf="@+id/guideline12"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="@+id/guideline13" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="32dp"
+            android:background="@android:color/transparent"
+            android:text="@{bodyTemp}"
+            android:textColor="#FFFFFF"
+            android:textSize="40sp"
+            app:layout_constraintBottom_toTopOf="@+id/guideline12"
+            app:layout_constraintEnd_toStartOf="@+id/guideline13" />
+
+
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline11"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            app:layout_constraintGuide_percent="0.5" />
+
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline14"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            app:layout_constraintGuide_percent="0.25" />
+
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline13"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            app:layout_constraintGuide_percent="0.8" />
+
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline12"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            app:layout_constraintGuide_percent="0.4" />
+
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline15"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            app:layout_constraintGuide_percent="0.65" />
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>
\ No newline at end of file
index bf4958c..b798807 100644 (file)
@@ -68,7 +68,7 @@
             android:text="@string/activity_temp_unit"
             android:textColor="#FFFFFF"
             android:textSize="38sp"
-            android:visibility="@{disableWristTemp ? View.GONE : View.VISIBLE}"
+            android:visibility="@{disableEnvTemp ? View.GONE : View.VISIBLE}"
             app:layout_constraintBottom_toTopOf="@+id/guideline6"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="@+id/guideline8"
             app:layout_constraintGuide_percent="0.49" />
 
 
-
         <androidx.constraintlayout.widget.Guideline
             android:id="@+id/guideline8"
             android:layout_width="wrap_content"