From b2dc509d5530a9af3b48d7dce7db1e7bf66b06d5 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期三, 28 二月 2024 17:26:58 +0800
Subject: [PATCH] 1、修复新增家庭设备时存在备忘录问题\n2、旅游模块新增加“感言”、“其他费用”、“备注”字段

---
 /dev/null                                                                                                  |   17 ----
 app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java                               |   10 ++
 app/src/main/res/layout/item_tourism_experience.xml                                                        |   25 ++++++
 app/src/main/java/com/application/zhangshi_app_android/widget/Node.java                                    |   47 ++++++++---
 app/src/main/res/layout/activity_tourism_detail.xml                                                        |   29 +++++++
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java          |    5 +
 app/src/main/res/layout/acitivity_tourism_experience_detail.xml                                            |   63 +++++++++++++++
 app/zhangshiappwithca.keystore.jks                                                                         |    0 
 app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java                     |   20 +++++
 app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java |    3 
 app/build.gradle                                                                                           |   11 ++
 gradle.properties                                                                                          |    2 
 12 files changed, 198 insertions(+), 34 deletions(-)

diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 176ef9e..0000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="deploymentTargetDropDown">
-    <targetSelectedWithDropDown>
-      <Target>
-        <type value="QUICK_BOOT_TARGET" />
-        <deviceKey>
-          <Key>
-            <type value="VIRTUAL_DEVICE_PATH" />
-            <value value="D:\software\Android\.android\avd\Pixel_API_30.avd" />
-          </Key>
-        </deviceKey>
-      </Target>
-    </targetSelectedWithDropDown>
-    <timeTargetWasSelectedWithDropDown value="2023-12-11T10:41:49.189704100Z" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 67bb24b..a6cf7dc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@
         applicationId "com.application.zhangshi_app_android"
         minSdk 24
         targetSdk 33
-        versionCode 7
-        versionName "1.0.6"
+        versionCode 8
+        versionName "1.0.7"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         ndk {
             //APP鐨刡uild.gradle璁剧疆鏀寔鐨凷O搴撴灦鏋�
@@ -48,6 +48,13 @@
         dataBinding = true
         viewBinding true
     }
+    android.applicationVariants.all { variant ->
+        variant.outputs.all {
+            def createTime = new Date().format("YYYYMMdd", TimeZone.getTimeZone("GMT+08:00"))
+            def fileName = "Bendudu${createTime}.apk"
+            outputFileName = fileName
+        }
+    }
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java
index 20dcfe4..780ba8b 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismBean.java
@@ -38,6 +38,8 @@
     private double groupTotal;
     //鎬婚噾棰�
     private double totalPrice;
