add all info but no blood pressure.
authorTrillGates <williamtrillgates@gmail.com>
Thu, 23 Sep 2021 03:43:36 +0000 (11:43 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 23 Sep 2021 03:43:36 +0000 (11:43 +0800)
app/src/main/java/com/ic/blood/Gh301Activity.java
app/src/main/java/com/ic/blood/fragment/AllFragment.java
app/src/main/res/layout/fragment_all.xml [new file with mode: 0644]
app/src/main/res/layout/fragment_blood.xml [deleted file]
app/src/main/res/layout/fragment_heart_and_oxygen.xml [new file with mode: 0644]
app/src/main/res/layout/fragment_heart_and_pressure.xml [new file with mode: 0644]

index eb69d53..48fa2e0 100644 (file)
@@ -42,7 +42,7 @@ public class Gh301Activity extends AppCompatActivity {
         //进去之后,Instance可以判断功能项,有的话就显示,没有的的话就不显示
         //相关说明可以查看http://icfota.snicker.com.cn:8888/www/index.php?m=doc&f=view&docID=12
         String displayTypeList1 = SystemUtils
-                .getSystemPropertiesString("persist.sys.health.display.list1",
+                .getSystemPropertiesString("persist.sys.health.display.l1",
                         "");
         //如果List1为空,或者两个都为空,那么就显示默认的
         if (TextUtils.isEmpty(displayTypeList1)) {
index 377cb37..fee4a8c 100644 (file)
@@ -1,6 +1,5 @@
 package com.ic.blood.fragment;
 
-import android.annotation.SuppressLint;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.Handler;
@@ -10,15 +9,15 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.ViewModelProvider;
 
 import com.ic.blood.BloodActivity;
-import com.ic.blood.BloodApp;
 import com.ic.blood.R;
-import com.ic.blood.databinding.FragmentBloodBinding;
 import com.ic.blood.model.BloodCheckModel;
 import com.ic.blood.presenter.BloodPresenter;
 import com.ic.blood.util.IcLog;
@@ -39,9 +38,6 @@ public class AllFragment extends Fragment {
     private static final String TAG = "BloodFragment";
 
     private Context mContext;
-    private BloodApp mApp;
-
-    private FragmentBloodBinding bloodBinding;
 
     private PowerManager.WakeLock mWakeLock = null;
     private BloodCheckModel bloodModel;
@@ -49,11 +45,22 @@ public class AllFragment extends Fragment {
     private GifDrawable gifFromAssets;
 
     private DelayExecuteHandler delayHandler;
-    private GifImageView gifImageView;
-    private ImageView heartRateView;
     private boolean supportBloodOxygen;
     private boolean supportHeartRate;
     private boolean supportBloodPressure;
+    private TextView topTips;
+    private TextView bottomTips;
+    private GifImageView gifView;
+    private ImageView heartRateIconView;
+    private View heartRateContainer;
+    private View oxygenContainer;
+    private View pressureHighContainer;
+    private TextView finishTv;
+    private View pressureLowContainer;
+    private TextView heartRateTv;
+    private TextView oxygenTv;
+    private TextView pressureHighTv;
+    private TextView pressureLowTv;
 
     public static AllFragment newInstance() {
         return new AllFragment();
@@ -89,9 +96,7 @@ public class AllFragment extends Fragment {
         } catch (Exception e) {
             ICLogger.e("parseFunction error...", e);
         }
-        mApp = (BloodApp) mContext.getApplicationContext();
         delayHandler = new DelayExecuteHandler(this);
-
     }
 
     @Override
@@ -101,18 +106,45 @@ public class AllFragment extends Fragment {
         //显示所有的内容
         //显示心率+血压
         //显示血氧+血压
+        View contentView = null;
         if (supportBloodPressure && supportHeartRate && supportBloodOxygen) {
-            bloodBinding = FragmentBloodBinding.inflate(inflater, container, false);
+            //心率+血压+血氧
+            contentView = inflater.inflate(R.layout.fragment_all, container, false);
+        } else if (supportBloodPressure && supportHeartRate) {
+            //没有血氧,只有心率+血压
+            contentView = inflater.inflate(R.layout.fragment_heart_and_pressure, container, false);
+        } else if (!supportBloodPressure && supportHeartRate && supportBloodOxygen) {
+            //没有血压,只是心率+血氧
+            contentView = inflater.inflate(R.layout.fragment_heart_and_oxygen, container, false);
         }
-        //TODO:其他的case
-        bloodBinding.setIsShowTips(true);
-        bloodBinding.setTopTips(getString(R.string.tips_quiet_please));
+        return contentView;
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        topTips = view.findViewById(R.id.ic_tips_top);
+        topTips.setVisibility(View.VISIBLE);
+        bottomTips = view.findViewById(R.id.ic_tips_bottom);
+        bottomTips.setVisibility(View.VISIBLE);
+        topTips.setText(R.string.tips_quiet_please);
+
+        gifView = view.findViewById(R.id.ic_heart_gif);
+        heartRateIconView = view.findViewById(R.id.heart_rate_view);
+        heartRateContainer = view.findViewById(R.id.ic_heart_layout);
+        oxygenContainer = view.findViewById(R.id.ic_oxygen_layout);
+        pressureHighContainer = view.findViewById(R.id.ic_high_layout);
+        finishTv = view.findViewById(R.id.finish_tips_tv);
+        pressureLowContainer = view.findViewById(R.id.ic_low_layout);
+        //内容部分
+        heartRateTv = view.findViewById(R.id.ic_heart_value);
+        oxygenTv = view.findViewById(R.id.ic_blood_oxygen);
+        pressureHighTv = view.findViewById(R.id.ic_high_value);
+        pressureLowTv = view.findViewById(R.id.ic_low_value);
         initBloodModel();
         setGifDrawable();
         //绑定远程服务
         bloodModel.onCreateView();
         bloodModel.setActivity(getActivity());
-        return bloodBinding.getRoot();
     }
 
     @Override
@@ -122,16 +154,16 @@ public class AllFragment extends Fragment {
         if (mWakeLock != null) {
             mWakeLock.acquire();
         }
-        gifImageView.setVisibility(View.VISIBLE);
-        heartRateView.setVisibility(View.GONE);
+        gifView.setVisibility(View.VISIBLE);
+        heartRateIconView.setVisibility(View.GONE);
         gifFromAssets.start();
     }
 
     @Override
     public void onPause() {
         super.onPause();
-        gifImageView.setVisibility(View.GONE);
-        heartRateView.setVisibility(View.VISIBLE);
+        gifView.setVisibility(View.GONE);
+        heartRateIconView.setVisibility(View.VISIBLE);
         gifFromAssets.stop();
         releaseWakeLock();
     }
@@ -142,49 +174,69 @@ public class AllFragment extends Fragment {
         bloodModel = new ViewModelProvider(this, factory).get(BloodCheckModel.class);
         bloodModel.updateTestType(BloodPresenter.TestType.ALL);
         bloodModel.getObsStateTips().observe(this, value -> {
-            bloodBinding.setFinishTips(value);
-            bloodBinding.setBottomTips(value);
+            bottomTips.setText(value);
         });
 
         bloodModel.getObsBloodValue().observe(getViewLifecycleOwner(), value -> {
-            bloodBinding.setIsShowTips(false);
-            bloodBinding.setHighValue(value[0]);
-            bloodBinding.setLowValue(value[1]);
-            bloodBinding.setHeartValue(value[2]);
-            bloodBinding.setOxygenValue(value[3]);
+            topTips.setVisibility(View.GONE);
+            bottomTips.setVisibility(View.GONE);
+            if (pressureHighContainer != null) {
+                pressureHighContainer.setVisibility(View.VISIBLE);
+                pressureHighTv.setText(value[0]);
+            }
+            if (pressureLowContainer != null) {
+                pressureLowContainer.setVisibility(View.VISIBLE);
+                pressureLowTv.setText(value[1]);
+            }
+            if (heartRateContainer != null) {
+                heartRateContainer.setVisibility(View.VISIBLE);
+                heartRateTv.setText(value[2]);
+            }
+            if (oxygenContainer != null) {
+                oxygenContainer.setVisibility(View.VISIBLE);
+                oxygenTv.setText(value[3]);
+            }
+            finishTv.setText(R.string.tips_finish_check);
+            finishTv.setVisibility(View.VISIBLE);
             gifFromAssets.stop();
-            gifImageView.setVisibility(View.GONE);
-            heartRateView.setVisibility(View.VISIBLE);
+            gifView.setVisibility(View.GONE);
+            heartRateIconView.setVisibility(View.VISIBLE);
             delayHandler.sendMessageDelayed(new Message(), 1000 * 10);
         });
 
         bloodModel.getObsBloodTempValue().observe(getViewLifecycleOwner(), value -> {
-            bloodBinding.setIsShowTips(false);
-            bloodBinding.setHighValue(value[0]);
-            bloodBinding.setLowValue(value[1]);
-            bloodBinding.setHeartValue(value[2]);
-            bloodBinding.setOxygenValue(value[3]);
+            topTips.setVisibility(View.GONE);
+            bottomTips.setVisibility(View.GONE);
+            if (pressureHighContainer != null) {
+                pressureHighContainer.setVisibility(View.VISIBLE);
+                pressureHighTv.setText(value[0]);
+            }
+            if (pressureLowContainer != null) {
+                pressureLowContainer.setVisibility(View.VISIBLE);
+                pressureLowTv.setText(value[1]);
+            }
+            if (heartRateContainer != null) {
+                heartRateContainer.setVisibility(View.VISIBLE);
+                heartRateTv.setText(value[2]);
+            }
+            if (oxygenContainer != null) {
+                oxygenContainer.setVisibility(View.VISIBLE);
+                oxygenTv.setText(value[3]);
+            }
+            finishTv.setText(R.string.tips_ing_check);
+            finishTv.setVisibility(View.VISIBLE);
         });
 
-        //bloodModel.getObsTipsInfo().observe(getViewLifecycleOwner(), tips -> {
-        //这里做法不好呀,连文字资源都由底层的ID来控制
-        //这样子耦合度非常高了,所以注释了,不使用这种方式更新提示。
-        //bloodBinding.setIsShowTips(true);
-        //bloodBinding.setTopTips(tips[0]);
-        //bloodBinding.setBottomTips(tips[1]);
-        //});
-
         bloodModel.getObsCheckEnd().observe(getViewLifecycleOwner(), end -> {
             IcLog.i(TAG, "finish");
             ((BloodActivity) mContext).finish();
         });
     }
 
-    @SuppressLint("InvalidWakeLockTag")
     private void initWakeLock(Context context) {
         PowerManager powerManager = (PowerManager) context.getSystemService(POWER_SERVICE);
         if (powerManager != null && mWakeLock == null) {
-            mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "BloodWakeLock");
+            mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "ic:BloodWakeLock");
         }
     }
 
@@ -197,12 +249,10 @@ public class AllFragment extends Fragment {
     }
 
     private void setGifDrawable() {
-        gifImageView = bloodBinding.icHeartGif;
-        heartRateView = bloodBinding.heartRateView;
-        gifImageView.setScaleType(ImageView.ScaleType.CENTER);
+        gifView.setScaleType(ImageView.ScaleType.CENTER);
         try {
             gifFromAssets = new GifDrawable(mContext.getAssets(), "only_hr_check.gif");
-            gifImageView.setImageDrawable(gifFromAssets);
+            gifView.setImageDrawable(gifFromAssets);
         } catch (IOException e) {
             e.printStackTrace();
         }
diff --git a/app/src/main/res/layout/fragment_all.xml b/app/src/main/res/layout/fragment_all.xml
new file mode 100644 (file)
index 0000000..1e41ce9
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000000">
+
+    <pl.droidsonroids.gif.GifImageView
+        android:id="@+id/ic_heart_gif"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:visibility="gone" />
+
+    <ImageView
+        android:id="@+id/heart_rate_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:src="@mipmap/default_heart_rate_icon" />
+
+
+    <TextView
+        android:id="@+id/ic_tips_top"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="30dp" />
+
+    <TextView
+        android:id="@+id/ic_tips_bottom"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="bottom|center_horizontal"
+        android:layout_marginBottom="50dp" />
+
+    <RelativeLayout
+        android:id="@+id/ic_heart_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="20dp"
+        android:visibility="gone">
+
+
+        <TextView
+            android:id="@+id/ic_heart_name"
+            style="@style/bloodTextStyle"
+            android:layout_marginEnd="10dp"
+            android:text="@string/ic_heart_rate" />
+
+        <TextView
+            android:id="@+id/ic_heart_value"
+            style="@style/bloodTextStyle"
+            android:layout_marginStart="10dp"
+            android:layout_toEndOf="@id/ic_heart_name" />
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/ic_oxygen_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="60dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_blood_oxygen_name"
+            style="@style/bloodTextStyle"
+            android:layout_marginEnd="10dp"
+            android:text="@string/ic_blood_oxygen" />
+
+        <TextView
+            android:id="@+id/ic_blood_oxygen"
+            style="@style/bloodTextStyle"
+            android:layout_marginStart="10dp"
+            android:layout_toEndOf="@id/ic_blood_oxygen_name" />
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/ic_high_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom"
+        android:layout_marginStart="20dp"
+        android:layout_marginBottom="60dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_high_name"
+            style="@style/bloodTextStyle"
+            android:text="@string/ic_high_pressure" />
+
+        <TextView
+            android:id="@+id/ic_high_value"
+            style="@style/bloodTextStyle"
+            android:layout_below="@id/ic_high_name"
+            android:layout_centerHorizontal="true" />
+
+    </RelativeLayout>
+
+
+    <TextView
+        android:id="@+id/finish_tips_tv"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="center|bottom"
+        android:layout_marginBottom="10dp"
+        android:gravity="center"
+        android:visibility="gone" />
+
+    <RelativeLayout
+        android:id="@+id/ic_low_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|end"
+        android:layout_marginEnd="20dp"
+        android:layout_marginBottom="60dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_low_name"
+            style="@style/bloodTextStyle"
+            android:text="@string/ic_low_pressure" />
+
+        <TextView
+            android:id="@+id/ic_low_value"
+            style="@style/bloodTextStyle"
+            android:layout_below="@id/ic_low_name"
+            android:layout_centerHorizontal="true" />
+
+    </RelativeLayout>
+
+</FrameLayout>
+
diff --git a/app/src/main/res/layout/fragment_blood.xml b/app/src/main/res/layout/fragment_blood.xml
deleted file mode 100644 (file)
index f539ec3..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-<?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>
-
-        <import type="android.view.View" />
-
-        <variable
-            name="topTips"
-            type="String" />
-
-        <variable
-            name="bottomTips"
-            type="String" />
-
-        <variable
-            name="isShowTips"
-            type="boolean" />
-
-        <variable
-            name="heartValue"
-            type="String" />
-
-        <variable
-            name="oxygenValue"
-            type="String" />
-
-        <variable
-            name="highValue"
-            type="String" />
-
-        <variable
-            name="lowValue"
-            type="String" />
-
-        <variable
-            name="finishTips"
-            type="String" />
-    </data>
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="#000000">
-
-        <pl.droidsonroids.gif.GifImageView
-            android:id="@+id/ic_heart_gif"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center"
-            android:visibility="gone" />
-
-        <ImageView
-            android:id="@+id/heart_rate_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:src="@mipmap/default_heart_rate_icon" />
-
-
-        <TextView
-            android:id="@+id/ic_tips_top"
-            style="@style/bloodTextStyle"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="30dp"
-            android:text="@{topTips}"
-            android:visibility="@{isShowTips ? View.VISIBLE : View.GONE}" />
-
-        <TextView
-            android:id="@+id/ic_tips_bottom"
-            style="@style/bloodTextStyle"
-            android:layout_gravity="bottom|center_horizontal"
-            android:layout_marginBottom="50dp"
-            android:text="@{bottomTips}"
-            android:visibility="@{isShowTips ? View.VISIBLE : View.GONE}" />
-
-        <RelativeLayout
-            android:id="@+id/ic_heart_layout"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="20dp"
-            android:visibility="@{isShowTips ? View.GONE : View.VISIBLE}">
-
-            <TextView
-                android:id="@+id/ic_heart_name"
-                style="@style/bloodTextStyle"
-                android:layout_marginEnd="10dp"
-                android:text="@string/ic_heart_rate" />
-
-            <TextView
-                android:id="@+id/ic_heart_value"
-                style="@style/bloodTextStyle"
-                android:layout_marginStart="10dp"
-                android:layout_toEndOf="@id/ic_heart_name"
-                android:text="@{heartValue}" />
-        </RelativeLayout>
-
-        <RelativeLayout
-            android:id="@+id/ic_oxygen_layout"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="60dp"
-            android:visibility="@{isShowTips ? View.GONE : View.VISIBLE}">
-
-            <TextView
-                android:id="@+id/ic_blood_oxygen_name"
-                style="@style/bloodTextStyle"
-                android:layout_marginEnd="10dp"
-                android:text="@string/ic_blood_oxygen" />
-
-            <TextView
-                android:id="@+id/ic_blood_oxygen"
-                style="@style/bloodTextStyle"
-                android:layout_marginStart="10dp"
-                android:layout_toEndOf="@id/ic_blood_oxygen_name"
-                android:text="@{oxygenValue}" />
-        </RelativeLayout>
-
-        <RelativeLayout
-            android:id="@+id/ic_high_layout"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="bottom"
-            android:layout_marginStart="20dp"
-            android:layout_marginBottom="50dp"
-            android:visibility="@{isShowTips ? View.GONE : View.VISIBLE}">
-
-            <TextView
-                android:id="@+id/ic_high_name"
-                style="@style/bloodTextStyle"
-                android:text="@string/ic_high_pressure" />
-
-            <TextView
-                android:id="@+id/ic_high_value"
-                style="@style/bloodTextStyle"
-                android:layout_below="@id/ic_high_name"
-                android:layout_centerHorizontal="true"
-                android:text="@{highValue}" />
-        </RelativeLayout>
-
-
-        <TextView
-            style="@style/bloodTextStyle"
-            android:layout_gravity="center|bottom"
-            android:layout_marginBottom="20dp"
-            android:gravity="center"
-            android:text="@{finishTips}"
-            android:visibility="@{isShowTips ? View.GONE : View.VISIBLE}" />
-
-        <RelativeLayout
-            android:id="@+id/ic_low_layout"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="bottom|end"
-            android:layout_marginEnd="20dp"
-            android:layout_marginBottom="50dp"
-            android:visibility="@{isShowTips ? View.GONE : View.VISIBLE}">
-
-            <TextView
-                android:id="@+id/ic_low_name"
-                style="@style/bloodTextStyle"
-                android:text="@string/ic_low_pressure" />
-
-            <TextView
-                android:id="@+id/ic_low_value"
-                style="@style/bloodTextStyle"
-                android:layout_below="@id/ic_low_name"
-                android:layout_centerHorizontal="true"
-                android:text="@{lowValue}" />
-        </RelativeLayout>
-
-    </FrameLayout>
-
-</layout>
diff --git a/app/src/main/res/layout/fragment_heart_and_oxygen.xml b/app/src/main/res/layout/fragment_heart_and_oxygen.xml
new file mode 100644 (file)
index 0000000..a1dc838
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000000">
+
+    <pl.droidsonroids.gif.GifImageView
+        android:id="@+id/ic_heart_gif"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:visibility="gone" />
+
+    <ImageView
+        android:id="@+id/heart_rate_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:src="@mipmap/default_heart_rate_icon" />
+
+
+    <TextView
+        android:id="@+id/ic_tips_top"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="30dp" />
+
+    <TextView
+        android:id="@+id/ic_tips_bottom"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="bottom|center_horizontal"
+        android:layout_marginBottom="50dp" />
+
+    <LinearLayout
+        android:id="@+id/ic_heart_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="right|top"
+        android:layout_marginTop="30dp"
+        android:layout_marginRight="30dp"
+        android:gravity="center_horizontal"
+        android:orientation="vertical"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_heart_name"
+            style="@style/bloodTextStyle"
+            android:text="@string/ic_heart_rate" />
+
+        <TextView
+            android:id="@+id/ic_heart_value"
+            style="@style/bloodTextStyle" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/ic_oxygen_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="left|top"
+        android:layout_marginLeft="30dp"
+        android:layout_marginTop="30dp"
+        android:gravity="center_horizontal"
+        android:orientation="vertical"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_blood_oxygen_name"
+            style="@style/bloodTextStyle"
+            android:text="@string/ic_blood_oxygen" />
+
+        <TextView
+            android:id="@+id/ic_blood_oxygen"
+            style="@style/bloodTextStyle" />
+    </LinearLayout>
+
+
+    <TextView
+        android:id="@+id/finish_tips_tv"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="center|bottom"
+        android:layout_marginBottom="20dp"
+        android:gravity="center"
+        android:visibility="gone" />
+
+
+</FrameLayout>
+
diff --git a/app/src/main/res/layout/fragment_heart_and_pressure.xml b/app/src/main/res/layout/fragment_heart_and_pressure.xml
new file mode 100644 (file)
index 0000000..0b9ba47
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000000">
+
+    <pl.droidsonroids.gif.GifImageView
+        android:id="@+id/ic_heart_gif"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:visibility="gone" />
+
+    <ImageView
+        android:id="@+id/heart_rate_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:src="@mipmap/default_heart_rate_icon" />
+
+
+    <TextView
+        android:id="@+id/ic_tips_top"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="30dp" />
+
+    <TextView
+        android:id="@+id/ic_tips_bottom"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="bottom|center_horizontal"
+        android:layout_marginBottom="50dp" />
+
+    <RelativeLayout
+        android:id="@+id/ic_heart_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="20dp"
+        android:visibility="gone">
+
+
+        <TextView
+            android:id="@+id/ic_heart_name"
+            style="@style/bloodTextStyle"
+            android:layout_marginEnd="10dp"
+            android:text="@string/ic_heart_rate" />
+
+        <TextView
+            android:id="@+id/ic_heart_value"
+            style="@style/bloodTextStyle"
+            android:layout_marginStart="10dp"
+            android:layout_toEndOf="@id/ic_heart_name" />
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/ic_oxygen_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="60dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_blood_oxygen_name"
+            style="@style/bloodTextStyle"
+            android:layout_marginEnd="10dp"
+            android:text="@string/ic_blood_oxygen" />
+
+        <TextView
+            android:id="@+id/ic_blood_oxygen"
+            style="@style/bloodTextStyle"
+            android:layout_marginStart="10dp"
+            android:layout_toEndOf="@id/ic_blood_oxygen_name" />
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/ic_high_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom"
+        android:layout_marginStart="20dp"
+        android:layout_marginBottom="50dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_high_name"
+            style="@style/bloodTextStyle"
+            android:text="@string/ic_high_pressure" />
+
+        <TextView
+            android:id="@+id/ic_high_value"
+            style="@style/bloodTextStyle"
+            android:layout_below="@id/ic_high_name"
+            android:layout_centerHorizontal="true" />
+    </RelativeLayout>
+
+
+    <TextView
+        android:id="@+id/finish_tips_tv"
+        style="@style/bloodTextStyle"
+        android:layout_gravity="center|bottom"
+        android:layout_marginBottom="20dp"
+        android:gravity="center"
+        android:text="@{finishTips}"
+        android:visibility="gone" />
+
+    <RelativeLayout
+        android:id="@+id/ic_low_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|end"
+        android:layout_marginEnd="20dp"
+        android:layout_marginBottom="50dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/ic_low_name"
+            style="@style/bloodTextStyle"
+            android:text="@string/ic_low_pressure" />
+
+        <TextView
+            android:id="@+id/ic_low_value"
+            style="@style/bloodTextStyle"
+            android:layout_below="@id/ic_low_name"
+            android:layout_centerHorizontal="true" />
+    </RelativeLayout>
+
+</FrameLayout>
+