From 7170ae96b390486f8ac926177803af962bb2b37a Mon Sep 17 00:00:00 2001 From: kfl_614 Date: Thu, 17 Dec 2020 15:45:14 +0800 Subject: [PATCH] add body and wrist page. --- .../java/com/ic/temperature/MainActivity.kt | 24 ++- .../com/ic/temperature/utils/DisplayType.kt | 5 + .../viewmodel/TemperatureViewModel.kt | 19 ++- app/src/main/res/layout/activity_main.xml | 8 + .../layout/stub_view_body_and_wrist_temp.xml | 149 ++++++++++++++++++ .../main/res/layout/stub_view_normal_temp.xml | 3 +- 6 files changed, 193 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/ic/temperature/utils/DisplayType.kt create mode 100644 app/src/main/res/layout/stub_view_body_and_wrist_temp.xml diff --git a/app/src/main/java/com/ic/temperature/MainActivity.kt b/app/src/main/java/com/ic/temperature/MainActivity.kt index 44131ed..9643ea6 100644 --- a/app/src/main/java/com/ic/temperature/MainActivity.kt +++ b/app/src/main/java/com/ic/temperature/MainActivity.kt @@ -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 index 0000000..79a49e9 --- /dev/null +++ b/app/src/main/java/com/ic/temperature/utils/DisplayType.kt @@ -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 diff --git a/app/src/main/java/com/ic/temperature/viewmodel/TemperatureViewModel.kt b/app/src/main/java/com/ic/temperature/viewmodel/TemperatureViewModel.kt index 071d1a8..17f2f12 100644 --- a/app/src/main/java/com/ic/temperature/viewmodel/TemperatureViewModel.kt +++ b/app/src/main/java/com/ic/temperature/viewmodel/TemperatureViewModel.kt @@ -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() - mutableLiveData.value = isDisableWristTemp && isDisableEnvTemp + val mutableLiveData = MutableLiveData() + + 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 } //================================= diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9cf8b23..938d7dc 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -52,6 +52,14 @@ ic:bodyTemp="@{bodyTemp}" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/stub_view_normal_temp.xml b/app/src/main/res/layout/stub_view_normal_temp.xml index bf4958c..b798807 100644 --- a/app/src/main/res/layout/stub_view_normal_temp.xml +++ b/app/src/main/res/layout/stub_view_normal_temp.xml @@ -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" @@ -179,7 +179,6 @@ app:layout_constraintGuide_percent="0.49" /> -