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