+    //鎰熻█
+    private String spee;
 
     public String getId() {
         return id;
@@ -150,4 +152,12 @@
     public void setTotalPrice(double totalPrice) {
         this.totalPrice = totalPrice;
     }
+
+    public String getSpee() {
+        return spee;
+    }
+
+    public void setSpee(String spee) {
+        this.spee = spee;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java
index 105a57c..3a8e6e6 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/TourismExperienceBean.java
@@ -28,6 +28,10 @@
     private double eat;
     //浜ら�氳垂
     private double travel;
+    //鍏朵粬璐圭敤
+    private double otherCost;
+    //澶囨敞
+    private String backInfo;
     //鐢靛瓙鏂囦欢
     private String url;
     //鍑鸿鏂瑰紡
@@ -148,4 +152,20 @@
     public void setScenic(String scenic) {
         this.scenic = scenic;
     }
+
+    public double getOtherCost() {
+        return otherCost;
+    }
+
+    public void setOtherCost(double otherCost) {
+        this.otherCost = otherCost;
+    }
+
+    public String getBackInfo() {
+        return backInfo;
+    }
+
+    public void setBackInfo(String backInfo) {
+        this.backInfo = backInfo;
+    }
 }
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java
index 8b6d825..337be11 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivity.java
@@ -278,7 +278,10 @@
 
     @Override
     public void initData() {
-        viewModel.getMemos();
+        // 鏂板涓嶉渶瑕佽幏鍙栧蹇樺綍
+        if (type != 1){
+            viewModel.getMemos();
+        }
     }
 
     @Override
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java
index 836c96d..bcf389b 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesDetailActivityViewModel.java
@@ -7,6 +7,7 @@
 import androidx.annotation.NonNull;
 import androidx.lifecycle.MutableLiveData;
 
+import com.android.app_base.base.BaseConfig;
 import com.android.app_base.base.StateViewEnum;
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.http.ResultData;
@@ -335,7 +336,7 @@
         if (beanLiveData.getValue() == null) {
             return;
         }
-        model.getMemos("2017", String.valueOf(beanLiveData.getValue().getId()))
+        model.getMemos(BaseConfig.MEMO_FID_HOME_DEVICES+"", String.valueOf(beanLiveData.getValue().getId()))
                 .compose(RxUtils.schedulersTransformer())
                 .subscribe(new Observer<ResultData<List<MemoBean>>>() {
                     @Override
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 7447534..26f2acc 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
@@ -96,7 +96,7 @@
         if (this.parent!=null){
             throw new RuntimeException("鍙兘鍒濆鍖栨牴鑺傜偣");
         }
-        //鏍规嵁鍙鎬ф壘鍒版渶鍚庝竴涓涓�瀛愯妭鐐癸紝鍗虫渶涓婅竟鐨勮妭鐐�
+        //鏍规嵁鍙鎬ф壘鍒版渶鍚庝竴涓涓�瀛愯妭鐐癸紝鍗虫渶鍙充笂杈圭殑鑺傜偣
         setViewPositionRecursion(getVisibleTopNode(), this,x,y);
     }
 
@@ -116,12 +116,17 @@
         }
 
         //鍥犱负 y 鏄暣棰楄妭鐐规爲鐨剏鍧愭爣锛屾甯告儏鍐典笅锛寉閮戒細鏄� 椤堕儴鑺傜偣topNode 鐨剏鍧愭爣
-        //浣嗘槸 鏈変竴绉嶆儏鍐碉紝灏辨槸椤堕儴鑺傜偣topNode鍒氬ソ鏄牴鑺傜偣rootNode鐨勫敮涓�瀛愯妭鐐癸紝涓攖opNode娌℃湁閰嶅伓锛屾鏃秚opNode鐨勯珮搴︽瘮rootNode鐨勯珮搴﹀皬锛屾墍浠ユ鏃剁殑y鏄痳ootNode鐨剏鍧愭爣
-        int centerY;
-        if (rootNode.height >= topNode.height && rootNode == topNode.parent && rootNode.children.size() == 1){
-            centerY = y + rootNode.getAllVisibleHeight()/2;
-        }else {
-            centerY = y + topNode.getAllVisibleHeight()/2;
+        int centerY = y + topNode.getAllVisibleHeight()/2;
+        //浣嗘槸 鏈変竴绉嶆儏鍐碉紝灏辨槸椤堕儴鑺傜偣topNode娌℃湁閰嶅伓锛屽鏋渢opNode鐨勭鍏堣妭鐐规湁閰嶅伓锛屼笖娌℃湁澶氬瓙瀛欙紝姝ゆ椂topNode鐨勯珮搴︽瘮鏈夐厤鍋剁殑绁栧厛鑺傜偣鐨勯珮搴﹀皬锛屾墍浠ユ鏃剁殑y鏄珮搴︽渶楂樼殑绁栧厛鑺傜偣鐨剏鍧愭爣
+        if (topNode instanceof SimpleNode){
+            Node tempNode = topNode.parent;
+            while (tempNode.children.size() == 1){
+                if (tempNode.height > topNode.height){
+                    centerY = y + tempNode.getAllVisibleHeight()/2;
+                    break;
+                }
+                tempNode = tempNode.parent;
+            }
         }
         topNode.setViewPosition(x + topNode.getToSpecifyNodeWidth(rootNode) - topNode.width, centerY);
         // 鏍规嵁topNode鐨勪綅缃紝閫掑綊璁剧疆鎵�鏈夎妭鐐圭殑浣嶇疆
@@ -133,7 +138,7 @@
             for (Node child : parentNode.children) {
                 if (child == node) {
                     centerYList.add(child.centerY);
-                    currentBottom = currentBottom + node.getVisibleTopNode().top + node.getAllVisibleHeight();
+                    currentBottom = currentBottom + child.getVisibleTop() + child.getAllVisibleHeight();
                     continue;
                 }
                 if (!child.isVisible){
@@ -148,7 +153,7 @@
 
             //鍙栨渶澶у�笺�佹渶灏忓�� 鍜� 鐨勪腑闂�
             int totalCenterY = 0;
-            if (centerYList.size() > 0) {
+            if (centerYList.size() > 1) {
                 int min = centerYList.get(0);
                 int max = centerYList.get(0);
                 for (int i = 1; i < centerYList.size(); i++) {
@@ -161,6 +166,8 @@
                     }
                 }
                 totalCenterY = (min + max) / 2;
+            }else{
+                totalCenterY = centerYList.get(0);
             }
 
             if (parentNode.children.size() > 1) {
@@ -174,7 +181,21 @@
             node = parentNode;
         }
     }
+    //鑾峰彇 浠ュ綋鍓嶈妭鐐逛负鏍硅妭鐐圭殑鏍� 鐨勬渶椤堕儴鐨剏鍧愭爣
+    public int getVisibleTop(){
+        if (!isVisible){
+            return 0;
+        }
+        if (!isExpand){
+            return top;
+        }
+        if (children.size() > 0){
+            return Math.min(top,children.get(0).getVisibleTop());
+        }
+        return top;
+    }
 
+    //鑾峰彇 浠ュ綋鍓嶈妭鐐逛负鏍硅妭鐐圭殑鏍� 鐨勬渶娣变竴鑺傜偣
     public Node getVisibleTopNode(){
         Node topNode;
         if (!isVisible){
@@ -417,13 +438,15 @@
         }
         if (node.children.size() == 0){
             return node.height;
-        }else {
+        } else {
             int heightSum = 0;
             for (Node child : node.children) {
-                if (getNodeTreeHeightRecursion(child,considerVisible)!=0){
+                int childHeight = getNodeTreeHeightRecursion(child,considerVisible);
+                //濡傛灉鏈夊涓瓙鑺傜偣涓斿瓙鑺傜偣鏈夐珮搴︼紝閭d箞瀛愯妭鐐逛箣闂磋繕鏈夌珫鐩撮棿闅�
+                if (node.children.size() > 1 && childHeight > 0){
                     heightSum += verticalMargin;
                 }
-                heightSum += getNodeTreeHeightRecursion(child,considerVisible);
+                heightSum += childHeight;
             }
             //瀛愯妭鐐规瘡涓や釜涔嬮棿杩樻湁绔栫洿闂撮殧
             return Math.max(node.height,heightSum);
diff --git a/app/src/main/res/layout/acitivity_tourism_experience_detail.xml b/app/src/main/res/layout/acitivity_tourism_experience_detail.xml
index 246b2ca..343600d 100644
--- a/app/src/main/res/layout/acitivity_tourism_experience_detail.xml
+++ b/app/src/main/res/layout/acitivity_tourism_experience_detail.xml
@@ -267,6 +267,69 @@
 
                     </LinearLayout>
                 </LinearLayout>
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="12dp"
+                    >
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:orientation="vertical"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鍏朵粬璐圭敤"
+                            android:textColor="#767375"
+                            android:textSize="12sp"
+                            />
+                        <EditText
+                            android:id="@+id/et_other"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:inputType="numberDecimal"
+                            android:textColorHint="#6b000000"
+                            android:textColor="#DE000000"
+                            android:text="@={viewModel.beanLiveData.otherCost}"
+                            android:hint="0"
+                            app:need_modify_null="@{true}"
+                            android:textSize="16sp"
+                            android:maxLines="1"
+                            android:enabled="@{viewModel.typeLiveData}"
+                            />
+
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:orientation="vertical"
+                        android:layout_marginStart="40dp"
+                        >
+                    </LinearLayout>
+                </LinearLayout>
+                <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:textColor="#DE000000"
+                    android:text="@={viewModel.beanLiveData.backInfo}"
+                    android:textSize="16sp"
+                    android:enabled="@{viewModel.typeLiveData}"
+                    />
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_marginTop="10dp"
diff --git a/app/src/main/res/layout/activity_tourism_detail.xml b/app/src/main/res/layout/activity_tourism_detail.xml
index 1215929..b1083fe 100644
--- a/app/src/main/res/layout/activity_tourism_detail.xml
+++ b/app/src/main/res/layout/activity_tourism_detail.xml
@@ -425,6 +425,35 @@
 
                     </LinearLayout>
                 </LinearLayout>
+                <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"
+                    android:padding="10dp"
+                    >
+                    <EditText
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:autofillHints="creditCardNumber"
+                        android:hint="@{viewModel.typeLiveData?`璇疯緭鍏ユ劅瑷�`:``}"
+                        android:textColorHint="#6b000000"
+                        android:textColor="#DE000000"
+                        android:textSize="16sp"
+                        android:text="@={viewModel.beanLiveData.spee}"
+                        android:enabled="@{viewModel.typeLiveData}"
+                        android:inputType="textMultiLine"
+                        android:background="@null"
+                        />
+
+                </RelativeLayout>
             </LinearLayout>
         </ScrollView>
 
diff --git a/app/src/main/res/layout/item_tourism_experience.xml b/app/src/main/res/layout/item_tourism_experience.xml
index cc6a03a..41289c5 100644
--- a/app/src/main/res/layout/item_tourism_experience.xml
+++ b/app/src/main/res/layout/item_tourism_experience.xml
@@ -270,6 +270,31 @@
                                 android:textSize="12sp"
                                 />
                         </LinearLayout>
+                        <LinearLayout
+                            android:id="@+id/layout_6"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            app:layout_constraintTop_toBottomOf="@id/layout_4"
+                            app:layout_constraintStart_toStartOf="@id/layout_4"
+                            android:layout_marginTop="6dp"
+                            >
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="鍏朵粬璐圭敤锛�"
+                                android:textColor="@color/black"
+                                android:textSize="12sp"
+                                />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="@{bean.otherCost}"
+                                android:textColor="@color/black"
+                                android:textSize="12sp"
+                                />
+                        </LinearLayout>
                     </androidx.constraintlayout.widget.ConstraintLayout>
 
                     <TextView
diff --git a/app/zhangshiappwithca.keystore.jks b/app/zhangshiappwithca.keystore.jks
new file mode 100644
index 0000000..15979c4
--- /dev/null
+++ b/app/zhangshiappwithca.keystore.jks
Binary files differ
diff --git a/gradle.properties b/gradle.properties
index b891249..ca445d1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -24,7 +24,7 @@
 
 android.injected.testOnly=false
 
-KEY_PATH=zhangshiapp.keystore.jks
+KEY_PATH=zhangshiappwithca.keystore.jks
 KEY_PASS=123456
 ALIAS_NAME=alias
 ALIAS_PASS=123456

--
Gitblit v1.9.1