From: TrillGates Date: Thu, 23 Sep 2021 03:43:36 +0000 (+0800) Subject: add all info but no blood pressure. X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=7701d428e2c005e583283e8a84be39e21a1669cd;p=IcBlood.git add all info but no blood pressure. --- diff --git a/app/src/main/java/com/ic/blood/Gh301Activity.java b/app/src/main/java/com/ic/blood/Gh301Activity.java index eb69d53..48fa2e0 100644 --- a/app/src/main/java/com/ic/blood/Gh301Activity.java +++ b/app/src/main/java/com/ic/blood/Gh301Activity.java @@ -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)) { diff --git a/app/src/main/java/com/ic/blood/fragment/AllFragment.java b/app/src/main/java/com/ic/blood/fragment/AllFragment.java index 377cb37..fee4a8c 100644 --- a/app/src/main/java/com/ic/blood/fragment/AllFragment.java +++ b/app/src/main/java/com/ic/blood/fragment/AllFragment.java @@ -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 index 0000000..1e41ce9 --- /dev/null +++ b/app/src/main/res/layout/fragment_all.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_blood.xml b/app/src/main/res/layout/fragment_blood.xml deleted file mode 100644 index f539ec3..0000000 --- a/app/src/main/res/layout/fragment_blood.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 index 0000000..a1dc838 --- /dev/null +++ b/app/src/main/res/layout/fragment_heart_and_oxygen.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 index 0000000..0b9ba47 --- /dev/null +++ b/app/src/main/res/layout/fragment_heart_and_pressure.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +