Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	cs_cptServices/src/main/res/values/colors.xml
liukai 2 years ago
parent
commit
17aa82cc2b
100 changed files with 4976 additions and 29 deletions
  1. 6 0
      cpt_parttime/src/main/AndroidManifest.xml
  2. 39 0
      cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/PartJobEditProfileInfoActivity.kt
  3. 37 0
      cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/PartJobProfileFragment.kt
  4. 37 0
      cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/ResetPasswordActivity.kt
  5. 55 0
      cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/SettingsActivity.kt
  6. 45 0
      cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/widget/UserUrgentAlertPopup.java
  7. BIN
      cpt_parttime/src/main/res/drawable-xxhdpi/cancellation_rate_icon.webp
  8. BIN
      cpt_parttime/src/main/res/drawable-xxhdpi/no_show_rate_icon.webp
  9. 2175 0
      cpt_parttime/src/main/res/layout/activity_part_job_edit_profile_info.xml
  10. 166 0
      cpt_parttime/src/main/res/layout/activity_reset_password.xml
  11. 237 0
      cpt_parttime/src/main/res/layout/activity_settings.xml
  12. 622 29
      cpt_parttime/src/main/res/layout/fragment_parttime_job_profile.xml
  13. 420 0
      cpt_parttime/src/main/res/layout/include_pensonal_turn_up_rate.xml
  14. 48 0
      cpt_parttime/src/main/res/layout/view_popup_user_urgent.xml
  15. 12 0
      cs_baselib/src/main/java/com/guadou/lib_baselib/font_text_view/TypefaceUtil.java
  16. 3 0
      cs_baselib/src/main/res/values/dimens.xml
  17. 553 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/MyCircleProgressView.kt
  18. 18 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/DrawPoint.java
  19. 311 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/HandWriteView.java
  20. 114 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/PointUtil.java
  21. 44 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/SignFileOutputStream.java
  22. 34 0
      cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/TimedPoint.java
  23. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/back_more_black.webp
  24. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/choose_small.webp
  25. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/circlr_avatar_upload_bg.webp
  26. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/dialog_blue_delete.webp
  27. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/drop_down.webp
  28. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/help_blue.webp
  29. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/im_default_head.webp
  30. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_contact.webp
  31. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_language.webp
  32. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_medical.webp
  33. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_method.webp
  34. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_photo.webp
  35. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_record.webp
  36. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_sign.webp
  37. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_terms.webp
  38. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_additonal_info_edit_icon.webp
  39. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_back.webp
  40. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_additional_info_icon.webp
  41. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_additional_info_upload_picture.webp
  42. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_black_delete.webp
  43. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_choose_circle.webp
  44. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_choose_square.webp
  45. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_picture_photo_default.webp
  46. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_status_icon.webp
  47. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_unchoose.webp
  48. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_unchoose_circle.webp
  49. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/password.webp
  50. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_email_icon.webp
  51. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_hours_icon.webp
  52. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_lang_icon.webp
  53. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_name_icon.webp
  54. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_nric_icon.webp
  55. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_phone_icon.webp
  56. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_rate_icon.webp
  57. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon1.webp
  58. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon2.webp
  59. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon3.webp
  60. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon4.webp
  61. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon5.webp
  62. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon6.webp
  63. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/profile_edit_cert_empty_img.webp
  64. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/switch_blue.webp
  65. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/switch_gary.webp
  66. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/unchoose_small.webp
  67. BIN
      cs_cptServices/src/main/res/drawable-xhdpi/user_urgent_dialog_img.webp
  68. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/back_more_black.webp
  69. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/choose_small.webp
  70. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/dialog_blue_delete.webp
  71. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/help_blue.webp
  72. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_contact.webp
  73. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_language.webp
  74. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_medical.webp
  75. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_method.webp
  76. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_photo.webp
  77. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_record.webp
  78. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_sign.webp
  79. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_terms.webp
  80. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_additonal_info_edit_icon.webp
  81. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_back.webp
  82. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_additional_info_icon.webp
  83. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_additional_info_upload_picture.webp
  84. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_black_delete.webp
  85. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_choose_circle.webp
  86. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_choose_square.webp
  87. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_picture_photo_default.webp
  88. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_status_icon.webp
  89. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_unchoose.webp
  90. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_unchoose_circle.webp
  91. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/password.webp
  92. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_email_icon.webp
  93. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_hours_icon.webp
  94. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_lang_icon.webp
  95. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_name_icon.webp
  96. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_nric_icon.webp
  97. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_phone_icon.webp
  98. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_rate_icon.webp
  99. BIN
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_skill_icon1.webp
  100. 0 0
      cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_skill_icon2.webp

+ 6 - 0
cpt_parttime/src/main/AndroidManifest.xml

@@ -12,6 +12,12 @@
 
         <activity android:name=".ui.activity.PartJobAlbumActivity" />
 
+        <activity android:name=".ui.SettingsActivity"/>
+
+        <activity android:name=".ui.PartJobEditProfileInfoActivity"/>
+
+        <activity android:name=".ui.ResetPasswordActivity"/>
+
     </application>
 
 </manifest>

+ 39 - 0
cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/PartJobEditProfileInfoActivity.kt

@@ -0,0 +1,39 @@
+package com.hongyegroup.cpt_parttime.ui
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_parttime.BR
+import com.hongyegroup.cpt_parttime.R
+import com.hongyegroup.cpt_parttime.databinding.ActivityPartJobEditProfileInfoBinding
+
+class PartJobEditProfileInfoActivity:BaseVDBActivity<BaseViewModel,ActivityPartJobEditProfileInfoBinding>() {
+
+    companion object {
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, PartJobEditProfileInfoActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_part_job_edit_profile_info,BR.viewModel,mViewModel)
+
+    }
+
+    override fun startObserve() {
+
+    }
+}

+ 37 - 0
cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/PartJobProfileFragment.kt

@@ -6,13 +6,17 @@ import com.guadou.cs_cptservices.base.fragment.YYBaseVDBLoadingFragment
 import com.guadou.cs_cptservices.interfaces.IFragmentRefresh
 import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.utils.CommUtils
+import com.guadou.lib_baselib.utils.StatusBarUtils
 import com.guadou.lib_baselib.view.gloading.GLoadingTitleStatus
 import com.guadou.lib_baselib.view.gloading.Gloading
 import com.guadou.lib_baselib.view.gloading.GloadingGlobalAdapter
+import com.guadou.lib_baselib.view.titlebar.EasyTitleBar
 import com.hongyegroup.cpt_parttime.BR
 import com.hongyegroup.cpt_parttime.R
 import com.hongyegroup.cpt_parttime.databinding.FragmentParttimeJobProfileBinding
 import com.hongyegroup.cpt_parttime.mvvm.PartJobProfileViewModel
+import com.hongyegroup.cpt_parttime.widget.UserUrgentAlertPopup
+import com.lxj.xpopup.XPopup
 import com.scwang.smart.refresh.layout.api.RefreshLayout
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener
 
@@ -39,11 +43,19 @@ class PartJobProfileFragment : YYBaseVDBLoadingFragment<PartJobProfileViewModel,
 
     override fun init(savedInstanceState: Bundle?) {
 
+        mBinding.viewStubRating.viewStub?.inflate()
+        setStatusBarPadding()
         initRV()
         initData()
         initListener()
     }
 
+    private fun setStatusBarPadding() {
+
+        StatusBarUtils.setHeightAndPadding(mContext, mBinding.statusView)
+
+    }
+
     private fun initData() {
         showStateLoading()
         CommUtils.getHandler().postDelayed({
@@ -57,6 +69,12 @@ class PartJobProfileFragment : YYBaseVDBLoadingFragment<PartJobProfileViewModel,
 
     private fun initListener() {
 
+        mBinding.titleBarParttimeJobProfile.addRightText("设置", EasyTitleBar.MenuBuilder.OnMenuClickListener {
+
+            SettingsActivity.startInstance()
+
+        })
+
     }
 
     override fun onRefresh(refreshLayout: RefreshLayout) {
@@ -77,6 +95,25 @@ class PartJobProfileFragment : YYBaseVDBLoadingFragment<PartJobProfileViewModel,
      */
     inner class ClickProxy {
 
+        //跳转到编辑个人信息界面
+        fun editProfileInfo(){
+
+            PartJobEditProfileInfoActivity.startInstance()
+
+        }
+
+        //审核个人信息加急
+        fun userUrgent(){
+
+            //弹窗展示以及申请成功
+
+            XPopup.Builder(mActivity)
+                .hasShadowBg(true)
+                .asCustom(UserUrgentAlertPopup(mActivity))
+                .show()
+
+        }
+
     }
 
 

+ 37 - 0
cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/ResetPasswordActivity.kt

@@ -0,0 +1,37 @@
+package com.hongyegroup.cpt_parttime.ui
+
+import android.content.Intent
+import android.os.Bundle
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_parttime.BR
+import com.hongyegroup.cpt_parttime.R
+import com.hongyegroup.cpt_parttime.databinding.ActivityResetPasswordBinding
+
+class ResetPasswordActivity:BaseVDBActivity<BaseViewModel,ActivityResetPasswordBinding>() {
+
+    companion object {
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, ResetPasswordActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_reset_password,BR.viewModel,mViewModel)
+
+    }
+
+    override fun startObserve() {
+
+    }
+}

+ 55 - 0
cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/ui/SettingsActivity.kt

@@ -0,0 +1,55 @@
+package com.hongyegroup.cpt_parttime.ui
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_parttime.BR
+import com.hongyegroup.cpt_parttime.R
+import com.hongyegroup.cpt_parttime.databinding.ActivitySettingsBinding
+
+class SettingsActivity : YYBaseVDBActivity<BaseViewModel, ActivitySettingsBinding>() {
+
+    companion object {
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, SettingsActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_settings, BR.viewModel, mViewModel)
+            .addBindingParams(BR.click, ClickProxy())
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //点击重置密码
+        fun resetPassword() {
+
+            ResetPasswordActivity.startInstance()
+
+        }
+
+    }
+
+}

+ 45 - 0
cpt_parttime/src/main/java/com/hongyegroup/cpt_parttime/widget/UserUrgentAlertPopup.java

@@ -0,0 +1,45 @@
+package com.hongyegroup.cpt_parttime.widget;
+
+import android.content.Context;
+
+import com.guadou.lib_baselib.utils.CommUtils;
+import com.hongyegroup.cpt_parttime.R;
+import com.lxj.xpopup.core.CenterPopupView;
+import com.lxj.xpopup.util.XPopupUtils;
+
+import androidx.annotation.NonNull;
+
+/**
+ * 加急申请成功的弹窗
+ */
+public class UserUrgentAlertPopup extends CenterPopupView {
+
+    public UserUrgentAlertPopup(@NonNull Context context) {
+        super(context);
+    }
+
+    @Override
+    protected int getImplLayoutId() {
+        return R.layout.view_popup_user_urgent;
+    }
+
+    @Override
+    protected int getMaxWidth() {
+        return XPopupUtils.getWindowWidth(CommUtils.getContext());
+    }
+
+    @Override
+    protected void initPopupContent() {
+        super.initPopupContent();
+
+        findViewById(R.id.iv_dialog_delete).setOnClickListener(v -> {
+            dismiss();
+        });
+
+        findViewById(R.id.tv_dialog_ok).setOnClickListener(v -> {
+            dismiss();
+        });
+
+    }
+
+}

BIN
cpt_parttime/src/main/res/drawable-xxhdpi/cancellation_rate_icon.webp


BIN
cpt_parttime/src/main/res/drawable-xxhdpi/no_show_rate_icon.webp


File diff suppressed because it is too large
+ 2175 - 0
cpt_parttime/src/main/res/layout/activity_part_job_edit_profile_info.xml


+ 166 - 0
cpt_parttime/src/main/res/layout/activity_reset_password.xml

@@ -0,0 +1,166 @@
+<?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">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/white"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
+
+        <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:Easy_title="重置密码" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="@dimen/d_10dp"
+            android:layout_marginRight="@dimen/d_10dp"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:padding="@dimen/d_12dp">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:src="@drawable/password" />
+
+                <EditText
+                    android:id="@+id/edit_text_current"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/d_10dp"
+                    android:layout_marginLeft="@dimen/d_10dp"
+                    android:layout_weight="1"
+                    android:background="@android:color/transparent"
+                    android:hint="当前密码(最少8位数,包含大小写和数字)"
+                    android:inputType="textPassword"
+                    android:padding="@dimen/d_5dp"
+                    android:textColor="@color/black"
+                    android:textColorHint="@color/gray_82"
+                    android:textSize="@dimen/d_14sp" />
+
+                <CheckBox
+                    android:id="@+id/cb_old_psd"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/d_10dp"
+                    android:button="@drawable/selector_check_password_hide" />
+
+            </LinearLayout>
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d_0.5dp"
+                android:src="@color/page_bg"/>
+
+            <LinearLayout
+                android:id="@+id/linear_layout_password"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:padding="@dimen/d_12dp">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:src="@drawable/password" />
+
+                <EditText
+                    android:id="@+id/edit_text_password"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/d_10dp"
+                    android:layout_marginLeft="@dimen/d_10dp"
+                    android:layout_weight="1"
+                    android:background="@android:color/transparent"
+                    android:hint="新密码(最少8位数,包含大小写和数字)"
+                    android:inputType="textPassword"
+                    android:padding="@dimen/d_5dp"
+                    android:textColor="@color/black"
+                    android:textColorHint="@color/gray_82"
+                    android:textSize="@dimen/d_14sp" />
+
+                <CheckBox
+                    android:id="@+id/cb_new_psd"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/d_10dp"
+                    android:button="@drawable/selector_check_password_hide" />
+
+            </LinearLayout>
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d_0.5dp"
+                android:src="@color/page_bg"/>
+
+            <LinearLayout
+                android:id="@+id/linear_layout_repassword"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:padding="@dimen/d_12dp">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:src="@drawable/password" />
+
+                <EditText
+                    android:id="@+id/edit_text_repassword"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/d_10dp"
+                    android:layout_marginLeft="@dimen/d_10dp"
+                    android:layout_weight="1"
+                    android:background="@android:color/transparent"
+                    android:hint="确认新密码(最少8位数,包含大小写和数字)"
+                    android:inputType="textPassword"
+                    android:padding="@dimen/d_5dp"
+                    android:textColor="@color/black"
+                    android:textColorHint="@color/gray_82"
+                    android:textSize="@dimen/d_14sp" />
+
+                <CheckBox
+                    android:id="@+id/cb_confirm_psd"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/d_10dp"
+                    android:button="@drawable/selector_check_password_hide" />
+
+            </LinearLayout>
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d_0.5dp"
+                android:src="@color/page_bg"/>
+
+            <Button
+                android:id="@+id/btn_sunmit"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d_45dp"
+                android:layout_marginTop="@dimen/d_30dp"
+                android:background="@drawable/selector_app_blue_button_round2_bg"
+                android:text="提交"
+                android:textAllCaps="false"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/d_16sp" />
+
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</layout>

+ 237 - 0
cpt_parttime/src/main/res/layout/activity_settings.xml

@@ -0,0 +1,237 @@
+<?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:tool="http://schemas.android.com/tools"
+    xmlns:binding="http://schemas.android.com/apk/res-auto">
+
+    <data>
+
+        <variable
+            name="click"
+            type="com.hongyegroup.cpt_parttime.ui.SettingsActivity.ClickProxy" />
+
+    </data>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/white"
+        android:orientation="vertical">
+
+        <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:Easy_title="设置"/>
+
+        <!--Enable Notification-->
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/d_15dp"
+            android:orientation="horizontal">
+
+            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="开启消息通知"
+                android:textColor="@color/black"
+                android:textSize="@dimen/d_14sp" />
+
+            <androidx.appcompat.widget.SwitchCompat
+                android:id="@+id/switch_notification"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/selector_switch_bg"
+                app:showText="false"
+                app:splitTrack="false"
+                app:theme="@style/scstyle"
+                app:thumbTint="#00000000"
+                app:trackTint="#00000000" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:background="@color/page_bg" />
+
+        <!--FAQ-->
+        <LinearLayout
+            android:id="@+id/ll_setting_faq"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:padding="@dimen/d_15dp"
+            android:visibility="visible">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="常用问题"
+                android:textColor="@color/black"
+                android:textSize="@dimen/d_14sp" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/d_10dp"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:src="@drawable/iv_back" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:background="@color/page_bg" />
+
+        <!--Privacy Policy-->
+        <LinearLayout
+            android:id="@+id/ll_setting_privacy_policy"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:padding="@dimen/d_15dp">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="隐私条款"
+                android:textColor="@color/black"
+                android:textSize="@dimen/d_14sp" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/d_10dp"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:src="@drawable/iv_back" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:background="@color/page_bg" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:padding="@dimen/d_15dp">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="版本号"
+                android:textColor="@color/black"
+                android:textSize="@dimen/d_14sp" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_2dp"
+                android:text="V"
+                android:textColor="@color/profile_red"
+                android:textSize="@dimen/d_14sp" />
+
+            <TextView
+                android:id="@+id/text_view_version_no"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/d_10dp"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:textColor="@color/profile_red"
+                android:textSize="@dimen/d_14sp" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:background="@color/page_bg" />
+
+
+        <!--重置密码-->
+        <LinearLayout
+            android:id="@+id/ll_setting_reset_psd"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            binding:clicks="@{click.resetPassword}"
+            android:padding="@dimen/d_15dp">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="重置密码"
+                android:textColor="@color/black"
+                android:textSize="@dimen/d_14sp" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/d_10dp"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:src="@drawable/iv_back" />
+
+        </LinearLayout>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:background="@color/page_bg" />
+
+        <LinearLayout
+            android:id="@+id/ll_clear_cache"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:padding="@dimen/d_15dp">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="帮助中心"
+                android:textColor="@color/black"
+                android:textSize="@dimen/d_14sp" />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/d_10dp"
+                android:layout_marginRight="@dimen/d_10dp"
+                android:src="@drawable/iv_back" />
+
+
+        </LinearLayout>
+
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d_1dp"
+            android:background="@color/page_bg" />
+
+        <TextView
+            android:id="@+id/button_logout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d_30dp"
+            android:layout_marginTop="@dimen/d_45dp"
+            android:layout_marginRight="@dimen/d_30dp"
+            android:background="@drawable/selector_app_blue_button_round2_bg"
+            android:gravity="center"
+            android:padding="@dimen/d_10dp"
+            android:text="退出登录"
+            android:textColor="@color/white"
+            android:textSize="@dimen/d_16sp" />
+
+
+    </LinearLayout>
+
+</layout>

+ 622 - 29
cpt_parttime/src/main/res/layout/fragment_parttime_job_profile.xml

@@ -23,37 +23,31 @@
         android:background="@color/white"
         android:orientation="vertical">
 
-        <com.guadou.lib_baselib.view.titlebar.StatusbarGrayView
+        <LinearLayout
+            android:id="@+id/ll_title_box"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content" />
+            android:layout_height="wrap_content"
+            android:background="@drawable/shape_gradient_proifle_title_top"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
 
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_46dp">
-
-            <com.guadou.lib_baselib.font_text_view.TextViewMedium
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:text="个人信息"
-                android:textColor="@color/black"
-                android:textSize="@dimen/d_18sp" />
+            <com.guadou.lib_baselib.view.titlebar.StatusbarGrayView
+                android:id="@+id/status_view"
+                android:layout_width="match_parent"
+                android:layout_height="0dp" />
 
-            <com.guadou.lib_baselib.font_text_view.TextViewMedium
-                android:layout_width="wrap_content"
+            <com.guadou.lib_baselib.view.titlebar.EasyTitleBar
+                android:id="@+id/title_bar_parttime_job_profile"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_gravity="right|center_vertical"
-                android:layout_marginRight="@dimen/d_15dp"
-                android:text="全部已读"
-                android:textColor="@color/profile_red"
-                android:textSize="@dimen/d_16sp" />
-
-        </FrameLayout>
+                android:textSize="@dimen/d_18sp"
+                app:Easy_backRes="@null"
+                app:Easy_title="我的"
+                app:Easy_titleColor="@color/white"
+                app:Easy_lineState="gone"
+                app:Easy_titleBarBackground="@color/transparent" />
 
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.7dp"
-            android:background="@color/divider_color_ee" />
+        </LinearLayout>
 
         <com.scwang.smart.refresh.layout.SmartRefreshLayout
             android:id="@+id/refresh_layout"
@@ -69,11 +63,610 @@
                 android:layout_height="wrap_content" />
 
 
-            <TextView
+            <ScrollView
+                android:id="@+id/scroll_view_view_profile"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:gravity="center"
-                android:text="个人信息" />
+                android:overScrollMode="never">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="#FAFDFF"
+                    android:orientation="vertical">
+
+                    <!--    头部     -->
+                    <FrameLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content">
+
+                        <!--     弧形的渐变    -->
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="@dimen/d_120dp"
+                            android:background="@drawable/shape_gradient_proifle_title_bottom" />
+
+                        <!--   顶部的信息框展示   -->
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_5dp"
+                            android:layout_marginRight="@dimen/d_5dp"
+                            android:background="@drawable/profile_white_shadow_comm_bg"
+                            android:orientation="horizontal">
+
+                            <com.guadou.lib_baselib.view.CircleImageView
+                                android:id="@+id/image_view_profile_photo"
+                                android:layout_width="@dimen/d_70dp"
+                                android:layout_height="@dimen/d_70dp"
+                                android:layout_marginLeft="@dimen/d_20dp"
+                                android:layout_marginTop="@dimen/d_30dp"
+                                android:scaleType="centerCrop"
+                                android:src="@drawable/im_default_head"
+                                app:civ_border_color="@color/white"
+                                app:civ_border_overlay="true"
+                                app:civ_border_width="@dimen/d_1dp" />
+
+
+                            <LinearLayout
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_18dp"
+                                android:layout_marginTop="@dimen/d_25dp"
+                                android:layout_marginRight="@dimen/d_15dp"
+                                android:layout_marginBottom="@dimen/d_26dp"
+                                android:layout_weight="1"
+                                android:orientation="vertical">
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewBold
+                                    android:id="@+id/text_view_full_name"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:textColor="@color/profile_black_28394a"
+                                    android:textSize="24sp"
+                                    tools:text="Lisa Yang" />
+
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                    android:id="@+id/text_view_email_address"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:layout_marginTop="@dimen/d_2dp"
+                                    android:textColor="#8098B2"
+                                    android:textSize="13.8dp"
+                                    tools:text="Fangyuan@hongyegroup.com" />
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                    android:id="@+id/text_view_joined_date"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:layout_marginTop="@dimen/d_2dp"
+                                    android:textColor="#8098B2"
+                                    android:textSize="13.8dp"
+                                    tools:text="10,May 2020" />
+
+                                <LinearLayout
+                                    android:id="@+id/ll_profile_me_detail_point"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginTop="@dimen/d_6dp"
+                                    android:orientation="horizontal">
+
+
+                                    <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                        android:id="@+id/text_view_profile_points"
+                                        android:layout_width="105dp"
+                                        android:layout_height="25dp"
+                                        android:background="@drawable/shape_5round_main_blue"
+                                        android:gravity="center"
+                                        android:text="- Credits"
+                                        android:textColor="@color/white"
+                                        android:textSize="13.5dp" />
+
+                                    <ImageView
+                                        android:id="@+id/button_help_points"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="wrap_content"
+                                        android:layout_gravity="center_vertical"
+                                        android:layout_marginLeft="@dimen/d_9dp"
+                                        android:contentDescription="-"
+                                        android:src="@drawable/help_blue" />
+
+                                </LinearLayout>
+
+
+                            </LinearLayout>
+
+                        </LinearLayout>
+
+                    </FrameLayout>
+
+                    <!--Status-->
+                    <LinearLayout
+                        android:id="@+id/ll_profile_me_detail_status"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_5dp"
+                        android:layout_marginRight="@dimen/d_5dp"
+                        android:background="@drawable/profile_white_shadow_comm_bg"
+                        android:orientation="vertical"
+                        binding:clicks="@{click.editProfileInfo}"
+                        android:paddingTop="@dimen/d_20dp"
+                        android:paddingBottom="@dimen/d_20dp">
+
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal">
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_25dp"
+                                android:layout_marginRight="@dimen/d_10dp"
+                                android:drawableLeft="@drawable/iv_profile_status_icon"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:text="您的账户状态:"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                tools:text="You account status: " />
+
+                            <TextView
+                                android:id="@+id/tv_profile_me_detail_user_status"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="-"
+                                android:textColor="@color/green"
+                                android:textSize="@dimen/d_14sp" />
+
+                        </LinearLayout>
+
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_additional_info_reject"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_10dp"
+                            android:layout_marginRight="@dimen/d_23dp"
+                            android:background="@drawable/shape_gray_3round"
+                            android:paddingLeft="33dp"
+                            android:paddingTop="@dimen/d_10dp"
+                            android:paddingRight="33dp"
+                            android:paddingBottom="@dimen/d_10dp"
+                            android:text="原因"
+                            android:textColor="#8098B2"
+                            android:textSize="@dimen/d_14sp"
+                            android:visibility="visible" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_additional_info"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_25dp"
+                            android:layout_marginTop="@dimen/d_10dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/iv_profile_additional_info_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="- >"
+                            android:textColor="#FFC000"
+                            android:textSize="@dimen/d_14sp" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/btn_urgent"
+                            android:layout_width="match_parent"
+                            android:layout_height="@dimen/d_35dp"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_15dp"
+                            android:layout_marginRight="@dimen/d_23dp"
+                            android:layout_marginBottom="@dimen/d_10dp"
+                            android:background="@drawable/selector_app_blue_button_round5_bg"
+                            android:gravity="center"
+                            android:text="加急"
+                            binding:clicks="@{click.userUrgent}"
+                            android:textColor="@color/white"
+                            android:textSize="@dimen/d_15sp"
+                            android:visibility="visible" />
+
+                    </LinearLayout>
+
+
+                    <!--    基本信息     -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_5dp"
+                        android:layout_marginRight="@dimen/d_5dp"
+                        android:background="@drawable/profile_white_shadow_comm_bg"
+                        android:orientation="vertical"
+                        android:paddingTop="@dimen/d_25dp"
+                        android:paddingBottom="@dimen/d_38dp">
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:text="个人信息"
+                            android:textColor="@color/profile_black_28394a"
+                            android:textSize="17dp" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_name"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/profile_detail_name_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="@string/null_data"
+                            android:textColor="@color/profile_black_8098b2"
+                            android:textSize="@dimen/d_14sp"
+                            tools:text="Lisa Yang" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_email_address_below"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/profile_detail_email_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="@string/null_data"
+                            android:textColor="@color/profile_black_8098b2"
+                            android:textSize="@dimen/d_14sp" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_mobile_number"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/profile_detail_phone_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="@string/null_data"
+                            android:textColor="@color/profile_black_8098b2"
+                            android:textSize="@dimen/d_14sp" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_nric_no"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/profile_detail_nric_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="@string/null_data"
+                            android:textColor="@color/profile_black_8098b2"
+                            android:textSize="@dimen/d_14sp" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/text_view_nationality"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/profile_detail_lang_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="@string/null_data"
+                            android:textColor="@color/profile_black_8098b2"
+                            android:textSize="@dimen/d_14sp" />
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                            android:id="@+id/tv_rate"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:layout_marginRight="@dimen/d_10dp"
+                            android:drawableLeft="@drawable/profile_detail_rate_icon"
+                            android:drawablePadding="@dimen/d_12dp"
+                            android:text="@string/null_data"
+                            android:textColor="@color/profile_black_8098b2"
+                            android:textSize="@dimen/d_14sp" />
+
+
+                        <LinearLayout
+                            android:id="@+id/rl_request_view_profile_total_hours"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="@dimen/d_20dp"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal"
+                            android:visibility="visible">
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_23dp"
+                                android:drawableLeft="@drawable/profile_detail_hours_icon"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:text="Total Hours: "
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp" />
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_request_view_profile_total_hours"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="1024"
+                                android:textColor="@color/app_blue"
+                                android:textSize="@dimen/d_14sp" />
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_3dp"
+                                android:text="Hrs"
+                                android:textColor="@color/gray_text"
+                                android:textSize="@dimen/d_15sp" />
+
+
+                            <View
+                                android:layout_width="0dp"
+                                android:layout_height="1dp"
+                                android:layout_weight="1" />
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_profile_rules"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="@dimen/d_10dp"
+                                android:layout_toLeftOf="@id/iv_total_hours_arrow"
+                                android:text="Rules"
+                                android:textColor="@color/app_blue"
+                                android:textSize="14.5sp" />
+
+                            <ImageView
+                                android:id="@+id/iv_total_hours_arrow"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_alignParentRight="true"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="@dimen/d_15dp"
+                                android:src="@drawable/back_more_black" />
+
+                        </LinearLayout>
+
+                    </LinearLayout>
+
+
+                    <!-- 技能的选择 -->
+                    <LinearLayout
+                        android:id="@+id/ll_edit_profile_work_type"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_5dp"
+                        android:layout_marginRight="@dimen/d_5dp"
+                        android:background="@drawable/profile_white_shadow_comm_bg"
+                        android:orientation="vertical"
+                        android:paddingTop="@dimen/d_25dp"
+                        android:paddingBottom="@dimen/d_38dp">
+
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal">
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewBold
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_23dp"
+                                android:layout_weight="1"
+                                android:text="技能"
+                                android:textColor="@color/profile_black_28394a"
+                                android:textSize="17dp" />
+
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_alignParentRight="true"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="@dimen/d_15dp"
+                                android:src="@drawable/back_more_black"
+                                app:tint="@color/gray_8098B2"
+                                tools:tint="@color/gray_8098B2" />
+
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:id="@+id/ll_edit_profile_work_type1"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="@dimen/d_15dp"
+                            android:orientation="vertical"
+                            android:paddingLeft="@dimen/d_23dp"
+                            android:visibility="visible">
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_edit_profile_work_type1"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:drawableLeft="@drawable/profile_detail_skill_icon1"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:paddingBottom="@dimen/d_10dp"
+                                android:text="Clean Service"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                android:visibility="gone" />
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_edit_profile_work_type2"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_marginTop="@dimen/d_10dp"
+                                android:layout_weight="1"
+                                android:drawableLeft="@drawable/profile_detail_skill_icon2"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:paddingBottom="@dimen/d_10dp"
+                                android:text="Business"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                android:visibility="gone" />
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:id="@+id/ll_edit_profile_work_type2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="@dimen/d_10dp"
+                            android:orientation="vertical"
+                            android:paddingLeft="@dimen/d_23dp"
+                            android:visibility="visible">
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_edit_profile_work_type3"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:drawableLeft="@drawable/profile_detail_skill_icon3"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:paddingBottom="@dimen/d_10dp"
+                                android:text="Finance"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                android:visibility="gone" />
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_edit_profile_work_type4"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_marginTop="@dimen/d_10dp"
+                                android:layout_weight="1"
+                                android:drawableLeft="@drawable/profile_detail_skill_icon4"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:paddingBottom="@dimen/d_10dp"
+                                android:text="Food &#38; Banquet"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                android:visibility="gone" />
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:id="@+id/ll_edit_profile_work_type3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="@dimen/d_10dp"
+                            android:orientation="vertical"
+                            android:paddingLeft="@dimen/d_23dp"
+                            android:visibility="visible"
+                            android:weightSum="2">
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_edit_profile_work_type5"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:drawableLeft="@drawable/profile_detail_skill_icon5"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:paddingBottom="@dimen/d_15dp"
+                                android:text="Recruitment"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                android:visibility="gone" />
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                android:id="@+id/tv_edit_profile_work_type6"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:drawableLeft="@drawable/profile_detail_skill_icon6"
+                                android:drawablePadding="@dimen/d_12dp"
+                                android:text="Recruitment"
+                                android:textColor="@color/profile_black_8098b2"
+                                android:textSize="@dimen/d_14sp"
+                                android:visibility="gone" />
+
+                        </LinearLayout>
+
+                    </LinearLayout>
+
+                    <!--   证书      -->
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_5dp"
+                        android:layout_marginRight="@dimen/d_5dp"
+                        android:background="@drawable/profile_white_shadow_comm_bg"
+                        android:orientation="vertical"
+                        android:paddingTop="@dimen/d_25dp"
+                        android:paddingBottom="@dimen/d_38dp">
+
+                        <com.guadou.lib_baselib.font_text_view.TextViewBold
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:text="食品证书"
+                            android:textColor="@color/profile_black_28394a"
+                            android:textSize="17dp" />
+
+
+                        <FrameLayout
+                            android:id="@+id/fl_certificate_box"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/d_23dp"
+                            android:layout_marginTop="@dimen/d_17dp">
+
+                            <ImageView
+                                android:id="@+id/iv_certificate_img"
+                                android:layout_width="98dp"
+                                android:layout_height="98dp"
+                                android:layout_gravity="center"
+                                android:background="#F0F2F9" />
+
+                            <ImageView
+                                android:id="@+id/iv_upload_empty"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_gravity="center"
+                                android:src="@drawable/profile_edit_cert_empty_img"
+                                android:visibility="visible" />
+
+                            <ImageView
+                                android:id="@+id/iv_certificate_img_delete"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_gravity="right|top"
+                                android:layout_marginLeft="95dp"
+                                android:paddingLeft="@dimen/d_5dp"
+                                android:paddingTop="-10dp"
+                                android:paddingRight="@dimen/d_5dp"
+                                android:paddingBottom="@dimen/d_5dp"
+                                android:src="@drawable/profile_edit_cert_delete"
+                                android:visibility="visible" />
+
+                        </FrameLayout>
+
+
+                    </LinearLayout>
+
+
+                    <ViewStub
+                        android:id="@+id/view_stub_rating"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout="@layout/include_pensonal_turn_up_rate"
+                        tools:ignore="TooManyViews" />
+
+                    <View
+                        android:layout_width="1dp"
+                        android:layout_height="18dp" />
+
+                </LinearLayout>
+
+            </ScrollView>
+
 
         </com.scwang.smart.refresh.layout.SmartRefreshLayout>
 

+ 420 - 0
cpt_parttime/src/main/res/layout/include_pensonal_turn_up_rate.xml

@@ -0,0 +1,420 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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="wrap_content">
+
+    <LinearLayout
+        android:id="@+id/ll_edit_profile_work_type"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/d_5dp"
+        android:layout_marginRight="@dimen/d_5dp"
+        android:background="@drawable/profile_white_shadow_comm_bg"
+        android:orientation="vertical"
+        android:paddingTop="@dimen/d_25dp"
+        android:paddingBottom="@dimen/d_38dp">
+
+        <com.guadou.lib_baselib.font_text_view.TextViewBold
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d_23dp"
+            android:layout_marginRight="@dimen/d_23dp"
+            android:text="个人评价"
+            android:textColor="@color/profile_black_28394a"
+            android:textSize="17dp" />
+
+
+        <LinearLayout
+            android:id="@+id/ll_edit_profile_work_type1"
+            android:layout_width="match_parent"
+            android:layout_height="160dp"
+            android:layout_marginLeft="@dimen/d_20dp"
+            android:layout_marginTop="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="vertical">
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+
+                    <View
+                        android:id="@+id/view_zi"
+                        android:layout_width="2dp"
+                        android:layout_height="@dimen/d_45dp"
+                        android:background="@drawable/shape_5round_zi"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                        android:id="@+id/tv_no_show_text"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_13dp"
+                        android:text="缺勤率"
+                        android:textColor="#FF8098B2"
+                        android:textSize="@dimen/d_15sp"
+                        app:layout_constraintLeft_toRightOf="@id/view_zi"
+                        app:layout_constraintTop_toTopOf="@id/view_zi" />
+
+                    <ImageView
+                        android:id="@+id/iv_no_show_icon"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_13dp"
+                        android:layout_marginTop="5dp"
+                        android:src="@drawable/no_show_rate_icon"
+                        app:layout_constraintBottom_toBottomOf="@id/tv_no_show_value"
+                        app:layout_constraintLeft_toRightOf="@id/view_zi"
+                        app:layout_constraintTop_toTopOf="@id/tv_no_show_value" />
+
+                    <com.guadou.lib_baselib.font_text_view.TextViewBold
+                        android:id="@+id/tv_no_show_value"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_10dp"
+                        android:layout_marginTop="@dimen/d_2dp"
+                        android:text="10%"
+                        android:textColor="#FF3C3C4F"
+                        android:textSize="@dimen/d_19sp"
+                        app:layout_constraintLeft_toRightOf="@id/iv_no_show_icon"
+                        app:layout_constraintTop_toBottomOf="@id/tv_no_show_text" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="28dp">
+
+                    <View
+                        android:id="@+id/view_fen"
+                        android:layout_width="2dp"
+                        android:layout_height="@dimen/d_45dp"
+                        android:background="@drawable/shape_5round_pink"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                        android:id="@+id/tv_cancel_text"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_13dp"
+                        android:text="取消率"
+                        android:textColor="#FF8098B2"
+                        android:textSize="@dimen/d_15sp"
+                        app:layout_constraintLeft_toRightOf="@id/view_fen"
+                        app:layout_constraintTop_toTopOf="@id/view_fen" />
+
+                    <ImageView
+                        android:id="@+id/iv_cancel_icon"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_13dp"
+                        android:layout_marginTop="@dimen/d_5dp"
+                        android:src="@drawable/cancellation_rate_icon"
+                        app:layout_constraintBottom_toBottomOf="@id/tv_cancel_value"
+                        app:layout_constraintLeft_toRightOf="@id/view_fen"
+                        app:layout_constraintTop_toTopOf="@id/tv_cancel_value" />
+
+                    <com.guadou.lib_baselib.font_text_view.TextViewBold
+                        android:id="@+id/tv_cancel_value"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d_10dp"
+                        android:layout_marginTop="@dimen/d_2dp"
+                        android:text="15%"
+                        android:textColor="#FF3C3C4F"
+                        android:textSize="@dimen/d_19sp"
+                        app:layout_constraintLeft_toRightOf="@id/iv_cancel_icon"
+                        app:layout_constraintTop_toBottomOf="@id/tv_cancel_text" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+            </LinearLayout>
+
+
+            <com.guadou.cs_cptservices.widget.MyCircleProgressView
+                android:id="@+id/turn_up_progress"
+                android:layout_width="136dp"
+                android:layout_height="wrap_content"
+                android:minHeight="200dp"
+
+                app:animTime="1000"
+                app:antiAlias="true"
+                app:digit="0"
+                app:hint="出勤率"
+
+                app:hintColor="#8098B2"
+                app:hintSize="13sp"
+
+                app:isanim="false"
+
+                app:mBgCirColor="#DDE3F6"
+                app:mBgCirWidth="5sp"
+                app:mCirColor="#3277f9"
+                app:mCirWidth="15sp"
+
+                app:shadowColor="#734947B2"
+                app:shadowShow="true"
+                app:shadowSize="9"
+
+                app:startAngle="270"
+                app:sweepAngle="360"
+                app:unit="%"
+
+                app:value="0"
+                app:valueColor="#5456A4"
+                app:valueSize="25dp" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_marginLeft="@dimen/d_23dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:layout_marginRight="@dimen/d_23dp"
+            android:background="#FFD9E1ED" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d_23dp"
+            android:layout_marginTop="17dp"
+            android:layout_marginRight="@dimen/d_10dp"
+            android:orientation="horizontal">
+
+
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1.2"
+                android:orientation="vertical">
+
+                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                    android:id="@+id/tv_grooming_text"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="着装"
+                    android:textColor="#FF3C3C4F"
+                    android:textSize="14sp" />
+
+                <ProgressBar
+                    android:id="@+id/pb_grooming"
+                    android:layout_width="@dimen/d_70dp"
+                    android:layout_height="6dp"
+                    android:layout_marginTop="@dimen/d_8dp"
+                    android:indeterminateOnly="false"
+                    android:max="5"
+                    android:progress="3"
+                    android:progressDrawable="@drawable/progress_horizontal_grooming" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewBold
+                    android:id="@+id/tv_grooming_value"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_3dp"
+                    android:text="3.7"
+                    android:textColor="#FF5C75C6"
+                    android:textSize="16sp" />
+
+            </LinearLayout>
+
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1.2"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/tv_average_text"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="平均评级"
+                    android:textColor="#FF3C3C4F"
+                    android:textSize="14sp"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <ProgressBar
+                    android:id="@+id/pb_average"
+                    android:layout_width="@dimen/d_70dp"
+                    android:layout_height="6dp"
+                    android:layout_marginTop="@dimen/d_8dp"
+                    android:indeterminateOnly="false"
+                    android:max="5"
+                    android:progress="3"
+                    android:progressDrawable="@drawable/progress_horizontal_average"
+                    app:layout_constraintLeft_toLeftOf="@id/tv_average_text"
+                    app:layout_constraintTop_toBottomOf="@id/tv_average_text" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewBold
+                    android:id="@+id/tv_average_value"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_3dp"
+                    android:text="3.7"
+                    android:textColor="#FFF03C74"
+                    android:textSize="16sp"
+                    app:layout_constraintLeft_toLeftOf="@id/tv_average_text"
+                    app:layout_constraintTop_toBottomOf="@id/pb_average" />
+
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="vertical">
+
+                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                    android:id="@+id/tv_attitude_text"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="态度"
+                    android:textColor="#FF3C3C4F"
+                    android:textSize="14sp"
+                    app:layout_constraintLeft_toLeftOf="@id/pb_attitude"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <ProgressBar
+                    android:id="@+id/pb_attitude"
+                    android:layout_width="@dimen/d_70dp"
+                    android:layout_height="6dp"
+                    android:layout_marginTop="@dimen/d_8dp"
+                    android:indeterminateOnly="false"
+                    android:max="5"
+                    android:progress="3"
+                    android:progressDrawable="@drawable/progress_horizontal_attitude"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/tv_attitude_text" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewBold
+                    android:id="@+id/tv_attitude_value"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_3dp"
+                    android:text="3.7"
+                    android:textColor="#FFFCC917"
+                    android:textSize="16sp"
+                    app:layout_constraintLeft_toLeftOf="@id/tv_attitude_text"
+                    app:layout_constraintTop_toBottomOf="@id/pb_attitude" />
+
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d_23dp"
+            android:layout_marginTop="@dimen/d_23dp"
+            android:layout_marginRight="@dimen/d_10dp"
+            android:orientation="horizontal">
+
+
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1.2"
+                android:orientation="vertical">
+
+                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                    android:id="@+id/tv_perforamnce_text"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="个人能力"
+                    android:textColor="#FF3C3C4F"
+                    android:textSize="14sp" />
+
+                <ProgressBar
+                    android:id="@+id/pb_perforamnce"
+                    android:layout_width="@dimen/d_70dp"
+                    android:layout_height="6dp"
+                    android:layout_marginTop="@dimen/d_8dp"
+                    android:indeterminateOnly="false"
+                    android:max="5"
+                    android:progress="3"
+                    android:progressDrawable="@drawable/progress_horizontal_perforamnce" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewBold
+                    android:id="@+id/tv_perforamnce_value"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_3dp"
+                    android:text="3.7"
+                    android:textColor="#FFF99620"
+                    android:textSize="16sp" />
+
+            </LinearLayout>
+
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1.2"
+                android:orientation="vertical">
+
+                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                    android:id="@+id/tv_experience_text"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="经验"
+                    android:textColor="#FF3C3C4F"
+                    android:textSize="14sp"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <ProgressBar
+                    android:id="@+id/pb_experience"
+                    android:layout_width="@dimen/d_70dp"
+                    android:layout_height="6dp"
+                    android:layout_marginTop="@dimen/d_8dp"
+                    android:indeterminateOnly="false"
+                    android:max="5"
+                    android:progress="3"
+                    android:progressDrawable="@drawable/progress_horizontal_experience"
+                    app:layout_constraintLeft_toLeftOf="@id/tv_experience_text"
+                    app:layout_constraintTop_toBottomOf="@id/tv_experience_text" />
+
+                <com.guadou.lib_baselib.font_text_view.TextViewBold
+                    android:id="@+id/tv_experience_value"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/d_3dp"
+                    android:text="3.7"
+                    android:textColor="#FF40C5A7"
+                    android:textSize="16sp"
+                    app:layout_constraintLeft_toLeftOf="@id/tv_experience_text"
+                    app:layout_constraintTop_toBottomOf="@id/pb_experience" />
+
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+            <View
+                android:layout_width="0dp"
+                android:layout_height="1dp"
+                android:layout_weight="1" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="1dp"
+            android:layout_height="20dp" />
+
+    </LinearLayout>
+
+</RelativeLayout>

+ 48 - 0
cpt_parttime/src/main/res/layout/view_popup_user_urgent.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="322dp"
+    android:layout_height="376dp"
+    android:background="@drawable/shape_5round_white"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/iv_dialog_delete"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="right"
+        android:layout_marginTop="@dimen/d_3dp"
+        android:layout_marginRight="@dimen/d_5dp"
+        android:src="@drawable/dialog_blue_delete" />
+
+
+    <ImageView
+        android:layout_width="288dp"
+        android:layout_height="149dp"
+        android:layout_gravity="center_horizontal"
+        android:src="@drawable/user_urgent_dialog_img" />
+
+
+    <com.guadou.lib_baselib.font_text_view.TextViewLight
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/d_32dp"
+        android:layout_marginTop="@dimen/d_25dp"
+        android:layout_marginRight="@dimen/d_32dp"
+        android:text="You have sent urgent notification to our admin already. Please wait for our admin for approval."
+        android:textColor="@color/black"
+        android:textSize="18sp" />
+
+    <com.guadou.lib_baselib.font_text_view.TextViewLight
+        android:id="@+id/tv_dialog_ok"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_42dp"
+        android:layout_marginLeft="@dimen/d_25dp"
+        android:layout_marginTop="@dimen/d_25dp"
+        android:layout_marginRight="@dimen/d_25dp"
+        android:background="@drawable/selector_app_blue_button_round2_bg"
+        android:gravity="center"
+        android:text="OK"
+        android:textColor="@color/white"
+        android:textSize="@dimen/d_16sp" />
+
+</LinearLayout>

+ 12 - 0
cs_baselib/src/main/java/com/guadou/lib_baselib/font_text_view/TypefaceUtil.java

@@ -1,7 +1,12 @@
 package com.guadou.lib_baselib.font_text_view;
 
+import android.content.Context;
 import android.graphics.Typeface;
 
+/**
+ * Created by C02TVKSDHV27 on 02/08/2017.
+ */
+
 public class TypefaceUtil {
 
     public static Typeface getLight() {
@@ -12,6 +17,13 @@ public class TypefaceUtil {
         return Typeface.create("sans-serif", Typeface.NORMAL);
     }
 
+//    public static Typeface getSFMedium(Context context) {
+//        return FontCache.getTypeface("PingFang_Medium.ttf", context);
+//    }
+//
+//    public static Typeface getSFBold(Context context) {
+//        return FontCache.getTypeface("PingFang_Bold.ttf", context);
+//    }
     public static Typeface getMedium() {
         return Typeface.create("sans-serif-medium", Typeface.NORMAL);
     }

+ 3 - 0
cs_baselib/src/main/res/values/dimens.xml

@@ -57,8 +57,11 @@
     <dimen name="d_28dp">28dp</dimen>
     <dimen name="d_29dp">29dp</dimen>
     <dimen name="d_30dp">30dp</dimen>
+    <dimen name="d_32dp">32dp</dimen>
     <dimen name="d_35dp">35dp</dimen>
+    <dimen name="d_38dp">38dp</dimen>
     <dimen name="d_40dp">40dp</dimen>
+    <dimen name="d_42dp">42dp</dimen>
     <dimen name="d_45dp">45dp</dimen>
     <dimen name="d_46dp">46dp</dimen>
     <dimen name="d_47dp">47dp</dimen>

+ 553 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/MyCircleProgressView.kt

@@ -0,0 +1,553 @@
+package com.guadou.cs_cptservices.widget
+
+import android.animation.ValueAnimator
+import android.content.Context
+import android.graphics.*
+import android.text.TextPaint
+import android.util.AttributeSet
+import android.view.View
+import com.guadou.cs_cptservices.R
+import com.guadou.lib_baselib.font_text_view.TypefaceUtil
+import java.text.DecimalFormat
+
+/**
+ * 圆形进度条  甜甜圈双重进度圆环
+ * 带阴影 带进度 带动画 带圆角
+ * 兼职工作的出勤率进度自定义View
+ */
+class MyCircleProgressView(context: Context?, attrs: AttributeSet?) : View(context, attrs) {
+
+    //是否开启抗锯齿
+    private var antiAlias: Boolean? = null
+
+    //圆心位置
+    private var centerPosition: Point? = null
+
+    //半径
+    private var raduis: Float? = null
+
+    //外圆半径
+    private var mOuterRaduis: Float? = null
+
+    //声明边界矩形
+    private var mRectF: RectF? = null
+
+    //声明背景圆画笔
+    private var mBgCirPaint: Paint? = null//画笔
+    private var mBgCirColor: Int? = null//颜色
+    private var mBgCirWidth: Float? = null//宽度
+
+    //声明进度圆的画笔
+    private var mCirPaint: Paint? = null//画笔
+    private var mCirColor: Int? = null//颜色
+    private var mCirWidth: Float? = null//宽度
+
+    //绘制的起始角度和滑过角度
+    private var mStartAngle: Float? = null
+    private var mSweepAngle: Float? = null
+
+    //动画时间
+    private var mAnimTime: Int? = null
+
+    //属性动画
+    private var mAnimator: ValueAnimator? = null
+
+    //动画进度
+    private var mPercent: Float? = null
+
+    //进度值
+    private var mValue: String? = null
+
+    //最大值
+    private var mMaxValue: Float? = null
+
+    //绘制数值
+    private var mValuePaint: TextPaint? = null
+    private var mValueSize: Float? = null
+    private var mValueColor: Int? = null
+
+    //绘制单位
+    private var mUnit: CharSequence? = "%"
+
+    //绘制描述
+    private var mHint: CharSequence? = null
+    private var mHintPaint: TextPaint? = null
+    private var mHintSize: Float? = null
+    private var mHintColor: Int? = null
+
+    //颜色渐变色
+    private var isGradient: Boolean? = null
+    private var mGradientColors: IntArray? = intArrayOf(Color.BLACK, Color.GRAY, Color.BLUE)
+    private var mGradientColor: Int? = null
+    private var mSweepGradient: SweepGradient? = null
+
+    //开始的小圆点
+    private var mSmallCirPaint: Paint? = null
+    private var mSmallCirColor: Int? = null
+    private var mSmallCirWidth: Float? = null
+    private var mSmallCirEnable: Boolean? = null
+
+    //阴影
+    private var mShadowColor: Int? = null
+    private var mShadowSize: Float? = null
+    private var mShadowIsShow: Boolean? = null
+
+    //保留的小数位数
+    private var mDigit: Int? = null
+
+    //是否需要动画
+    private var isAnim: Boolean? = null
+
+    init {
+        setLayerType(LAYER_TYPE_SOFTWARE, null)
+        mPercent = 0f
+        centerPosition = Point()//初始化圆心属性
+        mRectF = RectF()
+        mAnimator = ValueAnimator()//初始化属性动画
+        initAttrs(attrs, context)//初始化属性
+        initPaint()//初始化画笔
+    }
+
+
+    /**
+     * 初始化属性
+     */
+    private fun initAttrs(attrs: AttributeSet?, context: Context?) {
+        val typedArray = context!!.obtainStyledAttributes(
+            attrs,
+            R.styleable.MyCircleProgressView
+        )
+
+        antiAlias = typedArray!!.getBoolean(
+            R.styleable.MyCircleProgressView_antiAlias,
+            false
+        )
+        mSmallCirEnable =
+            typedArray.getBoolean(
+                R.styleable.MyCircleProgressView_smallCirEnable,
+                false
+            )
+        isAnim = typedArray.getBoolean(
+            R.styleable.MyCircleProgressView_isanim,
+            true
+        )
+
+        mDigit = typedArray.getInt(
+            R.styleable.MyCircleProgressView_digit,
+            2
+        )
+
+        mBgCirColor = typedArray.getColor(R.styleable.MyCircleProgressView_mBgCirColor, Color.GRAY)
+        mBgCirWidth = typedArray.getDimension(
+            R.styleable.MyCircleProgressView_mBgCirWidth,
+            15f
+        )
+
+        mCirColor = typedArray.getColor(R.styleable.MyCircleProgressView_mCirColor, Color.YELLOW)
+        mCirWidth = typedArray.getDimension(
+            R.styleable.MyCircleProgressView_mCirWidth,
+            15f
+        )
+
+        mSmallCirColor =
+            typedArray.getColor(R.styleable.MyCircleProgressView_smallCirColor, Color.WHITE)
+        mSmallCirWidth =
+            typedArray.getDimension(
+                R.styleable.MyCircleProgressView_smallCirWidth,
+                15f
+            )
+
+        mAnimTime = typedArray.getInt(
+            R.styleable.MyCircleProgressView_animTime,
+            1000
+        )
+
+        mValue = typedArray.getString(R.styleable.MyCircleProgressView_value)
+        mMaxValue = typedArray.getFloat(
+            R.styleable.MyCircleProgressView_maxvalue,
+            100f
+        )
+
+        mStartAngle = typedArray.getFloat(
+            R.styleable.MyCircleProgressView_startAngle,
+            270f
+        )
+        mSweepAngle = typedArray.getFloat(
+            R.styleable.MyCircleProgressView_sweepAngle,
+            360f
+        )
+
+        mValueSize = typedArray.getDimension(
+            R.styleable.MyCircleProgressView_valueSize,
+            15f
+        )
+        mValueColor = typedArray.getColor(R.styleable.MyCircleProgressView_valueColor, Color.BLACK)
+
+        mHint = typedArray.getString(R.styleable.MyCircleProgressView_hint)
+        mHintSize = typedArray.getDimension(
+            R.styleable.MyCircleProgressView_hintSize,
+            15f
+        )
+        mHintColor = typedArray.getColor(R.styleable.MyCircleProgressView_hintColor, Color.GRAY)
+
+        mUnit = typedArray.getString(R.styleable.MyCircleProgressView_unit)
+
+        mShadowColor =
+            typedArray.getColor(R.styleable.MyCircleProgressView_shadowColor, Color.BLACK)
+        mShadowIsShow = typedArray.getBoolean(
+            R.styleable.MyCircleProgressView_shadowShow,
+            false
+        )
+        mShadowSize = typedArray.getFloat(
+            R.styleable.MyCircleProgressView_shadowSize,
+            8f
+        )
+
+        isGradient = typedArray.getBoolean(
+            R.styleable.MyCircleProgressView_isGradient,
+            false
+        )
+        mGradientColor = typedArray.getResourceId(R.styleable.MyCircleProgressView_gradient, 0)
+        if (mGradientColor != 0) {
+            mGradientColors = resources.getIntArray(mGradientColor!!)
+        }
+
+        typedArray.recycle()
+
+    }
+
+    /**
+     * 初始化画笔
+     */
+    private fun initPaint() {
+        //圆画笔
+        mCirPaint = Paint()
+        mCirPaint!!.isAntiAlias = antiAlias!!//是否开启抗锯齿
+        mCirPaint!!.style =
+            Paint.Style.STROKE//画笔样式  //STROKE 只绘制图形轮廓(描边) FILL 只绘制图形内容 FILL_AND_STROKE 既绘制轮廓也绘制内容
+        mCirPaint!!.strokeWidth = mCirWidth!!//画笔宽度
+        mCirPaint!!.strokeCap =
+            Paint.Cap.ROUND//笔刷样式 //当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式Cap.ROUND,或方形样式Cap.SQUARE
+        mCirPaint!!.color = mCirColor!!//画笔颜色
+
+        //背景圆画笔
+        mBgCirPaint = Paint()
+        mBgCirPaint!!.isAntiAlias = antiAlias!!
+        mBgCirPaint!!.style = Paint.Style.STROKE
+        mBgCirPaint!!.strokeWidth = mBgCirWidth!!
+        mBgCirPaint!!.strokeCap = Paint.Cap.ROUND
+        mBgCirPaint!!.color = mBgCirColor!!
+
+        //小圆画笔
+        mSmallCirPaint = Paint()
+        mSmallCirPaint!!.isAntiAlias = antiAlias!!
+        mSmallCirPaint!!.style = Paint.Style.FILL
+        //mSmallCirPaint!!.strokeWidth = mSmallCirWidth!!
+        mSmallCirPaint!!.strokeCap = Paint.Cap.ROUND
+        mSmallCirPaint!!.color = mSmallCirColor!!
+
+        //初始化字体画笔
+        mValuePaint = TextPaint()
+        mValuePaint!!.isAntiAlias = antiAlias!! //是否抗锯齿
+        mValuePaint!!.textSize = mValueSize!! //字体大小
+        mValuePaint!!.color = mValueColor!! //字体颜色
+        mValuePaint!!.textAlign = Paint.Align.CENTER //从中间向两边绘制,不需要再次计算文字
+//        mValuePaint!!.typeface = Typeface.DEFAULT_BOLD //字体加粗
+        mValuePaint!!.typeface = TypefaceUtil.getBold() //字体加粗
+
+        mHintPaint = TextPaint()
+        mHintPaint!!.isAntiAlias = antiAlias!!
+        mHintPaint!!.textSize = mHintSize!!
+        mHintPaint!!.color = mHintColor!!
+        mHintPaint!!.textAlign = Paint.Align.CENTER
+        mHintPaint!!.typeface = TypefaceUtil.getRegular() //自定义字体
+    }
+
+    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
+        super.onSizeChanged(w, h, oldw, oldh)
+        //圆心位置
+        centerPosition!!.x = w / 2
+        centerPosition!!.y = h / 2
+        //半径
+        val maxCirWidth = Math.max(mCirWidth!!, mBgCirWidth!!)
+        val minWidth = Math.min(
+            w - paddingLeft - paddingRight - 2 * maxCirWidth,
+            h - paddingBottom - paddingTop - 2 * maxCirWidth
+        )
+        raduis = minWidth / 2
+        mOuterRaduis = raduis!! + maxCirWidth / 2
+        //矩形坐标
+        mRectF!!.left = centerPosition!!.x - raduis!! - maxCirWidth / 2
+        mRectF!!.top = centerPosition!!.y - raduis!! - maxCirWidth / 2
+        mRectF!!.right = centerPosition!!.x + raduis!! + maxCirWidth / 2
+        mRectF!!.bottom = centerPosition!!.y + raduis!! + maxCirWidth / 2
+
+        if (isGradient!!) {
+            sweepGradientCircle()//圆环颜色渐变
+        }
+    }
+
+    override fun onDraw(canvas: Canvas?) {
+        super.onDraw(canvas)
+        drawText(canvas)
+        drawCircle(canvas)
+
+        if (mSmallCirEnable!!) {
+            drawSmallCircle(canvas)
+        }
+    }
+
+    /**
+     * 画小圆
+     * */
+    private fun drawSmallCircle(canvas: Canvas?) {
+        var x: Float? = null
+        var y: Float? = null
+        when {
+            mStartAngle!! in 0.0..90.0 -> {
+                x =
+                    (centerPosition!!.x + mOuterRaduis!! * Math.sin(Math.PI * (90 - mStartAngle!!) / 180)).toFloat()
+                y =
+                    (centerPosition!!.y + mOuterRaduis!! * Math.cos(Math.PI * (90 - mStartAngle!!) / 180)).toFloat()
+            }
+            mStartAngle!! in 90.0..180.0 -> {
+                x =
+                    (centerPosition!!.x - mOuterRaduis!! * Math.sin(Math.PI * (180 - mStartAngle!!) / 180)).toFloat()
+                y =
+                    (centerPosition!!.y + mOuterRaduis!! * Math.cos(Math.PI * (180 - mStartAngle!!) / 180)).toFloat()
+            }
+            mStartAngle!! in 180.0..270.0 -> {
+                x =
+                    (centerPosition!!.x - mOuterRaduis!! * Math.sin(Math.PI * (270 - mStartAngle!!) / 180)).toFloat()
+                y =
+                    (centerPosition!!.y - mOuterRaduis!! * Math.cos(Math.PI * (270 - mStartAngle!!) / 180)).toFloat()
+            }
+            mStartAngle!! in 270.0..360.0 -> {
+                x =
+                    (centerPosition!!.x + mOuterRaduis!! * Math.sin(Math.PI * (mStartAngle!! - 270) / 180)).toFloat()
+                y =
+                    (centerPosition!!.y - mOuterRaduis!! * Math.cos(Math.PI * (mStartAngle!! - 270) / 180)).toFloat()
+            }
+        }
+
+        canvas!!.drawCircle(
+            x!!,
+            y!!,
+            mSmallCirWidth!! / 2,
+            mSmallCirPaint!!
+        )
+    }
+
+    /**
+     * 画字 三种文字
+     */
+    private fun drawText(canvas: Canvas?) {
+
+        canvas!!.drawText(
+            mValue + mUnit,
+            centerPosition!!.x.toFloat(),
+            centerPosition!!.y.toFloat(),
+            mValuePaint!!
+        )
+
+        if (mHint != null || mHint != "") {
+            canvas.drawText(
+                mHint.toString(),
+                centerPosition!!.x.toFloat(),
+                centerPosition!!.y - mHintPaint!!.ascent() + 15,   //设置间距
+                mHintPaint!!
+            )
+        }
+
+    }
+
+    /**
+     * 使用渐变色画圆
+     */
+    private fun sweepGradientCircle() {
+        mSweepGradient =
+            SweepGradient(
+                centerPosition!!.x.toFloat(),
+                centerPosition!!.y.toFloat(),
+                mGradientColors!!,
+                null
+            )
+        mCirPaint!!.shader = mSweepGradient
+    }
+
+    /**
+     * 画圆
+     */
+    private fun drawCircle(canvas: Canvas?) {
+        canvas!!.save()
+        if (mShadowIsShow!!) {
+            mCirPaint!!.setShadowLayer(mShadowSize!!, 0f, 0f, mShadowColor!!)//设置阴影
+        }
+        //画背景圆
+        canvas.drawArc(mRectF!!, mStartAngle!!, mSweepAngle!!, false, mBgCirPaint!!)
+        //画圆
+        canvas.drawArc(mRectF!!, mStartAngle!!, mSweepAngle!! * mPercent!!, false, mCirPaint!!)
+        canvas.restore()
+    }
+
+    /**
+     * 设值
+     */
+    fun setValue(value: String, maxValue: Float): MyCircleProgressView {
+        if (isNum(value)) {
+            mValue = value
+            mMaxValue = maxValue
+            val start = mPercent
+            val end = value.toFloat() / maxValue
+            startAnim(start!!, end, mAnimTime!!)
+        } else {
+            mValue = value
+        }
+        return this
+    }
+
+    /**
+     * 动画
+     * */
+    private fun startAnim(start: Float, end: Float, animTime: Int) {
+        mAnimator = ValueAnimator.ofFloat(start, end)
+        mAnimator!!.duration = animTime.toLong()
+        mAnimator!!.addUpdateListener {
+            mPercent = it.animatedValue as Float?
+            mValue = if (isAnim!!) {
+                CircleUtil.roundByScale((mPercent!! * mMaxValue!!).toDouble(), mDigit!!)
+            } else {
+                CircleUtil.roundByScale(mValue!!.toDouble(), mDigit!!)
+            }
+            postInvalidate()
+        }
+        mAnimator!!.start()
+    }
+
+    /**
+     * 设置动画时长
+     * */
+    fun setAnimTime(animTime: Int): MyCircleProgressView {
+        this.mAnimTime = animTime
+        invalidate()
+        return this
+    }
+
+
+    /**
+     * 是否渐变色
+     * */
+    fun setIsGradient(isGradient: Boolean): MyCircleProgressView {
+        this.isGradient = isGradient
+        invalidate()
+        return this
+    }
+
+    /**
+     * 设置渐变色
+     * */
+    fun setGradientColors(gradientColors: IntArray): MyCircleProgressView {
+        mGradientColors = gradientColors
+        sweepGradientCircle()
+        return this
+    }
+
+    /**
+     * 是否显示起始小圆
+     * */
+    fun setSmallCircleEnable(enable: Boolean): MyCircleProgressView {
+        mSmallCirEnable = enable
+        invalidate()
+        return this
+    }
+
+    /**
+     * 是否显示阴影
+     * */
+    fun setShadowEnable(enable: Boolean): MyCircleProgressView {
+        mShadowIsShow = enable
+        invalidate()
+        return this
+    }
+
+    /**
+     * 设置小数位数
+     * */
+    fun setDigit(digit: Int): MyCircleProgressView {
+        mDigit = digit
+        invalidate()
+        return this
+    }
+
+
+    fun isNum(str: String): Boolean {
+        try {
+            val toDouble = str.toDouble()
+        } catch (e: Exception) {
+
+            return false
+        }
+
+        return true
+    }
+
+
+    /**
+     * 内部工具类
+     */
+    private class CircleUtil {
+
+        companion object {
+            /**
+             * 将double格式化为指定小数位的String,不足小数位用0补全
+             *
+             * @param v     需要格式化的数字
+             * @param scale 小数点后保留几位
+             * @return
+             */
+            fun roundByScale(v: Double, scale: Int): String {
+                if (scale < 0) {
+                    throw  IllegalArgumentException(
+                        "The   scale   must   be   a   positive   integer   or   zero"
+                    )
+                }
+                if (scale == 0) {
+                    return DecimalFormat("0").format(v)
+                }
+                var formatStr = "0."
+
+                for (i in 0 until scale) {
+                    formatStr += "0"
+                }
+                return DecimalFormat(formatStr).format(v);
+            }
+
+
+            fun dip2px(context: Context, dpValue: Float): Int {
+                val scale = context.resources.displayMetrics.density
+                return (dpValue * scale + 0.5f).toInt()
+            }
+
+            fun dp2px(context: Context, dpValue: Float): Int {
+                return dip2px(context, dpValue)
+            }
+
+            fun px2dip(context: Context, pxValue: Float): Int {
+                val scale = context.resources.displayMetrics.density
+                return (pxValue / scale + 0.5f).toInt()
+            }
+
+            fun px2sp(context: Context, pxValue: Float): Int {
+                val fontScale = context.resources.displayMetrics.scaledDensity
+                return (pxValue / fontScale + 0.5f).toInt()
+            }
+
+            fun sp2px(context: Context, spValue: Float): Int {
+                val fontScale = context.resources.displayMetrics.scaledDensity
+                return (spValue * fontScale + 0.5f).toInt()
+            }
+
+        }
+    }
+
+}

+ 18 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/DrawPoint.java

@@ -0,0 +1,18 @@
+package com.guadou.cs_cptservices.widget.signWrite;
+
+/**
+ * Created by guado on 2018/3/5.
+ */
+
+public class DrawPoint {
+    public float x;
+    public float y;
+    public float width;
+
+    public DrawPoint set(float x, float y, float width) {
+        this.x = x;
+        this.y = y;
+        this.width = width;
+        return this;
+    }
+}

+ 311 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/HandWriteView.java

@@ -0,0 +1,311 @@
+package com.guadou.cs_cptservices.widget.signWrite;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+
+import com.guadou.cs_cptservices.R;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+
+/**
+ * 签名View
+ */
+
+public class HandWriteView extends View {
+
+    List<TimedPoint> points = new ArrayList<>();
+    Stack<TimedPoint> cachePoints = new Stack<>();
+    PointUtil pointUtil = new PointUtil();
+    public Bitmap mBitmap;
+    private Canvas mCanvas;
+    private Paint mPaint;
+    public boolean isSign = false;
+
+    private int mBackColor = Color.TRANSPARENT;
+
+    public HandWriteView(Context context) {
+        this(context, null);
+    }
+
+    public HandWriteView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public HandWriteView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.HandWriteView);
+        int maxWidth = a.getDimensionPixelSize(R.styleable.HandWriteView_paintMaxWidth, 16);
+        int minWidth = a.getDimensionPixelSize(R.styleable.HandWriteView_paintMinWidth, 8);
+        int paintColor = a.getColor(R.styleable.HandWriteView_paintColor, Color.BLACK);
+        pointUtil.setWidth(minWidth, maxWidth);
+        mPaint = new Paint();
+        mPaint.setColor(paintColor);
+        mPaint.setStrokeWidth(10);
+        mPaint.setAntiAlias(true);
+        mPaint.setStyle(Paint.Style.STROKE);
+        mPaint.setStrokeCap(Paint.Cap.ROUND);
+        mPaint.setStrokeJoin(Paint.Join.ROUND);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+                //在此会掉,开始了绘制
+                if (mListener != null) mListener.onBeginSign();
+                getParent().requestDisallowInterceptTouchEvent(true);
+                points.clear();
+                addPoint(getNewPoint(x, y));
+                break;
+            case MotionEvent.ACTION_MOVE:
+                addPoint(getNewPoint(x, y));
+                break;
+            case MotionEvent.ACTION_UP:
+                isSign = true;
+                addPoint(getNewPoint(x, y));
+                getParent().requestDisallowInterceptTouchEvent(false);
+                break;
+        }
+        invalidate();
+        return true;
+    }
+
+    private TimedPoint getNewPoint(float x, float y) {
+        if (cachePoints.empty()) {
+            return new TimedPoint(x, y);
+        } else return cachePoints.pop().set(x, y);
+    }
+
+    private void recyclePoint(TimedPoint point) {
+        cachePoints.push(point);
+    }
+
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        //画背景 如果有需要的话
+        super.onDraw(canvas);
+        if (mBitmap != null) {
+            canvas.drawBitmap(mBitmap, 0, 0, null);
+        }
+    }
+
+    private void addPoint(TimedPoint point) {
+        points.add(point);
+        if (points.size() > 3) {
+            ensureSignatureBitmap();
+            TimedPoint s0 = points.get(0);
+            TimedPoint s1 = points.get(1);
+            TimedPoint s2 = points.get(2);
+            TimedPoint s3 = points.get(3);
+            float cx1 = s1.x + (s2.x - s0.x) / 4;
+            float cy1 = s1.y + (s2.y - s0.y) / 4;
+            float cx2 = s2.x - (s3.x - s1.x) / 4;
+            float cy2 = s2.y - (s3.y - s1.y) / 4;
+            pointUtil.set(s1, getNewPoint(cx1, cy1), getNewPoint(cx2, cy2), s2);
+            float originalWidth = mPaint.getStrokeWidth();
+            float drawSteps = (float) Math.floor(pointUtil.length());
+            for (int i = 0; i < drawSteps; i++) {
+                float t = (float) i / drawSteps;
+                DrawPoint drawPoint = pointUtil.calculate(t);
+                mPaint.setStrokeWidth(drawPoint.width);
+                mCanvas.drawPoint(drawPoint.x, drawPoint.y, mPaint);
+            }
+            mPaint.setStrokeWidth(originalWidth);
+            recyclePoint(points.remove(0));
+            recyclePoint(pointUtil.control1);
+            recyclePoint(pointUtil.control2);
+        } else if (points.size() == 1) {
+            points.add(getNewPoint(point.x, point.y));
+        }
+    }
+
+    private void ensureSignatureBitmap() {
+        if (mBitmap == null) {
+            mBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
+            mCanvas = new Canvas(mBitmap);
+        }
+    }
+
+
+    /**
+     * 保存画板
+     *
+     * @param path 保存到路劲
+     */
+
+    public void save(String path) throws IOException {
+        save(path, false, 0, false);
+    }
+
+    public void save(String path, boolean isEncrypt) throws IOException {
+        save(path, false, 0, isEncrypt);
+    }
+
+    /**
+     * 保存画板
+     *
+     * @param path       保存到路径
+     * @param clearBlank 是否清楚空白区域
+     * @param blank      边缘空白区域
+     * @param isEncrypt  加密存储,选择加密存储会自动追加后缀为.sign
+     */
+    public void save(String path, boolean clearBlank, int blank, boolean isEncrypt) throws IOException {
+        Bitmap bitmap = mBitmap;
+        if (clearBlank) {
+            bitmap = clearBlank(bitmap, blank);
+        }
+        if (isEncrypt) path = path + ".sign";
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
+        byte[] buffer = bos.toByteArray();
+        if (buffer != null) {
+            File file = new File(path);
+            if (file.exists()) {
+                file.delete();
+            }
+            OutputStream outputStream = isEncrypt ? new SignFileOutputStream(file) : new FileOutputStream(file);
+            outputStream.write(buffer);
+            outputStream.close();
+        }
+    }
+
+    public Bitmap getBitmap() {
+        return mBitmap;
+    }
+
+    /**
+     * 逐行扫描 清除边界空白。
+     *
+     * @param bp
+     * @param blank 边距留多少个像素
+     * @return
+     */
+    private Bitmap clearBlank(Bitmap bp, int blank) {
+        int HEIGHT = bp.getHeight();
+        int WIDTH = bp.getWidth();
+        int top = 0, left = 0, right = WIDTH, bottom = HEIGHT;
+        int[] pixs = new int[WIDTH];
+        boolean isStop;
+        for (int y = 0; y < HEIGHT; y++) {
+            bp.getPixels(pixs, 0, WIDTH, 0, y, WIDTH, 1);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    top = y;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        for (int y = HEIGHT - 1; y >= 0; y--) {
+            bp.getPixels(pixs, 0, WIDTH, 0, y, WIDTH, 1);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    bottom = y;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+
+        int scanHeight = bottom - top;
+        pixs = new int[scanHeight];
+        for (int x = 0; x < WIDTH; x++) {
+            bp.getPixels(pixs, 0, 1, x, top, 1, scanHeight);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    left = x;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        for (int x = WIDTH - 1; x > 0; x--) {
+            bp.getPixels(pixs, 0, 1, x, top, 1, scanHeight);
+            isStop = false;
+            for (int pix : pixs) {
+                if (pix != mBackColor) {
+                    right = x;
+                    isStop = true;
+                    break;
+                }
+            }
+            if (isStop) {
+                break;
+            }
+        }
+        if (blank < 0) {
+            blank = 0;
+        }
+        left = left - blank > 0 ? left - blank : 0;
+        top = top - blank > 0 ? top - blank : 0;
+        right = right + blank > WIDTH - 1 ? WIDTH - 1 : right + blank;
+        bottom = bottom + blank > HEIGHT - 1 ? HEIGHT - 1 : bottom + blank;
+        return Bitmap.createBitmap(bp, left, top, right - left, bottom - top);
+    }
+
+    public void setPaintColor(int paintColor) {
+        mPaint.setColor(paintColor);
+    }
+
+    public void setPaintWidth(int mMinWidth, int mMaxWidth) {
+        if (mMinWidth > 0 && mMaxWidth > 0 && mMinWidth <= mMaxWidth)
+            pointUtil.setWidth(mMinWidth, mMaxWidth);
+    }
+
+    public void clear() {
+        if (mBitmap != null && !mBitmap.isRecycled()) {
+            mBitmap.recycle();
+        }
+        mBitmap = null;
+        ensureSignatureBitmap();
+        invalidate();
+        isSign = false;
+    }
+
+    public boolean isSign() {
+        return isSign;
+    }
+
+
+    //================== callback
+
+    private SignListener mListener;
+
+    public void SetSignListener(SignListener listener) {
+        mListener = listener;
+    }
+
+    public interface SignListener {
+        void onBeginSign();
+    }
+}

+ 114 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/PointUtil.java

@@ -0,0 +1,114 @@
+package com.guadou.cs_cptservices.widget.signWrite;
+
+/**
+ * Created by guado on 2018/3/5.
+ */
+
+public class PointUtil {
+
+    public TimedPoint startPoint;
+    public TimedPoint control1;
+    public TimedPoint control2;
+    public TimedPoint endPoint;
+    private int mMinWidth = 8;
+    private int mMaxWidth = 16;
+    private float mVelocityFilterWeight = 0.9f;
+    private float mLastVelocity;
+    private float mLastWidth;
+    private float mStartWidth;
+    private float widthDelta;
+    private DrawPoint drawPoint = new DrawPoint();
+
+    public PointUtil() {
+    }
+
+    public void setWidth(int mMinWidth, int mMaxWidth) {
+        this.mMinWidth = mMinWidth;
+        this.mMaxWidth = mMaxWidth;
+    }
+
+    public PointUtil set(TimedPoint startPoint, TimedPoint control1,
+                         TimedPoint control2, TimedPoint endPoint) {
+        this.startPoint = startPoint;
+        this.control1 = control1;
+        this.control2 = control2;
+        this.endPoint = endPoint;
+
+        float velocity = startPoint.velocityTo(endPoint);
+        velocity = Float.isNaN(velocity) ? 0.0f : velocity;
+
+        velocity = mVelocityFilterWeight * velocity
+                + (1 - mVelocityFilterWeight) * mLastVelocity;
+        float newWidth = mMinWidth + (mMaxWidth - mMinWidth) / (Math.max(1, velocity));
+        mLastVelocity = velocity;
+        widthDelta = newWidth - mLastWidth;
+        mStartWidth = mLastWidth;
+        mLastWidth = newWidth;
+        return this;
+    }
+
+    /**
+     * 获得贝塞尔曲线的长度
+     *
+     * @return
+     */
+    public float length() {
+        int steps = 10;
+        float length = 0;
+        double cx, cy, px = 0, py = 0, xDiff, yDiff;
+        for (int i = 0; i <= steps; i++) {
+            float t = (float) i / steps;
+            cx = point(t, this.startPoint.x, this.control1.x,
+                    this.control2.x, this.endPoint.x);
+            cy = point(t, this.startPoint.y, this.control1.y,
+                    this.control2.y, this.endPoint.y);
+            if (i > 0) {
+                xDiff = cx - px;
+                yDiff = cy - py;
+                length += Math.sqrt(xDiff * xDiff + yDiff * yDiff);
+            }
+            px = cx;
+            py = cy;
+        }
+        return length;
+
+    }
+
+    /**
+     * 求分段的贝塞尔曲线长度。
+     * //P(t)=p1(small_left-t)^3+3p2(small_left-t)^2t+3p3(small_left-t)t^small_right+p4t^3;
+     *
+     * @param t
+     * @param start
+     * @param c1
+     * @param c2
+     * @param end
+     * @return
+     */
+
+    public double point(float t, float start, float c1, float c2, float end) {
+        return start * (1.0 - t) * (1.0 - t) * (1.0 - t)
+                + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t
+                + 3.0 * c2 * (1.0 - t) * t * t
+                + end * t * t * t;
+    }
+
+    public DrawPoint calculate(float t) {
+        float tt = t * t;
+        float ttt = tt * t;
+        float u = 1 - t;
+        float uu = u * u;
+        float uuu = uu * u;
+
+        float x = uuu * this.startPoint.x;
+        x += 3 * uu * t * this.control1.x;
+        x += 3 * u * tt * this.control2.x;
+        x += ttt * this.endPoint.x;
+
+        float y = uuu * this.startPoint.y;
+        y += 3 * uu * t * this.control1.y;
+        y += 3 * u * tt * this.control2.y;
+        y += ttt * this.endPoint.y;
+        return drawPoint.set(x, y, mStartWidth + ttt * widthDelta);
+    }
+}

+ 44 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/SignFileOutputStream.java

@@ -0,0 +1,44 @@
+package com.guadou.cs_cptservices.widget.signWrite;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Random;
+
+/**
+ * Created by guado on 2018/3/5.
+ */
+
+public class SignFileOutputStream extends FileOutputStream {
+    byte[] BYTE_MAP;
+
+    public SignFileOutputStream(String name) throws IOException {
+        this(new File(name));
+    }
+
+    public SignFileOutputStream(File file) throws IOException {
+        super(file);
+        BYTE_MAP = new byte[256];
+        for (int i = 0; i < 256; i++) {
+            BYTE_MAP[i] = (byte) i;
+        }
+        Random random = new Random();
+        for (int i = 0; i < BYTE_MAP.length; i++) {
+            int p = random.nextInt(256);
+            byte b = BYTE_MAP[i];
+            BYTE_MAP[i] = BYTE_MAP[p];
+            BYTE_MAP[p] = b;
+        }
+        //write magic num
+        super.write(new byte[]{0x1A, 0x2A}, 0, 2);
+        super.write(BYTE_MAP, 0, 256);
+    }
+
+    @Override
+    public void write(byte[] b, int off, int len) throws IOException {
+        for (int i = off; i < off + len; i++) {
+            b[i] = BYTE_MAP[b[i] & 0xFF];
+        }
+        super.write(b, off, len);
+    }
+}

+ 34 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/widget/signWrite/TimedPoint.java

@@ -0,0 +1,34 @@
+package com.guadou.cs_cptservices.widget.signWrite;
+
+/**
+ * Created by guado on 2018/3/5.
+ */
+
+public class TimedPoint {
+    public float x;
+    public float y;
+    public long timestamp;
+
+    public TimedPoint(float x, float y) {
+        this.x = x;
+        this.y = y;
+        this.timestamp = System.currentTimeMillis();
+    }
+
+    public TimedPoint set(float x, float y) {
+        this.x = x;
+        this.y = y;
+        this.timestamp = System.currentTimeMillis();
+        return this;
+    }
+
+    public float distanceTo(TimedPoint point) {
+        return (float) Math.sqrt(Math.pow(point.x - x, 2) + Math.pow(point.y - y, 2));
+    }
+
+    public float velocityTo(TimedPoint point) {
+        long t = point.timestamp - timestamp;
+        if (t == 0) return 0;
+        else return distanceTo(point) / t;
+    }
+}

BIN
cs_cptServices/src/main/res/drawable-xhdpi/back_more_black.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/choose_small.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/circlr_avatar_upload_bg.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/dialog_blue_delete.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/drop_down.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/help_blue.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/im_default_head.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_contact.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_language.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_medical.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_method.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_photo.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_record.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_sign.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additional_info_terms.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_additonal_info_edit_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_back.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_additional_info_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_additional_info_upload_picture.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_black_delete.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_choose_circle.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_choose_square.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_picture_photo_default.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_status_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_unchoose.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/iv_profile_unchoose_circle.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/password.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_email_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_hours_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_lang_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_name_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_nric_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_phone_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_rate_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon1.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon2.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon3.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon4.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon5.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_detail_skill_icon6.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/profile_edit_cert_empty_img.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/switch_blue.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/switch_gary.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/unchoose_small.webp


BIN
cs_cptServices/src/main/res/drawable-xhdpi/user_urgent_dialog_img.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/back_more_black.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/choose_small.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/dialog_blue_delete.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/help_blue.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_contact.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_language.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_medical.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_method.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_photo.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_record.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_sign.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additional_info_terms.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_additonal_info_edit_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_back.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_additional_info_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_additional_info_upload_picture.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_black_delete.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_choose_circle.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_choose_square.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_picture_photo_default.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_status_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_unchoose.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/iv_profile_unchoose_circle.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/password.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_email_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_hours_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_lang_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_name_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_nric_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_phone_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_rate_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_skill_icon1.webp


+ 0 - 0
cs_cptServices/src/main/res/drawable-xxhdpi/profile_detail_skill_icon2.webp


Some files were not shown because too many files changed in this diff