From ecaf8069072e71db4bff94671e72764b211d6af1 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期四, 26 十月 2023 00:43:51 +0800
Subject: [PATCH] 功能完善
---
app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java | 25
app/src/main/res/layout/pop_annual_health_status.xml | 18
app/src/main/java/com/application/zhangshi_app_android/ui/dialog/UpdateDialog.java | 4
app/src/main/java/com/application/zhangshi_app_android/widget/Node.java | 60
app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java | 4
app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java | 3
app/src/main/res/drawable/shape_gradient_browser_progress.xml | 22
app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoCarouselFragment.java | 2
app/src/main/res/layout/activity_annual_health_status.xml | 5
app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java | 16
app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivityViewModel.java | 346 +++++
app/src/main/res/layout/activity_health_care.xml | 1
app/src/main/java/com/application/zhangshi_app_android/widget/HomeMindMapLayout.java | 4
app/src/main/res/layout/activity_growth_experience.xml | 2
app/build.gradle | 6
app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoBean.java | 61
app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java | 1
app/src/main/res/layout/activity_annual_health_status_detail.xml | 8
app/src/main/java/com/application/zhangshi_app_android/ui/PlayerActivity.java | 34
app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java | 28
app/src/main/res/values/strings.xml | 2
app/src/main/res/layout/layout_drawer.xml | 1
app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java | 29
app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java | 16
app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java | 2
app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java | 19
app/src/main/res/layout/item_family_member.xml | 17
app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java | 9
app/src/main/java/com/application/zhangshi_app_android/widget/SimpleNode.java | 22
app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java | 15
app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAddAdapter.java | 88
app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java | 5
app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java | 1
app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java | 35
app/src/main/res/layout/item_tourism.xml | 3
app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivity.java | 348 +++++
app_base/src/main/java/com/android/app_base/http/interceptor/AuthInterceptor.java | 2
app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoRequestBean.java | 47
app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivity.java | 313 +++++
app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java | 2
app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivityViewModel.java | 361 +++++
app/src/main/res/layout/item_examination_info.xml | 181 ++
app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java | 18
app_base/src/main/java/com/android/app_base/base/BaseConfig.java | 4
app/src/main/java/com/application/zhangshi_app_android/widget/DoubleNode.java | 19
app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java | 21
app/src/main/res/layout/pop_operate_exam_info.xml | 143 ++
app/src/main/res/layout/activity_examination_info.xml | 318 +++++
app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java | 9
app/src/main/res/layout/activity_examination_info_detail.xml | 129 ++
app/src/main/AndroidManifest.xml | 152 +
app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java | 3
app/src/main/java/com/application/zhangshi_app_android/ui/BrowserActivity.java | 184 ++
.idea/deploymentTargetDropDown.xml | 4
app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java | 2
app/src/main/java/com/application/zhangshi_app_android/adapter/ExaminationInfoRvAdapter.java | 167 ++
app/src/main/res/layout/pop_basic_information_double.xml | 7
/dev/null | 244 ---
app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java | 2
app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java | 1
app/src/main/res/layout/activity_browser.xml | 55
app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java | 10
app_base/src/main/java/com/android/app_base/action/TitleBarAction.java | 6
app_base/src/main/java/com/android/app_base/http/OkHttpHelper.java | 11
app_base/src/main/java/com/android/app_base/widget/ExtendTitleBar.java | 1
65 files changed, 3,209 insertions(+), 469 deletions(-)
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 6f1b369..f1ef53d 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -7,11 +7,11 @@
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
- <value value="D:\software\Android\.android\avd\Nexus_6_API_30.avd" />
+ <value value="D:\software\Android\.android\avd\Pixel_API_30.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
- <timeTargetWasSelectedWithDropDown value="2023-10-06T11:49:32.134674900Z" />
+ <timeTargetWasSelectedWithDropDown value="2023-10-25T11:40:17.439780100Z" />
</component>
</project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d0ea531..917df11 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,12 +8,12 @@
applicationId "com.application.zhangshi_app_android"
minSdk 24
targetSdk 33
- versionCode 6
- versionName "1.0.32"
+ versionCode 3
+ versionName "1.0.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
//APP鐨刡uild.gradle璁剧疆鏀寔鐨凷O搴撴灦鏋�
- abiFilters 'armeabi', 'armeabi-v7a', 'x86'
+ abiFilters 'armeabi', 'armeabi-v7a', 'x86' , 'arm64-v8a', 'x86_64'
}
}
signingConfigs {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 16def59..4e682ce 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -86,12 +86,14 @@
<activity
android:name=".ui.main.MainActivity"
android:exported="true"
+ android:launchMode="singleTask"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
/>
<activity
android:name=".ui.login.LoginActivity"
android:exported="true"
- android:screenOrientation="portrait">
+ android:screenOrientation="portrait"
+ >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -100,133 +102,186 @@
</activity>
<activity
android:name=".ui.function.FamilyMemorabiliaActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.FamilyMemorabiliaDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait"
+ />
<activity
android:name=".ui.function.FamilyAssetsActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.FamilyAssetsDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HomeDevicesActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HomeDevicesDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.GrowthExperienceActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HonorCollectionDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HonorCollectionActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.LittleDoctorDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.LittleDoctorActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.CleanStorageActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.CleanStorageDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.IncomeAndExpensesActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.IncomeAndExpensesDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PropertyActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PropertyDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HundredWishActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HundredWishDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.CertificateOfHonorActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.CertificateOfHonorDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.MarriageActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PetDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PetMemoActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PetMemoDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.HealthCareActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.AnnualHealthStatusActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.AnnualHealthStatusDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PrivacyActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PrivacyDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.TourismActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.TourismDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.TourismExperienceActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.TourismExperienceDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.personal_center.BasicInfoActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.ContactsActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.ContactsImportActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PersonalNotepadActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PersonalNotepadDetailActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.PetActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
+ <activity
+ android:name=".ui.function.ExaminationInfoActivity"
+ android:exported="false"
+ android:screenOrientation="portrait" />
+ <activity
+ android:name=".ui.function.ExaminationInfoDetailActivity"
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity
android:name=".ui.function.ImageSelectActivity"
- android:exported="false" />
+ android:exported="false"
+ android:screenOrientation="portrait" />
<activity android:name=".ui.home.GenealogyActivity"
- android:exported="false"/>
+ android:exported="false"
+ android:screenOrientation="portrait"/>
<activity android:name=".ui.personal_center.LoginBgChangeActivity"
- android:exported="false"/>
+ android:exported="false"
+ android:screenOrientation="portrait"/>
<activity android:name=".ui.home.HomeMindMapActivity"
- android:exported="false"/>
+ android:exported="false"
+ android:screenOrientation="portrait"/>
<!-- 鏌ョ湅澶у浘 -->
<activity
@@ -255,12 +310,17 @@
android:theme="@style/FullScreenTheme" />
<activity
- android:name=".ui.PlayActivity"
+ android:name=".ui.PlayerActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:screenOrientation="portrait"
android:theme="@style/FullScreenTheme"
/>
+ <activity
+ android:name=".ui.BrowserActivity"
+ android:screenOrientation="portrait" />
+
+
</application>
</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAddAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAddAdapter.java
index 19895e1..3f27eeb 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAddAdapter.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ElectronicFileAddAdapter.java
@@ -2,22 +2,21 @@
import android.app.Activity;
import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
+import android.util.Base64;
import android.view.View;
import androidx.annotation.Nullable;
-import androidx.core.app.ActivityCompat;
-import androidx.core.app.ActivityOptionsCompat;
-import androidx.core.util.Pair;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.adapter.BaseRVAdapter;
import com.application.zhangshi_app_android.R;
import com.application.zhangshi_app_android.databinding.ItemElectronicFileAddBinding;
+import com.application.zhangshi_app_android.ui.BrowserActivity;
import com.application.zhangshi_app_android.ui.ImagePreviewActivity;
-import com.application.zhangshi_app_android.ui.PlayActivity;
-import com.application.zhangshi_app_android.ui.VideoPlayActivity;
+import com.application.zhangshi_app_android.ui.PlayerActivity;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -93,7 +92,6 @@
if (getItemViewType(position) == TYPE_Add) {
holder.getBinding().flAdd.setVisibility(View.VISIBLE);
holder.getBinding().flImage.setVisibility(View.GONE);
-
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -109,6 +107,30 @@
holder.getBinding().flAdd.setVisibility(View.GONE);
holder.getBinding().flImage.setVisibility(View.VISIBLE);
+ String item = mDataList.get(position);
+ if (isShowAddItem) {
+ holder.getBinding().ivDelete.setVisibility(View.VISIBLE);
+ } else {
+ holder.getBinding().ivDelete.setVisibility(View.GONE);
+ }
+
+ if (isShowDeleteIcon) {
+ holder.getBinding().ivDelete.setVisibility(View.VISIBLE);
+ } else {
+ holder.getBinding().ivDelete.setVisibility(View.GONE);
+ }
+
+ if (isShowSelectIcon) {
+ holder.getBinding().ivSelect.setVisibility(View.VISIBLE);
+ if (selectedItems.contains(item)){
+ holder.getBinding().ivSelect.setBackgroundResource(R.drawable.ic_checked);
+ } else {
+ holder.getBinding().ivSelect.setBackgroundResource(R.drawable.ic_unchecked);
+ }
+ } else {
+ holder.getBinding().ivSelect.setVisibility(View.GONE);
+ }
+
//闈為瑙堢姸鎬佷笅锛岀偣鍑籭tem 璋冪敤 mItemAndAddClickListener.onItemClick
//棰勮鐘舵�佷笅锛岀偣鍑籭tem 璋冪敤 鐩稿簲鐨� 鏂囦欢棰勮
if (!isPreview){
@@ -120,10 +142,32 @@
}
}
});
+ }else {
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String url = mDataList.get(position);
+ if (url.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鏂囦欢
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ url = url.substring(url.indexOf("profile/upload"));
+ url = BaseConfig.BASE_URL_DOMAIN + "/" + url;
+ //澶勭悊url杩涜Base64缂栫爜锛屽�熷姪 kkfileview 杩涜鏂囦欢棰勮
+ // URL缂栫爜Base64缂栫爜鍚庣殑URL
+ try {
+ String encodedUrl = URLEncoder.encode(Base64.encodeToString(url.getBytes(), Base64.NO_WRAP), "UTF-8");
+ String kkFileViewUrl = "https://www.bendudu.com:8085/preview/onlinePreview?url=" + encodedUrl;
+ BrowserActivity.start(mContext, kkFileViewUrl);
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ });
}
- String item = mDataList.get(position);
if (item != null) {
+ //闈炲浘鐗囪棰戯紝鎵撳紑鏂囦欢棰勮
+
if (item.endsWith(".pdf")) {
holder.getBinding().ivImage.setImageResource(R.drawable.ic_pdf);
} else if (item.endsWith(".zip") || item.endsWith(".aar") || item.endsWith(".7z")) {
@@ -157,8 +201,7 @@
// .setVideoSource(item)
// .setActivityOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
// .start(mContext);
- PlayActivity.start((Activity) mContext, item,holder.itemView,true);
-
+ PlayerActivity.startWrapUrl((Activity) mContext, item,holder.itemView,true);
}
});
}
@@ -169,29 +212,6 @@
} else {
holder.getBinding().ivImage.setImageResource(R.drawable.ic_others);
}
- }
-
- if (isShowAddItem) {
- holder.getBinding().ivDelete.setVisibility(View.VISIBLE);
- } else {
- holder.getBinding().ivDelete.setVisibility(View.GONE);
- }
-
- if (isShowDeleteIcon) {
- holder.getBinding().ivDelete.setVisibility(View.VISIBLE);
- } else {
- holder.getBinding().ivDelete.setVisibility(View.GONE);
- }
-
- if (isShowSelectIcon) {
- holder.getBinding().ivSelect.setVisibility(View.VISIBLE);
- if (selectedItems.contains(item)){
- holder.getBinding().ivSelect.setBackgroundResource(R.drawable.ic_checked);
- } else {
- holder.getBinding().ivSelect.setBackgroundResource(R.drawable.ic_unchecked);
- }
- } else {
- holder.getBinding().ivSelect.setVisibility(View.GONE);
}
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/ExaminationInfoRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/ExaminationInfoRvAdapter.java
new file mode 100644
index 0000000..eeb7577
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/ExaminationInfoRvAdapter.java
@@ -0,0 +1,167 @@
+package com.application.zhangshi_app_android.adapter;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.widget.CompoundButton;
+import android.widget.FrameLayout;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
+import com.application.zhangshi_app_android.databinding.ItemExaminationInfoBinding;
+import com.application.zhangshi_app_android.ui.function.ExaminationInfoDetailActivity;
+import com.application.zhangshi_app_android.ui.function.ExaminationInfoActivityViewModel;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:11
+ * @desc 鍘嗗勾浣撴鎶ュ憡閫傞厤鍣�
+ */
+public class ExaminationInfoRvAdapter extends BaseRVAdapter<ExaminationInfoBean, ItemExaminationInfoBinding, ExaminationInfoRvAdapter.ViewHolder> {
+ private ExaminationInfoActivityViewModel viewModel;
+ private final Map<ExaminationInfoBean, Boolean> expendMap = new HashMap<>();
+ private boolean isCheckable;
+
+ public ExaminationInfoRvAdapter(Context context, ExaminationInfoActivityViewModel viewModel) {
+ super(context);
+ this.viewModel = viewModel;
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.item_examination_info;
+ }
+
+ @Override
+ protected ViewHolder getViewHolder(ItemExaminationInfoBinding itemBind, int viewType) {
+ return new ViewHolder(itemBind);
+ }
+
+ @Override
+ protected void onBind(ViewHolder holder, int position) {
+ holder.getBinding().setBean(mDataList.get(position));
+ if (position % 2 != 0){
+ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue));
+ }else {
+ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
+ }
+ if (!expendMap.containsKey(getItem(position))){
+ expendMap.put(getItem(position),false);
+ }
+ if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+ holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+ holder.getBinding().cardView.post(() -> {
+ holder.getBinding().cardView.getLayoutParams().height = FrameLayout.LayoutParams.WRAP_CONTENT;
+ holder.getBinding().cardView.requestLayout();
+ });
+ }else{
+ holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+ holder.getBinding().cardView.post(() -> {
+ holder.getBinding().cardView.getLayoutParams().height = holder.getBinding().layoutTitle.getMeasuredHeight();
+ holder.getBinding().cardView.requestLayout();
+ });
+ }
+ if (isCheckable){
+ holder.getBinding().checkbox.setVisibility(View.VISIBLE);
+ holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ if (viewModel.getCheckListLiveData().getValue() == null){
+ viewModel.getCheckListLiveData().setValue(new ArrayList<>());
+ }
+ List<ExaminationInfoBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue());
+ if (isChecked){
+ if (!list.contains(mDataList.get(position))){
+ list.add(mDataList.get(position));
+ }
+ }else{
+ list.remove(mDataList.get(position));
+ }
+ viewModel.getCheckListLiveData().setValue(list);
+ }
+ });
+ holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position)));
+ }else{
+ holder.getBinding().checkbox.setVisibility(View.GONE);
+ }
+ holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (Boolean.TRUE.equals(expendMap.get(getItem(position)))){
+ int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+ int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight();
+ Utils.pullCollapse(holder.getBinding().cardView,initialHeight,collapsedHeight);
+ holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_fold);
+ expendMap.put(getItem(position),false);
+ }else{
+ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight();
+ holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
+ int targetHeight = holder.getBinding().cardView.getMeasuredHeight();
+ Utils.dropExpand(holder.getBinding().cardView,initialHeight,targetHeight);
+ holder.getBinding().ivFold.setBackgroundResource(R.drawable.ic_unfold);
+ expendMap.put(getItem(position),true);
+ }
+ }
+ });
+ holder.itemView.setOnClickListener(v -> {
+ AppManager.getAppManager().startActivity(
+ new Intent(getRecyclerView().getContext(), ExaminationInfoDetailActivity.class)
+ .putExtra(BaseConfig.EXTRA_TYPE,0)
+ .putExtra("bean",mDataList.get(position)));
+ });
+
+ holder.getBinding().layoutModify.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ AppManager.getAppManager().startActivity(
+ new Intent(getRecyclerView().getContext(), ExaminationInfoDetailActivity.class)
+ .putExtra(BaseConfig.EXTRA_TYPE,2)
+ .putExtra("bean",mDataList.get(position)));
+ }
+ });
+ holder.getBinding().layoutDelete.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new UIDialog.Builder(mContext)
+ .setTitle("鎮ㄧ‘瀹氳鍒犻櫎璇ラ」鐩悧")
+ .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+ .setConfirm("纭畾")
+ .setCancel("鍙栨秷")
+ .setListener(new UIDialog.OnListener() {
+ @Override
+ public void onConfirm(BaseDialog dialog) {
+ viewModel.deleteItem(mDataList.get(position));
+ }
+ })
+ .show();
+ }
+ });
+ ElectronicFileAdapter adapter = new ElectronicFileAdapter(mContext);
+ holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3));
+ holder.getBinding().rvImage.setAdapter(adapter);
+ adapter.setData(Utils.splitString2List(mDataList.get(position).getUrl(),","));
+
+ }
+ public void setCheckable(boolean b) {
+ isCheckable = b;
+ notifyDataSetChanged();
+ }
+ public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemExaminationInfoBinding> {
+ public ViewHolder(ItemExaminationInfoBinding binding) {
+ super(binding);
+ }
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java
index c706f47..0049a50 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/AnnualHealthStatusBean.java
@@ -9,7 +9,7 @@
*/
public class AnnualHealthStatusBean implements Serializable {
//搴忓彿
- private int id;
+ private int id = -1;
//浣撴鏃堕棿
private String checkTime;
//绫诲埆
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoBean.java
new file mode 100644
index 0000000..00da0d3
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoBean.java
@@ -0,0 +1,61 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.io.Serializable;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:12
+ * @desc 浣撴淇℃伅
+ */
+public class ExaminationInfoBean implements Serializable {
+ //id
+ private int id;
+ //uid
+ private int uid;
+ //浣撴鏃ユ湡
+ private String happenTime;
+ //骞村害鎶ュ憡
+ private String report;
+ //鐢靛瓙鏂囦欢
+ private String url;
+
+ public String getHappenTime() {
+ return happenTime;
+ }
+
+ public void setHappenTime(String happenTime) {
+ this.happenTime = happenTime;
+ }
+
+ public String getReport() {
+ return report;
+ }
+
+ public void setReport(String report) {
+ this.report = report;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getUid() {
+ return uid;
+ }
+
+ public void setUid(int uid) {
+ this.uid = uid;
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoRequestBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoRequestBean.java
new file mode 100644
index 0000000..2886c9f
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/ExaminationInfoRequestBean.java
@@ -0,0 +1,47 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.util.Map;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:24
+ * @desc 浣撴淇℃伅璇锋眰bean
+ */
+public class ExaminationInfoRequestBean extends PageRequestBean{
+ private String report;
+ private String happenStartTime;
+ private String happenEndTime;
+
+ public String getReport() {
+ return report;
+ }
+
+ public void setReport(String report) {
+ this.report = report;
+ }
+
+ public String getHappenStartTime() {
+ return happenStartTime;
+ }
+
+ public void setHappenStartTime(String happenStartTime) {
+ this.happenStartTime = happenStartTime;
+ }
+
+ public String getHappenEndTime() {
+ return happenEndTime;
+ }
+
+ public void setHappenEndTime(String happenEndTime) {
+ this.happenEndTime = happenEndTime;
+ }
+
+ @Override
+ public Map<String, Object> toMap() {
+ Map<String, Object> map = super.toMap();
+ map.put("report",report == null ? "" : report);
+ map.put("happenStartTime",happenStartTime == null ? "" : happenStartTime);
+ map.put("happenEndTime",happenEndTime == null ? "" : happenEndTime);
+ return map;
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java b/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
index b805a04..ac2e5c9 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
@@ -10,6 +10,7 @@
import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
import com.application.zhangshi_app_android.bean.CleanStorageBean;
import com.application.zhangshi_app_android.bean.ContactsDetailBean;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
import com.application.zhangshi_app_android.bean.FamilyAssetsBean;
import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
import com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean;
@@ -656,6 +657,34 @@
return mHttpDataSource.getUpdateVersion();
}
+ /**
+ * 鑾峰彇鍘嗗勾浣撴鎶ュ憡
+ */
+ public Observable<ResultData<PageResponseBean<ExaminationInfoBean>>> getExaminationInfo(Map<String, Object> toMap) {
+ return mHttpDataSource.getExaminationInfo(toMap);
+ }
+
+ /**
+ * 鍒犻櫎鍘嗗勾浣撴鎶ュ憡
+ */
+ public Observable<ResultData<String>> deleteExaminationInfo(String ids) {
+ return mHttpDataSource.deleteExaminationInfo(ids);
+ }
+
+ /**
+ * 淇敼鍘嗗勾浣撴鎶ュ憡
+ */
+ public Observable<ResultData<String>> updateExaminationInfo(ExaminationInfoBean examinationInfoBean) {
+ return mHttpDataSource.updateExaminationInfo(examinationInfoBean);
+ }
+
+ /**
+ * 娣诲姞鍘嗗勾浣撴鎶ュ憡
+ */
+ public Observable<ResultData<String>> addExaminationInfo(ExaminationInfoBean examinationInfoBean) {
+ return mHttpDataSource.addExaminationInfo(examinationInfoBean);
+ }
+
/**
* @see LocalDataSourceImpl
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java b/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
index a0f3b93..c524605 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
@@ -7,6 +7,7 @@
import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
import com.application.zhangshi_app_android.bean.CleanStorageBean;
import com.application.zhangshi_app_android.bean.ContactsDetailBean;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
@@ -440,6 +441,26 @@
Observable<ResultData<UpdateVersionBean>> getUpdateVersion();
+ /**
+ * 鑾峰彇鍘嗗勾浣撴鎶ュ憡
+ */
+ Observable<ResultData<PageResponseBean<ExaminationInfoBean>>> getExaminationInfo(Map<String, Object> toMap);
+
+ /**
+ * 鍒犻櫎鍘嗗勾浣撴鎶ュ憡
+ */
+ Observable<ResultData<String>> deleteExaminationInfo(String ids);
+
+ /**
+ * 淇敼鍘嗗勾浣撴鎶ュ憡
+ */
+ Observable<ResultData<String>> updateExaminationInfo(ExaminationInfoBean examinationInfoBean);
+
+ /**
+ * 娣诲姞鍘嗗勾浣撴鎶ュ憡
+ */
+ Observable<ResultData<String>> addExaminationInfo(ExaminationInfoBean examinationInfoBean);
+
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
index 96fc687..07ea9ea 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
@@ -7,6 +7,7 @@
import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
import com.application.zhangshi_app_android.bean.CleanStorageBean;
import com.application.zhangshi_app_android.bean.ContactsDetailBean;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
@@ -548,4 +549,28 @@
@GET("/version")
Observable<ResultData<UpdateVersionBean>> getUpdateVersion();
+ /**
+ * 鑾峰彇鍘嗗勾浣撴鎶ュ憡
+ */
+ @GET("/physcial/all")
+ Observable<ResultData<PageResponseBean<ExaminationInfoBean>>> getExaminationInfo(@QueryMap Map<String, Object> toMap);
+
+ /**
+ * 鍒犻櫎鍘嗗勾浣撴鎶ュ憡
+ */
+ @DELETE("/physcial/{ids}")
+ Observable<ResultData<String>> deleteExaminationInfo(@Path("ids") String ids);
+
+ /**
+ * 淇敼鍘嗗勾浣撴鎶ュ憡
+ */
+ @PUT("/physcial")
+ Observable<ResultData<String>> updateExaminationInfo(@Body ExaminationInfoBean examinationInfoBean);
+
+ /**
+ * 娣诲姞鍘嗗勾浣撴鎶ュ憡
+ */
+ @POST("/physcial")
+ Observable<ResultData<String>> addExaminationInfo(@Body ExaminationInfoBean examinationInfoBean);
+
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
index f570b8f..85e2257 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
@@ -8,6 +8,7 @@
import com.application.zhangshi_app_android.bean.CertificateOfHonorBean;
import com.application.zhangshi_app_android.bean.CleanStorageBean;
import com.application.zhangshi_app_android.bean.ContactsDetailBean;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
import com.application.zhangshi_app_android.bean.HealthCareBaseInfoBean;
import com.application.zhangshi_app_android.bean.HealthCareExistingProblemsBean;
import com.application.zhangshi_app_android.bean.HealthCareLifeHabitsBean;
@@ -62,7 +63,7 @@
private volatile static HttpDataSourceImpl INSTANCE = null;
private HttpDataSourceImpl() {
- this.apiService = RetrofitManager.getInstance().getRetrofit(BaseConfig.BASE_URL).create(ApiService.class);
+ this.apiService = RetrofitManager.getInstance().getRetrofit(BaseConfig.BASE_URL_DOMAIN).create(ApiService.class);
}
public static HttpDataSourceImpl getInstance() {
@@ -710,4 +711,36 @@
public Observable<ResultData<UpdateVersionBean>> getUpdateVersion() {
return apiService.getUpdateVersion();
}
+
+ /**
+ * 鑾峰彇鍘嗗勾浣撴鎶ュ憡
+ */
+ @Override
+ public Observable<ResultData<PageResponseBean<ExaminationInfoBean>>> getExaminationInfo(Map<String, Object> toMap) {
+ return apiService.getExaminationInfo(toMap);
+ }
+
+ /**
+ * 鍒犻櫎鍘嗗勾浣撴鎶ュ憡
+ */
+ @Override
+ public Observable<ResultData<String>> deleteExaminationInfo(String ids) {
+ return apiService.deleteExaminationInfo(ids);
+ }
+
+ /**
+ * 淇敼鍘嗗勾浣撴鎶ュ憡
+ */
+ @Override
+ public Observable<ResultData<String>> updateExaminationInfo(ExaminationInfoBean examinationInfoBean) {
+ return apiService.updateExaminationInfo(examinationInfoBean);
+ }
+
+ /**
+ * 鏂板鍘嗗勾浣撴鎶ュ憡
+ */
+ @Override
+ public Observable<ResultData<String>> addExaminationInfo(ExaminationInfoBean examinationInfoBean) {
+ return apiService.addExaminationInfo(examinationInfoBean);
+ }
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/BrowserActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/BrowserActivity.java
new file mode 100644
index 0000000..ab92389
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/BrowserActivity.java
@@ -0,0 +1,184 @@
+package com.application.zhangshi_app_android.ui;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.text.TextUtils;
+import android.util.Base64;
+import android.view.KeyEvent;
+import android.view.View;
+import android.webkit.WebChromeClient;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+import androidx.annotation.NonNull;
+
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.WaitDialog;
+import com.android.app_base.base.view.BaseActivity;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.databinding.ActivityBrowserBinding;
+import com.hjq.bar.TitleBar;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+/**
+ * @author Ljj
+ * @date 2023.10.15. 22:36
+ * @desc 娴忚鍣ㄧ晫闈�
+ */
+public class BrowserActivity extends BaseActivity<ActivityBrowserBinding,SimpleViewModel> {
+
+ private static final String INTENT_URL = "url";
+
+ private String url;
+ private BaseDialog mWaitDialog;
+
+
+ public static void start(Context context, String url) {
+ if (TextUtils.isEmpty(url)) {
+ return;
+ }
+ Intent intent = new Intent(context, BrowserActivity.class);
+ intent.putExtra(INTENT_URL, url);
+ if (!(context instanceof Activity)) {
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ }
+ context.startActivity(intent);
+ }
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.activity_browser;
+ }
+
+ @Override
+ public int getVariableId() {
+ return 0;
+ }
+
+ @Override
+ public void initParam() {
+ url = getIntent().getStringExtra(INTENT_URL);
+ }
+
+ @Override
+ public void initView() {
+ binding.slBrowserRefresh.setEnableRefresh(true);
+ binding.slBrowserRefresh.setEnableLoadMore(false);
+ binding.slBrowserRefresh.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+ binding.wvBrowserView.reload();
+ }
+ });
+
+ WebSettings webSettings = binding.wvBrowserView.getSettings();
+ webSettings.setJavaScriptEnabled(true); // 鍚敤JavaScript
+ webSettings.setBuiltInZoomControls(true); // 鍚敤鍐呯疆鐨勭缉鏀炬帶浠�
+ webSettings.setDisplayZoomControls(false); // 闅愯棌缂╂斁鎸夐挳
+ webSettings.setSupportZoom(true); // 鍚敤缂╂斁
+ webSettings.setLoadWithOverviewMode(true); // 缂╂斁鑷冲睆骞曠殑澶у皬
+ webSettings.setUseWideViewPort(true); // 鍚敤鏀寔瑙嗙獥
+
+ binding.wvBrowserView.setWebViewClient(new WebViewClient(){
+ /**
+ * 寮�濮嬪姞杞界綉椤�
+ */
+ @Override
+ public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ binding.pbBrowserProgress.setVisibility(View.VISIBLE);
+ }
+
+ /**
+ * 瀹屾垚鍔犺浇缃戦〉
+ */
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ binding.pbBrowserProgress.setVisibility(View.GONE);
+ binding.slBrowserRefresh.finishRefresh();
+ dialogDismiss();
+ }
+ });
+ binding.wvBrowserView.setWebChromeClient(new WebChromeClient(){
+ /**
+ * 鏀跺埌缃戦〉鏍囬
+ */
+ @Override
+ public void onReceivedTitle(WebView view, String title) {
+ if (title == null) {
+ return;
+ }
+ binding.tbBrowserTitle.setTitle(title);
+ }
+
+ @Override
+ public void onReceivedIcon(WebView view, Bitmap icon) {
+ if (icon == null) {
+ return;
+ }
+// setRightIcon(new BitmapDrawable(getResources(), icon));
+ }
+
+ /**
+ * 鏀跺埌鍔犺浇杩涘害鍙樺寲
+ */
+ @Override
+ public void onProgressChanged(WebView view, int newProgress) {
+ binding.pbBrowserProgress.setProgress(newProgress);
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ dialogLoading();
+ binding.wvBrowserView.loadUrl(url);
+ }
+
+ @Override
+ public void initLiveDataObserve() {
+
+ }
+
+ @Override
+ public void onLeftClick(TitleBar titleBar) {
+ finish();
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK && binding.wvBrowserView.canGoBack()) {
+ // 鍚庨��缃戦〉骞朵笖鎷︽埅璇ヤ簨浠�
+ binding.wvBrowserView.goBack();
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+ @Override
+ protected void dialogLoading() {
+ if (mWaitDialog == null) {
+ mWaitDialog = new WaitDialog.Builder(this)
+ .create();
+ mWaitDialog.setCancelable(true);
+ }
+ if (!mWaitDialog.isShowing()) {
+ mWaitDialog.show();
+ }
+ }
+
+ @Override
+ protected void dialogDismiss() {
+ if (mWaitDialog != null && mWaitDialog.isShowing()) {
+ mWaitDialog.dismiss();
+ mWaitDialog = null;
+ }
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
index a93d8b1..c5b1f88 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
@@ -15,6 +15,7 @@
import androidx.databinding.ViewDataBinding;
import androidx.drawerlayout.widget.DrawerLayout;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.view.BaseActivity;
import com.android.app_base.base.viewmodel.BaseViewModel;
import com.android.app_base.manager.AppManager;
@@ -24,13 +25,13 @@
import com.android.app_base.utils.rxbus.MessageEvent;
import com.android.app_base.utils.rxbus.RxBus;
import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.ui.function.AnnualHealthStatusActivity;
import com.application.zhangshi_app_android.ui.function.CertificateOfHonorActivity;
import com.application.zhangshi_app_android.ui.function.CleanStorageActivity;
import com.application.zhangshi_app_android.ui.function.ContactsActivity;
import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivity;
import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivity;
import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity;
-import com.application.zhangshi_app_android.ui.function.HealthCareActivity;
import com.application.zhangshi_app_android.ui.function.HomeDevicesActivity;
import com.application.zhangshi_app_android.ui.function.HonorCollectionActivity;
import com.application.zhangshi_app_android.ui.function.HundredWishActivity;
@@ -38,7 +39,6 @@
import com.application.zhangshi_app_android.ui.function.LittleDoctorActivity;
import com.application.zhangshi_app_android.ui.function.MarriageActivity;
import com.application.zhangshi_app_android.ui.function.PetActivity;
-import com.application.zhangshi_app_android.ui.function.PetDetailActivity;
import com.application.zhangshi_app_android.ui.function.PrivacyActivity;
import com.application.zhangshi_app_android.ui.function.PropertyActivity;
import com.application.zhangshi_app_android.ui.function.TourismActivity;
@@ -121,7 +121,7 @@
classMap.put(MarriageActivity.class,(LinearLayout) findViewById(R.id.dl_marriage));
classMap.put(PropertyActivity.class,(LinearLayout) findViewById(R.id.dl_property));
classMap.put(HundredWishActivity.class,(LinearLayout) findViewById(R.id.dl_hundred_wish));
- classMap.put(HealthCareActivity.class,(LinearLayout) findViewById(R.id.dl_health_care));
+ classMap.put(AnnualHealthStatusActivity.class,(LinearLayout) findViewById(R.id.dl_health_care));
classMap.put(CertificateOfHonorActivity.class,(LinearLayout) findViewById(R.id.dl_certificate_of_honor));
classMap.put(PrivacyActivity.class,(LinearLayout) findViewById(R.id.dl_privacy));
classMap.put(TourismActivity.class,(LinearLayout) findViewById(R.id.dl_tourism));
@@ -135,8 +135,11 @@
if (set.getKey() == HomeFragment.class) {
MainActivity.start(this, HomeFragment.class);
}else{
- AppManager.getAppManager().startActivity(set.getKey());
+ if(this.getClass() != set.getKey()){
+ AppManager.getAppManager().startActivity(set.getKey());
+ }
}
+ mDrawerLayout.close();
}
});
} else {
@@ -160,6 +163,11 @@
public void setNameAndAvatar(String name,String avatar){
if (mDrawerLayout != null){
+ if (avatar.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鍥剧墖
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ avatar = avatar.substring(avatar.indexOf("profile/upload"));
+ avatar = BaseConfig.BASE_URL_DOMAIN + "/" + avatar;
+ }
GlideUtil.loadImage(avatar, findViewById(R.id.dl_home_user_avatar));
TextView userNameTv = findViewById(R.id.dl_home_user_name);
userNameTv.setText(name);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java
index 1985b69..eb32c4c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseFragment.java
@@ -17,6 +17,7 @@
import androidx.databinding.ViewDataBinding;
import androidx.drawerlayout.widget.DrawerLayout;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.view.BaseFragment;
import com.android.app_base.base.viewmodel.BaseViewModel;
import com.android.app_base.manager.AppManager;
@@ -25,13 +26,13 @@
import com.android.app_base.utils.rxbus.MessageEvent;
import com.android.app_base.utils.rxbus.RxBus;
import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.ui.function.AnnualHealthStatusActivity;
import com.application.zhangshi_app_android.ui.function.CertificateOfHonorActivity;
import com.application.zhangshi_app_android.ui.function.CleanStorageActivity;
import com.application.zhangshi_app_android.ui.function.ContactsActivity;
import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivity;
import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivity;
import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity;
-import com.application.zhangshi_app_android.ui.function.HealthCareActivity;
import com.application.zhangshi_app_android.ui.function.HomeDevicesActivity;
import com.application.zhangshi_app_android.ui.function.HonorCollectionActivity;
import com.application.zhangshi_app_android.ui.function.HundredWishActivity;
@@ -43,6 +44,7 @@
import com.application.zhangshi_app_android.ui.function.PropertyActivity;
import com.application.zhangshi_app_android.ui.function.TourismActivity;
import com.application.zhangshi_app_android.ui.home.HomeFragment;
+import com.application.zhangshi_app_android.ui.main.MainActivity;
import com.hjq.bar.TitleBar;
import java.util.HashMap;
@@ -128,7 +130,7 @@
classMap.put(MarriageActivity.class,(LinearLayout) findViewById(R.id.dl_marriage));
classMap.put(PropertyActivity.class,(LinearLayout) findViewById(R.id.dl_property));
classMap.put(HundredWishActivity.class,(LinearLayout) findViewById(R.id.dl_hundred_wish));
- classMap.put(HealthCareActivity.class,(LinearLayout) findViewById(R.id.dl_health_care));
+ classMap.put(AnnualHealthStatusActivity.class,(LinearLayout) findViewById(R.id.dl_health_care));
classMap.put(CertificateOfHonorActivity.class,(LinearLayout) findViewById(R.id.dl_certificate_of_honor));
classMap.put(PrivacyActivity.class,(LinearLayout) findViewById(R.id.dl_privacy));
classMap.put(TourismActivity.class,(LinearLayout) findViewById(R.id.dl_tourism));
@@ -139,7 +141,12 @@
if (linearLayout != null) {
linearLayout.setOnClickListener(v -> {
if (set.getKey() != null){
- AppManager.getAppManager().startActivity(set.getKey());
+ if (set.getKey() == HomeFragment.class) {
+ MainActivity.start(getContext(), HomeFragment.class);
+ }else{
+ AppManager.getAppManager().startActivity(set.getKey());
+ }
+ mDrawerLayout.close();
}
});
} else {
@@ -171,6 +178,11 @@
public void setNameAndAvatar(String name,String avatar){
if (mDrawerLayout != null){
+ if (avatar.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鍥剧墖
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ avatar = avatar.substring(avatar.indexOf("profile/upload"));
+ avatar = BaseConfig.BASE_URL_DOMAIN + "/" + avatar;
+ }
GlideUtil.loadImage(avatar, findViewById(R.id.dl_home_user_avatar));
TextView userNameTv = findViewById(R.id.dl_home_user_name);
userNameTv.setText(name);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/PlayActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/PlayerActivity.java
similarity index 88%
rename from app/src/main/java/com/application/zhangshi_app_android/ui/PlayActivity.java
rename to app/src/main/java/com/application/zhangshi_app_android/ui/PlayerActivity.java
index 3be527b..e035502 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/PlayActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/PlayerActivity.java
@@ -2,13 +2,11 @@
import android.annotation.TargetApi;
import android.app.Activity;
-import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.os.Handler;
import android.transition.Transition;
-import android.transition.TransitionListenerAdapter;
import android.view.View;
import android.widget.ImageView;
@@ -17,6 +15,7 @@
import androidx.core.util.Pair;
import androidx.core.view.ViewCompat;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.view.BaseActivity;
import com.android.app_base.utils.GlideUtil;
import com.application.zhangshi_app_android.R;
@@ -24,15 +23,12 @@
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author Ljj
* @date 2023.09.04. 15:59
- * @desc
+ * @desc 瑙嗛鎾斁 Activity
*/
-public class PlayActivity extends BaseActivity<ActivityPlayBinding,SimpleViewModel> {
+public class PlayerActivity extends BaseActivity<ActivityPlayBinding,SimpleViewModel> {
public final static String IMG_TRANSITION = "IMG_TRANSITION";
public final static String TRANSITION = "TRANSITION";
public final static String VIDEO_URL = "VIDEO_URL";
@@ -228,11 +224,11 @@
* @param isTransition 鏄惁鏈夎繃娓″姩鐢�
*/
public static void start(Activity activity, String url, View view, boolean isTransition){
- Intent intent = new Intent(activity, PlayActivity.class);
- intent.putExtra(PlayActivity.TRANSITION, isTransition);
- intent.putExtra(PlayActivity.VIDEO_URL, url);
+ Intent intent = new Intent(activity, PlayerActivity.class);
+ intent.putExtra(PlayerActivity.TRANSITION, isTransition);
+ intent.putExtra(PlayerActivity.VIDEO_URL, url);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
- Pair pair = new Pair<>(view, PlayActivity.IMG_TRANSITION);
+ Pair pair = new Pair<>(view, PlayerActivity.IMG_TRANSITION);
ActivityOptionsCompat activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(
activity, pair);
ActivityCompat.startActivity(activity, intent, activityOptions.toBundle());
@@ -241,4 +237,20 @@
activity.overridePendingTransition(androidx.appcompat.R.anim.abc_fade_in, androidx.appcompat.R.anim.abc_fade_out);
}
}
+
+ /**
+ * 鍚姩鎾斁鐣岄潰锛堟嫾鎺ュ畬鏁寸殑url锛�
+ * @param activity
+ * @param url
+ * @param view
+ * @param isTransition
+ */
+ public static void startWrapUrl(Activity activity, String url, View view, boolean isTransition){
+ if (url.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鍥剧墖
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ url = url.substring(url.indexOf("profile/upload"));
+ url = BaseConfig.BASE_URL_DOMAIN + "/" + url;
+ }
+ start(activity,url,view,isTransition);
+ }
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/UpdateDialog.java b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/UpdateDialog.java
index 00cb688..314e963 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/UpdateDialog.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/UpdateDialog.java
@@ -41,7 +41,9 @@
import java.util.Timer;
import java.util.TimerTask;
-
+/**
+ * 鐗堟湰鏇存柊寮圭獥
+ */
public final class UpdateDialog {
public static final class Builder
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java b/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java
deleted file mode 100644
index b7679c7..0000000
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/dialog/VersionUpdateDialog.java
+++ /dev/null
@@ -1,244 +0,0 @@
-package com.application.zhangshi_app_android.ui.dialog;
-
-import static com.blankj.utilcode.util.StringUtils.getString;
-
-import android.animation.Animator;
-import android.animation.ValueAnimator;
-import android.annotation.SuppressLint;
-import android.app.DownloadManager;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Environment;
-import android.os.Handler;
-import android.util.Log;
-import android.view.Gravity;
-import android.view.View;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.annotation.StringRes;
-
-import com.android.app_base.base.dialog.BaseDialog;
-import com.android.app_base.utils.Utils;
-import com.application.zhangshi_app_android.MyApplication;
-import com.application.zhangshi_app_android.R;
-
-import java.util.Timer;
-import java.util.TimerTask;
-
-/**
- * @author Ljj
- * @date 2023.07.25. 16:59
- * @desc
- */
-public final class VersionUpdateDialog {
- @SuppressWarnings("unchecked")
- public static class Builder<B extends VersionUpdateDialog.Builder<B>>
- extends BaseDialog.Builder<B> {
-
- private boolean mAutoDismiss = true;
-
- private final TextView mTitleView;
- private final TextView mContentView;
- private final TextView mConfirmView;
- private final ProgressBar progressBar;
- private final TextView tv_pro;
- private final TextView tv_pro_percent;
- private final RelativeLayout layout_progress;
-
- private String downloadUrl;
-
- public Builder(Context context) {
- super(context);
- setContentView(R.layout.dialog_version_update);
- setAnimStyle(BaseDialog.ANIM_IOS);
- setGravity(Gravity.CENTER);
- setBackgroundDimAmount(0.5F);
- setCanceledOnTouchOutside(true);
- mTitleView = findViewById(R.id.tv_update_dialog_title);
- mContentView = findViewById(R.id.tv_update_dialog_content);
- mConfirmView = findViewById(R.id.tv_update_dialog_confirm);
- progressBar = findViewById(R.id.pb_download);
- tv_pro = findViewById(R.id.tv_pro);
- tv_pro_percent = findViewById(R.id.tv_pro_percent);
- layout_progress = findViewById(R.id.layout_progress);
- setOnClickListener(mConfirmView);
- }
-
- public B setDownloadUrl(String downloadUrl) {
- this.downloadUrl = downloadUrl;
- return (B) this;
- }
-
- public B setTitle(@StringRes int id) {
- return setTitle(getString(id));
- }
-
- public B setTitle(CharSequence text) {
- mTitleView.setText(text);
- return (B) this;
- }
-
- public B setContent(CharSequence text) {
- mContentView.setText(text);
- return (B) this;
- }
-
- public B setConfirm(@StringRes int id) {
- return setConfirm(getString(id));
- }
-
- public B setConfirm(CharSequence text) {
- mConfirmView.setText(text);
- return (B) this;
- }
-
- public B setAutoDismiss(boolean dismiss) {
- mAutoDismiss = dismiss;
- return (B) this;
- }
-
- public void autoDismiss() {
- if (mAutoDismiss) {
- dismiss();
- }
- }
-
- @Override
- public void onClick(View v) {
- if (v == mConfirmView) {
- changeVisi(View.GONE,View.VISIBLE);
- if (downloadUrl != null){
- startDownLoadApp(downloadUrl);
- }
- }
- }
-
-
- @Override
- public BaseDialog show() {
- return super.show();
- }
-
-
- public long totalBytes;
- public long downloadBytes;
- public int dl_progress;
-
- private Handler handler = new Handler();
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- progressBar.setProgress(dl_progress);
- ValueAnimator animator = ValueAnimator.ofInt(progressBar.getProgress(), dl_progress);
- animator.setDuration(100);
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- int currentValue = (int) animation.getAnimatedValue();
- progressBar.setProgress(currentValue);
- tv_pro.setText(currentValue + "%");
- tv_pro_percent.setText(currentValue + "/100");
- }
- });
- animator.start();
-// tv_pro.setText((downloadBytes * 100 / totalBytes) + "%");
-// tv_pro_percent.setText((downloadBytes * 100 / totalBytes) + "/100");
- }
- };
-
- public void changeVisi(int a, int b) {
- mConfirmView.setVisibility(a);
- layout_progress.setVisibility(b);
- progressBar.setProgress(0);
- tv_pro.setText("0");
- tv_pro_percent.setText("0/100");
- }
-
- /**
- * 涓嶆秹鍙婃暟鎹簱锛屽崟鐙笅杞芥枃浠�
- */
- public void startDownLoadApp(String url) {
- String fileName = "app_update";
- //鍒涘缓涓嬭浇浠诲姟,downloadUrl灏辨槸涓嬭浇閾炬帴
- DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
- request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);//涓嬭浇杩涜涓拰涓嬭浇瀹屾垚鐨勯�氱煡鏍忔槸鍚︽樉绀�
- //鐢ㄤ簬璁剧疆涓嬭浇鏃舵椂鍊欏湪鐘舵�佹爮鏄剧ず閫氱煡淇℃伅
- request.allowScanningByMediaScanner();//璁剧疆鍏佽琚壂鎻忓埌
- request.setVisibleInDownloadsUi(true);//涓嬭浇鐨勬枃浠跺彲浠ヨ绯荤粺鐨凞ownloads搴旂敤鎵弿鍒板苟绠$悊
-
- request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); //鎸囧畾涓嬭浇璺緞鍜屼笅杞芥枃浠跺悕
-
- final DownloadManager downloadManager = (DownloadManager) MyApplication.getInstance().getSystemService(Context.DOWNLOAD_SERVICE);//鑾峰彇涓嬭浇绠$悊鍣�
- final long downloadID = downloadManager.enqueue(request);//灏嗕笅杞戒换鍔″姞鍏ヤ笅杞介槦鍒楋紝鍚﹀垯涓嶄細杩涜涓嬭浇
-
- final DownloadManager.Query query = new DownloadManager.Query();
- query.setFilterById(downloadID);//绛涢�変笅杞戒换鍔★紝浼犲叆浠诲姟ID锛屽彲鍙樺弬鏁�
-
-
- final Timer mTimer = new Timer();
- mTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- updateDownloadSize(query, mTimer, downloadManager, fileName);
- }
- }, 0, 1000);
- }
-
- @SuppressLint("Range")
- private void updateDownloadSize(DownloadManager.Query query, Timer mTimer, DownloadManager downloadManager, String fileName) {
- Cursor c = null;
- try {
- c = downloadManager.query(query);
- if (c != null) {
- if (c.moveToFirst()) {
- int downloadBytesIdx = c.getColumnIndexOrThrow(
- DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
- int totalBytesIdx = c.getColumnIndexOrThrow(
- DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
- totalBytes = c.getLong(totalBytesIdx);
- downloadBytes = c.getLong(downloadBytesIdx);
- int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
- // 宸蹭笅杞界殑瀛楄妭澶у皬
- final long downloadedSoFar = c.getLong(c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
- // 涓嬭浇鏂囦欢鐨勬�诲瓧鑺傚ぇ灏�
- final long totalSize = c.getLong(c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
- dl_progress = (int) (downloadedSoFar * 100 / totalSize);
- switch (status) {
- case DownloadManager.STATUS_PAUSED:
- Log.d("APPUpdate", "涓嬭浇鏆傚仠:" + fileName);
- case DownloadManager.STATUS_PENDING:
- Log.d("APPUpdate", "涓嬭浇寤惰繜:" + fileName);
- case DownloadManager.STATUS_RUNNING:
- Log.d("APPUpdate", "姝e湪涓嬭浇:" + fileName);
- handler.postDelayed(runnable, 100);
- break;
- case DownloadManager.STATUS_SUCCESSFUL:
- Log.d("APPUpdate", "涓嬭浇瀹屾垚:" + fileName);
- mTimer.cancel();
- dismiss();
- handler=null;
- //涓嬭浇瀹屾垚瀹夎APK
- Utils.installAPK(getContext(), fileName);
- break;
- case DownloadManager.STATUS_FAILED:
- Log.d("APPUpdate", "涓嬭浇澶辫触:" + fileName);
- setContent("涓嬭浇澶辫触锛岃閲嶆柊涓嬭浇");
- changeVisi(View.VISIBLE,View.GONE);
- break;
- }
- }
- }
- } finally {
- if (c != null) {
- c.close();
- }
- }
-
- }
-
- }
-}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java
index 8cbc7af..a1d3edb 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivity.java
@@ -69,12 +69,14 @@
binding.recyclerView.addItemDecoration(itemDecoration);
binding.recyclerView.setAdapter(adapter);
//鍙充笂瑙掓搷浣滃脊绐�
- mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+ mOperatePopupWindow = initPopUpWindow(View.inflate(this, R.layout.pop_operate_exam_info, null));
setOnClickListener(
mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
- mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new),
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_exam_info),
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_health_care)
);
//鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
binding.ivSearchDefault.setOnClickListener(v -> {
@@ -235,7 +237,7 @@
if (integer == 0){
binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
binding.ivOperate.setOnClickListener(v -> {
- mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+ mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,118) +binding.ivOperate.getWidth(),0);
});
adapter.setCheckable(false);
}else if (integer == 1){
@@ -311,6 +313,12 @@
} else if (id == R.id.tv_from_old_to_new) {
viewModel.changeOrder(false);
mOperatePopupWindow.dismiss();
+ }else if (id == R.id.tv_health_care){
+ AppManager.getAppManager().startActivity(HealthCareActivity.class);
+ mOperatePopupWindow.dismiss();
+ }else if (id == R.id.tv_exam_info){
+ AppManager.getAppManager().startActivity(ExaminationInfoActivity.class);
+ mOperatePopupWindow.dismiss();
}
}
@@ -336,8 +344,5 @@
return super.dispatchTouchEvent(event);
}
- @Override
- public void onLeftClick(TitleBar titleBar) {
- finish();
- }
+
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java
index 858180e..9a3560d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusActivityViewModel.java
@@ -96,10 +96,6 @@
* 鍔犺浇鏇村
*/
public void getMoreAnnualHealthStatus() {
- if (true){
- changeStateView(StateViewEnum.DATA_NULL);
- return;
- }
if (getRequestBeanLiveData().getValue() == null){
getRequestBeanLiveData().setValue(new AnnualHealthStatusRequestBean());
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java
index d4a5ead..5a9f31b 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/AnnualHealthStatusDetailActivity.java
@@ -85,9 +85,6 @@
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
binding.rvImage.setLayoutManager(gridLayoutManager);
binding.rvImage.setNestedScrollingEnabled(false);
- View footerView = View.inflate(this,R.layout.item_image_footer,null);
- binding.rvImage.addFooterView(footerView);
- binding.rvImage.requestLayout();
adapter.setItemAndAddClickListener(new ElectronicFileAddAdapter.OnItemAndAddClickListener() {
@Override
public void onItemClick(View v, int position) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
index 94341b7..04a9a4c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
@@ -177,7 +177,6 @@
if (list == null || list.isEmpty()){
return;
}
- System.out.println(dataListLiveData.getValue().size());
if (type == 0) {
// 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
list.sort((o1, o2) -> {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivity.java
new file mode 100644
index 0000000..8bc9e7b
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivity.java
@@ -0,0 +1,348 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.content.Intent;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.android.app_base.utils.rxbus.RxBus;
+import com.android.app_base.widget.LinearItemDecoration;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.ExaminationInfoRvAdapter;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
+import com.application.zhangshi_app_android.databinding.ActivityExaminationInfoBinding;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.hjq.bar.TitleBar;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:02
+ * @desc 鍘嗗勾浣撴淇℃伅
+ */
+public class ExaminationInfoActivity extends DLBaseActivity<ActivityExaminationInfoBinding,ExaminationInfoActivityViewModel > {
+
+ private ExaminationInfoRvAdapter adapter;
+ private boolean isSearchLayoutVisible;
+ private PopupWindow mOperatePopupWindow;
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.activity_examination_info;
+ }
+
+ @Override
+ public int getVariableId() {
+ return BR.viewModel;
+ }
+
+ @Override
+ public void initParam() {
+
+ }
+
+ @Override
+ public void initView() {
+ //涓嬫媺鍒锋柊甯冨眬
+ binding.refreshLayout.setEnableRefresh(false);
+ binding.refreshLayout.setEnableLoadMore(true);
+ binding.refreshLayout.setEnableOverScrollDrag(true);
+ binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> {
+ viewModel.getMoreExaminationInfo();
+ });
+ //recyclerView閫傞厤鍣�
+ adapter = new ExaminationInfoRvAdapter(this, viewModel);
+ LinearItemDecoration itemDecoration = new LinearItemDecoration();
+ itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12));
+ itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+ itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20));
+ binding.recyclerView.addItemDecoration(itemDecoration);
+ binding.recyclerView.setAdapter(adapter);
+ //鍙充笂瑙掓搷浣滃脊绐�
+ mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate,null));
+ mOperatePopupWindow.getContentView().findViewById(R.id.layout_own_top).setVisibility(View.GONE);
+
+ setOnClickListener(
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_add),
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_select),
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_new_to_old),
+ mOperatePopupWindow.getContentView().findViewById(R.id.tv_from_old_to_new)
+ );
+
+ //鐐瑰嚮鏀惧ぇ闀滄寜閽樉绀哄嚭鎼滅储妗�
+ binding.ivSearchDefault.setOnClickListener(v -> {
+ binding.layoutSearch.setVisibility(View.VISIBLE);
+ binding.layoutDefault.setVisibility(View.GONE);
+ });
+ //鐐瑰嚮鎼滅储妗嗚彍鍗曚笅鎷夊嚭 鎼滅储鍙傛暟
+ binding.ivSearchType.setOnClickListener(v -> {
+ if (!isSearchLayoutVisible) {
+ binding.layoutSearchParameter.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+ int targetHeight = binding.layoutSearchParameter.getMeasuredHeight();
+ Utils.dropExpand(binding.containerSearchParameter, 0, targetHeight);
+ isSearchLayoutVisible = true;
+ }
+ });
+ //鎼滅储鍙傛暟layout娣诲姞绌虹偣鍑讳簨浠讹紝闃叉鐐瑰嚮瀹冨唴閮╲iew鏃跺畠鍚庨潰鐨剅ecycler杩樿兘鍝嶅簲鐐瑰嚮浜嬩欢
+ binding.layoutSearchParameter.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ }
+ });
+ //鐐瑰嚮鎼滅储鎸夐挳杩涜鎼滅储
+ binding.ivSearch.setOnClickListener(v -> {
+ viewModel.getExaminationInfo();
+ binding.layoutSearch.setVisibility(View.GONE);
+ binding.layoutDefault.setVisibility(View.VISIBLE);
+ binding.tvTitle.setText("鎼滅储缁撴灉");
+ hideSoftKeyboard();
+ });
+ //鐐瑰嚮娣诲姞鎸夐挳璺宠浆鍒板垱寤洪〉闈�
+ binding.fabAdd.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ AppManager.getAppManager().startActivity(new Intent(getSelfActivity(), ExaminationInfoDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE, 1));
+ }
+ });
+ binding.etStartTime.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ if (!TextUtils.isEmpty(s)) {
+ binding.ivTimeClear.setVisibility(View.VISIBLE);
+ } else {
+ if (TextUtils.isEmpty(binding.etEndTime.getText().toString())) {
+ binding.ivTimeClear.setVisibility(View.INVISIBLE);
+ }
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
+ }
+ });
+ binding.etEndTime.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ if (!TextUtils.isEmpty(s)) {
+ binding.ivTimeClear.setVisibility(View.VISIBLE);
+ } else {
+ if (TextUtils.isEmpty(binding.etStartTime.getText().toString())) {
+ binding.ivTimeClear.setVisibility(View.INVISIBLE);
+ }
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
+ }
+ });
+ binding.etStartTime.setOnClickListener(v -> {
+ hideSoftKeyboard();
+ DatePicker datePicker = getDatePicker();
+ datePicker.setTitle("璇烽�夋嫨寮�濮嬫椂闂�");
+ datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+ @Override
+ public void onDatePicked(int year, int month, int day) {
+ //浠yyy-MM-dd鐨勬牸寮忔樉绀猴紝鏈堟棩灏忎簬10鏃跺墠闈㈣ˉ0
+ binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+ if (binding.etEndTime.getText().toString().isEmpty()) {
+ binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+ } else {
+ //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+ String startTime = binding.etStartTime.getText().toString();
+ String endTime = binding.etEndTime.getText().toString();
+ if (Utils.compareDate(startTime, endTime) > 0) {
+ //浜ゆ崲
+ binding.etStartTime.setText(endTime);
+ binding.etEndTime.setText(startTime);
+ }
+ }
+ }
+ });
+ datePicker.show();
+ });
+ binding.etEndTime.setOnClickListener(v -> {
+ hideSoftKeyboard();
+ DatePicker datePicker = getDatePicker();
+ datePicker.setTitle("璇烽�夋嫨缁撴潫鏃堕棿");
+ datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+ @Override
+ public void onDatePicked(int year, int month, int day) {
+ binding.etEndTime.setText(String.format("%d-%02d-%02d", year, month, day));
+ if (binding.etStartTime.getText().toString().isEmpty()) {
+ binding.etStartTime.setText(String.format("%d-%02d-%02d", year, month, day));
+ } else {
+ //姣旇緝寮�濮嬫椂闂村拰缁撴潫鏃堕棿鐨勫ぇ灏�
+ String startTime = binding.etStartTime.getText().toString();
+ String endTime = binding.etEndTime.getText().toString();
+ if (Utils.compareDate(startTime, endTime) > 0) {
+ //浜ゆ崲
+ binding.etStartTime.setText(endTime);
+ binding.etEndTime.setText(startTime);
+ }
+ }
+ }
+ });
+ datePicker.show();
+ });
+ binding.ivTimeClear.setOnClickListener(v -> {
+ binding.etStartTime.setText("");
+ binding.etEndTime.setText("");
+ });
+ }
+
+ @Override
+ public void initData() {
+ viewModel.getExaminationInfo();
+ }
+
+ @Override
+ public void initLiveDataObserve() {
+ viewModel.getDataListLiveData().observe(this, dataList -> {
+ adapter.setData(dataList);
+ });
+ viewModel.getCheckListLiveData().observe(this, checkList -> {
+ if (0 == viewModel.getOperateTypeLiveData().getValue()) {
+ return;
+ }
+ if (checkList.isEmpty()) {
+ viewModel.getOperateTypeLiveData().setValue(1);
+ } else {
+ viewModel.getOperateTypeLiveData().setValue(2);
+ }
+ });
+ viewModel.getMoreListLiveData().observe(this, moreList -> {
+ adapter.addData(moreList);
+ });
+ viewModel.getOperateTypeLiveData().observe(this, integer -> {
+ if (integer == 0) {
+ binding.ivOperate.setBackgroundResource(R.drawable.ic_operate);
+ binding.ivOperate.setOnClickListener(v -> {
+ mOperatePopupWindow.showAsDropDown(binding.ivOperate, -ScreenSizeUtils.dip2px(this, 85) + binding.ivOperate.getWidth(), 0);
+ });
+ adapter.setCheckable(false);
+ } else if (integer == 1) {
+ binding.ivOperate.setBackgroundResource(R.drawable.ic_operate_finish);
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.getOperateTypeLiveData().postValue(0);
+ });
+ adapter.setCheckable(true);
+ } else if (integer == 2) {
+ binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white);
+ binding.ivOperate.setOnClickListener(v -> {
+ new UIDialog.Builder(this)
+ .setTitle("鎮ㄧ‘瀹氳鍒犻櫎閫変腑鐨勯」鐩悧")
+ .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+ .setConfirm("纭畾")
+ .setCancel("鍙栨秷")
+ .setListener(new UIDialog.OnListener() {
+ @Override
+ public void onConfirm(BaseDialog dialog) {
+ viewModel.deleteCheckList();
+ }
+ })
+ .show();
+ });
+ }
+ });
+
+ viewModel.getFinishDeleteListLiveData().observe(this, beans -> {
+ for (ExaminationInfoBean bean : beans) {
+ adapter.removeItem(bean);
+ }
+ });
+
+ //瑙傚療鏁版嵁鐨勫彉鍖栵紝鏈夊彉鍖栧寘鎷坊鍔犮�佷慨鏀广�佸垹闄ら兘浼氬彂閫佹秷鎭紝鎺ユ敹鍒版秷鎭悗閲嶆柊鑾峰彇鏁版嵁杩涜鍒锋柊
+ RxBus.getInstance().toObservable(this, ExaminationInfoBean.class)
+ .subscribe(bean -> {
+ viewModel.getExaminationInfo();
+ });
+ }
+
+ @Override
+ protected void dataNull() {
+ super.dataNull();
+ binding.layoutDataNull.setVisibility(View.VISIBLE);
+ binding.refreshLayout.setVisibility(View.GONE);
+ }
+
+ @Override
+ protected void dataFinish() {
+ super.dataFinish();
+ binding.refreshLayout.finishLoadMore();
+ }
+
+ @Override
+ protected void hide() {
+ super.hide();
+ binding.layoutDataNull.setVisibility(View.GONE);
+ binding.refreshLayout.setVisibility(View.VISIBLE);
+ binding.refreshLayout.finishLoadMore();
+ }
+
+ @Override
+ public void onClick(View v) {
+ int id = v.getId();
+ if (id == R.id.tv_add) {
+ AppManager.getAppManager().startActivity(new Intent(this, ExaminationInfoDetailActivity.class).putExtra(BaseConfig.EXTRA_TYPE, 1));
+ mOperatePopupWindow.dismiss();
+ } else if (id == R.id.tv_select) {
+ viewModel.getOperateTypeLiveData().postValue(1);
+ mOperatePopupWindow.dismiss();
+ } else if (id == R.id.tv_from_new_to_old) {
+ viewModel.changeOrder(true);
+ mOperatePopupWindow.dismiss();
+ } else if (id == R.id.tv_from_old_to_new) {
+ viewModel.changeOrder(false);
+ mOperatePopupWindow.dismiss();
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (mOperatePopupWindow != null) {
+ mOperatePopupWindow.dismiss();
+ }
+ }
+
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ float x = event.getX();
+ float y = event.getY();
+ if (isSearchLayoutVisible) {
+ if (!Utils.isPointInsideView(x, y, binding.layoutSearchParameter)) {
+ Utils.pullCollapse(binding.containerSearchParameter, binding.layoutSearchParameter.getMeasuredHeight(), 0);
+ isSearchLayoutVisible = false;
+ return true;
+ }
+ }
+ return super.dispatchTouchEvent(event);
+ }
+
+ @Override
+ public void onLeftClick(TitleBar titleBar) {
+ finish();
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivityViewModel.java
new file mode 100644
index 0000000..73a0cfa
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoActivityViewModel.java
@@ -0,0 +1,346 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
+import android.app.Application;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.app_base.base.StateViewEnum;
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
+import com.application.zhangshi_app_android.bean.ExaminationInfoRequestBean;
+import com.application.zhangshi_app_android.bean.PageResponseBean;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:08
+ * @desc
+ */
+public class ExaminationInfoActivityViewModel extends BaseViewModel<DataRepository> {
+ private MutableLiveData<List<ExaminationInfoBean>> dataListLiveData;
+ private MutableLiveData<List<ExaminationInfoBean>> checkListLiveData;//閫変腑鐨勬暟鎹�
+ private MutableLiveData<List<ExaminationInfoBean>> moreListLiveData;//涓嬫媺鍔犺浇鏁版嵁
+ private MutableLiveData<ExaminationInfoRequestBean> requestBeanLiveData;//璇锋眰鍙傛暟
+ private MutableLiveData<List<ExaminationInfoBean>> finishDeleteListLiveData;//宸茬粡瀹屾垚鍒犻櫎鐨勬暟鎹紝鐢ㄤ簬adapter鐨剅emove鎿嶄綔
+
+ private MutableLiveData<Integer> operateTypeLiveData;//鎿嶄綔绫诲瀷 0 閫夋嫨鎿嶄綔 1.瀹屾垚 2.鍒犻櫎
+ public ExaminationInfoActivityViewModel(@NonNull Application application) {
+ super(application);
+ }
+
+ @Override
+ protected DataRepository initModel() {
+ return DataRepository.getInstance();
+ }
+
+ /**
+ * 鑾峰彇鏁版嵁
+ */
+ public void getExaminationInfo() {
+ if (getRequestBeanLiveData().getValue() == null){
+ getRequestBeanLiveData().setValue(new ExaminationInfoRequestBean());
+ }
+ getRequestBeanLiveData().getValue().setPageNum(1);
+ model.getExaminationInfo(getRequestBeanLiveData().getValue().toMap())
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<PageResponseBean<ExaminationInfoBean>>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<PageResponseBean<ExaminationInfoBean>> data) {
+ if (data.getCode() == CODE_SUCCESS){
+ if (data.getData().getData().isEmpty()){
+ changeStateView(StateViewEnum.DATA_NULL);
+ }else {
+ changeStateView(StateViewEnum.HIDE);
+ dataListLiveData.postValue(data.getData().getData());
+ }
+ }else {
+ messageLiveData.postValue(data.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+ /**
+ * 鍔犺浇鏇村
+ */
+ public void getMoreExaminationInfo() {
+ if (getRequestBeanLiveData().getValue() == null){
+ getRequestBeanLiveData().setValue(new ExaminationInfoRequestBean());
+ }
+ getRequestBeanLiveData().getValue().setPageNum(getRequestBeanLiveData().getValue().getPageNum() + 1);
+ model.getExaminationInfo(getRequestBeanLiveData().getValue().toMap())
+ .compose(RxUtils.schedulersTransformer())
+ .doFinally(new Action() {
+ @Override
+ public void run() throws Exception {
+ changeStateView(StateViewEnum.DATA_FINISH);
+ }
+ })
+ .subscribe(new Observer<ResultData<PageResponseBean<ExaminationInfoBean>>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<PageResponseBean<ExaminationInfoBean>> data) {
+ if (data.getCode() == CODE_SUCCESS){
+ if (data.getData().getData().isEmpty()){
+ messageLiveData.postValue("娌℃湁鏇村鏁版嵁浜�");
+ }else {
+ changeStateView(StateViewEnum.HIDE);
+ moreListLiveData.postValue(data.getData().getData());
+ }
+ }else {
+ messageLiveData.postValue(data.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+ /**
+ * 鍒犻櫎澶氶�夐�変腑鐨勬暟鎹�
+ */
+ public void deleteCheckList() {
+ List<ExaminationInfoBean> deleteList = getCheckListLiveData().getValue();
+ if (deleteList == null){
+ return;
+ }
+ StringBuffer sb = new StringBuffer();
+ deleteList.forEach(ExaminationInfoBean -> sb.append(ExaminationInfoBean.getId()).append(","));
+ sb.deleteCharAt(sb.length()-1);
+ model.deleteExaminationInfo(sb.toString())
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS){
+ finishDeleteListLiveData.postValue(checkListLiveData.getValue());
+ messageLiveData.postValue("鍒犻櫎鎴愬姛");
+ getCheckListLiveData().postValue(new ArrayList<>());
+ }else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+ /**
+ * 鍒犻櫎鍗曚釜鏁版嵁
+ */
+ public void deleteItem(ExaminationInfoBean ExaminationInfoBean) {
+ model.deleteExaminationInfo(String.valueOf(ExaminationInfoBean.getId()))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS){
+ List<ExaminationInfoBean> list = new ArrayList<>();
+ list.add(ExaminationInfoBean);
+ finishDeleteListLiveData.postValue(list);
+ messageLiveData.postValue("鍒犻櫎鎴愬姛");
+ }else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ public MutableLiveData<List<ExaminationInfoBean>> getCheckListLiveData() {
+ if (checkListLiveData==null){
+ checkListLiveData = new MutableLiveData<>();
+ checkListLiveData.postValue(new ArrayList<>());
+ }
+ if (checkListLiveData.getValue() == null){
+ checkListLiveData.postValue(new ArrayList<>());
+ }
+ return checkListLiveData;
+ }
+
+ public void setCheckListLiveData(MutableLiveData<List<ExaminationInfoBean>> checkListLiveData) {
+ this.checkListLiveData = checkListLiveData;
+ }
+
+ @NonNull
+ public MutableLiveData<ExaminationInfoRequestBean> getRequestBeanLiveData() {
+ if (requestBeanLiveData == null){
+ requestBeanLiveData = new MutableLiveData<>();
+ }
+ if (requestBeanLiveData.getValue() == null){
+ requestBeanLiveData.setValue(new ExaminationInfoRequestBean());
+ }
+ return requestBeanLiveData;
+ }
+
+ public void setRequestBeanLiveData(MutableLiveData<ExaminationInfoRequestBean> requestBeanLiveData) {
+ this.requestBeanLiveData = requestBeanLiveData;
+ }
+
+ public MutableLiveData<List<ExaminationInfoBean>> getDataListLiveData() {
+ if (dataListLiveData == null){
+ dataListLiveData = new MutableLiveData<>();
+ }
+ return dataListLiveData;
+ }
+
+ public void setDataListLiveData(MutableLiveData<List<ExaminationInfoBean>> dataListLiveData) {
+ this.dataListLiveData = dataListLiveData;
+ }
+
+ @NonNull
+ public MutableLiveData<List<ExaminationInfoBean>> getMoreListLiveData() {
+ if (moreListLiveData == null){
+ moreListLiveData = new MutableLiveData<>();
+ }
+ return moreListLiveData;
+ }
+
+ public void setMoreListLiveData(MutableLiveData<List<ExaminationInfoBean>> moreListLiveData) {
+ this.moreListLiveData = moreListLiveData;
+ }
+
+ @NonNull
+ public MutableLiveData<Integer> getOperateTypeLiveData() {
+ if (operateTypeLiveData == null){
+ operateTypeLiveData = new MutableLiveData<>();
+ operateTypeLiveData.setValue(0);
+ }
+ return operateTypeLiveData;
+ }
+
+ public void setOperateTypeLiveData(MutableLiveData<Integer> operateTypeLiveData) {
+ this.operateTypeLiveData = operateTypeLiveData;
+ }
+
+ public LiveData<List<ExaminationInfoBean>> getFinishDeleteListLiveData() {
+ if (finishDeleteListLiveData == null){
+ finishDeleteListLiveData = new MutableLiveData<>();
+ }
+ return finishDeleteListLiveData;
+ }
+
+ public void setFinishDeleteListLiveData(MutableLiveData<List<ExaminationInfoBean>> finishDeleteListLiveData) {
+ this.finishDeleteListLiveData = finishDeleteListLiveData;
+ }
+
+ /**
+ * 鏀瑰彉鎺掑簭
+ * @param b true 闄嶅簭 false 鍗囧簭
+ */
+ public void changeOrder(boolean b) {
+ List<ExaminationInfoBean> list = getDataListLiveData().getValue();
+ if (list == null || list.isEmpty()){
+ return;
+ }
+ if (b) {
+ // 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
+ list.sort((o1, o2) -> {
+ String happenTime1 = o1.getHappenTime();
+ String happenTime2 = o2.getHappenTime();
+ if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+ return 0;
+ } else if (TextUtils.isEmpty(happenTime1)) {
+ return 1;
+ } else if (TextUtils.isEmpty(happenTime2)) {
+ return -1;
+ } else {
+ Date date1 = Utils.parseDate(happenTime1);
+ Date date2 = Utils.parseDate(happenTime2);
+ if (date1 != null && date2 != null) {
+ return date2.compareTo(date1);
+ }
+ return 0;
+ }
+ });
+ } else {
+ // 浠庢棫鍒版柊锛宯ull鎺掓渶鍓�
+ list.sort((o1, o2) -> {
+ String happenTime1 = o1.getHappenTime();
+ String happenTime2 = o2.getHappenTime();
+ if (TextUtils.isEmpty(happenTime1) && TextUtils.isEmpty(happenTime2)) {
+ return 0;
+ } else if (TextUtils.isEmpty(happenTime1)) {
+ return -1;
+ } else if (TextUtils.isEmpty(happenTime2)) {
+ return 1;
+ } else {
+ Date date1 = Utils.parseDate(happenTime1);
+ Date date2 = Utils.parseDate(happenTime2);
+ if (date1 != null && date2 != null) {
+ return date1.compareTo(date2);
+ }
+ return 0;
+ }
+ });
+ }
+ getDataListLiveData().setValue(list);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivity.java
new file mode 100644
index 0000000..ebfc568
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivity.java
@@ -0,0 +1,313 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import android.app.Activity;
+import android.content.ClipData;
+import android.content.Intent;
+import android.net.Uri;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultCallback;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.base.dialog.WaitDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.GetFilePathFromUri;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.ElectronicFileAddAdapter;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
+import com.application.zhangshi_app_android.databinding.ActivityExaminationInfoDetailBinding;
+import com.application.zhangshi_app_android.databinding.ActivityExaminationInfoDetailBinding;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.hjq.bar.TitleBar;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:40
+ * @desc 鍘嗗勾浣撴鎶ュ憡璇︽儏
+ */
+public class ExaminationInfoDetailActivity extends DLBaseActivity<ActivityExaminationInfoDetailBinding,ExaminationInfoDetailActivityViewModel> {
+
+ private ElectronicFileAddAdapter adapter;
+ private BaseDialog mWaitDialog;
+ private ActivityResultLauncher<Intent> activityResultLauncher;
+
+ private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+ private PopupWindow popupWindow;
+ @Override
+ public int getLayoutId() {
+ return R.layout.activity_examination_info_detail;
+ }
+
+ @Override
+ public int getVariableId() {
+ return BR.viewModel;
+ }
+
+ @Override
+ public void initParam() {
+ type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+ if (type == 0 || type == 2){
+ ExaminationInfoBean bean = (ExaminationInfoBean) getIntent().getSerializableExtra("bean");
+ if (bean !=null){
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }
+
+ @Override
+ public void initView() {
+ adapter = new ElectronicFileAddAdapter(this);
+ GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
+ binding.rvImage.setLayoutManager(gridLayoutManager);
+ binding.rvImage.setNestedScrollingEnabled(false);
+ adapter.setItemAndAddClickListener(new ElectronicFileAddAdapter.OnItemAndAddClickListener() {
+ @Override
+ public void onItemClick(View v, int position) {
+
+ }
+
+ @Override
+ public void onAddClick() {
+ OptionPicker picker = getOptionPicker(Arrays.asList("鍥剧墖瑙嗛","鍏朵粬鏂囦欢"));
+ picker.setTitle("閫夋嫨鏂囦欢绫诲瀷");
+ picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+ @Override
+ public void onOptionPicked(int position, Object item) {
+ if (item.equals("鍥剧墖瑙嗛")) {
+ UserManager.getInstance().selectImage(getSelfActivity(), 0,9, new OnResultCallbackListener<LocalMedia>() {
+ @Override
+ public void onResult(ArrayList<LocalMedia> result) {
+ if (result.size() == 0) return;
+ for (LocalMedia media : result) {
+ String path = media.getRealPath();
+ if (path!=null){
+ viewModel.addUploadFile(path);
+ ExaminationInfoBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.add(path);
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }
+ @Override
+ public void onCancel() {
+
+ }
+ });
+ }else {
+ Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+// Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+ intent.setType("*/*"); // 闄愬埗鏂囦欢绫诲瀷
+ intent.addCategory(Intent.CATEGORY_OPENABLE); // 娣诲姞 CATEGORY_OPENABLE 鍒嗙被,鍛婅瘔绯荤粺瑕侀�夋嫨鐨勫唴瀹瑰彲浠ヨ鎵撳紑锛岃繖鏍风郴缁熶細杩囨护鎺変笉鑳借搴旂敤鎵撳紑鐨勬枃浠讹紝浠ユ彁渚涙洿濂界殑鐢ㄦ埛浣撻獙銆�
+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); // 鍏佽澶氶��
+ activityResultLauncher.launch(intent);
+ }
+ }
+ });
+ picker.show();
+
+ }
+ });
+
+ adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+ @Override
+ public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+ ExaminationInfoBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.remove(adapter.getItem(position));
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ adapter.removeItem(position);
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ });
+ binding.rvImage.setAdapter(adapter);
+
+ if (type == 1){
+ viewModel.getTypeLiveData().postValue(true);
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.add();
+ });
+ }else if (type == 0){
+ popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+ popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ viewModel.getTypeLiveData().postValue(true);
+ popupWindow.dismiss();
+ }
+ });
+ popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ popupWindow.dismiss();
+ new UIDialog.Builder(getSelfActivity())
+ .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+ .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+ .setConfirm("纭畾")
+ .setCancel("鍙栨秷")
+ .setListener(new UIDialog.OnListener() {
+ @Override
+ public void onConfirm(BaseDialog dialog) {
+ viewModel.delete();
+ }
+ })
+ .show();
+ }
+ });
+ viewModel.getTypeLiveData().postValue(false);
+ }else if (type == 2){
+ viewModel.getTypeLiveData().postValue(true);
+
+ }
+ binding.etTime.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ DatePicker picker = getDatePicker();
+ picker.setTitle("閫夋嫨鏃堕棿");
+ picker.setOnDatePickedListener(new OnDatePickedListener() {
+ @Override
+ public void onDatePicked(int year, int month, int day) {
+ String date = String.format(Locale.CHINA, "%d-%02d-%02d", year, month, day);
+ binding.etTime.setText(date);
+ }
+ });
+ picker.show();
+ }
+ });
+ activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
+ @Override
+ public void onActivityResult(ActivityResult result) {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ if (result.getData() == null){
+ return;
+ }
+ // 鑾峰彇閫変腑鐨勫涓枃浠剁殑 URI
+ ClipData clipData = result.getData().getClipData();
+ if (clipData != null) {
+ int itemCount = clipData.getItemCount();
+ for (int i = 0; i < itemCount; i++) {
+ Uri uri = clipData.getItemAt(i).getUri();
+ // 浣跨敤閫変腑鐨勬枃浠� URI 杩涜鍚庣画鎿嶄綔锛屾瘮濡傝鍙栨枃浠跺唴瀹圭瓑
+ String path = GetFilePathFromUri.getFileAbsolutePath(getSelfActivity(),uri);
+ if (path!=null){
+ viewModel.addUploadFile(path);
+ ExaminationInfoBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.add(path);
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }else {
+ // 鑾峰彇閫変腑鐨勫崟涓枃浠剁殑 URI
+ Uri selectedFileUri = result.getData().getData();
+ String path = GetFilePathFromUri.getFileAbsolutePath(getSelfActivity(),selectedFileUri);
+ if (path!=null){
+ viewModel.addUploadFile(path);
+ ExaminationInfoBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.add(path);
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initLiveDataObserve() {
+ viewModel.getBeanLiveData().observe(this,bean -> {
+ if (bean!=null){
+ adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+ }
+ });
+ viewModel.getTypeLiveData().observe(this,operateType -> {
+ if (operateType){
+ if (type == 1) {
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.add();
+ });
+ }else {
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.update();
+ });
+ }
+ setIsEdited(true);
+ }else {
+ binding.ivOperate.setOnClickListener(v -> {
+ popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+ });
+ setIsEdited(false);
+ }
+ });
+ }
+
+ public void setIsEdited(boolean isEdited){
+ adapter.setIsEdited(isEdited);
+ }
+
+ @Override
+ protected void dialogLoading() {
+ if (mWaitDialog == null) {
+ mWaitDialog = new WaitDialog.Builder(this)
+ // 娑堟伅鏂囨湰鍙互涓嶇敤濉啓
+ .setMessage("姝e湪涓婁紶")
+ .create();
+ }
+ if (!mWaitDialog.isShowing()) {
+ mWaitDialog.show();
+ }
+ }
+
+ @Override
+ protected void dialogDismiss() {
+ if (mWaitDialog != null && mWaitDialog.isShowing()) {
+ mWaitDialog.dismiss();
+ mWaitDialog = null;
+ }
+ }
+
+ @Override
+ public void onLeftClick(TitleBar titleBar) {
+ finish();
+ }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivityViewModel.java
new file mode 100644
index 0000000..a9541f9
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ExaminationInfoDetailActivityViewModel.java
@@ -0,0 +1,361 @@
+package com.application.zhangshi_app_android.ui.function;
+
+import static com.android.app_base.base.BaseConfig.CODE_SUCCESS;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.app_base.base.StateViewEnum;
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.http.ResultData;
+import com.android.app_base.manager.AppManager;
+import com.android.app_base.utils.RxUtils;
+import com.android.app_base.utils.rxbus.RxBus;
+import com.application.zhangshi_app_android.bean.ExaminationInfoBean;
+import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import io.reactivex.Observable;
+import io.reactivex.ObservableSource;
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.functions.Action;
+import io.reactivex.functions.Consumer;
+import io.reactivex.functions.Function;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+
+/**
+ * @author Ljj
+ * @date 2023.10.23. 22:44
+ * @desc 鍘嗗勾浣撴鎶ュ憡璇︽儏 ViewModel
+ */
+public class ExaminationInfoDetailActivityViewModel extends BaseViewModel<DataRepository> {
+
+ private MutableLiveData<ExaminationInfoBean> beanLiveData;
+ private MutableLiveData<Boolean> typeLiveData;//true 缂栬緫鐘舵�� false 灞曠ず鐘舵��
+ private final List<String> uploadFileList = new ArrayList<>();//闇�瑕佷笂浼犵殑鏂囦欢鍒楄〃
+
+
+ public ExaminationInfoDetailActivityViewModel(@NonNull Application application) {
+ super(application);
+ }
+
+ @Override
+ protected DataRepository initModel() {
+ return DataRepository.getInstance();
+ }
+
+ /**
+ * 娣诲姞
+ */
+ public void add() {
+ if (uploadFileList.size() > 0) {
+ List<Observable<String>> observables = new ArrayList<>();
+ for (String path : uploadFileList) {
+ File file = new File(path);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+ MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+ Observable<String> uploadObservable = model.uploadFile(body)
+ .flatMap(new Function<ResultData<UploadFileResponseBean>, ObservableSource<String>>() {
+ @Override
+ public ObservableSource<String> apply(ResultData<UploadFileResponseBean> resultData) throws Exception {
+ if (resultData.getCode() == CODE_SUCCESS) {
+ ExaminationInfoBean bean = getBeanLiveData().getValue();
+ if (bean != null) {
+ String urls = bean.getUrl();
+ //鏇挎崲鍥剧墖鍦板潃
+ urls = urls.replace(path, resultData.getData().getUrl());
+ bean.setUrl(urls);
+ beanLiveData.postValue(bean);
+ }
+ return Observable.just(path);
+ } else {
+ return Observable.error(new Exception(resultData.getMsg()));
+ }
+ }
+ });
+
+ observables.add(uploadObservable);
+ }
+ Observable.zip(observables, result -> result)
+ .flatMap(new Function<Object[], Observable<ResultData<String>>>() {
+ @Override
+ public Observable<ResultData<String>> apply(Object[] objects) throws Exception {
+ //绉婚櫎宸茬粡涓婁紶鐨勬枃浠�
+ //鎶妎bjects鏁扮粍杞崲鎴恖ist锛岀劧鍚庣Щ闄�
+ for (Object object : objects) {
+ uploadFileList.remove((String) object);
+ }
+ return model.addExaminationInfo(beanLiveData.getValue());
+ }
+ })
+ .doOnSubscribe(new Consumer<Disposable>() {
+ @Override
+ public void accept(Disposable disposable) throws Exception {
+ changeStateView(StateViewEnum.DIALOG_LOADING);
+ }
+ })
+ .doFinally(new Action() {
+ @Override
+ public void run() throws Exception {
+ changeStateView(StateViewEnum.DIALOG_DISMISS);
+ }
+ })
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS) {
+ AppManager.getAppManager().finishCurrentActivity();
+ RxBus.getInstance().post(beanLiveData.getValue());
+ messageLiveData.postValue("娣诲姞鎴愬姛");
+ } else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }else {
+ model.addExaminationInfo(beanLiveData.getValue())
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS){
+ AppManager.getAppManager().finishCurrentActivity();
+ RxBus.getInstance().post(beanLiveData.getValue());
+ messageLiveData.postValue("娣诲姞鎴愬姛");
+ }else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ }
+ /**
+ * 鍒犻櫎
+ */
+ public void delete() {
+ if (beanLiveData.getValue() == null){
+ return;
+ }
+ model.deleteExaminationInfo(String.valueOf(beanLiveData.getValue().getId()))
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS){
+ AppManager.getAppManager().finishCurrentActivity();
+ RxBus.getInstance().post(beanLiveData.getValue());
+ messageLiveData.postValue("鍒犻櫎鎴愬姛");
+ }else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+ /**
+ * 淇敼
+ */
+ public void update() {
+ if (uploadFileList.size() > 0){
+ List<Observable<String>> observables = new ArrayList<>();
+ for (String path : uploadFileList) {
+ File file = new File(path);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+ MultipartBody.Part body = MultipartBody.Part.createFormData("uploadFile", file.getName(), requestBody);
+ Observable<String> uploadObservable = model.uploadFile(body)
+ .flatMap(new Function<ResultData<UploadFileResponseBean>, ObservableSource<String>>() {
+ @Override
+ public ObservableSource<String> apply(ResultData<UploadFileResponseBean> resultData) throws Exception {
+ if (resultData.getCode() == CODE_SUCCESS){
+ ExaminationInfoBean bean = getBeanLiveData().getValue();
+ if (bean != null){
+ String urls = bean.getUrl();
+ //鏇挎崲鍥剧墖鍦板潃
+ urls = urls.replace(path,resultData.getData().getUrl());
+ bean.setUrl(urls);
+ beanLiveData.postValue(bean);
+ }
+ return Observable.just(path);
+ }else {
+ return Observable.error(new Exception(resultData.getMsg()));
+ }
+ }
+ });
+
+ observables.add(uploadObservable);
+ }
+ Observable.zip(observables,result -> result)
+ .flatMap(new Function<Object[], Observable<ResultData<String>>>() {
+ @Override
+ public Observable<ResultData<String>> apply(Object[] objects) throws Exception {
+ //绉婚櫎宸茬粡涓婁紶鐨勬枃浠�
+ //鎶妎bjects鏁扮粍杞崲鎴恖ist锛岀劧鍚庣Щ闄�
+ for (Object object : objects) {
+ uploadFileList.remove((String) object);
+ }
+ return model.updateExaminationInfo(beanLiveData.getValue());
+ }
+ })
+ .doOnSubscribe(new Consumer<Disposable>() {
+ @Override
+ public void accept(Disposable disposable) throws Exception {
+ changeStateView(StateViewEnum.DIALOG_LOADING);
+ }
+ })
+ .doFinally(new Action() {
+ @Override
+ public void run() throws Exception {
+ changeStateView(StateViewEnum.DIALOG_DISMISS);
+ }
+ })
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS){
+ AppManager.getAppManager().finishCurrentActivity();
+ RxBus.getInstance().post(beanLiveData.getValue());
+ messageLiveData.postValue("淇敼鎴愬姛");
+ }else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }else {
+ model.updateExaminationInfo(beanLiveData.getValue())
+ .compose(RxUtils.schedulersTransformer())
+ .subscribe(new Observer<ResultData<String>>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ addSubscribe(d);
+ }
+
+ @Override
+ public void onNext(ResultData<String> stringResultData) {
+ if (stringResultData.getCode() == CODE_SUCCESS){
+ AppManager.getAppManager().finishCurrentActivity();
+ RxBus.getInstance().post(beanLiveData.getValue());
+ messageLiveData.postValue("淇敼鎴愬姛");
+ }else {
+ messageLiveData.postValue(stringResultData.getMsg());
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ messageLiveData.postValue(e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+ }
+
+
+ public MutableLiveData<Boolean> getTypeLiveData() {
+ if (typeLiveData == null){
+ typeLiveData = new MutableLiveData<>();
+ }
+ return typeLiveData;
+ }
+
+ public void setTypeLiveData(MutableLiveData<Boolean> typeLiveData) {
+ this.typeLiveData = typeLiveData;
+ }
+
+ public MutableLiveData<ExaminationInfoBean> getBeanLiveData() {
+ if (beanLiveData == null) {
+ beanLiveData = new MutableLiveData<>();
+ }
+ if (beanLiveData.getValue() == null){
+ beanLiveData.setValue(new ExaminationInfoBean());
+ }
+ return beanLiveData;
+ }
+
+ public void setBeanLiveData(MutableLiveData<ExaminationInfoBean> beanLiveData) {
+ this.beanLiveData = beanLiveData;
+ }
+
+ public List<String> getUploadFileList() {
+ return uploadFileList;
+ }
+
+ public void addUploadFile(String url) {
+ uploadFileList.add(url);
+ }
+}
+
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java
index 0b47b7c..0561c0f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivityViewModel.java
@@ -180,7 +180,6 @@
if (list == null || list.isEmpty()){
return;
}
- System.out.println(dataListLiveData.getValue().size());
if (type == 0) {
// 浠庢柊鍒版棫锛宯ull鎺掓渶鍚�
list.sort((o1, o2) -> {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
index dbb4ce6..921ee34 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
@@ -122,7 +122,7 @@
AppManager.getAppManager().startActivity(MarriageActivity.class);
});
binding.layoutHealthCare.setOnClickListener(v->{
- AppManager.getAppManager().startActivity(HealthCareActivity.class);
+ AppManager.getAppManager().startActivity(AnnualHealthStatusActivity.class);
});
binding.layoutPrivacy.setOnClickListener(v->{
AppManager.getAppManager().startActivity(PrivacyActivity.class);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
index 83a9b6a..0e5df68 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HealthCareActivity.java
@@ -26,6 +26,7 @@
import com.github.gzuliyujiang.wheelpicker.OptionPicker;
import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
import com.google.android.material.tabs.TabLayout;
+import com.hjq.bar.TitleBar;
import java.util.Arrays;
import java.util.List;
@@ -58,14 +59,6 @@
public void initView() {
View view = View.inflate(this,R.layout.pop_annual_health_status,null);
popupWindow = initPopUpWindow(view);
-
- view.findViewById(R.id.tv_annual_health_status).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- popupWindow.dismiss();
- AppManager.getAppManager().startActivity(AnnualHealthStatusActivity.class);
- }
- });
view.findViewById(R.id.tv_edit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -124,7 +117,6 @@
@Override
public void initLiveDataObserve() {
- System.out.println("鎴�"+binding.ivA.isClickable());
viewModel.getIsLifeHabitsExpendedLiveData().observe(this, aBoolean -> {
if (aBoolean){
binding.layoutTitleLifeHabits.setOnClickListener(view -> {
@@ -179,7 +171,7 @@
binding.ivOperate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(HealthCareActivity.this,118) +binding.ivOperate.getWidth(),0);
+ popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(HealthCareActivity.this,85) +binding.ivOperate.getWidth(),0);
}
});
}
@@ -288,4 +280,8 @@
animator.start();
}
+ @Override
+ public void onLeftClick(TitleBar titleBar) {
+ finish();
+ }
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
index 6b834ac..4fde637 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
@@ -6,6 +6,7 @@
import android.widget.FrameLayout;
import android.widget.ImageView;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.view.BaseFragment;
import com.android.app_base.base.viewmodel.BaseViewModel;
import com.android.app_base.utils.GlideUtil;
@@ -118,7 +119,13 @@
adapter = new BannerImageAdapter<BannerBean>(chooseList) {
@Override
public void onBindView(BannerImageHolder holder, BannerBean data, int position, int size) {
- GlideUtil.loadImage(data.getUrl(), holder.imageView);
+ String url = data.getUrl();
+ if (url.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鍥剧墖
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ url = url.substring(url.indexOf("profile/upload"));
+ url = BaseConfig.BASE_URL_DOMAIN + "/" + url;
+ }
+ GlideUtil.loadImage(url, holder.imageView);
}
@Override
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java
index e256c17..75b1831 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceActivityViewModel.java
@@ -60,13 +60,13 @@
getRequestBeanLiveData().setValue(new TourismExperienceRequestBean());
}
model.getTourismExperience(getRequestBeanLiveData().getValue().toMap())
- .compose(RxUtils.schedulersTransformer())
.doFinally(new Action() {
@Override
public void run() throws Exception {
changeStateView(StateViewEnum.DATA_FINISH);
}
})
+ .compose(RxUtils.schedulersTransformer())
.subscribe(new Observer<ResultData<List<TourismExperienceBean>>>() {
@Override
public void onSubscribe(Disposable d) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoCarouselFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoCarouselFragment.java
index 9dce2b6..c04c364 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoCarouselFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoCarouselFragment.java
@@ -5,6 +5,7 @@
import androidx.viewpager2.widget.ViewPager2;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.adapter.BaseVp2FragmentAdapter;
import com.android.app_base.base.view.BaseFragment;
import com.application.zhangshi_app_android.R;
@@ -67,7 +68,6 @@
public void onPageSelected(int position) {
super.onPageSelected(position);
if (adapter.getFragment(position) != null){
- System.out.println("onPageSelected:"+position);
adapter.getFragment(position).startPlay();
}
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
index 3c008a5..57d27e1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
@@ -8,6 +8,7 @@
import androidx.annotation.NonNull;
+import com.android.app_base.base.BaseConfig;
import com.android.app_base.base.view.BaseFragment;
import com.android.app_base.utils.GlideUtil;
import com.application.zhangshi_app_android.R;
@@ -38,10 +39,15 @@
public VideoFragment() {
}
- public static VideoFragment newInstance(String playUrl) {
+ public static VideoFragment newInstance(String url) {
VideoFragment fragment = new VideoFragment();
+ if (url.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鍥剧墖
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ url = url.substring(url.indexOf("profile/upload"));
+ url = BaseConfig.BASE_URL_DOMAIN + "/" + url;
+ }
Bundle args = new Bundle();
- args.putSerializable("playUrl", playUrl);
+ args.putSerializable("playUrl", url);
fragment.setArguments(args);
return fragment;
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
index 9123e90..467c702 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
@@ -68,13 +68,14 @@
});
binding.scrollHomeMindMapLayout.setOnItemClickListener(new HomeMindMapLayout.OnItemClickListener() {
@Override
- public void onItemClick(View view, HomeRootBean bean) {
+ public void onItemClick(View view, HomeRootBean bean,boolean isFamily) {
View contentView;
if (bean.getSpouse()!=null) {
bean.getSpouse().setSpouse(bean);
PopBasicInformationDoubleBinding binding= DataBindingUtil.inflate(getLayoutInflater(),R.layout.pop_basic_information_double,null,false);
binding.setSelfBean(bean);
binding.setSpouseBean(bean.getSpouse());
+ binding.setIsFamily(isFamily);
contentView = binding.getRoot();
}else {
PopBasicInformationSingleBinding binding = DataBindingUtil.inflate(getLayoutInflater(),R.layout.pop_basic_information_single,null,false);
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
index 9185898..648db3d 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
@@ -28,7 +28,6 @@
import com.application.zhangshi_app_android.bean.UpdateVersionBean;
import com.application.zhangshi_app_android.databinding.ActivityMainBinding;
import com.application.zhangshi_app_android.ui.dialog.UpdateDialog;
-import com.application.zhangshi_app_android.ui.dialog.VersionUpdateDialog;
import com.application.zhangshi_app_android.ui.function.FunctionFragment;
import com.application.zhangshi_app_android.ui.home.HomeFragment;
import com.application.zhangshi_app_android.ui.personal_center.PersonalCenterFragment;
@@ -151,6 +150,31 @@
}
@Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ switchFragment(mPagerAdapter.getFragmentIndex((Class<? extends Fragment>) intent.getSerializableExtra(INTENT_KEY_IN_FRAGMENT_CLASS)));
+ }
+
+ private void switchFragment(int fragmentIndex) {
+ if (fragmentIndex == -1) {
+ return;
+ }
+
+ switch (fragmentIndex) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ binding.mainVp.setCurrentItem(fragmentIndex);
+ binding.mainBnv.setSelectedItemId(binding.mainBnv.getMenu().getItem(fragmentIndex).getItemId());
+ break;
+ default:
+ break;
+ }
+ }
+
+
+ @Override
protected void onDestroy() {
binding.mainVp.setAdapter(null);
binding.mainBnv.setOnItemSelectedListener(null);
@@ -175,7 +199,7 @@
start(context, HomeFragment.class);
}
- public static void start(Context context, Class<? extends BaseFragment> fragmentClass) {
+ public static void start(Context context, Class<? extends Fragment> fragmentClass) {
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(INTENT_KEY_IN_FRAGMENT_CLASS, fragmentClass);
if (!(context instanceof Activity)) {
diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/DoubleNode.java b/app/src/main/java/com/application/zhangshi_app_android/widget/DoubleNode.java
index 7870d56..0b2b7f0 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/DoubleNode.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/DoubleNode.java
@@ -25,6 +25,7 @@
public DoubleNode(Context context,HomeRootBean member) {
super(context,member);
member.getSpouse().setSpouse(member);
+ initView();
//鍙屼翰鑺傜偣 鍓嶅悗璺緞闀垮害 鏈変袱鍊嶇殑 pathLength
if (member.getIdentity() > 1 && member.getChildList() != null && member.getChildList().size() > 0){
//闈� 绗竴浠� 涓� 鏈夊瓙浠�, 鑺傜偣瀹藉害 = view瀹藉害 + 鍓嶅悗璺緞闀垮害 + 灞曞紑鎸夐挳瀹藉害
@@ -41,7 +42,6 @@
}
//鍙屼翰鑺傜偣 楂樺害 = view楂樺害 + 閰嶅伓view楂樺害 + 閰嶅伓view涓婁笅闂磋窛
height = getItemViewHeight() * 2 + spouseMargin;
- initView();
}
private void initView() {
@@ -89,8 +89,10 @@
} else {
viewLeft = left;
}
+
memberItemView.setX(viewLeft);
memberItemView.setY(centerY - memberItemView.getMeasuredHeight() - spouseMargin/2f);
+
viewRight = viewLeft + memberItemView.getMeasuredWidth();
spouseView.setX(viewLeft);
@@ -241,4 +243,19 @@
forkPathList.add(path);
}
+ @Override
+ public int getItemViewWidth() {
+ if (memberItemView != null){
+ return memberItemView.getMeasuredWidth();
+ }
+ return 0;
+ }
+
+ @Override
+ public int getItemViewHeight() {
+ if (memberItemView != null){
+ return memberItemView.getMeasuredHeight();
+ }
+ return 0;
+ }
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/HomeMindMapLayout.java b/app/src/main/java/com/application/zhangshi_app_android/widget/HomeMindMapLayout.java
index 400e797..19578f1 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/HomeMindMapLayout.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/HomeMindMapLayout.java
@@ -72,7 +72,7 @@
private void setRootMemberReal(HomeRootBean root) {
this.rootMember = root;
- if (rootMember != null) { // 缁樺埗鏍硅妭鐐癸紝鍦ㄧ珫鐩存柟鍚戜笂灞呬腑
+ if (rootMember != null) { // 缁樺埗鏍硅妭鐐�
if (rootMember.getSpouse() == null){
rootNode = new SimpleNode(getContext(),rootMember);
}else {
@@ -173,7 +173,7 @@
}
public interface OnItemClickListener{
- void onItemClick(View view,HomeRootBean member);
+ void onItemClick(View view,HomeRootBean member,boolean isFamily);
}
}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java b/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java
index 71c81ad..5c98ec3 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/Node.java
@@ -12,12 +12,15 @@
import android.widget.TextView;
import androidx.constraintlayout.utils.widget.ImageFilterView;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.databinding.DataBindingUtil;
import com.android.app_base.manager.AppManager;
import com.android.app_base.utils.GlideUtil;
import com.android.app_base.utils.ScreenSizeUtils;
import com.application.zhangshi_app_android.R;
import com.application.zhangshi_app_android.bean.HomeRootBean;
+import com.application.zhangshi_app_android.databinding.ItemFamilyMemberBinding;
import java.util.ArrayList;
import java.util.LinkedList;
@@ -100,7 +103,7 @@
* 閫掑綊璁剧疆鎵�鏈夎妭鐐圭殑浣嶇疆
* @param topNode 椤堕儴鑺傜偣锛岃繖棰楄妭鐐规爲鐨勬渶涓婅竟鐨勮妭鐐�
* @param rootNode 鏍硅妭鐐癸紝杩欓鑺傜偣鏍戠殑鏍硅妭鐐�
- * startNode 蹇呴』鏄� topNode 绁栧厛鑺傜偣
+ * rootNode 蹇呴』鏄� topNode 绁栧厛鑺傜偣
* @param x 鏁撮鑺傜偣鏍戠殑x鍧愭爣
* @param y 鏁撮鑺傜偣鏍戠殑y鍧愭爣
*/
@@ -189,6 +192,7 @@
// 璁剧疆瀵瑰簲绫诲瀷鑺傜偣鐨勪綅缃� 鐢卞瓙绫诲疄鐜�
protected abstract void setViewPosition(int x, int centerY);
+ // 璁剧疆鍒嗗弶鑺傜偣鐨勪綅缃� 鐢卞瓙绫诲疄鐜�,蹇呴』鍏坰etViewPosition鎵嶈兘璋冪敤
protected abstract void setForkYList(List<Integer> yList);
/**
@@ -200,45 +204,39 @@
protected View createItemView(HomeRootBean bean,boolean isFamily){
// 浣跨敤甯冨眬濉厖鍣ㄥ姞杞借妭鐐瑰竷灞�
LayoutInflater inflater = LayoutInflater.from(context);
- View familyMemberView = inflater.inflate(R.layout.item_family_member, null, false);
- familyMemberView.measure(View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST),
- View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST));
+ ItemFamilyMemberBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_family_member, null, false);
+
+ View familyMemberView = binding.getRoot();
// 闃叉addView鏃讹紝鎵�鏈夎繖閲屽垱寤虹殑view鐨勯珮瀹借闄愬埗鎴愪竴鏍风殑
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
familyMemberView.setLayoutParams(params);
- if (bean == null) {
- return familyMemberView;
- }
- // 鑾峰彇甯冨眬涓殑缁勪欢
- TextView tv_generation = familyMemberView.findViewById(R.id.tv_generation);
- ImageFilterView iv_avatar = familyMemberView.findViewById(R.id.iv_avatar);
- TextView tv_name = familyMemberView.findViewById(R.id.tv_name);
-
- if (!isFamily){
- tv_name.setTextColor(Color.parseColor("#FF8296C5"));
- tv_name.setTypeface(Typeface.DEFAULT);
- }
- // 璁剧疆鑺傜偣鍐呭
- tv_generation.setText(String.valueOf(bean.getIdentity()));
- if (bean.getImg() != null) {
- GlideUtil.loadImage(bean.getImg(), iv_avatar);
- }
- tv_name.setText(bean.getNickName());
- tv_name.setSelected(true);
familyMemberView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null){
- onItemClickListener.onItemClick(familyMemberView,bean);
+ onItemClickListener.onItemClick(familyMemberView,bean,isFamily);
}
}
});
+ if (bean != null) {
+ binding.setBean(bean);
+ if (!isFamily){
+ binding.tvName.setTextColor(Color.parseColor("#FF8296C5"));
+ //鑾峰彇瀛椾綋
+ Typeface typeface = ResourcesCompat.getFont(context, com.android.app_base.R.font.roboto_regular);
+ binding.tvName.setTypeface(typeface);
+ }
+ // 浣跨敤databinding鏃犳硶娴嬮噺view鐨勫甫鍐呭鐨勫噯纭楂橈紝鎵�浠ヨ繖閲屾墜鍔ㄨ缃竴涓�
+ binding.tvGeneration.setText(bean.getIdentity()+"");
+ }
+ familyMemberView.measure(View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST),
+ View.MeasureSpec.makeMeasureSpec((1 << 30) - 1, View.MeasureSpec.AT_MOST));
return familyMemberView;
}
protected ImageView createExpandIconView() {
- ImageView expandView = new ImageView(AppManager.getAppManager().currentActivity());
+ ImageView expandView = new ImageView(context);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(pathLength,pathLength);
expandView.setLayoutParams(params);
int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(pathLength, View.MeasureSpec.EXACTLY);
@@ -468,15 +466,11 @@
}
// 鑾峰彇 姣忎釜 itemView 鐨勫搴�
- public int getItemViewWidth(){
- View itemView = createItemView(null,false);
- return itemView.getMeasuredWidth();
- }
+ public abstract int getItemViewWidth();
+
// 鑾峰彇 姣忎釜 itemView 鐨勯珮搴�
- public int getItemViewHeight(){
- View itemView = createItemView(null,false);
- return itemView.getMeasuredHeight();
- }
+ public abstract int getItemViewHeight();
+
//鑾峰彇灞曞紑鎸夐挳鐨勫搴�
public int getExpandIconWidth(){
ImageView expandIconView = createExpandIconView();
diff --git a/app/src/main/java/com/application/zhangshi_app_android/widget/SimpleNode.java b/app/src/main/java/com/application/zhangshi_app_android/widget/SimpleNode.java
index c19a3db..0799930 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/widget/SimpleNode.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/widget/SimpleNode.java
@@ -23,9 +23,12 @@
public SimpleNode(Context context,HomeRootBean member) {
super(context,member);
+
+ initView();
+
if (member.getIdentity() > 1 && member.getChildList() != null && member.getChildList().size() > 0){
//闈� 绗竴浠� 涓� 鏈夊瓙浠�, 鑺傜偣瀹藉害 = view瀹藉害 + 鍓嶅悗璺緞闀垮害 + 灞曞紑鎸夐挳瀹藉害
- width = pathLength + getItemViewWidth() + pathLength + getExpandIconWidth();
+ width = pathLength + memberItemView.getMeasuredWidth() + pathLength + expandIconView.getMeasuredWidth();
}else if (member.getIdentity() > 1 && (member.getChildList() == null || member.getChildList().size() == 0)) {
//闈� 绗竴浠� 涓� 鏃犲瓙浠�, 鑺傜偣瀹藉害 = view瀹藉害 + 鍓嶈矾寰勯暱搴�
width = getItemViewWidth() + pathLength;
@@ -38,7 +41,6 @@
}
//鍗曚翰鑺傜偣 楂樺害 = view楂樺害
height = getItemViewHeight();
- initView();
}
private void initView() {
@@ -178,4 +180,20 @@
}
forkPathList.add(path);
}
+
+ @Override
+ public int getItemViewWidth() {
+ if (memberItemView != null){
+ return memberItemView.getMeasuredWidth();
+ }
+ return 0;
+ }
+
+ @Override
+ public int getItemViewHeight() {
+ if (memberItemView != null){
+ return memberItemView.getMeasuredHeight();
+ }
+ return 0;
+ }
}
diff --git a/app/src/main/res/drawable/shape_gradient_browser_progress.xml b/app/src/main/res/drawable/shape_gradient_browser_progress.xml
new file mode 100644
index 0000000..a451a49
--- /dev/null
+++ b/app/src/main/res/drawable/shape_gradient_browser_progress.xml
@@ -0,0 +1,22 @@
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:id="@android:id/background">
+ <shape>
+ <gradient
+ android:centerColor="@color/transparent"
+ android:endColor="@color/transparent"
+ android:startColor="@color/transparent" />
+ </shape>
+ </item>
+ <item android:id="@android:id/progress">
+ <clip>
+ <shape>
+ <gradient
+ android:centerColor="#5A8DDF"
+ android:endColor="#AA5A8DDF"
+ android:startColor="@color/transparent" />
+ </shape>
+ </clip>
+ </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_annual_health_status.xml b/app/src/main/res/layout/activity_annual_health_status.xml
index f098a82..0a4519f 100644
--- a/app/src/main/res/layout/activity_annual_health_status.xml
+++ b/app/src/main/res/layout/activity_annual_health_status.xml
@@ -20,7 +20,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
- app:leftIcon="@drawable/ic_back"
>
<FrameLayout
android:layout_width="24dp"
@@ -49,7 +48,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:text="浣撴鎴栫湅鐥�"
+ android:text="灏卞尰淇℃伅"
android:layout_weight="1"
android:textColor="@color/white"
android:textSize="20sp"
@@ -91,7 +90,7 @@
android:imeOptions="actionSearch"
android:text=""
android:singleLine="true"
- android:hint="鍦ㄢ�滃勾搴﹀仴搴锋儏鍐碘�濆唴鎼滅储"
+ android:hint="鍦ㄢ�滃氨鍖讳俊鎭�濆唴鎼滅储"
android:focusable="false"
android:clickable="false"
android:editable="false"
diff --git a/app/src/main/res/layout/activity_annual_health_status_detail.xml b/app/src/main/res/layout/activity_annual_health_status_detail.xml
index 127a651..b0b643d 100644
--- a/app/src/main/res/layout/activity_annual_health_status_detail.xml
+++ b/app/src/main/res/layout/activity_annual_health_status_detail.xml
@@ -18,7 +18,7 @@
<com.android.app_base.widget.ExtendTitleBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:title="@{viewModel.beanLiveData.id==0?`鏂板缓浣撴鎴栫湅鐥卄:viewModel.beanLiveData.title}"
+ app:title="@{viewModel.beanLiveData.id==-1?`鏂板缓灏卞尰淇℃伅`:viewModel.beanLiveData.title}"
app:titleGravity="left"
app:leftIcon="@drawable/ic_back"
>
@@ -43,7 +43,7 @@
>
<LinearLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="20dp"
android:paddingBottom="20dp"
@@ -55,13 +55,13 @@
android:text="搴忓彿"
android:textColor="#767375"
android:textSize="12sp"
- android:visibility="@{viewModel.typeLiveData}"
+ android:visibility="@{viewModel.beanLiveData.id!=-1?true:false}"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:visibility="@{viewModel.typeLiveData}"
+ android:visibility="@{viewModel.beanLiveData.id!=-1?true:false}"
>
<EditText
android:id="@+id/et_id"
diff --git a/app/src/main/res/layout/activity_browser.xml b/app/src/main/res/layout/activity_browser.xml
new file mode 100644
index 0000000..2ad641b
--- /dev/null
+++ b/app/src/main/res/layout/activity_browser.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <com.hjq.bar.TitleBar
+ android:id="@+id/tb_browser_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:leftIcon="@drawable/ic_back"
+ />
+
+ <ProgressBar
+ android:id="@+id/pb_browser_progress"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_width="match_parent"
+ android:layout_height="3dp"
+ android:progressDrawable="@drawable/shape_gradient_browser_progress"
+ android:visibility="gone" />
+
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/sl_browser_refresh"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:srlEnableHeaderTranslationContent="false"
+ app:srlEnableLoadMore="false"
+ app:srlEnablePreviewInEditMode="false"
+ app:srlPrimaryColor="#444444">
+
+ <com.scwang.smart.refresh.header.MaterialHeader
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ />
+ <WebView
+ android:id="@+id/wv_browser_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ <com.scwang.smart.refresh.footer.BallPulseFooter
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_examination_info.xml b/app/src/main/res/layout/activity_examination_info.xml
new file mode 100644
index 0000000..ac555f1
--- /dev/null
+++ b/app/src/main/res/layout/activity_examination_info.xml
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+ <variable
+ name="viewModel"
+ type="com.application.zhangshi_app_android.ui.function.ExaminationInfoActivityViewModel" />
+ </data>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/color_normal_background"
+ >
+
+ <com.android.app_base.widget.ExtendTitleBar
+ android:id="@+id/titleBar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toTopOf="parent"
+ app:leftIcon="@drawable/ic_back"
+ >
+ <FrameLayout
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_marginHorizontal="16dp"
+ android:layout_gravity="center_vertical|end"
+ >
+ <ImageView
+ android:id="@+id/iv_operate"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:background="@drawable/ic_operate"
+ />
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_default"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginHorizontal="56dp"
+ android:gravity="center_vertical"
+ >
+ <TextView
+ android:id="@+id/tv_title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="16dp"
+ android:text="鍘嗗勾浣撴淇℃伅"
+ android:layout_weight="1"
+ android:textColor="@color/white"
+ android:textSize="20sp"
+ />
+ <ImageView
+ android:id="@+id/iv_search_default"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:background="@drawable/ic_search"
+ />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/layout_search"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginVertical="4dp"
+ android:layout_marginHorizontal="56dp"
+ android:gravity="center_vertical"
+ android:background="@color/white"
+ android:paddingHorizontal="5dp"
+ android:visibility="gone"
+ >
+ <ImageView
+ android:id="@+id/iv_search"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:background="@drawable/ic_search_gray"
+ />
+ <EditText
+ android:id="@+id/et_search"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginStart="5dp"
+ android:textSize="14sp"
+ android:textColor="#61000000"
+ android:background="@null"
+ android:imeOptions="actionSearch"
+ android:text=""
+ android:singleLine="true"
+ android:hint="鍦ㄢ�滃巻骞翠綋妫�淇℃伅鈥濆唴鎼滅储"
+ android:focusable="false"
+ android:clickable="false"
+ android:editable="false"
+ />
+ <ImageView
+ android:id="@+id/iv_search_type"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:background="@drawable/ic_search_by"
+ />
+ </LinearLayout>
+
+ </com.android.app_base.widget.ExtendTitleBar>
+
+ <LinearLayout
+ android:id="@+id/layout_data_null"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center"
+ android:visibility="gone"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/titleBar">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/img_data_null"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="18dp"
+ android:text="鏆傛椂杩樻病鏈夋暟鎹摝~\n鐐瑰嚮鈥濓紜鈥濈珛鍗冲垱寤�"
+ android:textSize="14sp"
+ android:textColor="#73000000"
+ />
+ </LinearLayout>
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/refreshLayout"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/titleBar"
+ >
+ <com.scwang.smart.refresh.header.MaterialHeader
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ />
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:itemCount="20"
+ tools:listitem="@layout/item_examination_info" />
+ <com.scwang.smart.refresh.footer.BallPulseFooter
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+ <RelativeLayout
+ android:id="@+id/container_search_parameter"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintTop_toBottomOf="@id/titleBar"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_marginTop="-4dp"
+ tools:layout_height="wrap_content"
+ >
+ <LinearLayout
+ android:id="@+id/layout_search_parameter"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@color/white"
+ android:layout_marginHorizontal="56dp"
+ android:paddingEnd="12dp"
+ android:paddingStart="5dp"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0.5dp"
+ android:background="#FF939393" />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="40dp"
+ android:gravity="center">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="match_parent"
+ android:text="骞村害鎶ュ憡"
+ android:textColor="#FF333333"
+ android:textSize="14sp"
+ android:gravity="center"
+ android:maxLines="1"
+ app:autoSizeTextType="uniform"
+ app:autoSizeMinTextSize="8sp"
+ app:autoSizeMaxTextSize="14sp"
+ />
+
+ <com.android.app_base.widget.ClearEditText
+ android:layout_width="0dp"
+ android:layout_weight="4"
+ android:layout_height="wrap_content"
+ android:background="@null"
+ android:inputType="text"
+ android:layout_marginStart="6dp"
+ android:text="@={viewModel.requestBeanLiveData.report}"
+ android:hint="璇疯緭鍏ュ勾搴︽姤鍛�"
+ android:textColorHint="#61000000"
+ android:textColor="#FF333333"
+ android:textSize="14sp"
+ android:maxLines="1"
+ app:autoSizeTextType="uniform"
+ app:autoSizeMinTextSize="8sp"
+ app:autoSizeMaxTextSize="14sp"
+ app:background="@drawable/ic_clear"
+ />
+
+ </LinearLayout>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0.3dp"
+ android:background="#FF939393" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="40dp"
+ android:gravity="center"
+ >
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:text="鏃堕棿"
+ android:textColor="#FF333333"
+ android:textSize="14sp"
+ android:gravity="center"
+ android:maxLines="1"
+ app:autoSizeTextType="uniform"
+ app:autoSizeMinTextSize="8sp"
+ app:autoSizeMaxTextSize="14sp"
+ />
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="4"
+ android:gravity="center"
+ >
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/et_start_time"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:layout_marginStart="6dp"
+ android:text="@={viewModel.requestBeanLiveData.happenStartTime}"
+ android:hint="寮�濮嬫椂闂�"
+ android:textColorHint="#61000000"
+ android:textColor="#FF333333"
+ android:textSize="14sp"
+ android:maxLines="1"
+ android:lines="1"
+ app:autoSizeTextType="uniform"
+ app:autoSizeMinTextSize="8sp"
+ app:autoSizeMaxTextSize="14sp"
+ tools:text="2022-01-01"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鈥�"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/et_end_time"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:gravity="center"
+ android:layout_height="wrap_content"
+ android:text="@={viewModel.requestBeanLiveData.happenEndTime}"
+ android:hint="缁撴潫鏃堕棿"
+ android:textColorHint="#61000000"
+ android:textColor="#FF333333"
+ android:textSize="14sp"
+ android:maxLines="1"
+ app:autoSizeTextType="uniform"
+ app:autoSizeMinTextSize="8sp"
+ app:autoSizeMaxTextSize="14sp"
+ tools:text="2022-01-01"
+ />
+ <ImageView
+ android:id="@+id/iv_time_clear"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_clear"
+ android:visibility="invisible"
+ />
+ </LinearLayout>
+
+ </LinearLayout>
+ </LinearLayout>
+
+ </RelativeLayout>
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/fab_add"
+ android:layout_width="56dp"
+ android:layout_height="56dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_marginEnd="25dp"
+ android:layout_marginBottom="@dimen/dp_44"
+ android:src="@drawable/ic_add"
+ app:fabCustomSize="56dp"
+ />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_examination_info_detail.xml b/app/src/main/res/layout/activity_examination_info_detail.xml
new file mode 100644
index 0000000..fefdd46
--- /dev/null
+++ b/app/src/main/res/layout/activity_examination_info_detail.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+ <variable
+ name="viewModel"
+ type="com.application.zhangshi_app_android.ui.function.ExaminationInfoDetailActivityViewModel" />
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/color_normal_background"
+ android:orientation="vertical">
+
+ <com.android.app_base.widget.ExtendTitleBar
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:title="鍘嗗勾浣撴淇℃伅"
+ app:titleGravity="left"
+ app:leftIcon="@drawable/ic_back"
+ >
+ <FrameLayout
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_marginHorizontal="16dp"
+ android:layout_gravity="center_vertical|end"
+ >
+
+ <ImageView
+ android:id="@+id/iv_operate"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:background="@{viewModel.typeLiveData?@drawable/ic_operate_finish:@drawable/ic_operate}" />
+ </FrameLayout>
+ </com.android.app_base.widget.ExtendTitleBar>
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingHorizontal="20dp"
+ android:paddingBottom="20dp"
+ >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_marginTop="10dp"
+ android:layout_height="wrap_content"
+ android:text="骞村害鎶ュ憡(娉ㄦ剰浜嬮」鎻忚堪)"
+ android:textColor="#767375"
+ android:textSize="12sp"
+ />
+ <EditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="2dp"
+ android:inputType="text"
+ android:textColorHint="#6b000000"
+ android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ュ勾搴︽姤鍛奰:``}"
+ android:text="@={viewModel.beanLiveData.report}"
+ android:textColor="#DE000000"
+ android:textSize="16sp"
+ android:enabled="@{viewModel.typeLiveData}"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_marginTop="10dp"
+ android:layout_height="wrap_content"
+ android:text="浣撴鏃堕棿"
+ android:textColor="#767375"
+ android:textSize="12sp"
+ />
+
+ <EditText
+ android:id="@+id/et_time"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="2dp"
+ android:inputType="text"
+ android:textColorHint="#6b000000"
+ android:hint="@{viewModel.typeLiveData?`璇烽�夋嫨鏃堕棿`:``}"
+ android:textColor="#DE000000"
+ android:text="@={viewModel.beanLiveData.happenTime}"
+ android:textSize="16sp"
+ app:isEditable="@{false}"
+ android:enabled="@{viewModel.typeLiveData}"
+
+ />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_marginTop="10dp"
+ android:layout_height="wrap_content"
+ android:text="鐢靛瓙鏂囦欢"
+ android:textColor="#767375"
+ android:textSize="12sp"
+ />
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/shape_6b0000_stroke"
+ >
+ <com.android.app_base.widget.WrapRecyclerView
+ android:id="@+id/rv_image"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:layout_marginTop="2sp"
+ android:paddingStart="10dp"
+ android:paddingEnd="5dp"
+ android:paddingVertical="10dp"
+ />
+
+ </RelativeLayout>
+
+
+ </LinearLayout>
+ </ScrollView>
+
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_growth_experience.xml b/app/src/main/res/layout/activity_growth_experience.xml
index e19293b..0bd2932 100644
--- a/app/src/main/res/layout/activity_growth_experience.xml
+++ b/app/src/main/res/layout/activity_growth_experience.xml
@@ -603,7 +603,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="鎸佹湁澧冭瘉浠舵儏鍐�"
+ android:text="鎸佹湁璇佷欢鎯呭喌"
android:textColor="#ff000000"
android:textSize="20sp"
android:textStyle="bold"
diff --git a/app/src/main/res/layout/activity_health_care.xml b/app/src/main/res/layout/activity_health_care.xml
index 7d5bb4d..b464bed 100644
--- a/app/src/main/res/layout/activity_health_care.xml
+++ b/app/src/main/res/layout/activity_health_care.xml
@@ -24,6 +24,7 @@
app:layout_constraintTop_toTopOf="parent"
app:title="鍋ュ悍淇濆仴"
app:titleGravity="left"
+ app:leftIcon="@drawable/ic_back"
>
<FrameLayout
diff --git a/app/src/main/res/layout/item_examination_info.xml b/app/src/main/res/layout/item_examination_info.xml
new file mode 100644
index 0000000..8d17ad4
--- /dev/null
+++ b/app/src/main/res/layout/item_examination_info.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+ <variable
+ name="bean"
+ type="com.application.zhangshi_app_android.bean.ExaminationInfoBean" />
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ >
+ <androidx.cardview.widget.CardView
+ android:id="@+id/cardView"
+ android:layout_width="match_parent"
+ android:layout_height="40dp"
+ android:layout_margin="@dimen/dp_2"
+ app:cardCornerRadius="@dimen/dp_10"
+ app:cardBackgroundColor="@color/color_card_pink"
+ tools:layout_height="wrap_content"
+ >
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ >
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/layout_title"
+ android:layout_width="match_parent"
+ android:layout_height="40dp"
+ android:gravity="center_vertical"
+ >
+ <CheckBox
+ android:id="@+id/checkbox"
+ android:layout_width="18dp"
+ android:layout_height="18dp"
+ android:layout_marginStart="3dp"
+ android:layout_centerVertical="true"
+ android:button="@drawable/selector_checkbox"
+ android:background="?selectableItemBackgroundBorderless"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ />
+
+ <TextView
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:text="@{bean.report}"
+ android:textColor="@color/black"
+ android:textSize="16sp"
+ android:layout_marginStart="24dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintWidth_percent="0.5"
+ tools:text="寮犳皬App绔嬮」" />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="16sp"
+ android:textColor="@color/black"
+ android:text="@{bean.happenTime}"
+ android:layout_alignParentEnd="true"
+ android:layout_centerVertical="true"
+ tools:text="2023-05-16"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/iv_fold"
+ android:layout_marginEnd="10dp"
+ />
+ <ImageView
+ android:id="@+id/iv_fold"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_fold"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_marginEnd="10dp"
+ />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ <LinearLayout
+ android:id="@+id/layout_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingHorizontal="@dimen/dp_24"
+ >
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="6dp"
+ android:text="鐢靛瓙鏂囦欢锛�"
+ android:textColor="@color/black"
+ android:textSize="12sp"
+
+ />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginBottom="15dp"
+ >
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/rv_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ tools:listitem="@layout/item_electronic_file"
+ tools:itemCount="3"
+ />
+
+ </LinearLayout>
+ <LinearLayout
+ tools:visibility="visible"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginBottom="12dp"
+ android:visibility="gone"
+ >
+ <LinearLayout
+ android:id="@+id/layout_modify"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ >
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_modify"
+ android:layout_gravity="center"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="淇敼"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_14"
+
+ android:layout_marginStart="@dimen/dp_4"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_delete"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/dp_52"
+ >
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_delete"
+ android:layout_gravity="center"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍒犻櫎"
+ android:textColor="#FFE86F72"
+ android:textSize="@dimen/sp_14"
+
+ android:layout_marginStart="@dimen/dp_4"
+ />
+ </LinearLayout>
+ </LinearLayout>
+
+ </LinearLayout>
+ </LinearLayout>
+
+ </androidx.cardview.widget.CardView>
+
+ </LinearLayout>
+
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_family_member.xml b/app/src/main/res/layout/item_family_member.xml
index a625660..80ea031 100644
--- a/app/src/main/res/layout/item_family_member.xml
+++ b/app/src/main/res/layout/item_family_member.xml
@@ -1,9 +1,12 @@
<?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:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
<data>
-
+ <variable
+ name="bean"
+ type="com.application.zhangshi_app_android.bean.HomeRootBean" />
</data>
<androidx.cardview.widget.CardView
@@ -17,7 +20,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_marginHorizontal="12dp"
+ android:layout_marginHorizontal="10dp"
android:layout_marginVertical="5dp"
android:orientation="horizontal"
android:gravity="center"
@@ -28,9 +31,12 @@
android:id="@+id/tv_generation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="1"
+ android:text="@{bean.identity+``}"
android:textSize="18sp"
android:textColor="#FFEBA4AA"
+ android:gravity="center"
+ android:maxLines="1"
+ tools:text="100"
/>
<!-- 澶村儚 -->
@@ -42,13 +48,14 @@
android:layout_marginEnd="10dp"
android:scaleType="fitCenter"
app:roundPercent="1"
+ app:imageUrl="@{bean.img}"
/>
<!-- 鍚嶅瓧 -->
<TextView
android:id="@+id/tv_name"
android:layout_width="70dp"
android:layout_height="wrap_content"
- android:text="鏋椾匠鏋椾匠"
+ android:text="@{bean.nickName}"
android:textSize="16sp"
android:textStyle="bold"
android:textColor="#FFF6739F"
diff --git a/app/src/main/res/layout/item_tourism.xml b/app/src/main/res/layout/item_tourism.xml
index ce08e55..b8bda6c 100644
--- a/app/src/main/res/layout/item_tourism.xml
+++ b/app/src/main/res/layout/item_tourism.xml
@@ -313,6 +313,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
+ android:gravity="center_vertical"
android:layout_marginBottom="@dimen/dp_12"
android:layout_marginTop="6dp"
>
@@ -364,7 +365,7 @@
android:layout_height="wrap_content"
android:text="姣忔棩娓歌"
android:textColor="@color/black"
- android:textSize="14sp"
+ android:textSize="18sp"
android:layout_marginStart="20dp"
/>
</LinearLayout>
diff --git a/app/src/main/res/layout/layout_drawer.xml b/app/src/main/res/layout/layout_drawer.xml
index 80e30d8..0511593 100644
--- a/app/src/main/res/layout/layout_drawer.xml
+++ b/app/src/main/res/layout/layout_drawer.xml
@@ -27,7 +27,6 @@
android:layout_width="50dp"
android:layout_height="50dp"
app:roundPercent="1"
- android:background="@drawable/img_sakura"
/>
<TextView
android:id="@+id/dl_home_user_name"
diff --git a/app/src/main/res/layout/pop_annual_health_status.xml b/app/src/main/res/layout/pop_annual_health_status.xml
index 123389f..5df77f0 100644
--- a/app/src/main/res/layout/pop_annual_health_status.xml
+++ b/app/src/main/res/layout/pop_annual_health_status.xml
@@ -9,7 +9,7 @@
app:cardElevation="0dp"
>
<LinearLayout
- android:layout_width="118dp"
+ android:layout_width="85dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
@@ -25,20 +25,8 @@
app:drawableStartCompat="@drawable/ic_modify"
android:drawablePadding="5dp"
/>
- <View
- android:layout_width="match_parent"
- android:layout_height="0.3dp"
- android:background="#FF939393"
- />
- <androidx.appcompat.widget.AppCompatTextView
- android:id="@+id/tv_annual_health_status"
- android:layout_width="wrap_content"
- android:layout_height="30dp"
- android:gravity="center"
- android:text="浣撴鎴栫湅鐥�"
- android:textColor="#FF333333"
- android:textSize="12sp"
- />
+
+
</LinearLayout>
</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/pop_basic_information_double.xml b/app/src/main/res/layout/pop_basic_information_double.xml
index 4f61c73..02c9734 100644
--- a/app/src/main/res/layout/pop_basic_information_double.xml
+++ b/app/src/main/res/layout/pop_basic_information_double.xml
@@ -5,6 +5,9 @@
<data>
<variable
+ name="isFamily"
+ type="boolean" />
+ <variable
name="spouseBean"
type="com.application.zhangshi_app_android.bean.HomeRootBean" />
<variable
@@ -190,7 +193,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="6dp"
- android:text="@{`绗琡+ selfBean.identity + `浠}"
+ android:text="@{`绗琡+ selfBean.identity + `浠 + (isFamily?``:`閰嶅伓`)}"
android:textColor="#FF000000"
android:textSize="12sp"
android:layout_gravity="center_vertical"
@@ -945,7 +948,7 @@
android:paddingHorizontal="6dp"
android:layout_gravity="center_vertical"
app:textOverflowMode="@{4}"
- android:text="@{`绗琡 + spouseBean.identity + `浠}"
+ android:text="@{`绗琡 + spouseBean.identity + `浠+ (isFamily?`閰嶅伓`:``)}"
android:textColor="#FF000000"
android:textSize="12sp"
/>
diff --git a/app/src/main/res/layout/pop_operate_exam_info.xml b/app/src/main/res/layout/pop_operate_exam_info.xml
new file mode 100644
index 0000000..04d4b69
--- /dev/null
+++ b/app/src/main/res/layout/pop_operate_exam_info.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:cardBackgroundColor="#FFFAD1E0"
+ app:cardCornerRadius="10dp"
+ app:cardElevation="0dp"
+ >
+ <LinearLayout
+ android:layout_width="118dp"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ >
+ <LinearLayout
+ android:id="@+id/layout_add"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ >
+ <TextView
+ android:id="@+id/tv_add"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:gravity="center"
+ android:text="鏂板缓"
+ android:textColor="#FF333333"
+ android:textSize="12sp"
+ app:drawableStartCompat="@drawable/ic_operate_add"
+ android:drawablePadding="5dp"
+ />
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0.3dp"
+ android:background="#FF939393"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_select"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ >
+ <TextView
+ android:id="@+id/tv_select"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:text="閫夋嫨"
+ android:gravity="center"
+ android:textColor="#FF333333"
+ android:textSize="12sp"
+ app:drawableStartCompat="@drawable/ic_operate_select"
+ android:drawablePadding="5dp"
+ />
+ <View
+ android:id="@+id/view_select_underline"
+ android:layout_width="match_parent"
+ android:layout_height="0.3dp"
+ android:background="#FF939393"
+ />
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/tv_from_new_to_old"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:text="鐢辨柊鍒版棫"
+ android:gravity="center"
+ android:textColor="#FF333333"
+ android:textSize="12sp"
+ app:drawableStartCompat="@drawable/ic_operate_order"
+ android:drawablePadding="3dp"
+ />
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0.3dp"
+ android:background="#FF939393"
+ />
+ <TextView
+ android:id="@+id/tv_from_old_to_new"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:text="鐢辨棫鍒版柊"
+ android:gravity="center"
+ android:textColor="#FF333333"
+ android:textSize="12sp"
+ app:drawableStartCompat="@drawable/ic_operate_order"
+ android:drawablePadding="3dp"
+ />
+ <LinearLayout
+ android:id="@+id/layout_exam_info"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0.3dp"
+ android:background="#FF939393"
+ />
+ <TextView
+ android:id="@+id/tv_exam_info"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:text="鍘嗗勾浣撴淇℃伅"
+ android:gravity="center"
+ android:textColor="#FF333333"
+ android:textSize="12sp"
+ android:drawablePadding="3dp"
+ />
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/layout_health_care"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ >
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="0.3dp"
+ android:background="#FF939393"
+ />
+ <TextView
+ android:id="@+id/tv_health_care"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:text="鍋ュ悍鐘跺喌淇℃伅"
+ android:gravity="center"
+ android:textColor="#FF333333"
+ android:textSize="12sp"
+ android:drawablePadding="3dp"
+ />
+ </LinearLayout>
+
+ </LinearLayout>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 114485d..0783d36 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
<resources>
- <string name="app_name">寮犳皬APP</string>
+ <string name="app_name">鏈兘閮藉缃�</string>
<string name="title_home">棣栭〉</string>
<string name="title_function">鍔熻兘</string>
diff --git a/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java b/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java
index 54d0371..ff77006 100644
--- a/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java
+++ b/app_base/src/main/java/com/android/app_base/action/TitleBarAction.java
@@ -24,16 +24,16 @@
/**
* 璁剧疆鏍囬鏍忕殑鏍囬
*/
- default void setTitle(@StringRes int id) {
+ default void setCenterTitle(@StringRes int id) {
if (getTitleBar() != null) {
- setTitle(getTitleBar().getResources().getString(id));
+ setCenterTitle(getTitleBar().getResources().getString(id));
}
}
/**
* 璁剧疆鏍囬鏍忕殑鏍囬
*/
- default void setTitle(CharSequence title) {
+ default void setCenterTitle(CharSequence title) {
if (getTitleBar() != null) {
getTitleBar().setTitle(title);
}
diff --git a/app_base/src/main/java/com/android/app_base/base/BaseConfig.java b/app_base/src/main/java/com/android/app_base/base/BaseConfig.java
index 288a12a..86c1df2 100644
--- a/app_base/src/main/java/com/android/app_base/base/BaseConfig.java
+++ b/app_base/src/main/java/com/android/app_base/base/BaseConfig.java
@@ -6,7 +6,9 @@
* @desc
*/
public class BaseConfig {
- public final static String BASE_URL = "http://47.93.189.255:8080";
+ public final static String BASE_URL = "http://47.93.189.255:8080";// ip鍦板潃
+ public final static String BASE_URL_DOMAIN = "https://www.bendudu.com:8080";//鍩熷悕缃戝潃
+
public final static int CODE_SUCCESS = 200;
public static final int TOKEN_INVALID = 401;//token瓒呮椂鎴栧け鏁�
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
index 4fcc559..99ac083 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/BaseVp2FragmentAdapter.java
@@ -171,6 +171,21 @@
}
/**
+ * 鑾峰彇鏌愪釜 Fragment 鐨勭储寮曪紙娌℃湁灏辫繑鍥� -1锛�
+ */
+ public int getFragmentIndex(String clazz) {
+ if (clazz == null) {
+ return -1;
+ }
+ for (int i = 0; i < mFragmentList.size(); i++) {
+ if (clazz.equals(mFragmentList.get(i).getClass().getName())) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ /**
* 鏍规嵁 绱㈠紩 鑾峰彇鏌愪釜 Fragment
*/
public F getFragment(int index) {
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java
index f17fa1a..e204222 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/ImageViewAdapter.java
@@ -28,11 +28,10 @@
if (TextUtils.isEmpty(url)) {
return;
}
-
- if (url.contains("profile/upload")) {
- if (!url.contains("http")) {
- url = BaseConfig.BASE_URL + "/" + url;
- }
+ if (url.contains("profile/upload")) {//濡傛灉鏄笂浼犲埌鏈嶅姟鍣ㄧ殑鍥剧墖
+ //鍙彇profile/upload浠ュ悗鐨勯儴鍒�
+ url = url.substring(url.indexOf("profile/upload"));
+ url = BaseConfig.BASE_URL_DOMAIN + "/" + url;
}
GlideUtil.loadImage(url, imageView);
}
diff --git a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java
index bd6ace8..753d324 100644
--- a/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java
+++ b/app_base/src/main/java/com/android/app_base/base/adapter/databinding/TextViewAdapter.java
@@ -9,6 +9,7 @@
import androidx.databinding.InverseBindingAdapter;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.Locale;
/**
@@ -68,7 +69,9 @@
// if (!TextUtils.equals(view.getText().toString(), formattedValue)) {
// view.setText(formattedValue);
// }
- view.setText(BigDecimal.valueOf(value).stripTrailingZeros().toPlainString());
+
+ //鍘绘帀灏忔暟鐐瑰悗闈㈢殑0,淇濈暀涓や綅灏忔暟
+ view.setText(BigDecimal.valueOf(value).setScale(2, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString());
}
@InverseBindingAdapter(attribute = "android:text")
diff --git a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
index 8a06b68..bc15915 100644
--- a/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
+++ b/app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
@@ -187,6 +187,7 @@
* 鏈夐渶姹傜殑锛屽湪瀛愮被閫夋嫨閲嶅啓
*/
protected void dialogLoading() {
+
}
protected void dialogDismiss() {
}
diff --git a/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java b/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java
index 9fca0e9..0acb457 100644
--- a/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java
+++ b/app_base/src/main/java/com/android/app_base/base/viewmodel/BaseViewModel.java
@@ -77,7 +77,7 @@
* 鏇存敼鐘舵�佽鍥剧殑鐘舵��
*/
public void changeStateView(StateViewEnum state) {
- stateViewLiveData.setValue(state);
+ stateViewLiveData.postValue(state);
}
@Override
diff --git a/app_base/src/main/java/com/android/app_base/http/OkHttpHelper.java b/app_base/src/main/java/com/android/app_base/http/OkHttpHelper.java
index 92f62d1..468a0ca 100644
--- a/app_base/src/main/java/com/android/app_base/http/OkHttpHelper.java
+++ b/app_base/src/main/java/com/android/app_base/http/OkHttpHelper.java
@@ -10,6 +10,7 @@
import com.android.app_base.http.interceptor.CacheInterceptor;
import com.android.app_base.http.interceptor.LogInterceptor;
import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.NetworkUtils;
import com.franmontiel.persistentcookiejar.PersistentCookieJar;
import com.franmontiel.persistentcookiejar.cache.SetCookieCache;
import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor;
@@ -73,6 +74,16 @@
});
clientBuilder.addInterceptor(new LogInterceptor());//鎷︽埅鍣ㄦ坊鍔犲叕鍏卞弬鏁�
clientBuilder.addInterceptor(new AuthInterceptor());//鎷︽埅鍣╰oken澶辨晥澶勭悊
+ clientBuilder.addInterceptor(new Interceptor() {
+ @NonNull
+ @Override
+ public Response intercept(@NonNull Chain chain) throws IOException {
+ if (!NetworkUtils.isAvailable()) {
+ throw new IOException("褰撳墠缃戠粶涓嶅彲鐢紝璇锋鏌ョ綉缁滆缃�");
+ }
+ return chain.proceed(chain.request());
+ }
+ });
//log鏃ュ織鎷︽埅
if (BuildConfig.DEBUG) {
clientBuilder.addInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
diff --git a/app_base/src/main/java/com/android/app_base/http/interceptor/AuthInterceptor.java b/app_base/src/main/java/com/android/app_base/http/interceptor/AuthInterceptor.java
index 3284722..1593003 100644
--- a/app_base/src/main/java/com/android/app_base/http/interceptor/AuthInterceptor.java
+++ b/app_base/src/main/java/com/android/app_base/http/interceptor/AuthInterceptor.java
@@ -25,7 +25,7 @@
/**
* @author Ljj
* @date 2023.04.07. 19:53
- * @desc
+ * @desc 閴存潈鎷︽埅鍣�
*/
public class AuthInterceptor implements Interceptor {
diff --git a/app_base/src/main/java/com/android/app_base/widget/ExtendTitleBar.java b/app_base/src/main/java/com/android/app_base/widget/ExtendTitleBar.java
index b1dd717..7c044c9 100644
--- a/app_base/src/main/java/com/android/app_base/widget/ExtendTitleBar.java
+++ b/app_base/src/main/java/com/android/app_base/widget/ExtendTitleBar.java
@@ -34,7 +34,6 @@
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-// System.out.println("onMeasure");
reSetTitleGravity(titleGravity);
}
--
Gitblit v1.9.1