Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
A
AnchorCollect
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hywang
AnchorCollect
Commits
4fb4f4ed
Commit
4fb4f4ed
authored
Oct 11, 2024
by
hywang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.增加基础信息上传验证标签重复并修改功能;
2.换绑标签弹窗,可视标签与高频标签分开弹窗。
parent
359afc76
Hide whitespace changes
Inline
Side-by-side
Showing
43 changed files
with
634 additions
and
94 deletions
+634
-94
Gradle__cn_wandersnail_easyble_x_1_2_8_aar.xml
.../libraries/Gradle__cn_wandersnail_easyble_x_1_2_8_aar.xml
+2
-2
Gradle__com_afollestad_material_dialogs_commons_0_9_6_0_aar.xml
...__com_afollestad_material_dialogs_commons_0_9_6_0_aar.xml
+4
-4
Gradle__com_afollestad_material_dialogs_core_0_9_6_0_aar.xml
...dle__com_afollestad_material_dialogs_core_0_9_6_0_aar.xml
+3
-3
Gradle__com_contrarywind_Android_PickerView_4_1_9_aar.xml
...Gradle__com_contrarywind_Android_PickerView_4_1_9_aar.xml
+3
-3
Gradle__com_github_JessYanCoding_AndroidAutoSize_v1_2_1_aar.xml
...__com_github_JessYanCoding_AndroidAutoSize_v1_2_1_aar.xml
+3
-3
Gradle__com_github_YancyYe_GalleryPick_1_2_1_aar.xml
...ries/Gradle__com_github_YancyYe_GalleryPick_1_2_1_aar.xml
+3
-3
Gradle__com_github_tbruyelle_rxpermissions_0_10_2_aar.xml
...Gradle__com_github_tbruyelle_rxpermissions_0_10_2_aar.xml
+2
-2
Gradle__com_gyf_immersionbar_immersionbar_3_0_0_aar.xml
...s/Gradle__com_gyf_immersionbar_immersionbar_3_0_0_aar.xml
+3
-3
Gradle__com_jakewharton_rxbinding2_rxbinding_2_1_1_aar.xml
...radle__com_jakewharton_rxbinding2_rxbinding_2_1_1_aar.xml
+2
-2
Gradle__com_lcodecorex_tkrefreshlayout_1_0_7_aar.xml
...ries/Gradle__com_lcodecorex_tkrefreshlayout_1_0_7_aar.xml
+4
-4
Gradle__com_trello_rxlifecycle2_rxlifecycle_android_2_2_2_aar.xml
...com_trello_rxlifecycle2_rxlifecycle_android_2_2_2_aar.xml
+2
-2
Gradle__com_trello_rxlifecycle2_rxlifecycle_components_2_2_2_aar.xml
..._trello_rxlifecycle2_rxlifecycle_components_2_2_2_aar.xml
+2
-2
Gradle__com_yalantis_ucrop_2_2_0_aar.xml
.idea/libraries/Gradle__com_yalantis_ucrop_2_2_0_aar.xml
+4
-4
Gradle__io_github_yuweiguocn_GreenDaoUpgradeHelper_v2_2_1_aar.xml
...io_github_yuweiguocn_GreenDaoUpgradeHelper_v2_2_1_aar.xml
+2
-2
Gradle__me_yokeyword_fragmentationx_core_1_0_2_aar.xml
...es/Gradle__me_yokeyword_fragmentationx_core_1_0_2_aar.xml
+4
-4
Gradle__me_zhanghai_android_materialprogressbar_library_1_4_2_aar.xml
...hanghai_android_materialprogressbar_library_1_4_2_aar.xml
+4
-4
build.gradle
app/build.gradle
+2
-2
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+5
-0
Repository.java
...src/main/java/com/phlx/anchorcollect/data/Repository.java
+2
-1
VMFactory.java
app/src/main/java/com/phlx/anchorcollect/data/VMFactory.java
+3
-0
ApiService.java
...ain/java/com/phlx/anchorcollect/data/http/ApiService.java
+2
-1
HttpDataSource.java
...java/com/phlx/anchorcollect/data/http/HttpDataSource.java
+2
-1
HttpDataSourceImpl.java
.../com/phlx/anchorcollect/data/http/HttpDataSourceImpl.java
+2
-1
InspectEntity.java
...ain/java/com/phlx/anchorcollect/entity/InspectEntity.java
+75
-0
RetrofitClient.java
.../main/java/com/phlx/anchorcollect/net/RetrofitClient.java
+1
-1
BasicsCollectFragment.java
...phlx/anchorcollect/ui/fragment/BasicsCollectFragment.java
+39
-23
BreedingRecordFragment.java
...hlx/anchorcollect/ui/fragment/BreedingRecordFragment.java
+1
-1
WeightManFragment.java
...com/phlx/anchorcollect/ui/fragment/WeightManFragment.java
+1
-1
BasicsCollectVM.java
...om/phlx/anchorcollect/ui/fragment/vm/BasicsCollectVM.java
+2
-0
LabelChangeActivity.java
...hlx/anchorcollect/ui/labelchange/LabelChangeActivity.java
+9
-1
LabelChangeVM.java
.../com/phlx/anchorcollect/ui/labelchange/LabelChangeVM.java
+15
-5
ExchangeItem.java
.../phlx/anchorcollect/ui/labelchange/list/ExchangeItem.java
+57
-0
ExchangeListActivity.java
...chorcollect/ui/labelchange/list/ExchangeListActivity.java
+57
-0
ExchangeListVM.java
...hlx/anchorcollect/ui/labelchange/list/ExchangeListVM.java
+93
-0
LoginVM.java
...rc/main/java/com/phlx/anchorcollect/ui/login/LoginVM.java
+4
-2
SyncActivity.java
.../java/com/phlx/anchorcollect/ui/setting/SyncActivity.java
+37
-0
SyncVM.java
...c/main/java/com/phlx/anchorcollect/ui/setting/SyncVM.java
+10
-3
item_exchange_label.xml
app/src/main/res/layout/item_exchange_label.xml
+138
-0
strings.xml
app/src/main/res/values/strings.xml
+3
-0
styles.xml
app/src/main/res/values/styles.xml
+15
-0
build.gradle
mvvmhabit/build.gradle
+6
-0
ExampleInstrumentedTest.java
...est/java/me/goldze/mvvmhabit/ExampleInstrumentedTest.java
+3
-2
ExampleInstrumentedTest.java
...t/java/com/lingber/mycontrol/ExampleInstrumentedTest.java
+3
-2
No files found.
.idea/libraries/Gradle__cn_wandersnail_easyble_x_1_2_8_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: cn.wandersnail:easyble-x:1.2.8@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
683eb1b83d23a63aa458a5445d2ea527
/jetified-easyble-x-1.2.8/AndroidManifest.xml"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
683eb1b83d23a63aa458a5445d2ea527
/jetified-easyble-x-1.2.8/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
ae4049f9074ccd4be35161f39549638e
/jetified-easyble-x-1.2.8/AndroidManifest.xml"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
ae4049f9074ccd4be35161f39549638e
/jetified-easyble-x-1.2.8/jars/classes.jar!/"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_afollestad_material_dialogs_commons_0_9_6_0_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.afollestad.material-dialogs:commons:0.9.6.0@aar"
external-system-id=
"GRADLE"
>
<ANNOTATIONS>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
0cbb8366ed2500b6c98d6b80cc4be677
/jetified-commons-0.9.6.0/annotations.zip!/"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
19bfda1514dbb4616e992611eeb70435
/jetified-commons-0.9.6.0/annotations.zip!/"
/>
</ANNOTATIONS>
<CLASSES>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cbb8366ed2500b6c98d6b80cc4be677/jetified-commons-0.9.6.0/res
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cbb8366ed2500b6c98d6b80cc4be677/jetified-commons-0.9.6.0/jars/classes.jar!/
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
0cbb8366ed2500b6c98d6b80cc4be677
/jetified-commons-0.9.6.0/AndroidManifest.xml"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/19bfda1514dbb4616e992611eeb70435/jetified-commons-0.9.6.0/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/19bfda1514dbb4616e992611eeb70435/jetified-commons-0.9.6.0/res
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
19bfda1514dbb4616e992611eeb70435
/jetified-commons-0.9.6.0/AndroidManifest.xml"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_afollestad_material_dialogs_core_0_9_6_0_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.afollestad.material-dialogs:core:0.9.6.0@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
8005668582d1b4026f640f78b44b511c
/jetified-core-0.9.6.0/AndroidManifest.xml"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
8005668582d1b4026f640f78b44b511c
/jetified-core-0.9.6.0/res"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
8005668582d1b4026f640f78b44b511c
/jetified-core-0.9.6.0/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
036deff93add12f090954e4fbef1349a
/jetified-core-0.9.6.0/AndroidManifest.xml"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
036deff93add12f090954e4fbef1349a
/jetified-core-0.9.6.0/res"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
036deff93add12f090954e4fbef1349a
/jetified-core-0.9.6.0/jars/classes.jar!/"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_contrarywind_Android_PickerView_4_1_9_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.contrarywind:Android-PickerView:4.1.9@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
aa38cfe34964cd47361724e6caccb261
/jetified-Android-PickerView-4.1.9/AndroidManifest.xml"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
aa38cfe34964cd47361724e6caccb261
/jetified-Android-PickerView-4.1.9/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
aa38cfe34964cd47361724e6caccb261
/jetified-Android-PickerView-4.1.9/res"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
408c583c1474f8a82441a61dd1bee82d
/jetified-Android-PickerView-4.1.9/AndroidManifest.xml"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
408c583c1474f8a82441a61dd1bee82d
/jetified-Android-PickerView-4.1.9/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
408c583c1474f8a82441a61dd1bee82d
/jetified-Android-PickerView-4.1.9/res"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_github_JessYanCoding_AndroidAutoSize_v1_2_1_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.github.JessYanCoding:AndroidAutoSize:v1.2.1@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a17d8fed45203ebb9508d44a724d60fe/jetified-AndroidAutoSize-v1.2.1/jars/classes.jar!/
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
a17d8fed45203ebb9508d44a724d60fe/jetified-AndroidAutoSize-v1.2.1/res
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a17d8fed45203ebb9508d44a724d60fe/jetified-AndroidAutoSize-v1.2.1/AndroidManifest.xml
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2029d1cbb41d0cf974f804c8a310bd66/jetified-AndroidAutoSize-v1.2.1/res
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
2029d1cbb41d0cf974f804c8a310bd66/jetified-AndroidAutoSize-v1.2.1/AndroidManifest.xml
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2029d1cbb41d0cf974f804c8a310bd66/jetified-AndroidAutoSize-v1.2.1/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_github_YancyYe_GalleryPick_1_2_1_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.github.YancyYe:GalleryPick:1.2.1@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/cbd37c480ba325f2722af0efb98900ed/jetified-GalleryPick-1.2.1/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/cbd37c480ba325f2722af0efb98900ed/jetified-GalleryPick-1.2.1/AndroidManifest.xml
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
cbd37c480ba325f2722af0efb98900ed/jetified-GalleryPick-1.2.1/res
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3b622b89c9b0baf174bc8012dbbdca1/jetified-GalleryPick-1.2.1/res
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3b622b89c9b0baf174bc8012dbbdca1/jetified-GalleryPick-1.2.1/jars/classes.jar!/
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
a3b622b89c9b0baf174bc8012dbbdca1/jetified-GalleryPick-1.2.1/AndroidManifest.xml
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_github_tbruyelle_rxpermissions_0_10_2_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.github.tbruyelle:rxpermissions:0.10.2@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
db5c9dad85928c30b3a7717a432482d1
/jetified-rxpermissions-0.10.2/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
db5c9dad85928c30b3a7717a432482d1
/jetified-rxpermissions-0.10.2/AndroidManifest.xml"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
f37f9fa14a6e022d74fa21eae9d63318
/jetified-rxpermissions-0.10.2/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
f37f9fa14a6e022d74fa21eae9d63318
/jetified-rxpermissions-0.10.2/AndroidManifest.xml"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_gyf_immersionbar_immersionbar_3_0_0_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.gyf.immersionbar:immersionbar:3.0.0@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/200921f32e4cf0bad09536bf96030c9e/jetified-immersionbar-3.0.0/jars/classes.jar!/
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
200921f32e4cf0bad09536bf96030c9
e/jetified-immersionbar-3.0.0/res"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/200921f32e4cf0bad09536bf96030c9e/jetified-immersionbar-3.0.0/AndroidManifest.xml
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f65b20a1bf4bcc85c41759cf4a5d2ece/jetified-immersionbar-3.0.0/AndroidManifest.xml
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
f65b20a1bf4bcc85c41759cf4a5d2ec
e/jetified-immersionbar-3.0.0/res"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f65b20a1bf4bcc85c41759cf4a5d2ece/jetified-immersionbar-3.0.0/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_jakewharton_rxbinding2_rxbinding_2_1_1_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.jakewharton.rxbinding2:rxbinding:2.1.1@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
f1b3d14077e82f23f4e824c20bdf198
9/jetified-rxbinding-2.1.1/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
f1b3d14077e82f23f4e824c20bdf198
9/jetified-rxbinding-2.1.1/AndroidManifest.xml"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
c3a7b87436ae32f5050dba007f79dda
9/jetified-rxbinding-2.1.1/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
c3a7b87436ae32f5050dba007f79dda
9/jetified-rxbinding-2.1.1/AndroidManifest.xml"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_lcodecorex_tkrefreshlayout_1_0_7_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.lcodecorex:tkrefreshlayout:1.0.7@aar"
external-system-id=
"GRADLE"
>
<ANNOTATIONS>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
db5aaa02b0733845fa1253ebbbc8c90d
/jetified-tkrefreshlayout-1.0.7/annotations.zip!/"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
ebf75268d2104da1cf815cf7f22af544
/jetified-tkrefreshlayout-1.0.7/annotations.zip!/"
/>
</ANNOTATIONS>
<CLASSES>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
db5aaa02b0733845fa1253ebbbc8c90d
/jetified-tkrefreshlayout-1.0.7/AndroidManifest.xml"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/db5aaa02b0733845fa1253ebbbc8c90d/jetified-tkrefreshlayout-1.0.7/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/db5aaa02b0733845fa1253ebbbc8c90d/jetified-tkrefreshlayout-1.0.7/res
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
ebf75268d2104da1cf815cf7f22af544
/jetified-tkrefreshlayout-1.0.7/AndroidManifest.xml"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ebf75268d2104da1cf815cf7f22af544/jetified-tkrefreshlayout-1.0.7/res
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ebf75268d2104da1cf815cf7f22af544/jetified-tkrefreshlayout-1.0.7/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_android_2_2_2_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.trello.rxlifecycle2:rxlifecycle-android:2.2.2@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8601af3d6f552376e5efa44bf81210b2/jetified-rxlifecycle-android-2.2.2/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8601af3d6f552376e5efa44bf81210b2/jetified-rxlifecycle-android-2.2.2/AndroidManifest.xml
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/60f7c61d494a054c7abb4918e8d577e3/jetified-rxlifecycle-android-2.2.2/AndroidManifest.xml
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/60f7c61d494a054c7abb4918e8d577e3/jetified-rxlifecycle-android-2.2.2/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_components_2_2_2_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.trello.rxlifecycle2:rxlifecycle-components:2.2.2@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c980ad2631fe2f34c3626c749a8eff2a/jetified-rxlifecycle-components-2.2.2/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c980ad2631fe2f34c3626c749a8eff2a/jetified-rxlifecycle-components-2.2.2/AndroidManifest.xml
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/9543ce65e8335b6a9009d60c7dd53b4c/jetified-rxlifecycle-components-2.2.2/AndroidManifest.xml
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/9543ce65e8335b6a9009d60c7dd53b4c/jetified-rxlifecycle-components-2.2.2/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__com_yalantis_ucrop_2_2_0_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: com.yalantis:ucrop:2.2.0@aar"
external-system-id=
"GRADLE"
>
<ANNOTATIONS>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
d2ec90858cabb4cceee96e70b2f7af2a
/jetified-ucrop-2.2.0/annotations.zip!/"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
6526ee1248f53a9646d91fccd309deab
/jetified-ucrop-2.2.0/annotations.zip!/"
/>
</ANNOTATIONS>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/d2ec90858cabb4cceee96e70b2f7af2a/jetified-ucrop-2.2.0/jars/classes.jar!/
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
d2ec90858cabb4cceee96e70b2f7af2a
/jetified-ucrop-2.2.0/AndroidManifest.xml"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/d2ec90858cabb4cceee96e70b2f7af2a/jetified-ucrop-2.2.0/res
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6526ee1248f53a9646d91fccd309deab/jetified-ucrop-2.2.0/res
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
6526ee1248f53a9646d91fccd309deab
/jetified-ucrop-2.2.0/AndroidManifest.xml"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6526ee1248f53a9646d91fccd309deab/jetified-ucrop-2.2.0/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__io_github_yuweiguocn_GreenDaoUpgradeHelper_v2_2_1_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: io.github.yuweiguocn:GreenDaoUpgradeHelper:v2.2.1@aar"
external-system-id=
"GRADLE"
>
<CLASSES>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b78c2b7c5f300e6114e2a211be4e22d3/jetified-GreenDaoUpgradeHelper-v2.2.1/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b78c2b7c5f300e6114e2a211be4e22d3/jetified-GreenDaoUpgradeHelper-v2.2.1/AndroidManifest.xml
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2dcd94ca3913f8f2eabaca052c9bc832/jetified-GreenDaoUpgradeHelper-v2.2.1/AndroidManifest.xml
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2dcd94ca3913f8f2eabaca052c9bc832/jetified-GreenDaoUpgradeHelper-v2.2.1/jars/classes.jar!/
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__me_yokeyword_fragmentationx_core_1_0_2_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: me.yokeyword:fragmentationx-core:1.0.2@aar"
external-system-id=
"GRADLE"
>
<ANNOTATIONS>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
279d69cd07b8f63df40b242658b9af1f
/jetified-fragmentationx-core-1.0.2/annotations.zip!/"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
9cbd6d5413746bcc91baab1fb48377a7
/jetified-fragmentationx-core-1.0.2/annotations.zip!/"
/>
</ANNOTATIONS>
<CLASSES>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/279d69cd07b8f63df40b242658b9af1f/jetified-fragmentationx-core-1.0.2/AndroidManifest.xml
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/279d69cd07b8f63df40b242658b9af1f/jetified-fragmentationx-core-1.0.2/jars/classes.jar!/
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
279d69cd07b8f63df40b242658b9af1f/jetified-fragmentationx-core-1.0.2/res
"
/>
<root
url=
"
jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/9cbd6d5413746bcc91baab1fb48377a7/jetified-fragmentationx-core-1.0.2/jars/classes.jar!/
"
/>
<root
url=
"
file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/9cbd6d5413746bcc91baab1fb48377a7/jetified-fragmentationx-core-1.0.2/res
"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
9cbd6d5413746bcc91baab1fb48377a7/jetified-fragmentationx-core-1.0.2/AndroidManifest.xml
"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
.idea/libraries/Gradle__me_zhanghai_android_materialprogressbar_library_1_4_2_aar.xml
View file @
4fb4f4ed
<component
name=
"libraryTable"
>
<library
name=
"Gradle: me.zhanghai.android.materialprogressbar:library:1.4.2@aar"
external-system-id=
"GRADLE"
>
<ANNOTATIONS>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
a2c93a3c3a1f07407655e3a7270dbdf
5/jetified-library-1.4.2/annotations.zip!/"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
6dc2befbb38207eae4718cd3c89bd0b
5/jetified-library-1.4.2/annotations.zip!/"
/>
</ANNOTATIONS>
<CLASSES>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
a2c93a3c3a1f07407655e3a7270dbdf
5/jetified-library-1.4.2/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
a2c93a3c3a1f07407655e3a7270dbdf
5/jetified-library-1.4.2/AndroidManifest.xml"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
a2c93a3c3a1f07407655e3a7270dbdf
5/jetified-library-1.4.2/res"
/>
<root
url=
"jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
6dc2befbb38207eae4718cd3c89bd0b
5/jetified-library-1.4.2/jars/classes.jar!/"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
6dc2befbb38207eae4718cd3c89bd0b
5/jetified-library-1.4.2/AndroidManifest.xml"
/>
<root
url=
"file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/
6dc2befbb38207eae4718cd3c89bd0b
5/jetified-library-1.4.2/res"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
...
...
app/build.gradle
View file @
4fb4f4ed
...
...
@@ -9,8 +9,8 @@ android {
applicationId
"com.phlx.anchorcollect"
minSdkVersion
21
targetSdkVersion
29
versionCode
1
8
versionName
"2.
1.6
"
versionCode
1
9
versionName
"2.
2.0
"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
...
...
app/src/main/AndroidManifest.xml
View file @
4fb4f4ed
...
...
@@ -104,6 +104,11 @@
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:launchMode=
"singleTask"
android:windowSoftInputMode=
"stateHidden|adjustResize"
/>
<activity
android:name=
".ui.labelchange.list.ExchangeListActivity"
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:launchMode=
"singleTask"
android:windowSoftInputMode=
"stateHidden|adjustResize"
/>
<activity
android:name=
".ui.feedback.FeedbackActivity"
android:configChanges=
"keyboardHidden|orientation|screenSize"
...
...
app/src/main/java/com/phlx/anchorcollect/data/Repository.java
View file @
4fb4f4ed
...
...
@@ -12,6 +12,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import
com.phlx.anchorcollect.entity.GenData
;
import
com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.entity.LoginData
;
import
com.phlx.anchorcollect.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect.entity.PerformanceEntity
;
...
...
@@ -93,7 +94,7 @@ public class Repository extends BaseModel implements HttpDataSource, LocalDataSo
}
@Override
public
Observable
<
ListResponse
<
Long
>>
uploadCattleList
(
RequestBody
body
)
{
public
Observable
<
ListResponse
<
InspectEntity
>>
uploadCattleList
(
RequestBody
body
)
{
return
mHttpDataSource
.
uploadCattleList
(
body
);
}
...
...
app/src/main/java/com/phlx/anchorcollect/data/VMFactory.java
View file @
4fb4f4ed
...
...
@@ -19,6 +19,7 @@ import com.phlx.anchorcollect.ui.fragment.vm.WeightManVM;
import
com.phlx.anchorcollect.ui.home.HomeVM
;
import
com.phlx.anchorcollect.ui.info.CattleVM
;
import
com.phlx.anchorcollect.ui.labelchange.LabelChangeVM
;
import
com.phlx.anchorcollect.ui.labelchange.list.ExchangeListVM
;
import
com.phlx.anchorcollect.ui.login.LoginVM
;
import
com.phlx.anchorcollect.ui.main.MainVM
;
import
com.phlx.anchorcollect.ui.setting.SettingVM
;
...
...
@@ -110,6 +111,8 @@ public class VMFactory extends ViewModelProvider.NewInstanceFactory {
}
else
if
(
modelClass
.
isAssignableFrom
(
LabelChangeVM
.
class
))
{
return
(
T
)
new
LabelChangeVM
(
mApplication
,
repository
);
}
else
if
(
modelClass
.
isAssignableFrom
(
ExchangeListVM
.
class
))
{
return
(
T
)
new
ExchangeListVM
(
mApplication
,
repository
);
}
else
if
(
modelClass
.
isAssignableFrom
(
FeedbackVM
.
class
))
{
return
(
T
)
new
FeedbackVM
(
mApplication
,
repository
);
...
...
app/src/main/java/com/phlx/anchorcollect/data/http/ApiService.java
View file @
4fb4f4ed
...
...
@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import
com.phlx.anchorcollect.entity.GenData
;
import
com.phlx.anchorcollect.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.entity.LoginData
;
import
com.phlx.anchorcollect.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect.entity.PerformanceEntity
;
...
...
@@ -87,7 +88,7 @@ public interface ApiService {
*/
@Headers
({
"Content-Type: application/json"
,
"Accept: application/json"
})
@POST
(
"/api/cattleresume/add"
)
Observable
<
ListResponse
<
Long
>>
uploadCattleList
(
@Body
RequestBody
body
);
Observable
<
ListResponse
<
InspectEntity
>>
uploadCattleList
(
@Body
RequestBody
body
);
/**
* 获取性能测定列表
...
...
app/src/main/java/com/phlx/anchorcollect/data/http/HttpDataSource.java
View file @
4fb4f4ed
...
...
@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import
com.phlx.anchorcollect.entity.GenData
;
import
com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.entity.LoginData
;
import
com.phlx.anchorcollect.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect.entity.PerformanceEntity
;
...
...
@@ -71,7 +72,7 @@ public interface HttpDataSource {
/**
* 上传基础信息列表
*/
Observable
<
ListResponse
<
Long
>>
uploadCattleList
(
@Body
RequestBody
body
);
Observable
<
ListResponse
<
InspectEntity
>>
uploadCattleList
(
@Body
RequestBody
body
);
/**
* 获取性能测定列表
...
...
app/src/main/java/com/phlx/anchorcollect/data/http/HttpDataSourceImpl.java
View file @
4fb4f4ed
...
...
@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import
com.phlx.anchorcollect.entity.GenData
;
import
com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.entity.LoginData
;
import
com.phlx.anchorcollect.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect.entity.PerformanceEntity
;
...
...
@@ -85,7 +86,7 @@ public class HttpDataSourceImpl implements HttpDataSource {
}
@Override
public
Observable
<
ListResponse
<
Long
>>
uploadCattleList
(
RequestBody
body
)
{
public
Observable
<
ListResponse
<
InspectEntity
>>
uploadCattleList
(
RequestBody
body
)
{
return
apiService
.
uploadCattleList
(
body
);
}
...
...
app/src/main/java/com/phlx/anchorcollect/entity/InspectEntity.java
0 → 100644
View file @
4fb4f4ed
package
com
.
phlx
.
anchorcollect
.
entity
;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.BaseObservable
;
public
class
InspectEntity
extends
BaseObservable
implements
Parcelable
{
String
unid
;
/**
* 1 电子耳标重复
* 2 可视耳标重复
* 3 全部重复
*/
int
type
;
public
InspectEntity
()
{
}
protected
InspectEntity
(
Parcel
in
)
{
unid
=
in
.
readString
();
type
=
in
.
readInt
();
}
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeString
(
unid
);
dest
.
writeInt
(
type
);
}
@Override
public
int
describeContents
()
{
return
0
;
}
public
static
final
Creator
<
InspectEntity
>
CREATOR
=
new
Creator
<
InspectEntity
>()
{
@Override
public
InspectEntity
createFromParcel
(
Parcel
in
)
{
return
new
InspectEntity
(
in
);
}
@Override
public
InspectEntity
[]
newArray
(
int
size
)
{
return
new
InspectEntity
[
size
];
}
};
public
String
getUnid
()
{
return
unid
;
}
public
void
setUnid
(
String
unid
)
{
this
.
unid
=
unid
;
}
public
int
getType
()
{
return
type
;
}
public
void
setType
(
int
type
)
{
this
.
type
=
type
;
}
@NonNull
@Override
public
String
toString
()
{
return
"InspectEntity{"
+
"unid='"
+
unid
+
'\''
+
", type="
+
type
+
'}'
;
}
}
app/src/main/java/com/phlx/anchorcollect/net/RetrofitClient.java
View file @
4fb4f4ed
...
...
@@ -59,7 +59,7 @@ public class RetrofitClient {
public
static
String
port
=
""
//正式
// "9000"//阿里云测试
// "
9000
"//董
// "
8099
"//董
;
private
static
Context
mContext
=
Utils
.
getContext
();
...
...
app/src/main/java/com/phlx/anchorcollect/ui/fragment/BasicsCollectFragment.java
View file @
4fb4f4ed
...
...
@@ -301,21 +301,10 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
@Override
public
void
onChanged
(
String
s
)
{
scanChangeLabelDialog
=
new
MaterialDialog
.
Builder
(
getActivity
())
.
title
(
"请扫描或
输入
原耳标"
)
.
title
(
"请扫描或原耳标"
)
// .iconRes(R.drawable.ic_logo)
.
canceledOnTouchOutside
(
false
)
.
autoDismiss
(
false
)
// .content("高频耳标")
// .widgetColor(Color.BLUE)//输入框光标的颜色
//前2个一个是hint一个是预输入的文字
.
input
(
"可视耳标"
,
""
,
new
MaterialDialog
.
InputCallback
()
{
@Override
public
void
onInput
(
@NonNull
MaterialDialog
dialog
,
CharSequence
input
)
{
Log
.
i
(
"scan"
,
"输入的是:"
+
input
);
}
})
.
neutralText
(
"扫描"
)
.
onNeutral
(
new
MaterialDialog
.
SingleButtonCallback
()
{
@Override
...
...
@@ -325,34 +314,61 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
viewModel
.
scanRfid
();
}
})
.
positiveText
(
"确定"
)
.
onPositive
(
new
MaterialDialog
.
SingleButtonCallback
()
{
@Override
public
void
onClick
(
@NonNull
MaterialDialog
dialog
,
@NonNull
DialogAction
which
)
{
// dialog.getActionButton(DialogAction.POSITIVE).setEnabled(false);
//高频耳标
String
registrationNo
=
dialog
.
getContentView
().
getText
().
toString
();
String
individualNo
=
dialog
.
getInputEditText
().
getText
().
toString
();
if
(
StringUtils
.
isEmpty
(
registrationNo
)
&&
StringUtils
.
isEmpty
(
individualNo
))
{
ToastUtils
.
showShort
(
"请扫描或者输入耳标!"
);
if
(
StringUtils
.
isEmpty
(
registrationNo
))
{
ToastUtils
.
showShort
(
"请扫描耳标!"
);
return
;
}
if
(!
StringUtils
.
isEmpty
(
registrationNo
)
&&
registrationNo
.
length
()
>
50
)
{
ToastUtils
.
showShort
(
"高频耳标长度非法,请重新扫描!"
);
return
;
}
if
(!
StringUtils
.
isEmpty
(
individualNo
)
&&
individualNo
.
length
()
>
25
)
{
ToastUtils
.
showShort
(
"可视耳标超长,请填写在25位内!"
);
return
;
}
viewModel
.
forwardChangeLabel
(
registrationNo
,
individualNo
);
viewModel
.
forwardChangeLabel
(
registrationNo
,
""
);
dialog
.
dismiss
();
}
})
.
negativeText
(
"
取消
"
)
.
negativeText
(
"
输入可视耳标
"
)
.
onNegative
(
new
MaterialDialog
.
SingleButtonCallback
()
{
@Override
public
void
onClick
(
@NonNull
MaterialDialog
dialog
,
@NonNull
DialogAction
which
)
{
dialog
.
dismiss
();
//可视耳标
//设置字体大小
TextInfo
textInfo
=
new
TextInfo
();
textInfo
.
setFontSize
(
10
);
InputDialog
.
show
(
"耳标号"
,
""
,
"确定"
,
"取消"
)
.
setCancelable
(
false
)
.
setInputInfo
(
new
InputInfo
().
setTextInfo
(
textInfo
))
.
setTitleTextInfo
(
textInfo
)
.
setOkTextInfo
(
textInfo
)
.
setCancelTextInfo
(
textInfo
)
.
setMaxWidth
(
600
)
.
setInputHintText
(
"请输入可视化耳标号"
).
setOkButton
(
new
OnInputDialogButtonClickListener
<
InputDialog
>()
{
@Override
public
boolean
onClick
(
InputDialog
baseDialog
,
View
v
,
String
inputStr
)
{
String
individualNo
=
baseDialog
.
getInputText
().
toString
();
if
(
StringUtils
.
isEmpty
(
individualNo
))
{
ToastUtils
.
showShort
(
"请输入可视耳标!"
);
}
else
{
if
(!
StringUtils
.
isEmpty
(
individualNo
)
&&
individualNo
.
length
()
>
25
)
{
ToastUtils
.
showShort
(
"可视耳标超长,请填写在25位内!"
);
}
else
{
viewModel
.
forwardChangeLabel
(
""
,
individualNo
);
dialog
.
dismiss
();
}
}
return
false
;
}
});
}
})
.
show
();
...
...
@@ -615,7 +631,7 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
Window
dialogWindow
=
mDialog
.
getWindow
();
if
(
dialogWindow
!=
null
)
{
dialogWindow
.
setWindowAnimations
(
com
.
bigkoo
.
pickerview
.
R
.
style
.
picker_view_slide_anim
);
//修改动画样式
dialogWindow
.
setWindowAnimations
(
R
.
style
.
picker_view_slide_anim
);
//修改动画样式
dialogWindow
.
setGravity
(
Gravity
.
CENTER
);
//改成Bottom,底部显示
dialogWindow
.
setDimAmount
(
0.3f
);
}
...
...
app/src/main/java/com/phlx/anchorcollect/ui/fragment/BreedingRecordFragment.java
View file @
4fb4f4ed
...
...
@@ -420,7 +420,7 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
Window
dialogWindow
=
mDialog
.
getWindow
();
if
(
dialogWindow
!=
null
)
{
dialogWindow
.
setWindowAnimations
(
com
.
bigkoo
.
pickerview
.
R
.
style
.
picker_view_slide_anim
);
//修改动画样式
dialogWindow
.
setWindowAnimations
(
R
.
style
.
picker_view_slide_anim
);
//修改动画样式
dialogWindow
.
setGravity
(
Gravity
.
CENTER
);
//改成Bottom,底部显示
dialogWindow
.
setDimAmount
(
0.3f
);
}
...
...
app/src/main/java/com/phlx/anchorcollect/ui/fragment/WeightManFragment.java
View file @
4fb4f4ed
...
...
@@ -538,7 +538,7 @@ public class WeightManFragment extends BaseFragment<FragmentWeightmanBinding, We
Window
dialogWindow
=
mDialog
.
getWindow
();
if
(
dialogWindow
!=
null
)
{
dialogWindow
.
setWindowAnimations
(
com
.
bigkoo
.
pickerview
.
R
.
style
.
picker_view_slide_anim
);
//修改动画样式
dialogWindow
.
setWindowAnimations
(
R
.
style
.
picker_view_slide_anim
);
//修改动画样式
dialogWindow
.
setGravity
(
Gravity
.
CENTER
);
//改成Bottom,底部显示
dialogWindow
.
setDimAmount
(
0.3f
);
}
...
...
app/src/main/java/com/phlx/anchorcollect/ui/fragment/vm/BasicsCollectVM.java
View file @
4fb4f4ed
...
...
@@ -456,6 +456,7 @@ public class BasicsCollectVM extends BaseViewModel<Repository> implements OnInve
@Override
public
void
call
()
{
isWeightScan
=
true
;
scanFunction
=
0
;
map
=
new
HashMap
<>();
epcList
.
clear
();
scanRfid
();
...
...
@@ -798,6 +799,7 @@ public class BasicsCollectVM extends BaseViewModel<Repository> implements OnInve
if
(
eventType
.
getAction
().
equals
(
EventTag
.
EVENT_WEIGHT_DATA_BASICS
))
{
Double
weightNum
=
Double
.
parseDouble
(
eventType
.
getObj
().
toString
().
trim
());
if
(
weightNum
>
25
)
{
scanFunction
=
0
;
scanRfid
();
// if (isWeightScan)
Configs
.
tempWeight
=
weightNum
;
...
...
app/src/main/java/com/phlx/anchorcollect/ui/labelchange/LabelChangeActivity.java
View file @
4fb4f4ed
...
...
@@ -4,6 +4,7 @@ import android.os.Bundle;
import
android.view.KeyEvent
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.ObservableField
;
import
androidx.lifecycle.ViewModelProviders
;
import
com.afollestad.materialdialogs.DialogAction
;
...
...
@@ -13,6 +14,8 @@ import com.phlx.anchorcollect.BR;
import
com.phlx.anchorcollect.R
;
import
com.phlx.anchorcollect.data.VMFactory
;
import
com.phlx.anchorcollect.databinding.ActivityLabelChangeBinding
;
import
com.phlx.anchorcollect.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.ui.base.BaseActivity
;
import
com.phlx.anchorcollect.util.ImagePicker
;
...
...
@@ -24,6 +27,9 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
private
String
epc
,
noticeNo
;
private
CattleResumeEntity
entity
;
private
InspectEntity
inspectEntity
;
@Override
public
int
initContentView
(
Bundle
savedInstanceState
)
{
return
R
.
layout
.
activity_label_change
;
...
...
@@ -42,6 +48,8 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
if
(
_bundle
!=
null
)
{
epc
=
_bundle
.
getString
(
"epc"
);
noticeNo
=
_bundle
.
getString
(
"noticeNo"
);
entity
=
_bundle
.
getParcelable
(
"entity"
);
inspectEntity
=
_bundle
.
getParcelable
(
"inspectEntity"
);
}
}
...
...
@@ -55,7 +63,7 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
public
void
initData
()
{
super
.
initData
();
viewModel
.
initToolbar
(
epc
,
noticeNo
);
viewModel
.
initToolbar
(
epc
,
noticeNo
,
entity
,
inspectEntity
);
}
@Override
...
...
app/src/main/java/com/phlx/anchorcollect/ui/labelchange/LabelChangeVM.java
View file @
4fb4f4ed
...
...
@@ -20,6 +20,7 @@ import com.phlx.anchorcollect.db.DbUtil;
import
com.phlx.anchorcollect.db.interf.DbIDUCallBack
;
import
com.phlx.anchorcollect.db.interf.DbQueryCallBack
;
import
com.phlx.anchorcollect.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.ui.base.BackBarVM
;
import
com.phlx.anchorcollect.util.TextUtil
;
import
com.uhf.structures.InventoryData
;
...
...
@@ -54,6 +55,7 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
public
ObservableField
<
String
>
epc
=
new
ObservableField
<>();
public
ObservableField
<
String
>
noticeNo
=
new
ObservableField
<>();
public
ObservableField
<
InspectEntity
>
inspectEntity
=
new
ObservableField
<>();
private
boolean
isModify
;
...
...
@@ -72,19 +74,28 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
musicId
=
new
SparseIntArray
();
musicId
.
put
(
1
,
soundPool
.
load
(
getApplication
(),
R
.
raw
.
readcard
,
1
));
musicId
.
put
(
2
,
soundPool
.
load
(
getApplication
(),
R
.
raw
.
failure
,
1
));
uploadData
=
new
ArrayList
<>();
}
//初始化ToolBar
public
void
initToolbar
(
String
epc
,
String
noticeNo
)
{
public
void
initToolbar
(
String
epc
,
String
noticeNo
,
CattleResumeEntity
entity
,
InspectEntity
inspectEntity
)
{
setBackTitleText
(
getApplication
().
getResources
().
getString
(
R
.
string
.
label_change
));
setSettingVisibleObservable
(
View
.
GONE
);
setBackRightTextVisible
(
View
.
VISIBLE
);
setBackRightText
(
getApplication
().
getResources
().
getString
(
R
.
string
.
save
));
this
.
epc
.
set
(
epc
);
this
.
noticeNo
.
set
(
noticeNo
);
if
(
entity
==
null
)
{
this
.
epc
.
set
(
epc
);
this
.
noticeNo
.
set
(
noticeNo
);
getCattleResume
();
}
else
{
this
.
epc
.
set
(
entity
.
getRegistrationNo
());
this
.
noticeNo
.
set
(
entity
.
getIndividualNo
());
this
.
entity
.
copyEntity
(
entity
);
this
.
inspectEntity
.
set
(
inspectEntity
);
}
getCattleResume
();
}
...
...
@@ -99,7 +110,6 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
private
void
initData
()
{
uploadData
=
new
ArrayList
<>();
epc
.
set
(
entity
.
getRegistrationNo
());
noticeNo
.
set
(
entity
.
getIndividualNo
());
// entity.notifyChange();
...
...
app/src/main/java/com/phlx/anchorcollect/ui/labelchange/list/ExchangeItem.java
0 → 100644
View file @
4fb4f4ed
package
com
.
phlx
.
anchorcollect
.
ui
.
labelchange
.
list
;
import
android.os.Bundle
;
import
android.view.View
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.ObservableField
;
import
com.phlx.anchorcollect.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.ui.labelchange.LabelChangeActivity
;
import
me.goldze.mvvmhabit.base.ItemViewModel
;
import
me.goldze.mvvmhabit.binding.command.BindingAction
;
import
me.goldze.mvvmhabit.binding.command.BindingCommand
;
public
class
ExchangeItem
extends
ItemViewModel
<
ExchangeListVM
>
{
public
ObservableField
<
InspectEntity
>
inspectEntity
=
new
ObservableField
<>();
public
ObservableField
<
CattleResumeEntity
>
entity
=
new
ObservableField
<>();
public
ObservableField
<
String
>
inspectString
=
new
ObservableField
<>(
""
);
public
ExchangeItem
(
@NonNull
ExchangeListVM
viewModel
,
CattleResumeEntity
entity
,
InspectEntity
inspectEntity
)
{
super
(
viewModel
);
this
.
inspectEntity
.
set
(
inspectEntity
);
this
.
entity
.
set
(
entity
);
//1 电子耳标重复
// * 2 可视耳标重复
// * 3 全部重复
switch
(
inspectEntity
.
getType
())
{
case
1
:
inspectString
.
set
(
"电子耳标重复"
);
break
;
case
2
:
inspectString
.
set
(
"可视耳标重复"
);
break
;
case
3
:
inspectString
.
set
(
"电子耳标、可视耳标全部重复"
);
break
;
default
:
break
;
}
}
public
BindingCommand
onItemClick
=
new
BindingCommand
(
new
BindingAction
()
{
@Override
public
void
call
()
{
Bundle
mBundle
=
new
Bundle
();
mBundle
.
putParcelable
(
"entity"
,
entity
.
get
());
mBundle
.
putParcelable
(
"inspectEntity"
,
inspectEntity
.
get
());
viewModel
.
startActivity
(
LabelChangeActivity
.
class
,
mBundle
);
}
});
}
app/src/main/java/com/phlx/anchorcollect/ui/labelchange/list/ExchangeListActivity.java
0 → 100644
View file @
4fb4f4ed
package
com
.
phlx
.
anchorcollect
.
ui
.
labelchange
.
list
;
import
android.os.Bundle
;
import
androidx.lifecycle.ViewModelProviders
;
import
com.phlx.anchorcollect.R
;
import
com.phlx.anchorcollect.data.VMFactory
;
import
com.phlx.anchorcollect.databinding.ActivityExchangeListBinding
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.ui.base.BaseActivity
;
import
java.util.List
;
import
me.tatarka.bindingcollectionadapter2.BR
;
public
class
ExchangeListActivity
extends
BaseActivity
<
ActivityExchangeListBinding
,
ExchangeListVM
>
{
List
<
InspectEntity
>
inspectEntities
;
@Override
public
int
initContentView
(
Bundle
savedInstanceState
)
{
return
R
.
layout
.
activity_exchange_list
;
}
@Override
public
int
initVariableId
()
{
return
BR
.
viewModel
;
}
@Override
public
void
initParam
()
{
super
.
initParam
();
Bundle
_bundle
=
getIntent
().
getExtras
();
if
(
_bundle
!=
null
)
{
inspectEntities
=
_bundle
.
getParcelableArrayList
(
"inspectEntityList"
);
}
}
@Override
public
ExchangeListVM
initViewModel
()
{
VMFactory
factory
=
VMFactory
.
getInstance
(
getApplication
());
return
ViewModelProviders
.
of
(
this
,
factory
).
get
(
ExchangeListVM
.
class
);
}
@Override
public
void
initData
()
{
super
.
initData
();
viewModel
.
initToolbar
(
inspectEntities
);
}
@Override
public
void
initViewObservable
()
{
super
.
initViewObservable
();
}
}
app/src/main/java/com/phlx/anchorcollect/ui/labelchange/list/ExchangeListVM.java
0 → 100644
View file @
4fb4f4ed
package
com
.
phlx
.
anchorcollect
.
ui
.
labelchange
.
list
;
import
android.app.Application
;
import
android.view.View
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.ObservableArrayList
;
import
androidx.databinding.ObservableList
;
import
com.phlx.anchorcollect.BR
;
import
com.phlx.anchorcollect.R
;
import
com.phlx.anchorcollect.data.Repository
;
import
com.phlx.anchorcollect.db.DbUtil
;
import
com.phlx.anchorcollect.db.gen.CattleResumeEntityDao
;
import
com.phlx.anchorcollect.db.interf.DbQueryCallBack
;
import
com.phlx.anchorcollect.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.ui.base.BackBarVM
;
import
org.greenrobot.greendao.query.QueryBuilder
;
import
java.util.List
;
import
me.goldze.mvvmhabit.utils.ToastUtils
;
import
me.tatarka.bindingcollectionadapter2.BindingRecyclerViewAdapter
;
import
me.tatarka.bindingcollectionadapter2.ItemBinding
;
public
class
ExchangeListVM
extends
BackBarVM
<
Repository
>
{
List
<
InspectEntity
>
inspectEntities
;
//给RecyclerView添加ObservableList
public
ObservableList
<
ExchangeItem
>
observableList
=
new
ObservableArrayList
<>();
//给RecyclerView添加ItemBinding
public
ItemBinding
<
ExchangeItem
>
itemBinding
=
ItemBinding
.
of
(
BR
.
viewModel
,
R
.
layout
.
item_exchange_label
);
public
final
BindingRecyclerViewAdapter
<
ExchangeItem
>
adapter
=
new
BindingRecyclerViewAdapter
<>();
public
ExchangeListVM
(
@NonNull
Application
application
,
Repository
model
)
{
super
(
application
,
model
);
}
//初始化ToolBar
public
void
initToolbar
(
List
<
InspectEntity
>
inspectEntities
)
{
setBackTitleText
(
getApplication
().
getResources
().
getString
(
R
.
string
.
label_inspect
));
setSettingVisibleObservable
(
View
.
GONE
);
setBackRightTextVisible
(
View
.
GONE
);
this
.
inspectEntities
=
inspectEntities
;
initData
();
}
private
void
initData
()
{
if
(
inspectEntities
==
null
||
inspectEntities
.
size
()
<
1
)
{
ToastUtils
.
showShort
(
"无重复标签牛只"
);
finish
();
}
else
{
queryState
(
0
);
}
}
private
void
queryState
(
int
position
)
{
QueryBuilder
<
CattleResumeEntity
>
builder
=
DbUtil
.
getInstance
().
getQueryBuilder
(
CattleResumeEntity
.
class
)
.
where
(
CattleResumeEntityDao
.
Properties
.
Unid
.
eq
(
inspectEntities
.
get
(
position
).
getUnid
()));
int
finalI
=
position
;
DbUtil
.
getInstance
().
setDbQueryCallBack
(
new
DbQueryCallBack
<
CattleResumeEntity
>()
{
@Override
public
void
onSuccess
(
List
<
CattleResumeEntity
>
result
)
{
if
(
result
!=
null
&&
result
.
size
()
>
0
)
{
ExchangeItem
exchangeItem
=
new
ExchangeItem
(
ExchangeListVM
.
this
,
result
.
get
(
0
),
inspectEntities
.
get
(
finalI
));
observableList
.
add
(
exchangeItem
);
if
(
finalI
>=
inspectEntities
.
size
()
-
1
)
{
return
;
}
queryState
(
finalI
+
1
);
}
else
{
ToastUtils
.
showShort
(
"无重复标签牛只信息"
);
}
}
@Override
public
void
onFailed
()
{
cn
.
wandersnail
.
commons
.
util
.
ToastUtils
.
showShort
(
"查询基础信息失败!"
);
dismissDialog
();
}
}).
queryAsyncAll
(
CattleResumeEntity
.
class
,
builder
);
}
}
app/src/main/java/com/phlx/anchorcollect/ui/login/LoginVM.java
View file @
4fb4f4ed
...
...
@@ -81,10 +81,12 @@ public class LoginVM extends BaseViewModel<Repository> {
userName
.
set
(
model
.
getUserName
());
password
.
set
(
model
.
getPassword
());
// userName.set("13
847908112
");
// password.set("
Wlg8112#
");
// userName.set("13
664793087
");
// password.set("
Abgq3087@
");
// userName.set("15047917803");
// password.set("Tpsq7803*");
// userName.set("13847913985");
// password.set("Xlht3985*");
// userName.set("ewei");
// password.set("123456");
}
...
...
app/src/main/java/com/phlx/anchorcollect/ui/setting/SyncActivity.java
View file @
4fb4f4ed
...
...
@@ -11,7 +11,12 @@ import com.afollestad.materialdialogs.MaterialDialog;
import
com.phlx.anchorcollect.R
;
import
com.phlx.anchorcollect.data.VMFactory
;
import
com.phlx.anchorcollect.databinding.ActivitySyncBinding
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.ui.base.BaseActivity
;
import
com.phlx.anchorcollect.ui.labelchange.list.ExchangeListActivity
;
import
java.util.ArrayList
;
import
java.util.List
;
import
me.tatarka.bindingcollectionadapter2.BR
;
...
...
@@ -52,6 +57,38 @@ public class SyncActivity extends BaseActivity<ActivitySyncBinding,SyncVM> {
showTip
(
s
);
}
});
viewModel
.
inspectEvent
.
observe
(
this
,
new
Observer
<
ArrayList
<
InspectEntity
>>()
{
@Override
public
void
onChanged
(
ArrayList
<
InspectEntity
>
inspectEntities
)
{
new
MaterialDialog
.
Builder
(
SyncActivity
.
this
).
title
(
"系统信息"
).
content
(
"牛只耳标重复,请修改"
)
.
cancelable
(
false
).
canceledOnTouchOutside
(
false
)
.
negativeText
(
"取消"
)
.
onNegative
(
new
MaterialDialog
.
SingleButtonCallback
()
{
@Override
public
void
onClick
(
@NonNull
MaterialDialog
materialDialog
,
@NonNull
DialogAction
dialogAction
)
{
materialDialog
.
dismiss
();
viewModel
.
dismissDialog
();
// finish();
}
})
.
positiveText
(
"修改"
).
onPositive
(
new
MaterialDialog
.
SingleButtonCallback
()
{
@Override
public
void
onClick
(
@NonNull
MaterialDialog
dialog
,
@NonNull
DialogAction
which
)
{
if
(
which
==
DialogAction
.
POSITIVE
)
{
Bundle
mBundle
=
new
Bundle
();
mBundle
.
putParcelableArrayList
(
"inspectEntityList"
,
inspectEntities
);
startActivity
(
ExchangeListActivity
.
class
,
mBundle
);
dialog
.
dismiss
();
viewModel
.
dismissDialog
();
}
}
}).
show
();
}
});
}
private
void
showTip
(
String
content
)
{
...
...
app/src/main/java/com/phlx/anchorcollect/ui/setting/SyncVM.java
View file @
4fb4f4ed
...
...
@@ -28,11 +28,13 @@ import com.phlx.anchorcollect.entity.CattleResumeEntity;
import
com.phlx.anchorcollect.entity.ErrorEntity
;
import
com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect.entity.InspectEntity
;
import
com.phlx.anchorcollect.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect.entity.PerformanceEntity
;
import
com.phlx.anchorcollect.entity.WeightManEntity
;
import
com.phlx.anchorcollect.params.CollectResponse
;
import
com.phlx.anchorcollect.params.ListResponse
;
import
com.phlx.anchorcollect.ui.labelchange.list.ExchangeListActivity
;
import
com.phlx.anchorcollect.ui.login.LoginActivity
;
import
com.phlx.anchorcollect.util.BaseImageUtils
;
...
...
@@ -69,6 +71,9 @@ public class SyncVM extends BaseViewModel<Repository> {
//错误提示
public
SingleLiveEvent
<
String
>
errorEvent
=
new
SingleLiveEvent
<>();
//耳标重复提示
public
SingleLiveEvent
<
ArrayList
<
InspectEntity
>>
inspectEvent
=
new
SingleLiveEvent
<>();
public
ObservableField
<
String
>
cattleresumeCount
=
new
ObservableField
<>(
"0"
);
public
ObservableField
<
String
>
performanceCount
=
new
ObservableField
<>(
"0"
);
public
ObservableField
<
String
>
weightManCount
=
new
ObservableField
<>(
"0"
);
...
...
@@ -371,7 +376,7 @@ public class SyncVM extends BaseViewModel<Repository> {
.
compose
(
RxUtils
.
schedulersTransformer
())
.
compose
(
RxUtils
.
exceptionTransformer
())
// .doOnSubscribe(disposable -> showDialog("正在同步性能测定数据..."))
.
subscribe
((
Consumer
<
ListResponse
<
Long
>>)
response
->
{
.
subscribe
((
Consumer
<
ListResponse
<
InspectEntity
>>)
response
->
{
// dismissDialog();
KLog
.
e
(
"uploadBaseArchives"
,
response
.
toString
());
...
...
@@ -383,8 +388,8 @@ public class SyncVM extends BaseViewModel<Repository> {
if
(
response
.
getCode
()
==
0
)
{
if
(
response
.
getData
()
!=
null
&&
response
.
getData
().
size
()
>
0
)
{
for
(
CattleResumeEntity
pe
:
cattleResumeEntities
)
{
for
(
Long
ids
:
response
.
getData
())
{
if
(
pe
.
getUnid
().
equals
(
ids
))
{
for
(
InspectEntity
inspectEntity
:
response
.
getData
())
{
if
(
pe
.
getUnid
().
toString
().
equals
(
inspectEntity
.
getUnid
()
))
{
pe
.
setUploadStatus
(
"1"
);
break
;
}
...
...
@@ -403,6 +408,8 @@ public class SyncVM extends BaseViewModel<Repository> {
}
}
}).
updateAsyncBatch
(
CattleResumeEntity
.
class
,
cattleResumeEntities
);
}
else
if
(
response
.
getCode
()
==
301
){
inspectEvent
.
setValue
((
ArrayList
<
InspectEntity
>)
response
.
getData
());
}
else
if
(
response
.
getCode
()
==
401
)
{
dismissDialog
();
Bundle
bundle
=
new
Bundle
();
...
...
app/src/main/res/layout/item_exchange_label.xml
0 → 100644
View file @
4fb4f4ed
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:binding=
"http://schemas.android.com/apk/res-auto"
>
<data>
<variable
name=
"viewModel"
type=
"com.phlx.anchorcollect.ui.labelchange.list.ExchangeItem"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingRight=
"@dimen/dp_15"
android:paddingLeft=
"@dimen/dp_15"
android:paddingTop=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_10"
binding:onClickCommand=
"@{viewModel.onItemClick}"
>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_1_1_title"
style=
"@style/ItemTitleFontBlueStyle"
android:text=
"@string/registration_no"
binding:layout_constraintTop_toTopOf=
"parent"
binding:layout_constraintStart_toStartOf=
"parent"
binding:layout_constraintBottom_toTopOf=
"@+id/tv_2_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_1_1"
style=
"@style/ItemContentFontBlackStyle"
android:text=
"@{viewModel.entity.registrationNo}"
binding:layout_constraintTop_toTopOf=
"@+id/tv_1_1_title"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_1_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_date"
style=
"@style/ItemContentFontBlackStyle"
android:visibility=
"gone"
android:text=
"@{viewModel.inspectString}"
binding:layout_constraintRight_toRightOf=
"parent"
binding:layout_constraintTop_toTopOf=
"@+id/tv_1_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_2_1_title"
style=
"@style/ItemTitleFontBlueStyle"
android:text=
"@string/individual_no"
android:layout_marginTop=
"@dimen/dp_10"
binding:layout_constraintStart_toStartOf=
"parent"
binding:layout_constraintTop_toBottomOf=
"@+id/tv_1_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_2_1"
style=
"@style/ItemContentFontBlackStyle"
android:text=
"@{viewModel.entity.individualNo}"
binding:layout_constraintTop_toTopOf=
"@+id/tv_2_1_title"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_2_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_2_2_title"
style=
"@style/ItemTitleFontBlueStyle"
android:visibility=
"gone"
android:text=
"@string/unit"
android:layout_marginLeft=
"@dimen/dp_20"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_2_1"
binding:layout_constraintTop_toTopOf=
"@+id/tv_2_1"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_2_2"
style=
"@style/ItemContentFontBlackStyle"
android:visibility=
"gone"
android:text=
"@{viewModel.entity.registrationNo}"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_2_2_title"
binding:layout_constraintTop_toTopOf=
"@+id/tv_2_2_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_3_1_title"
style=
"@style/ItemTitleFontBlueStyle"
android:text=
"@string/registration_no"
android:layout_marginTop=
"@dimen/dp_10"
android:visibility=
"gone"
binding:layout_constraintStart_toStartOf=
"parent"
binding:layout_constraintTop_toBottomOf=
"@+id/tv_2_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_3_1"
style=
"@style/ItemContentFontBlackStyle"
android:visibility=
"gone"
android:text=
"@{viewModel.entity.registrationNo}"
binding:layout_constraintBaseline_toBaselineOf=
"@+id/tv_3_1_title"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_3_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_3_2_title"
style=
"@style/ItemTitleFontBlueStyle"
android:text=
"@string/unit"
android:visibility=
"gone"
android:layout_marginLeft=
"@dimen/dp_20"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_3_1"
binding:layout_constraintBaseline_toBaselineOf=
"@+id/tv_3_1_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_3_2"
style=
"@style/ItemContentFontBlackStyle"
android:text=
"@{viewModel.entity.registrationNo}"
android:visibility=
"gone"
binding:layout_constraintLeft_toRightOf=
"@+id/tv_3_2_title"
binding:layout_constraintBaseline_toBaselineOf=
"@+id/tv_3_2_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_weight_type"
style=
"@style/ItemContentFontBlackStyle"
android:visibility=
"gone"
android:text=
""
binding:layout_constraintBaseline_toBaselineOf=
"@+id/tv_2_1_title"
binding:layout_constraintRight_toRightOf=
"parent"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_execute"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:text=
"@{viewModel.inspectString}"
binding:layout_constraintTop_toBottomOf=
"@+id/tv_date"
binding:layout_constraintRight_toRightOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
4fb4f4ed
...
...
@@ -27,10 +27,13 @@
<string
name=
"breeding_record"
>
配种记录
</string>
<string
name=
"breeding_record_detail"
>
配种详情
</string>
<string
name=
"label_change"
>
标签换绑
</string>
<string
name=
"label_inspect"
>
标签重复记录
</string>
<string
name=
"error_data_upload"
>
错误上报
</string>
<string
name=
"one_click_sync"
>
一键同步
</string>
<string
name=
"registration_no"
>
电子耳标
</string>
<string
name=
"individual_no"
>
可视耳标
</string>
<string
name=
"jobNum"
>
工号:
</string>
...
...
app/src/main/res/values/styles.xml
View file @
4fb4f4ed
...
...
@@ -85,6 +85,21 @@
<item
name=
"android:dialogTitle"
>
@null
</item>
<!--点击 dialog Activity 周围是否关闭弹窗 true 关闭(默认为true) false 为不关闭-->
<item
name=
"android:windowCloseOnTouchOutside"
>
false
</item>
</style>
<style
name=
"ItemTitleFontBlueStyle"
>
<item
name=
"android:layout_width"
>
wrap_content
</item>
<item
name=
"android:layout_height"
>
wrap_content
</item>
<item
name=
"android:textColor"
>
@color/statueBar_bg
</item>
<item
name=
"android:textSize"
>
@dimen/sp_16
</item>
</style>
<style
name=
"ItemContentFontBlackStyle"
>
<item
name=
"android:layout_width"
>
wrap_content
</item>
<item
name=
"android:layout_height"
>
wrap_content
</item>
<item
name=
"android:textSize"
>
@dimen/sp_14
</item>
<item
name=
"android:layout_marginLeft"
>
@dimen/dp_5
</item>
</style>
</resources>
mvvmhabit/build.gradle
View file @
4fb4f4ed
...
...
@@ -63,6 +63,12 @@ dependencies {
api
(
rootProject
.
ext
.
dependencies
.
glide
){
exclude
group:
'com.android.support'
}
implementation
'androidx.appcompat:appcompat:1.2.0'
implementation
'androidx.constraintlayout:constraintlayout:1.1.3'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.2.0'
testImplementation
'junit:junit:4.13'
androidTestImplementation
'androidx.test.ext:junit:1.1.1'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.2.0'
annotationProcessor
rootProject
.
ext
.
dependencies
[
"glide-compiler"
]
//recyclerview的databinding套装
api
(
rootProject
.
ext
.
dependencies
.
bindingcollectionadapter
)
{
...
...
mvvmhabit/src/androidTest/java/me/goldze/mvvmhabit/ExampleInstrumentedTest.java
View file @
4fb4f4ed
package
me
.
goldze
.
mvvmhabit
;
import
android.content.Context
;
import
android.support.test.InstrumentationRegistry
;
import
android.support.test.runner.AndroidJUnit4
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
static
org
.
junit
.
Assert
.*;
import
androidx.test.InstrumentationRegistry
;
import
androidx.test.ext.junit.runners.AndroidJUnit4
;
/**
* Instrumentation test, which will execute on an Android device.
*
...
...
mycontrol/src/androidTest/java/com/lingber/mycontrol/ExampleInstrumentedTest.java
View file @
4fb4f4ed
package
com
.
lingber
.
mycontrol
;
import
android.content.Context
;
import
android.support.test.InstrumentationRegistry
;
import
android.support.test.runner.AndroidJUnit4
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
static
org
.
junit
.
Assert
.*;
import
androidx.test.InstrumentationRegistry
;
import
androidx.test.runner.AndroidJUnit4
;
/**
* Instrumentation test, which will execute on an Android device.
*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment