Browse Source

1.添加测评module

王鹏鹏 1 year ago
parent
commit
ffe287cc7c
32 changed files with 1155 additions and 14 deletions
  1. 5 9
      app/src/main/AndroidManifest.xml
  2. 18 0
      app/src/main/java/com/yingyangfly/largescreen/MyApplication.kt
  3. 1 1
      app/src/main/res/values/strings.xml
  4. 1 0
      evaluation/build.gradle
  5. 16 1
      evaluation/src/main/AndroidManifest.xml
  6. 58 0
      evaluation/src/main/java/com/yingyangfly/evaluation/hospital/GuidePageAdapter.java
  7. 147 0
      evaluation/src/main/java/com/yingyangfly/evaluation/hospital/HospitalActivity.kt
  8. 21 0
      evaluation/src/main/java/com/yingyangfly/evaluation/hospital/HospitalViewModel.kt
  9. 14 0
      evaluation/src/main/java/com/yingyangfly/evaluation/net/EvaluationApiFactory.kt
  10. 14 0
      evaluation/src/main/java/com/yingyangfly/evaluation/net/EvaluationApiService.kt
  11. 12 2
      evaluation/src/main/manifest/AndroidManifest.xml
  12. 8 0
      evaluation/src/main/res/anim/leftin.xml
  13. 8 0
      evaluation/src/main/res/anim/leftout.xml
  14. 5 0
      evaluation/src/main/res/color/selector_radio_evaluation_color.xml
  15. 17 0
      evaluation/src/main/res/drawable/bg_hospital_home.xml
  16. 21 0
      evaluation/src/main/res/drawable/bg_hospital_mmse_evaluation.xml
  17. 21 0
      evaluation/src/main/res/drawable/bg_hospital_moca_evaluation.xml
  18. 21 0
      evaluation/src/main/res/drawable/bg_other_evaluation.xml
  19. 10 0
      evaluation/src/main/res/drawable/bg_tv_home_title.xml
  20. 231 0
      evaluation/src/main/res/layout/activity_hospital.xml
  21. 25 0
      evaluation/src/main/res/layout/item_guide.xml
  22. BIN
      evaluation/src/main/res/mipmap-xxhdpi/icon_evaluation_login_out.png
  23. BIN
      evaluation/src/main/res/mipmap-xxhdpi/icon_evaluation_search.png
  24. BIN
      evaluation/src/main/res/mipmap-xxhdpi/icon_hospital_logo.png
  25. BIN
      evaluation/src/main/res/mipmap-xxhdpi/icon_mmse.png
  26. BIN
      evaluation/src/main/res/mipmap-xxhdpi/icon_moca.png
  27. BIN
      evaluation/src/main/res/mipmap-xxhdpi/icon_other_evaluations.png
  28. 91 0
      evaluation/src/main/res/values/colors.xml
  29. 216 0
      evaluation/src/main/res/values/dimens.xml
  30. 71 0
      evaluation/src/main/res/values/strings.xml
  31. 97 0
      evaluation/src/main/res/values/styles.xml
  32. 6 1
      gradle.properties

+ 5 - 9
app/src/main/AndroidManifest.xml

@@ -3,7 +3,12 @@
     xmlns:tools="http://schemas.android.com/tools"
     package="com.yingyangfly.largescreen">
 
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
     <application
+        android:name=".MyApplication"
         android:allowBackup="true"
         android:fullBackupContent="@xml/backup_rules"
         android:icon="@mipmap/ic_launcher"
@@ -15,15 +20,6 @@
         tools:replace="allowBackup"
         tools:targetApi="31">
 
-        <!-- 千万别忘了加这一句。支持api level 28 以上编译-->
-        <uses-library
-            android:name="org.apache.http.legacy"
-            android:required="false" />
-
-        <meta-data
-            android:name="ScopedStorage"
-            android:value="true" />
-
         <activity
             android:name="com.yingyangfly.largescreen.activity.MainActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"

+ 18 - 0
app/src/main/java/com/yingyangfly/largescreen/MyApplication.kt

@@ -0,0 +1,18 @@
+package com.yingyangfly.largescreen
+
+import android.content.Context
+import androidx.multidex.MultiDex
+import com.yingyangfly.baselib.BaseApplication
+
+class MyApplication : BaseApplication() {
+
+    override fun attachBaseContext(base: Context?) {
+        super.attachBaseContext(base)
+        //如果需要使用MultiDex,需要在此处调用。
+        MultiDex.install(this)
+    }
+
+    override fun onCreate() {
+        super.onCreate()
+    }
+}

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -1,3 +1,3 @@
 <resources>
-    <string name="app_name">hcp-large-screen</string>
+
 </resources>

+ 1 - 0
evaluation/build.gradle

@@ -22,4 +22,5 @@ dependencies {
     implementation(rootProject.ext.androidx.appcompat)
     implementation(rootProject.ext.androidx.material)
     implementation(rootProject.ext.androidx.constraintlayout)
+    implementation(rootProject.ext.dependencies.banner)
 }

+ 16 - 1
evaluation/src/main/AndroidManifest.xml

@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest package="com.yingyangfly.evaluation">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.yingyangfly.evaluation">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+    <application>
+
+        <activity
+            android:name="com.yingyangfly.evaluation.hospital.HospitalActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:launchMode="singleTask"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
+    </application>
 
 </manifest>

+ 58 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/hospital/GuidePageAdapter.java

@@ -0,0 +1,58 @@
+package com.yingyangfly.evaluation.hospital;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.yingyangfly.baselib.utils.GlideImgUtil;
+import com.yingyangfly.baselib.utils.ViewTool;
+import com.yingyangfly.evaluation.R;
+import com.youth.banner.adapter.BannerAdapter;
+
+import java.util.List;
+
+/**
+ * @author gold
+ * @date 2022/9/17 上午11:13
+ * @copyright (C) 2019-2022, XiaoLiu All Rights Reserved
+ * @description 轮播图适配器
+ */
+public class GuidePageAdapter extends BannerAdapter<String, GuidePageAdapter.HomeBannerHolder> {
+
+    private Context mContext;
+
+    public GuidePageAdapter(List<String> datas, Context mContext) {
+        this(datas);
+        this.mContext = mContext;
+    }
+
+    public GuidePageAdapter(List<String> datas) {
+        super(datas);
+    }
+
+    @Override
+    public HomeBannerHolder onCreateHolder(ViewGroup parent, int viewType) {
+        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_guide, parent, false);
+        View views = ViewTool.inflateLayoutPixels(parent.getContext(), view, 1280, 1024);
+        return new HomeBannerHolder(views);
+    }
+
+    @Override
+    public void onBindView(HomeBannerHolder holder, String data, int position, int size) {
+        GlideImgUtil.loadImg(mContext, data, holder.img);
+    }
+
+    public class HomeBannerHolder extends RecyclerView.ViewHolder {
+        ImageView img;
+
+        public HomeBannerHolder(@NonNull View itemView) {
+            super(itemView);
+            img = itemView.findViewById(R.id.guideImage);
+        }
+    }
+}

+ 147 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/hospital/HospitalActivity.kt

@@ -0,0 +1,147 @@
+package com.yingyangfly.evaluation.hospital
+
+import android.annotation.SuppressLint
+import android.text.TextUtils
+import android.view.MotionEvent
+import android.view.View
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyangfly.baselib.dialog.BindingPhoneDialog
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
+import com.yingyangfly.baselib.ext.show
+import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.mvvm.BaseTvMVVMActivity
+import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.baselib.utils.JumpUtil
+import com.yingyangfly.baselib.utils.User
+import com.yingyangfly.evaluation.R
+import com.yingyangfly.evaluation.databinding.ActivityHospitalBinding
+import com.youth.banner.indicator.RectangleIndicator
+
+/**
+ * 医院电视端首页
+ */
+@Route(path = RouterUrlCommon.hospitalEvaluation)
+class HospitalActivity : BaseTvMVVMActivity<ActivityHospitalBinding, HospitalViewModel>(),
+    View.OnTouchListener {
+
+    private var str1 = "https://15463311.s21i.faiusr.com/4/ABUIABAEGAAgiOzT0AUo6vfflwQwgA84ggQ.png"
+    private var str2 =
+        "https://hbimg.b0.upaiyun.com/2540097570159b23e684f267ad6de80681e026f23e7f4-be6kp2_fw658"
+    private var str3 = "https://img.zcool.cn/community/0137015b23fd90a8012034f7594657.jpg@2o.jpg"
+    private var str4 =
+        "https://img0.baidu.com/it/u=4041408584,4001157003&fm=253&fmt=auto&app=138&f=JPEG"
+    private lateinit var adapterGuide: GuidePageAdapter
+    private var imageList = mutableListOf<String>()
+
+    override fun initViews() {
+        imageList.add(str1)
+        imageList.add(str2)
+        imageList.add(str3)
+        imageList.add(str4)
+        adapterGuide = GuidePageAdapter(imageList, mContext)
+        binding.guide.addBannerLifecycleObserver(this)?.setAdapter(adapterGuide)?.indicator =
+            RectangleIndicator(mContext)
+
+    }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun initListener() {
+        binding {
+            loginOutLayout.setOnTouchListener(this@HospitalActivity)
+            searchLayout.setOnTouchListener(this@HospitalActivity)
+            otherEvaluationsLayout.setOnTouchListener(this@HospitalActivity)
+            mocaLayout.setOnTouchListener(this@HospitalActivity)
+            mmseLayout.setOnTouchListener(this@HospitalActivity)
+        }
+    }
+
+    override fun initData() {
+
+    }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.loginOutLayout || v.id == R.id.searchLayout || v.id == R.id.otherEvaluationsLayout || v.id == R.id.mocaLayout || v.id == R.id.mmseLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                when (v.id) {
+                    R.id.loginOutLayout -> {
+                        loginOut()
+                    }
+
+                    R.id.searchLayout -> {
+                        JumpUtil.jumpActivity(RouterUrlCommon.evaluationHistory)
+                    }
+
+                    R.id.otherEvaluationsLayout -> {
+                        JumpUtil.jumpActivity(RouterUrlCommon.mocaEvaluation)
+                    }
+
+                    R.id.mocaLayout -> {
+                        JumpUtil.jumpActivity(RouterUrlCommon.mocaEvaluation)
+                    }
+
+                    R.id.mmseLayout -> {
+                        JumpUtil.jumpActivity(RouterUrlCommon.mmseEvaluation)
+                    }
+                }
+            }
+
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.loginOutLayout || v.id == R.id.searchLayout || v.id == R.id.otherEvaluationsLayout || v.id == R.id.mocaLayout || v.id == R.id.mmseLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
+    override fun onResume() {
+        super.onResume()
+        if (TextUtils.isEmpty(User.getToken())) {
+            binding.imageLoginOut.show(false)
+            binding.tvLoginOut.show(false)
+            showBindingPhoneDialog()
+        } else {
+            binding.imageLoginOut.show(true)
+            binding.tvLoginOut.show(true)
+        }
+    }
+
+    /**
+     * 退出登录
+     */
+    private fun loginOut() {
+        viewModel.logout(fail = {
+            "解绑失败,请重试".toast()
+        }, success = {
+            runOnUiThread {
+                binding.imageLoginOut.show(false)
+                binding.tvLoginOut.show(false)
+                User.saveToken("")
+                User.savePhone("")
+                showBindingPhoneDialog()
+            }
+        })
+    }
+
+    /**
+     * 展示绑定手机号弹窗
+     */
+    @SuppressLint("SetTextI18n")
+    private fun showBindingPhoneDialog() {
+        val bindingPhoneDialog = BindingPhoneDialog()
+        bindingPhoneDialog.onDialogClickListener = {
+            binding.imageLoginOut.show(true)
+            binding.tvLoginOut.show(true)
+        }
+        bindingPhoneDialog.show(supportFragmentManager, "bindingPhoneDialog")
+    }
+}

+ 21 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/hospital/HospitalViewModel.kt

@@ -0,0 +1,21 @@
+package com.yingyangfly.evaluation.hospital
+
+import com.yingyangfly.baselib.mvvm.BaseViewModel
+import com.yingyangfly.evaluation.net.EVALUATION_API
+
+/**
+ * @author 王鹏鹏
+ * @description 工作台页面ViewModel
+ */
+class HospitalViewModel : BaseViewModel() {
+
+    fun logout(
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: String?) -> Unit)? = null,
+    ) = launchFlow(true) {
+        EVALUATION_API.largeLogout()
+    }.runUI(
+        success,
+        fail
+    )
+}

+ 14 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/net/EvaluationApiFactory.kt

@@ -0,0 +1,14 @@
+package com.yingyangfly.evaluation.net
+
+import com.yingyangfly.baselib.net.NetConfig
+import com.yingyangfly.baselib.net.initAPI
+
+val Any.EVALUATION_API: EvaluationApiService by lazy {
+    EvaluationApiFactory.api
+}
+
+object EvaluationApiFactory {
+    val api: EvaluationApiService by lazy {
+        initAPI(NetConfig.API_URL, EvaluationApiService::class.java)
+    }
+}

+ 14 - 0
evaluation/src/main/java/com/yingyangfly/evaluation/net/EvaluationApiService.kt

@@ -0,0 +1,14 @@
+package com.yingyangfly.evaluation.net
+
+import com.yingyangfly.baselib.net.BaseResp
+import retrofit2.http.POST
+
+interface EvaluationApiService {
+
+    /**
+     * 退出登录
+     */
+    @POST("large-screen/logout")
+    suspend fun largeLogout(): BaseResp<String>
+
+}

+ 12 - 2
evaluation/src/main/manifest/AndroidManifest.xml

@@ -1,9 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest package="com.yingyangfly.evaluation">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.yingyangfly.evaluation">
 
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 
-    <application>
 
+    <application>
+        <activity
+            android:name="com.yingyangfly.evaluation.hospital.HospitalActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:launchMode="singleTask"
+            android:screenOrientation="landscape"
+            android:windowSoftInputMode="adjustResize|adjustPan" />
 
     </application>
 

+ 8 - 0
evaluation/src/main/res/anim/leftin.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="500"
+        android:fromXDelta="100%p"
+        android:toXDelta="0" />
+</set> 
+

+ 8 - 0
evaluation/src/main/res/anim/leftout.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="500"
+        android:fromXDelta="0"
+        android:toXDelta="-100%p" />
+</set> 
+

+ 5 - 0
evaluation/src/main/res/color/selector_radio_evaluation_color.xml

@@ -0,0 +1,5 @@
+<selector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">
+    <item android:color="@color/color_FF4A76FF" android:state_checked="true" />
+    <!-- not selected -->
+    <item android:color="@android:color/white" android:state_checked="false" />
+</selector>

+ 17 - 0
evaluation/src/main/res/drawable/bg_hospital_home.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <gradient
+                android:angle="90"
+                android:endColor="@color/color_FF0757EE"
+                android:startColor="@color/color_FF4995DF"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 21 - 0
evaluation/src/main/res/drawable/bg_hospital_mmse_evaluation.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_23px" />
+            <stroke
+                android:color="@color/color_FF1AA8FD"
+                android:dashWidth="@dimen/divider_6px" />
+            <gradient
+                android:angle="90"
+                android:endColor="@color/color_FF2B9DFF"
+                android:startColor="@color/color_FF15C6FF"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 21 - 0
evaluation/src/main/res/drawable/bg_hospital_moca_evaluation.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_23px" />
+            <stroke
+                android:color="@color/color_FFFFB872"
+                android:dashWidth="@dimen/divider_6px" />
+            <gradient
+                android:angle="90"
+                android:endColor="@color/color_FFFFE157"
+                android:startColor="@color/color_FFFFCB62"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 21 - 0
evaluation/src/main/res/drawable/bg_other_evaluation.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_40px" />
+            <stroke
+                android:color="@color/color_FFFF865F"
+                android:dashWidth="@dimen/divider_6px" />
+            <gradient
+                android:angle="90"
+                android:endColor="@color/color_FFFF6D57"
+                android:startColor="@color/color_FFFFAA62"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 10 - 0
evaluation/src/main/res/drawable/bg_tv_home_title.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_32px" />
+    <solid android:color="@color/color_3378CCFF" />
+    <stroke
+        android:width="@dimen/divider_4px"
+        android:color="@color/color_FF6BB0FF" />
+</shape>

+ 231 - 0
evaluation/src/main/res/layout/activity_hospital.xml

@@ -0,0 +1,231 @@
+<?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"
+    tools:ignore="ResourceName">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/bg_hospital_home">
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/hospitalImage"
+            android:layout_width="@dimen/divider_80px"
+            android:layout_height="@dimen/divider_80px"
+            android:layout_marginStart="@dimen/divider_47px"
+            android:layout_marginTop="@dimen/divider_35px"
+            android:background="@mipmap/icon_hospital_logo"
+            android:scaleType="centerInside"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/divider_23px"
+            android:layout_marginTop="@dimen/divider_58px"
+            android:text="@string/hospital_name"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/divider_28px"
+            android:textStyle="bold"
+            app:layout_constraintStart_toEndOf="@+id/hospitalImage"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <LinearLayout
+            android:id="@+id/loginOutLayout"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal"
+            android:orientation="vertical"
+            android:paddingStart="@dimen/divider_33px"
+            android:paddingTop="@dimen/divider_36px"
+            android:paddingEnd="@dimen/divider_33px"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:id="@+id/imageLoginOut"
+                android:layout_width="@dimen/divider_33px"
+                android:layout_height="@dimen/divider_31px"
+                android:background="@mipmap/icon_evaluation_login_out"
+                android:scaleType="centerInside" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvLoginOut"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_8px"
+                android:text="@string/exit_binding"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_18px"
+                android:textStyle="bold" />
+        </LinearLayout>
+
+        <com.youth.banner.Banner
+            android:id="@+id/guide"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/divider_307px"
+            android:layout_marginStart="@dimen/divider_89px"
+            android:layout_marginTop="@dimen/divider_29px"
+            android:layout_marginEnd="@dimen/divider_73px"
+            app:banner_indicator_normal_color="@color/color_A1FFFFFF"
+            app:banner_indicator_normal_width="@dimen/divider_13px"
+            app:banner_indicator_selected_color="@android:color/white"
+            app:banner_indicator_selected_width="@dimen/divider_13px"
+            app:banner_infinite_loop="true"
+            app:banner_loop_time="3000"
+            app:banner_radius="0dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/hospitalImage" />
+
+        <LinearLayout
+            android:id="@+id/searchLayout"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/divider_109px"
+            android:layout_marginStart="@dimen/divider_89px"
+            android:layout_marginTop="@dimen/divider_35px"
+            android:layout_marginEnd="@dimen/divider_73px"
+            android:background="@drawable/bg_tv_home_title"
+            android:gravity="center"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/guide">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:layout_width="@dimen/divider_48px"
+                android:layout_height="@dimen/divider_48px"
+                android:background="@mipmap/icon_evaluation_search"
+                android:scaleType="centerInside" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_16px"
+                android:text="@string/report_query"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_40px"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/otherEvaluationsLayout"
+            android:layout_width="@dimen/divider_535px"
+            android:layout_height="@dimen/divider_285px"
+            android:layout_marginStart="@dimen/divider_89px"
+            android:layout_marginTop="@dimen/divider_33px"
+            android:background="@drawable/bg_other_evaluation"
+            android:gravity="center_horizontal"
+            android:orientation="vertical"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/searchLayout">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:layout_width="@dimen/divider_133px"
+                android:layout_height="@dimen/divider_133px"
+                android:layout_marginTop="@dimen/divider_36px"
+                android:background="@mipmap/icon_other_evaluations"
+                android:scaleType="centerInside" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_16px"
+                android:text="@string/other_evaluations"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_42px"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/mocaLayout"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/divider_127px"
+            android:layout_marginStart="@dimen/divider_33px"
+            android:layout_marginTop="@dimen/divider_33px"
+            android:layout_marginEnd="@dimen/divider_75px"
+            android:background="@drawable/bg_hospital_moca_evaluation"
+            android:gravity="center"
+            android:orientation="horizontal"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/otherEvaluationsLayout"
+            app:layout_constraintTop_toBottomOf="@+id/searchLayout">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:layout_width="@dimen/divider_81px"
+                android:layout_height="@dimen/divider_81px"
+                android:background="@mipmap/icon_moca"
+                android:scaleType="centerInside" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_15px"
+                android:text="@string/moca_evaluation"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_42px"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/mmseLayout"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/divider_127px"
+            android:layout_marginStart="@dimen/divider_33px"
+            android:layout_marginTop="@dimen/divider_31px"
+            android:layout_marginEnd="@dimen/divider_75px"
+            android:background="@drawable/bg_hospital_mmse_evaluation"
+            android:gravity="center"
+            android:orientation="horizontal"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/otherEvaluationsLayout"
+            app:layout_constraintTop_toBottomOf="@+id/mocaLayout">
+
+            <androidx.appcompat.widget.AppCompatImageView
+                android:layout_width="@dimen/divider_81px"
+                android:layout_height="@dimen/divider_81px"
+                android:background="@mipmap/icon_mmse"
+                android:scaleType="centerInside" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_15px"
+                android:text="@string/mmse_evaluation"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_42px"
+                android:textStyle="bold" />
+
+        </LinearLayout>
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/divider_41px"
+            android:layout_marginBottom="@dimen/divider_19px"
+            android:text="终端位置:宣武医院一楼大厅"
+            android:textColor="@color/color_B3FFFFFF"
+            android:textSize="@dimen/divider_24px"
+            android:textStyle="bold"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent" />
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/divider_31px"
+            android:layout_marginBottom="@dimen/divider_19px"
+            android:text="终端号:00132"
+            android:textColor="@color/color_B3FFFFFF"
+            android:textSize="@dimen/divider_24px"
+            android:textStyle="bold"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>

+ 25 - 0
evaluation/src/main/res/layout/item_guide.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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"
+    tools:ignore="ResourceName">
+
+    <com.google.android.material.card.MaterialCardView
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/divider_278px"
+        android:theme="@style/Theme.MaterialComponents.NoActionBar"
+        app:cardBackgroundColor="@android:color/white"
+        app:cardCornerRadius="@dimen/divider_20px">
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/guideImage"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:scaleType="centerCrop" />
+
+    </com.google.android.material.card.MaterialCardView>
+
+
+</LinearLayout>

BIN
evaluation/src/main/res/mipmap-xxhdpi/icon_evaluation_login_out.png


BIN
evaluation/src/main/res/mipmap-xxhdpi/icon_evaluation_search.png


BIN
evaluation/src/main/res/mipmap-xxhdpi/icon_hospital_logo.png


BIN
evaluation/src/main/res/mipmap-xxhdpi/icon_mmse.png


BIN
evaluation/src/main/res/mipmap-xxhdpi/icon_moca.png


BIN
evaluation/src/main/res/mipmap-xxhdpi/icon_other_evaluations.png


+ 91 - 0
evaluation/src/main/res/values/colors.xml

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+    <color name="color_99ffffff" tools:ignore="ResourceName">#99ffffff</color>//60%
+    <color name="color_66ffffff" tools:ignore="ResourceName">#66ffffff</color>//60%
+    <color name="color_1Cffffff" tools:ignore="ResourceName">#1Cffffff</color>//89%
+    <color name="color_FF947CFF" tools:ignore="ResourceName">#FF947CFF</color>
+    <color name="color_FF491797" tools:ignore="ResourceName">#FF491797</color>
+    <color name="color_993E3F3E" tools:ignore="ResourceName">#993E3F3E</color>
+    <color name="color_DBffffff" tools:ignore="ResourceName">#DBffffff</color>
+    <color name="color_c4714bdd" tools:ignore="ResourceName">#c4714bdd</color>
+    <color name="color_E6ffffff" tools:ignore="ResourceName">#E6ffffff</color>
+    <color name="color_FF4A76FF" tools:ignore="ResourceName">#FF4A76FF</color>
+    <color name="color_6562FF" tools:ignore="ResourceName">#6562FF</color>
+    <color name="color_FF3B92DC" tools:ignore="ResourceName">#FF3B92DC</color>
+    <color name="color_FF5467FF" tools:ignore="ResourceName">#FF5467FF</color>
+    <color name="color_4794BCFF" tools:ignore="ResourceName">#4794BCFF</color>
+    <color name="color_FF76A0FC" tools:ignore="ResourceName">#FF76A0FC</color>
+    <color name="color_ff4571ff" tools:ignore="ResourceName">#ff4571ff</color>
+    <color name="color_ff8fafff" tools:ignore="ResourceName">#ff8fafff</color>
+    <color name="color_FF2B70FF" tools:ignore="ResourceName">#FF2B70FF</color>
+    <color name="color_FF821EFF" tools:ignore="ResourceName">#FF821EFF</color>
+    <color name="color_69B8CFFF" tools:ignore="ResourceName">#69B8CFFF</color>
+    <color name="color_FFE0E0E0" tools:ignore="ResourceName">#FFE0E0E0</color>
+    <color name="color_FFFFBD72" tools:ignore="ResourceName">#FFFFBD72</color>
+    <color name="color_FFFFC036" tools:ignore="ResourceName">#FFFFC036</color>
+    <color name="color_80000000" tools:ignore="ResourceName">#80000000</color>
+    <color name="color_FF6E5FFF" tools:ignore="ResourceName">#FF6E5FFF</color>
+    <color name="transparent" tools:ignore="ResourceName">#00000000</color><!-- 透明   -->
+    <color name="color_FF416AFF" tools:ignore="ResourceName">#FF416AFF</color>
+    <color name="color_B33E3F3E" tools:ignore="ResourceName">#B33E3F3E</color>
+    <color name="color_FF4773FF" tools:ignore="ResourceName">#FF4773FF</color>
+    <color name="color_FFE6ECFF" tools:ignore="ResourceName">#FFE6ECFF</color>
+    <color name="color_FFCFD9FF" tools:ignore="ResourceName">#FFCFD9FF</color>
+    <color name="color_FF383838" tools:ignore="ResourceName">#FF383838</color>
+    <color name="color_FFF2F5FF" tools:ignore="ResourceName">#FFF2F5FF</color>
+    <color name="color_FFFF2B2B" tools:ignore="MissingDefaultResource,ResourceName">#FFFF2B2B
+    </color>
+    <color name="color_FF4974FF" tools:ignore="ResourceName">#FF4974FF</color>
+    <color name="color_80BFDAFF" tools:ignore="ResourceName">#80BFDAFF</color>
+    <color name="color_FFCFDFFF" tools:ignore="ResourceName">#FFCFDFFF</color>
+    <color name="color_FF343049" tools:ignore="ResourceName">#FF343049</color>
+    <color name="color_FFC46D40" tools:ignore="ResourceName">#FFC46D40</color>
+    <color name="color_FFFFBE8A" tools:ignore="ResourceName">#FFFFBE8A</color>
+    <color name="color_FFFECE75" tools:ignore="ResourceName">#FFFECE75</color>
+    <color name="color_FFCEE4EE" tools:ignore="ResourceName">#FFCEE4EE</color>
+    <color name="color_FF93C5D8" tools:ignore="ResourceName">#FF93C5D8</color>
+    <color name="color_FF979797" tools:ignore="ResourceName">#FF979797</color>
+    <color name="color_FF9FA5B4" tools:ignore="ResourceName">#FF9FA5B4</color>
+    <color name="color_15BA11" tools:ignore="ResourceName">#15BA11</color>
+    <color name="color_FF333333" tools:ignore="ResourceName">#FF333333</color>
+    <color name="color_F7FF8B36" tools:ignore="ResourceName">#F7FF8B36</color>
+    <color name="color_FFFFE99C" tools:ignore="ResourceName">#FFFFE99C</color>
+    <color name="color_FF2DACFF" tools:ignore="ResourceName">#FF2DACFF</color>
+    <color name="color_FF0C70EB" tools:ignore="ResourceName">#FF0C70EB</color>
+    <color name="color_FF22D4DC" tools:ignore="ResourceName">#FF22D4DC</color>
+    <color name="color_FF79FF9A" tools:ignore="ResourceName">#FF79FF9A</color>
+    <color name="color_FFCB3DFF" tools:ignore="ResourceName">#FFCB3DFF</color>
+    <color name="color_FFDB9CFF" tools:ignore="ResourceName">#FFDB9CFF</color>
+    <color name="color_FFBCAFFF" tools:ignore="ResourceName">#FFBCAFFF</color>
+    <color name="color_FFFF8272" tools:ignore="ResourceName">#FFFF8272</color>
+    <color name="color_B5FF524A" tools:ignore="ResourceName">#B5FF524A</color>
+    <color name="color_FFA6A9FF" tools:ignore="ResourceName">#FFA6A9FF</color>
+    <color name="color_FF88AAFF" tools:ignore="ResourceName">#FF88AAFF</color>
+    <color name="color_4A76FF" tools:ignore="ResourceName">#4A76FF</color>
+    <color name="color_CCFFFFFF" tools:ignore="ResourceName">#CCFFFFFF</color>
+    <color name="color_FF92ACFF" tools:ignore="ResourceName">#FF92ACFF</color>
+    <color name="color_FF4174FF" tools:ignore="ResourceName">#FF4174FF</color>
+    <color name="color_FF6D9AFF" tools:ignore="ResourceName">#FF6D9AFF</color>
+    <color name="color_FF2826B5" tools:ignore="ResourceName">#FF2826B5</color>
+    <color name="color_FF2F55FB" tools:ignore="ResourceName">#FF2F55FB</color>
+    <color name="color_FFF0F0F0" tools:ignore="ResourceName">#FFF0F0F0</color>
+    <color name="color_FFFB4F28" tools:ignore="ResourceName">#FFFB4F28</color>
+    <color name="color_FF3C63EE" tools:ignore="ResourceName">#FF3C63EE</color>
+    <color name="color_FF6BB0FF" tools:ignore="ResourceName">#FF6BB0FF</color>
+    <color name="color_3378CCFF" tools:ignore="ResourceName">#3378CCFF</color>
+    <color name="color_FF0757EE" tools:ignore="ResourceName">#FF0757EE</color>
+    <color name="color_FF4995DF" tools:ignore="ResourceName">#FF4995DF</color>
+    <color name="color_A1FFFFFF" tools:ignore="ResourceName">#A1FFFFFF</color>
+    <color name="color_FF3A89EB" tools:ignore="ResourceName">#FF3A89EB</color>
+    <color name="color_FFFF865F" tools:ignore="ResourceName">#FFFF865F</color>
+    <color name="color_FFFF6D57" tools:ignore="ResourceName">#FFFF6D57</color>
+    <color name="color_FFFFAA62" tools:ignore="ResourceName">#FFFFAA62</color>
+    <color name="color_B3FFFFFF" tools:ignore="ResourceName">#B3FFFFFF</color>
+    <color name="color_FFFFB872" tools:ignore="ResourceName">#FFFFB872</color>
+    <color name="color_FFFFE157" tools:ignore="ResourceName">#FFFFE157</color>
+    <color name="color_FFFFCB62" tools:ignore="ResourceName">#FFFFCB62</color>
+    <color name="color_FF1AA8FD" tools:ignore="ResourceName">#FF1AA8FD</color>
+    <color name="color_FF15C6FF" tools:ignore="ResourceName">#FF15C6FF</color>
+    <color name="color_FF2B9DFF" tools:ignore="ResourceName">#FF2B9DFF</color>
+</resources>

+ 216 - 0
evaluation/src/main/res/values/dimens.xml

@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:tools="http://schemas.android.com/tools">
+    <dimen name="divider_1194px" tools:ignore="ResourceName">1194px</dimen>
+    <dimen name="divider_834px" tools:ignore="ResourceName">834px</dimen>
+    <dimen name="divider_689px" tools:ignore="ResourceName">689px</dimen>
+    <dimen name="divider_616px" tools:ignore="ResourceName">616px</dimen>
+    <dimen name="divider_607px" tools:ignore="ResourceName">607px</dimen>
+    <dimen name="divider_606px" tools:ignore="ResourceName">606px</dimen>
+    <dimen name="divider_561px" tools:ignore="ResourceName">561px</dimen>
+    <dimen name="divider_544px" tools:ignore="ResourceName">544px</dimen>
+    <dimen name="divider_535px" tools:ignore="ResourceName">535px</dimen>
+    <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
+    <dimen name="divider_525px" tools:ignore="ResourceName">525px</dimen>
+    <dimen name="divider_516px" tools:ignore="ResourceName">516px</dimen>
+    <dimen name="divider_503px" tools:ignore="ResourceName">503px</dimen>
+    <dimen name="divider_472px" tools:ignore="ResourceName">472px</dimen>
+    <dimen name="divider_466px" tools:ignore="ResourceName">466px</dimen>
+    <dimen name="divider_445px" tools:ignore="ResourceName">445px</dimen>
+    <dimen name="divider_443px" tools:ignore="ResourceName">443px</dimen>
+    <dimen name="divider_440px" tools:ignore="ResourceName">440px</dimen>
+    <dimen name="divider_432px" tools:ignore="ResourceName">432px</dimen>
+    <dimen name="divider_430px" tools:ignore="ResourceName">430px</dimen>
+    <dimen name="divider_418px" tools:ignore="ResourceName">418px</dimen>
+    <dimen name="divider_416px" tools:ignore="ResourceName">416px</dimen>
+    <dimen name="divider_415px" tools:ignore="ResourceName">415px</dimen>
+    <dimen name="divider_413px" tools:ignore="ResourceName">413px</dimen>
+    <dimen name="divider_409px" tools:ignore="ResourceName">409px</dimen>
+    <dimen name="divider_404px" tools:ignore="ResourceName">404px</dimen>
+    <dimen name="divider_395px" tools:ignore="ResourceName">395px</dimen>
+    <dimen name="divider_389px" tools:ignore="ResourceName">389px</dimen>
+    <dimen name="divider_377px" tools:ignore="ResourceName">377px</dimen>
+    <dimen name="divider_363px" tools:ignore="ResourceName">363px</dimen>
+    <dimen name="divider_354px" tools:ignore="ResourceName">354px</dimen>
+    <dimen name="divider_348px" tools:ignore="ResourceName">348px</dimen>
+    <dimen name="divider_345px" tools:ignore="ResourceName">345px</dimen>
+    <dimen name="divider_343px" tools:ignore="ResourceName">343px</dimen>
+    <dimen name="divider_340px" tools:ignore="ResourceName">340px</dimen>
+    <dimen name="divider_339px" tools:ignore="ResourceName">339px</dimen>
+    <dimen name="divider_335px" tools:ignore="ResourceName">335px</dimen>
+    <dimen name="divider_333px" tools:ignore="ResourceName">333px</dimen>
+    <dimen name="divider_331px" tools:ignore="ResourceName">331px</dimen>
+    <dimen name="divider_330px" tools:ignore="ResourceName">330px</dimen>
+    <dimen name="divider_329px" tools:ignore="ResourceName">329px</dimen>
+    <dimen name="divider_327px" tools:ignore="ResourceName">327px</dimen>
+    <dimen name="divider_320px" tools:ignore="ResourceName">320px</dimen>
+    <dimen name="divider_316px" tools:ignore="ResourceName">316px</dimen>
+    <dimen name="divider_315px" tools:ignore="ResourceName">315px</dimen>
+    <dimen name="divider_313px" tools:ignore="ResourceName">313px</dimen>
+    <dimen name="divider_307px" tools:ignore="ResourceName">307px</dimen>
+    <dimen name="divider_291px" tools:ignore="ResourceName">291px</dimen>
+    <dimen name="divider_289px" tools:ignore="ResourceName">289px</dimen>
+    <dimen name="divider_285px" tools:ignore="ResourceName">285px</dimen>
+    <dimen name="divider_283px" tools:ignore="ResourceName">283px</dimen>
+    <dimen name="divider_282px" tools:ignore="ResourceName">282px</dimen>
+    <dimen name="divider_278px" tools:ignore="ResourceName">278px</dimen>
+    <dimen name="divider_277px" tools:ignore="ResourceName">277px</dimen>
+    <dimen name="divider_270px" tools:ignore="ResourceName">270px</dimen>
+    <dimen name="divider_267px" tools:ignore="ResourceName">267px</dimen>
+    <dimen name="divider_265px" tools:ignore="ResourceName">265px</dimen>
+    <dimen name="divider_264px" tools:ignore="ResourceName">264px</dimen>
+    <dimen name="divider_260px" tools:ignore="ResourceName">260px</dimen>
+    <dimen name="divider_259px" tools:ignore="ResourceName">259px</dimen>
+    <dimen name="divider_255px" tools:ignore="ResourceName">255px</dimen>
+    <dimen name="divider_253px" tools:ignore="ResourceName">253px</dimen>
+    <dimen name="divider_250px" tools:ignore="ResourceName">250px</dimen>
+    <dimen name="divider_249px" tools:ignore="ResourceName">249px</dimen>
+    <dimen name="divider_245px" tools:ignore="ResourceName">245px</dimen>
+    <dimen name="divider_238px" tools:ignore="ResourceName">238px</dimen>
+    <dimen name="divider_237px" tools:ignore="ResourceName">237px</dimen>
+    <dimen name="divider_235px" tools:ignore="ResourceName">235px</dimen>
+    <dimen name="divider_234px" tools:ignore="ResourceName">234px</dimen>
+    <dimen name="divider_230px" tools:ignore="ResourceName">230px</dimen>
+    <dimen name="divider_229px" tools:ignore="ResourceName">229px</dimen>
+    <dimen name="divider_226px" tools:ignore="ResourceName">226px</dimen>
+    <dimen name="divider_224px" tools:ignore="ResourceName">224px</dimen>
+    <dimen name="divider_220px" tools:ignore="ResourceName">220px</dimen>
+    <dimen name="divider_214px" tools:ignore="ResourceName">214px</dimen>
+    <dimen name="divider_213px" tools:ignore="ResourceName">213px</dimen>
+    <dimen name="divider_207px" tools:ignore="ResourceName">207px</dimen>
+    <dimen name="divider_203px" tools:ignore="ResourceName">203px</dimen>
+    <dimen name="divider_201px" tools:ignore="ResourceName">201px</dimen>
+    <dimen name="divider_200px" tools:ignore="ResourceName">200px</dimen>
+    <dimen name="divider_195px" tools:ignore="ResourceName">195px</dimen>
+    <dimen name="divider_190px" tools:ignore="ResourceName">190px</dimen>
+    <dimen name="divider_188px" tools:ignore="ResourceName">188px</dimen>
+    <dimen name="divider_185px" tools:ignore="ResourceName">185px</dimen>
+    <dimen name="divider_184px" tools:ignore="ResourceName">184px</dimen>
+    <dimen name="divider_181px" tools:ignore="ResourceName">181px</dimen>
+    <dimen name="divider_180px" tools:ignore="ResourceName">180px</dimen>
+    <dimen name="divider_176px" tools:ignore="ResourceName">176px</dimen>
+    <dimen name="divider_173px" tools:ignore="ResourceName">173px</dimen>
+    <dimen name="divider_160px" tools:ignore="ResourceName">160px</dimen>
+    <dimen name="divider_158px" tools:ignore="ResourceName">158px</dimen>
+    <dimen name="divider_150px" tools:ignore="ResourceName">150px</dimen>
+    <dimen name="divider_148px" tools:ignore="ResourceName">148px</dimen>
+    <dimen name="divider_141px" tools:ignore="ResourceName">141px</dimen>
+    <dimen name="divider_140px" tools:ignore="ResourceName">140px</dimen>
+    <dimen name="divider_135px" tools:ignore="ResourceName">135px</dimen>
+    <dimen name="divider_134px" tools:ignore="ResourceName">134px</dimen>
+    <dimen name="divider_133px" tools:ignore="ResourceName">133px</dimen>
+    <dimen name="divider_132px" tools:ignore="ResourceName">132px</dimen>
+    <dimen name="divider_130px" tools:ignore="ResourceName">130px</dimen>
+    <dimen name="divider_128px" tools:ignore="ResourceName">128px</dimen>
+    <dimen name="divider_127px" tools:ignore="ResourceName">127px</dimen>
+    <dimen name="divider_126px" tools:ignore="ResourceName">126px</dimen>
+    <dimen name="divider_122px" tools:ignore="ResourceName">122px</dimen>
+    <dimen name="divider_120px" tools:ignore="ResourceName">120px</dimen>
+    <dimen name="divider_119px" tools:ignore="ResourceName">119px</dimen>
+    <dimen name="divider_118px" tools:ignore="ResourceName">118px</dimen>
+    <dimen name="divider_117px" tools:ignore="ResourceName">117px</dimen>
+    <dimen name="divider_116px" tools:ignore="ResourceName">116px</dimen>
+    <dimen name="divider_115px" tools:ignore="ResourceName">115px</dimen>
+    <dimen name="divider_114px" tools:ignore="ResourceName">114px</dimen>
+    <dimen name="divider_113px" tools:ignore="ResourceName">113px</dimen>
+    <dimen name="divider_112px" tools:ignore="ResourceName">112px</dimen>
+    <dimen name="divider_111px" tools:ignore="ResourceName">111px</dimen>
+    <dimen name="divider_110px" tools:ignore="ResourceName">110px</dimen>
+    <dimen name="divider_109px" tools:ignore="ResourceName">109px</dimen>
+    <dimen name="divider_108px" tools:ignore="ResourceName">108px</dimen>
+    <dimen name="divider_107px" tools:ignore="ResourceName">107px</dimen>
+    <dimen name="divider_106px" tools:ignore="ResourceName">106px</dimen>
+    <dimen name="divider_105px" tools:ignore="ResourceName">105px</dimen>
+    <dimen name="divider_104px" tools:ignore="ResourceName">104px</dimen>
+    <dimen name="divider_103px" tools:ignore="ResourceName">103px</dimen>
+    <dimen name="divider_102px" tools:ignore="ResourceName">102px</dimen>
+    <dimen name="divider_101px" tools:ignore="ResourceName">101px</dimen>
+    <dimen name="divider_100px" tools:ignore="ResourceName">100px</dimen>
+    <dimen name="divider_95px" tools:ignore="ResourceName">95px</dimen>
+    <dimen name="divider_89px" tools:ignore="ResourceName">89px</dimen>
+    <dimen name="divider_88px" tools:ignore="ResourceName">88px</dimen>
+    <dimen name="divider_87px" tools:ignore="ResourceName">87px</dimen>
+    <dimen name="divider_83px" tools:ignore="ResourceName">83px</dimen>
+    <dimen name="divider_82px" tools:ignore="ResourceName">82px</dimen>
+    <dimen name="divider_81px" tools:ignore="ResourceName">81px</dimen>
+    <dimen name="divider_80px" tools:ignore="ResourceName">80px</dimen>
+    <dimen name="divider_79px" tools:ignore="ResourceName">79px</dimen>
+    <dimen name="divider_78px" tools:ignore="ResourceName">78px</dimen>
+    <dimen name="divider_77px" tools:ignore="ResourceName">77px</dimen>
+    <dimen name="divider_76px" tools:ignore="ResourceName">76px</dimen>
+    <dimen name="divider_75px" tools:ignore="ResourceName">75px</dimen>
+    <dimen name="divider_74px" tools:ignore="ResourceName">74px</dimen>
+    <dimen name="divider_73px" tools:ignore="ResourceName">73px</dimen>
+    <dimen name="divider_72px" tools:ignore="ResourceName">72px</dimen>
+    <dimen name="divider_71px" tools:ignore="ResourceName">71px</dimen>
+    <dimen name="divider_70px" tools:ignore="ResourceName">70px</dimen>
+    <dimen name="divider_69px" tools:ignore="ResourceName">69px</dimen>
+    <dimen name="divider_68px" tools:ignore="ResourceName">68px</dimen>
+    <dimen name="divider_67px" tools:ignore="ResourceName">67px</dimen>
+    <dimen name="divider_66px" tools:ignore="ResourceName">66px</dimen>
+    <dimen name="divider_65px" tools:ignore="ResourceName">65px</dimen>
+    <dimen name="divider_64px" tools:ignore="ResourceName">64px</dimen>
+    <dimen name="divider_63px" tools:ignore="ResourceName">63px</dimen>
+    <dimen name="divider_62px" tools:ignore="ResourceName">62px</dimen>
+    <dimen name="divider_61px" tools:ignore="ResourceName">61px</dimen>
+    <dimen name="divider_60px" tools:ignore="ResourceName">60px</dimen>
+    <dimen name="divider_59px" tools:ignore="ResourceName">59px</dimen>
+    <dimen name="divider_58px" tools:ignore="ResourceName">58px</dimen>
+    <dimen name="divider_57px" tools:ignore="ResourceName">57px</dimen>
+    <dimen name="divider_56px" tools:ignore="ResourceName">56px</dimen>
+    <dimen name="divider_55px" tools:ignore="ResourceName">55px</dimen>
+    <dimen name="divider_54px" tools:ignore="ResourceName">54px</dimen>
+    <dimen name="divider_53px" tools:ignore="ResourceName">53px</dimen>
+    <dimen name="divider_52px" tools:ignore="ResourceName">52px</dimen>
+    <dimen name="divider_51px" tools:ignore="ResourceName">51px</dimen>
+    <dimen name="divider_50px" tools:ignore="ResourceName">50px</dimen>
+    <dimen name="divider_49px" tools:ignore="ResourceName">49px</dimen>
+    <dimen name="divider_48px" tools:ignore="ResourceName">48px</dimen>
+    <dimen name="divider_47px" tools:ignore="ResourceName">47px</dimen>
+    <dimen name="divider_46px" tools:ignore="ResourceName">46px</dimen>
+    <dimen name="divider_45px" tools:ignore="ResourceName">45px</dimen>
+    <dimen name="divider_44px" tools:ignore="ResourceName">44px</dimen>
+    <dimen name="divider_43px" tools:ignore="ResourceName">43px</dimen>
+    <dimen name="divider_42px" tools:ignore="ResourceName">42px</dimen>
+    <dimen name="divider_41px" tools:ignore="ResourceName">41px</dimen>
+    <dimen name="divider_40px" tools:ignore="ResourceName">40px</dimen>
+    <dimen name="divider_39px" tools:ignore="ResourceName">39px</dimen>
+    <dimen name="divider_38px" tools:ignore="ResourceName">38px</dimen>
+    <dimen name="divider_37px" tools:ignore="ResourceName">37px</dimen>
+    <dimen name="divider_36px" tools:ignore="ResourceName">36px</dimen>
+    <dimen name="divider_35px" tools:ignore="ResourceName">35px</dimen>
+    <dimen name="divider_34px" tools:ignore="ResourceName">34px</dimen>
+    <dimen name="divider_33px" tools:ignore="ResourceName">33px</dimen>
+    <dimen name="divider_32px" tools:ignore="ResourceName">32px</dimen>
+    <dimen name="divider_31px" tools:ignore="ResourceName">31px</dimen>
+    <dimen name="divider_30px" tools:ignore="ResourceName">30px</dimen>
+    <dimen name="divider_29px" tools:ignore="ResourceName">29px</dimen>
+    <dimen name="divider_28px" tools:ignore="ResourceName">28px</dimen>
+    <dimen name="divider_27px" tools:ignore="ResourceName">27px</dimen>
+    <dimen name="divider_26px" tools:ignore="ResourceName">26px</dimen>
+    <dimen name="divider_25px" tools:ignore="ResourceName">25px</dimen>
+    <dimen name="divider_24px" tools:ignore="ResourceName">24px</dimen>
+    <dimen name="divider_23px" tools:ignore="ResourceName">23px</dimen>
+    <dimen name="divider_22px" tools:ignore="ResourceName">22px</dimen>
+    <dimen name="divider_21px" tools:ignore="ResourceName">21px</dimen>
+    <dimen name="divider_20px" tools:ignore="ResourceName">20px</dimen>
+    <dimen name="divider_19px" tools:ignore="ResourceName">19px</dimen>
+    <dimen name="divider_18px" tools:ignore="ResourceName">18px</dimen>
+    <dimen name="divider_17px" tools:ignore="ResourceName">17px</dimen>
+    <dimen name="divider_16px" tools:ignore="ResourceName">16px</dimen>
+    <dimen name="divider_15px" tools:ignore="ResourceName">15px</dimen>
+    <dimen name="divider_14px" tools:ignore="ResourceName">14px</dimen>
+    <dimen name="divider_13px" tools:ignore="ResourceName">13px</dimen>
+    <dimen name="divider_12px" tools:ignore="ResourceName">12px</dimen>
+    <dimen name="divider_11px" tools:ignore="ResourceName">11px</dimen>
+    <dimen name="divider_10px" tools:ignore="ResourceName">10px</dimen>
+    <dimen name="divider_9px" tools:ignore="ResourceName">9px</dimen>
+    <dimen name="divider_8px" tools:ignore="ResourceName">8px</dimen>
+    <dimen name="divider_7px" tools:ignore="ResourceName">7px</dimen>
+    <dimen name="divider_6px" tools:ignore="ResourceName">6px</dimen>
+    <dimen name="divider_5px" tools:ignore="ResourceName">5px</dimen>
+    <dimen name="divider_4px" tools:ignore="ResourceName">4px</dimen>
+    <dimen name="divider_3px" tools:ignore="ResourceName">3px</dimen>
+    <dimen name="divider_2px" tools:ignore="ResourceName">2px</dimen>
+    <dimen name="divider_1px" tools:ignore="ResourceName">1px</dimen>
+
+</resources>

