From: kfl_614 Date: Thu, 17 Dec 2020 07:45:14 +0000 (+0800) Subject: add body and wrist page. X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=7170ae96b390486f8ac926177803af962bb2b37a;p=IcTemperature.git add body and wrist page. --- 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" /> -