+ 71 - 0
evaluation/src/main/res/values/strings.xml

@@ -0,0 +1,71 @@
+<resources xmlns:tools="http://schemas.android.com/tools">
+    <string name="app_name" tools:ignore="ResourceName">FutureBluePorpoiseCognitivePlatform</string>
+    <string name="home_pager" tools:ignore="ExtraTranslation,ResourceName">首页</string>
+    <string name="live_broadcast" tools:ignore="ResourceName">直播</string>
+    <string name="help" tools:ignore="ResourceName">使用帮助</string>
+    <string name="notify" tools:ignore="ResourceName">消息通知</string>
+    <string name="service_package" tools:ignore="ResourceName">服务套餐</string>
+    <string name="cognitive_training" tools:ignore="ResourceName">认知训练</string>
+    <string name="brain_power_value" tools:ignore="ResourceName">脑力值</string>
+    <string name="accumulated_training_duration" tools:ignore="ResourceName">累计训练时长</string>
+    <string name="view" tools:ignore="ResourceName">查看</string>
+    <string name="free_training" tools:ignore="ResourceName">自由训练</string>
+    <string name="online_assessment" tools:ignore="ResourceName">在线测评</string>
+    <string name="health_science_popularization" tools:ignore="ResourceName">健康科普</string>
+    <string name="leisure_brain_building" tools:ignore="ResourceName">休闲健脑</string>
+    <string name="training_daily" tools:ignore="ResourceName">训练日报</string>
+    <string name="training_weekly_report" tools:ignore="ResourceName">训练周报</string>
+    <string name="report_number" tools:ignore="ResourceName">报告编号</string>
+    <string name="play_with_blue_porpoise" tools:ignore="ResourceName">畅游蓝豚</string>
+    <string name="professional_evaluation" tools:ignore="ResourceName">专业测评</string>
+    <string name="health_counseling" tools:ignore="ResourceName">健康咨询</string>
+    <string name="fun_time" tools:ignore="ResourceName">轻松一刻</string>
+    <string name="start_exclusive_training" tools:ignore="ResourceName">开始专属训练</string>
+    <string name="next_page" tools:ignore="ResourceName">下一页</string>
+    <string name="previous_page" tools:ignore="ResourceName">上一页</string>
+    <string name="rehabilitation_classroom" tools:ignore="ResourceName">康复课堂</string>
+    <string name="app_updater_start_notification_title" tools:ignore="ResourceName">版本更新</string>
+    <string name="app_updater_start_notification_content" tools:ignore="ResourceName">正在获取下载数据…</string>
+    <string name="app_updater_progress_notification_title" tools:ignore="ResourceName">版本更新</string>
+    <string name="app_updater_progress_notification_content" tools:ignore="ResourceName">正在下载…</string>
+    <string name="app_updater_finish_notification_title" tools:ignore="ResourceName">下载完成</string>
+    <string name="app_updater_finish_notification_content" tools:ignore="ResourceName">点击安装</string>
+    <string name="app_updater_error_notification_title" tools:ignore="ResourceName">下载失败</string>
+    <string name="app_updater_error_notification_content" tools:ignore="ResourceName">点击关闭通知</string>
+    <string name="app_updater_error_notification_content_re_download" tools:ignore="ResourceName">点击重新下载</string>
+    <string name="upgrade_reminder" tools:ignore="ResourceName">小豚提醒您升级更好用的新版本,快来更新吧</string>
+    <string name="upgrade_now" tools:ignore="ResourceName">立即升级</string>
+    <string name="accessibility_service_descriptions" tools:ignore="ResourceName">应用自动安装服务</string>
+    <string name="auto_install_accessibility_description" tools:ignore="ResourceName">手机app自动安装服务</string>
+    <string name="mmse_evaluation" tools:ignore="ResourceName">MMSE测评</string>
+    <string name="moca_evaluation" tools:ignore="ResourceName">MOCA测评</string>
+    <string name="back_pager" tools:ignore="MissingTranslation,ResourceName">返回</string>
+    <string name="evaluation_result" tools:ignore="ResourceName">测评结果</string>
+    <string name="patient_name" tools:ignore="ResourceName">姓名:</string>
+    <string name="patient_sex" tools:ignore="ResourceName">性别:</string>
+    <string name="patient_age" tools:ignore="ResourceName">年龄:</string>
+    <string name="education_age" tools:ignore="ResourceName">教育年龄:</string>
+    <string name="patient_id" tools:ignore="ResourceName">编号:</string>
+    <string name="assessment_content" tools:ignore="ResourceName">测评内容</string>
+    <string name="score" tools:ignore="ResourceName">得分</string>
+    <string name="reference_value" tools:ignore="ResourceName">参考值</string>
+    <string name="result" tools:ignore="ResourceName">结果</string>
+    <string name="evaluation_history_info" tools:ignore="ExtraTranslation,ResourceName">测评历史</string>
+    <string name="view_details" tools:ignore="ExtraTranslation,ResourceName">查看详情</string>
+    <string name="task_name" tools:ignore="ResourceName">任务名称</string>
+    <string name="assessment_type" tools:ignore="ResourceName">测评类型</string>
+    <string name="whether_evaluate" tools:ignore="ResourceName">是否测评</string>
+    <string name="start_training" tools:ignore="ResourceName">开始训练</string>
+    <string name="evaluation_report" tools:ignore="ResourceName">测评报告</string>
+    <string name="start_training_info" tools:ignore="ResourceName">欢迎使用未来蓝豚认知训练平台,平台为您提供针对脑认知的各种类型的训练,您也可以根据您的训练数据优化训练方向。</string>
+    <string name="evaluate_result" tools:ignore="ResourceName">结果</string>
+    <string name="dimension" tools:ignore="ResourceName">维度</string>
+    <string name="subdimensional" tools:ignore="ResourceName">子维度</string>
+    <string name="score_range" tools:ignore="ResourceName">得分范围</string>
+    <string name="report_details" tools:ignore="ResourceName">报告详情</string>
+    <string name="assessment_date" tools:ignore="ResourceName">测评日期</string>
+    <string name="hospital_name" tools:ignore="ResourceName">首都医科大学宣武医院</string>
+    <string name="exit_binding" tools:ignore="ResourceName">退出绑定</string>
+    <string name="report_query" tools:ignore="ResourceName">报告查询</string>
+    <string name="other_evaluations" tools:ignore="ResourceName">其他测评</string>
+</resources>

+ 97 - 0
evaluation/src/main/res/values/styles.xml

@@ -0,0 +1,97 @@
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+    <style name="workbenches_operate_btn" tools:ignore="ResourceName">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="layout_constraintHorizontal_chainStyle">spread</item>
+        <item name="layout_constraintBottom_toBottomOf">parent</item>
+        <item name="layout_constraintTop_toTopOf">parent</item>
+        <item name="android:orientation">vertical</item>
+    </style>
+
+    <style name="workbenches_home_text" tools:ignore="ResourceName">
+        <item name="android:layout_width">@dimen/divider_122px</item>
+        <item name="android:layout_height">@dimen/divider_42px</item>
+        <item name="android:textSize">@dimen/divider_24px</item>
+        <item name="android:textColor">@android:color/white</item>
+        <item name="android:gravity">center</item>
+    </style>
+
+    <style name="home_right_tools_layout" tools:ignore="ResourceName">
+        <item name="android:layout_width">@dimen/divider_277px</item>
+        <item name="android:layout_height">@dimen/divider_207px</item>
+    </style>
+
+    <style name="home_right_tools_image" tools:ignore="ResourceName">
+        <item name="layout_constraintStart_toStartOf">parent</item>
+        <item name="layout_constraintEnd_toEndOf">parent</item>
+        <item name="layout_constraintTop_toTopOf">parent</item>
+        <item name="android:scaleType">centerInside</item>
+    </style>
+
+    <style name="home_right_tools_text" tools:ignore="ResourceName">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">@dimen/divider_9px</item>
+        <item name="android:textSize">@dimen/divider_28px</item>
+        <item name="android:textColor">@android:color/white</item>
+        <item name="layout_constraintTop_toTopOf">parent</item>
+        <item name="layout_constraintStart_toStartOf">parent</item>
+        <item name="layout_constraintEnd_toEndOf">parent</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <!--自适应高度-->
+    <style name="layout_properties_self_adaption" tools:ignore="ResourceName">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+
+    <!--自适应高度 居中-->
+    <style name="layout_properties_self_adaption_center" parent="layout_properties_self_adaption" tools:ignore="ResourceName">
+        <item name="layout_constraintStart_toStartOf">parent</item>
+        <item name="layout_constraintEnd_toEndOf">parent</item>
+        <item name="layout_constraintTop_toTopOf">parent</item>
+        <item name="layout_constraintBottom_toBottomOf">parent</item>
+    </style>
+
+    <style name="back_layout" tools:ignore="ResourceName">
+        <item name="android:layout_width">@dimen/divider_195px</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="layout_constraintStart_toStartOf">parent</item>
+        <item name="layout_constraintTop_toTopOf">parent</item>
+    </style>
+
+    <style name="back_image" tools:ignore="ResourceName">
+        <item name="android:layout_width">@dimen/divider_43px</item>
+        <item name="android:layout_height">@dimen/divider_43px</item>
+        <item name="android:layout_marginStart">@dimen/divider_65px</item>
+        <item name="android:layout_marginTop">@dimen/divider_30px</item>
+        <item name="android:background">@mipmap/icon_back</item>
+    </style>
+
+    <style name="back_text" parent="layout_properties_self_adaption" tools:ignore="ResourceName">
+        <item name="android:layout_marginStart">@dimen/divider_14px</item>
+        <item name="android:layout_marginTop">@dimen/divider_38px</item>
+        <item name="android:textSize">@dimen/divider_28px</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textColor">@android:color/white</item>
+        <item name="android:text">@string/back_pager</item>
+    </style>
+
+    <!--指定宽度和高度-->
+    <style name="layout_properties_specify_width_geight" tools:ignore="ResourceName">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+    </style>
+
+    <style name="home_layout" tools:ignore="ResourceName">
+        <item name="android:layout_width">@dimen/divider_195px</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="layout_constraintStart_toStartOf">parent</item>
+        <item name="layout_constraintTop_toTopOf">parent</item>
+    </style>
+</resources>

+ 6 - 1
gradle.properties

@@ -12,7 +12,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 # AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
+# Android operating system, and which are packaged with your app"s APK
 # https://developer.android.com/topic/libraries/support-library/androidx-rn
 android.useAndroidX=true
 # Kotlin code style for this project: "official" or "obsolete":
@@ -22,9 +22,14 @@ kotlin.code.style=official
 # thereby reducing the size of the R class for that library
 android.nonTransitiveRClass=true
 
+#??appComponentFactory ??
+android.enableJetifier=true
+
+#??????????
 singleModule=false
 #singleModule=true
 
+
 RELEASE_STOREFILE=../yingyangfly.jks
 RELEASE_STORE_PASSWORD=yingyang123.
 RELEASE_KEY_ALIAS=yingyangfly