Commit 4fb4f4ed authored by hywang's avatar hywang

1.增加基础信息上传验证标签重复并修改功能;

2.换绑标签弹窗,可视标签与高频标签分开弹窗。
parent 359afc76
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: cn.wandersnail:easyble-x:1.2.8@aar" external-system-id="GRADLE"> <library name="Gradle: cn.wandersnail:easyble-x:1.2.8@aar" external-system-id="GRADLE">
<CLASSES> <CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/683eb1b83d23a63aa458a5445d2ea527/jetified-easyble-x-1.2.8/AndroidManifest.xml" /> <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/683eb1b83d23a63aa458a5445d2ea527/jetified-easyble-x-1.2.8/jars/classes.jar!/" /> <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ae4049f9074ccd4be35161f39549638e/jetified-easyble-x-1.2.8/jars/classes.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.afollestad.material-dialogs:commons:0.9.6.0@aar" external-system-id="GRADLE"> <library name="Gradle: com.afollestad.material-dialogs:commons:0.9.6.0@aar" external-system-id="GRADLE">
<ANNOTATIONS> <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> </ANNOTATIONS>
<CLASSES> <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/19bfda1514dbb4616e992611eeb70435/jetified-commons-0.9.6.0/jars/classes.jar!/" />
<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/19bfda1514dbb4616e992611eeb70435/jetified-commons-0.9.6.0/res" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0cbb8366ed2500b6c98d6b80cc4be677/jetified-commons-0.9.6.0/AndroidManifest.xml" /> <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/19bfda1514dbb4616e992611eeb70435/jetified-commons-0.9.6.0/AndroidManifest.xml" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.afollestad.material-dialogs:core:0.9.6.0@aar" external-system-id="GRADLE"> <library name="Gradle: com.afollestad.material-dialogs:core:0.9.6.0@aar" external-system-id="GRADLE">
<CLASSES> <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/036deff93add12f090954e4fbef1349a/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="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/8005668582d1b4026f640f78b44b511c/jetified-core-0.9.6.0/jars/classes.jar!/" /> <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/036deff93add12f090954e4fbef1349a/jetified-core-0.9.6.0/jars/classes.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.contrarywind:Android-PickerView:4.1.9@aar" external-system-id="GRADLE"> <library name="Gradle: com.contrarywind:Android-PickerView:4.1.9@aar" external-system-id="GRADLE">
<CLASSES> <CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/aa38cfe34964cd47361724e6caccb261/jetified-Android-PickerView-4.1.9/AndroidManifest.xml" /> <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/aa38cfe34964cd47361724e6caccb261/jetified-Android-PickerView-4.1.9/jars/classes.jar!/" /> <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/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/res" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.github.JessYanCoding:AndroidAutoSize:v1.2.1@aar" external-system-id="GRADLE"> <library name="Gradle: com.github.JessYanCoding:AndroidAutoSize:v1.2.1@aar" external-system-id="GRADLE">
<CLASSES> <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/2029d1cbb41d0cf974f804c8a310bd66/jetified-AndroidAutoSize-v1.2.1/res" />
<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/2029d1cbb41d0cf974f804c8a310bd66/jetified-AndroidAutoSize-v1.2.1/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a17d8fed45203ebb9508d44a724d60fe/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> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.github.YancyYe:GalleryPick:1.2.1@aar" external-system-id="GRADLE"> <library name="Gradle: com.github.YancyYe:GalleryPick:1.2.1@aar" external-system-id="GRADLE">
<CLASSES> <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/a3b622b89c9b0baf174bc8012dbbdca1/jetified-GalleryPick-1.2.1/res" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/cbd37c480ba325f2722af0efb98900ed/jetified-GalleryPick-1.2.1/AndroidManifest.xml" /> <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/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/AndroidManifest.xml" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.github.tbruyelle:rxpermissions:0.10.2@aar" external-system-id="GRADLE"> <library name="Gradle: com.github.tbruyelle:rxpermissions:0.10.2@aar" external-system-id="GRADLE">
<CLASSES> <CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/db5c9dad85928c30b3a7717a432482d1/jetified-rxpermissions-0.10.2/jars/classes.jar!/" /> <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/db5c9dad85928c30b3a7717a432482d1/jetified-rxpermissions-0.10.2/AndroidManifest.xml" /> <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f37f9fa14a6e022d74fa21eae9d63318/jetified-rxpermissions-0.10.2/AndroidManifest.xml" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.gyf.immersionbar:immersionbar:3.0.0@aar" external-system-id="GRADLE"> <library name="Gradle: com.gyf.immersionbar:immersionbar:3.0.0@aar" external-system-id="GRADLE">
<CLASSES> <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/f65b20a1bf4bcc85c41759cf4a5d2ece/jetified-immersionbar-3.0.0/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/200921f32e4cf0bad09536bf96030c9e/jetified-immersionbar-3.0.0/res" /> <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f65b20a1bf4bcc85c41759cf4a5d2ece/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="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f65b20a1bf4bcc85c41759cf4a5d2ece/jetified-immersionbar-3.0.0/jars/classes.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.jakewharton.rxbinding2:rxbinding:2.1.1@aar" external-system-id="GRADLE"> <library name="Gradle: com.jakewharton.rxbinding2:rxbinding:2.1.1@aar" external-system-id="GRADLE">
<CLASSES> <CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f1b3d14077e82f23f4e824c20bdf1989/jetified-rxbinding-2.1.1/jars/classes.jar!/" /> <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c3a7b87436ae32f5050dba007f79dda9/jetified-rxbinding-2.1.1/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f1b3d14077e82f23f4e824c20bdf1989/jetified-rxbinding-2.1.1/AndroidManifest.xml" /> <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c3a7b87436ae32f5050dba007f79dda9/jetified-rxbinding-2.1.1/AndroidManifest.xml" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.lcodecorex:tkrefreshlayout:1.0.7@aar" external-system-id="GRADLE"> <library name="Gradle: com.lcodecorex:tkrefreshlayout:1.0.7@aar" external-system-id="GRADLE">
<ANNOTATIONS> <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> </ANNOTATIONS>
<CLASSES> <CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/db5aaa02b0733845fa1253ebbbc8c90d/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/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/ebf75268d2104da1cf815cf7f22af544/jetified-tkrefreshlayout-1.0.7/res" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/db5aaa02b0733845fa1253ebbbc8c90d/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> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.trello.rxlifecycle2:rxlifecycle-android:2.2.2@aar" external-system-id="GRADLE"> <library name="Gradle: com.trello.rxlifecycle2:rxlifecycle-android:2.2.2@aar" external-system-id="GRADLE">
<CLASSES> <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/60f7c61d494a054c7abb4918e8d577e3/jetified-rxlifecycle-android-2.2.2/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8601af3d6f552376e5efa44bf81210b2/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> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.trello.rxlifecycle2:rxlifecycle-components:2.2.2@aar" external-system-id="GRADLE"> <library name="Gradle: com.trello.rxlifecycle2:rxlifecycle-components:2.2.2@aar" external-system-id="GRADLE">
<CLASSES> <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/9543ce65e8335b6a9009d60c7dd53b4c/jetified-rxlifecycle-components-2.2.2/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c980ad2631fe2f34c3626c749a8eff2a/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> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: com.yalantis:ucrop:2.2.0@aar" external-system-id="GRADLE"> <library name="Gradle: com.yalantis:ucrop:2.2.0@aar" external-system-id="GRADLE">
<ANNOTATIONS> <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> </ANNOTATIONS>
<CLASSES> <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/6526ee1248f53a9646d91fccd309deab/jetified-ucrop-2.2.0/res" />
<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/6526ee1248f53a9646d91fccd309deab/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="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6526ee1248f53a9646d91fccd309deab/jetified-ucrop-2.2.0/jars/classes.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: io.github.yuweiguocn:GreenDaoUpgradeHelper:v2.2.1@aar" external-system-id="GRADLE"> <library name="Gradle: io.github.yuweiguocn:GreenDaoUpgradeHelper:v2.2.1@aar" external-system-id="GRADLE">
<CLASSES> <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/2dcd94ca3913f8f2eabaca052c9bc832/jetified-GreenDaoUpgradeHelper-v2.2.1/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b78c2b7c5f300e6114e2a211be4e22d3/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> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: me.yokeyword:fragmentationx-core:1.0.2@aar" external-system-id="GRADLE"> <library name="Gradle: me.yokeyword:fragmentationx-core:1.0.2@aar" external-system-id="GRADLE">
<ANNOTATIONS> <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> </ANNOTATIONS>
<CLASSES> <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/9cbd6d5413746bcc91baab1fb48377a7/jetified-fragmentationx-core-1.0.2/jars/classes.jar!/" />
<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/9cbd6d5413746bcc91baab1fb48377a7/jetified-fragmentationx-core-1.0.2/res" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/279d69cd07b8f63df40b242658b9af1f/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> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
<component name="libraryTable"> <component name="libraryTable">
<library name="Gradle: me.zhanghai.android.materialprogressbar:library:1.4.2@aar" external-system-id="GRADLE"> <library name="Gradle: me.zhanghai.android.materialprogressbar:library:1.4.2@aar" external-system-id="GRADLE">
<ANNOTATIONS> <ANNOTATIONS>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a2c93a3c3a1f07407655e3a7270dbdf5/jetified-library-1.4.2/annotations.zip!/" /> <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6dc2befbb38207eae4718cd3c89bd0b5/jetified-library-1.4.2/annotations.zip!/" />
</ANNOTATIONS> </ANNOTATIONS>
<CLASSES> <CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a2c93a3c3a1f07407655e3a7270dbdf5/jetified-library-1.4.2/jars/classes.jar!/" /> <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6dc2befbb38207eae4718cd3c89bd0b5/jetified-library-1.4.2/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a2c93a3c3a1f07407655e3a7270dbdf5/jetified-library-1.4.2/AndroidManifest.xml" /> <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6dc2befbb38207eae4718cd3c89bd0b5/jetified-library-1.4.2/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a2c93a3c3a1f07407655e3a7270dbdf5/jetified-library-1.4.2/res" /> <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6dc2befbb38207eae4718cd3c89bd0b5/jetified-library-1.4.2/res" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />
......
...@@ -9,8 +9,8 @@ android { ...@@ -9,8 +9,8 @@ android {
applicationId "com.phlx.anchorcollect" applicationId "com.phlx.anchorcollect"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 29 targetSdkVersion 29
versionCode 18 versionCode 19
versionName "2.1.6" versionName "2.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
......
...@@ -104,6 +104,11 @@ ...@@ -104,6 +104,11 @@
android:configChanges="keyboardHidden|orientation|screenSize" android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTask" android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize" /> android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ui.labelchange.list.ExchangeListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity <activity
android:name=".ui.feedback.FeedbackActivity" android:name=".ui.feedback.FeedbackActivity"
android:configChanges="keyboardHidden|orientation|screenSize" android:configChanges="keyboardHidden|orientation|screenSize"
......
...@@ -12,6 +12,7 @@ import com.phlx.anchorcollect.entity.DictEntity; ...@@ -12,6 +12,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import com.phlx.anchorcollect.entity.GenData; import com.phlx.anchorcollect.entity.GenData;
import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity; import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity;
import com.phlx.anchorcollect.entity.ImmuneBatchEntity; import com.phlx.anchorcollect.entity.ImmuneBatchEntity;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.entity.LoginData; import com.phlx.anchorcollect.entity.LoginData;
import com.phlx.anchorcollect.entity.MedicalRecordEntity; import com.phlx.anchorcollect.entity.MedicalRecordEntity;
import com.phlx.anchorcollect.entity.PerformanceEntity; import com.phlx.anchorcollect.entity.PerformanceEntity;
...@@ -93,7 +94,7 @@ public class Repository extends BaseModel implements HttpDataSource, LocalDataSo ...@@ -93,7 +94,7 @@ public class Repository extends BaseModel implements HttpDataSource, LocalDataSo
} }
@Override @Override
public Observable<ListResponse<Long>> uploadCattleList(RequestBody body) { public Observable<ListResponse<InspectEntity>> uploadCattleList(RequestBody body) {
return mHttpDataSource.uploadCattleList(body); return mHttpDataSource.uploadCattleList(body);
} }
......
...@@ -19,6 +19,7 @@ import com.phlx.anchorcollect.ui.fragment.vm.WeightManVM; ...@@ -19,6 +19,7 @@ import com.phlx.anchorcollect.ui.fragment.vm.WeightManVM;
import com.phlx.anchorcollect.ui.home.HomeVM; import com.phlx.anchorcollect.ui.home.HomeVM;
import com.phlx.anchorcollect.ui.info.CattleVM; import com.phlx.anchorcollect.ui.info.CattleVM;
import com.phlx.anchorcollect.ui.labelchange.LabelChangeVM; 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.login.LoginVM;
import com.phlx.anchorcollect.ui.main.MainVM; import com.phlx.anchorcollect.ui.main.MainVM;
import com.phlx.anchorcollect.ui.setting.SettingVM; import com.phlx.anchorcollect.ui.setting.SettingVM;
...@@ -110,6 +111,8 @@ public class VMFactory extends ViewModelProvider.NewInstanceFactory { ...@@ -110,6 +111,8 @@ public class VMFactory extends ViewModelProvider.NewInstanceFactory {
} else if (modelClass.isAssignableFrom(LabelChangeVM.class)) { } else if (modelClass.isAssignableFrom(LabelChangeVM.class)) {
return (T) new LabelChangeVM(mApplication, repository); return (T) new LabelChangeVM(mApplication, repository);
} else if (modelClass.isAssignableFrom(ExchangeListVM.class)) {
return (T) new ExchangeListVM(mApplication, repository);
} else if (modelClass.isAssignableFrom(FeedbackVM.class)) { } else if (modelClass.isAssignableFrom(FeedbackVM.class)) {
return (T) new FeedbackVM(mApplication, repository); return (T) new FeedbackVM(mApplication, repository);
......
...@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity; ...@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import com.phlx.anchorcollect.entity.GenData; import com.phlx.anchorcollect.entity.GenData;
import com.phlx.anchorcollect.entity.ImmuneBatchEntity; import com.phlx.anchorcollect.entity.ImmuneBatchEntity;
import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity; import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.entity.LoginData; import com.phlx.anchorcollect.entity.LoginData;
import com.phlx.anchorcollect.entity.MedicalRecordEntity; import com.phlx.anchorcollect.entity.MedicalRecordEntity;
import com.phlx.anchorcollect.entity.PerformanceEntity; import com.phlx.anchorcollect.entity.PerformanceEntity;
...@@ -87,7 +88,7 @@ public interface ApiService { ...@@ -87,7 +88,7 @@ public interface ApiService {
*/ */
@Headers({"Content-Type: application/json", "Accept: application/json"}) @Headers({"Content-Type: application/json", "Accept: application/json"})
@POST("/api/cattleresume/add") @POST("/api/cattleresume/add")
Observable<ListResponse<Long>> uploadCattleList(@Body RequestBody body); Observable<ListResponse<InspectEntity>> uploadCattleList(@Body RequestBody body);
/** /**
* 获取性能测定列表 * 获取性能测定列表
......
...@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity; ...@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import com.phlx.anchorcollect.entity.GenData; import com.phlx.anchorcollect.entity.GenData;
import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity; import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity;
import com.phlx.anchorcollect.entity.ImmuneBatchEntity; import com.phlx.anchorcollect.entity.ImmuneBatchEntity;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.entity.LoginData; import com.phlx.anchorcollect.entity.LoginData;
import com.phlx.anchorcollect.entity.MedicalRecordEntity; import com.phlx.anchorcollect.entity.MedicalRecordEntity;
import com.phlx.anchorcollect.entity.PerformanceEntity; import com.phlx.anchorcollect.entity.PerformanceEntity;
...@@ -71,7 +72,7 @@ public interface HttpDataSource { ...@@ -71,7 +72,7 @@ public interface HttpDataSource {
/** /**
* 上传基础信息列表 * 上传基础信息列表
*/ */
Observable<ListResponse<Long>> uploadCattleList(@Body RequestBody body); Observable<ListResponse<InspectEntity>> uploadCattleList(@Body RequestBody body);
/** /**
* 获取性能测定列表 * 获取性能测定列表
......
...@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity; ...@@ -8,6 +8,7 @@ import com.phlx.anchorcollect.entity.DictEntity;
import com.phlx.anchorcollect.entity.GenData; import com.phlx.anchorcollect.entity.GenData;
import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity; import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity;
import com.phlx.anchorcollect.entity.ImmuneBatchEntity; import com.phlx.anchorcollect.entity.ImmuneBatchEntity;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.entity.LoginData; import com.phlx.anchorcollect.entity.LoginData;
import com.phlx.anchorcollect.entity.MedicalRecordEntity; import com.phlx.anchorcollect.entity.MedicalRecordEntity;
import com.phlx.anchorcollect.entity.PerformanceEntity; import com.phlx.anchorcollect.entity.PerformanceEntity;
...@@ -85,7 +86,7 @@ public class HttpDataSourceImpl implements HttpDataSource { ...@@ -85,7 +86,7 @@ public class HttpDataSourceImpl implements HttpDataSource {
} }
@Override @Override
public Observable<ListResponse<Long>> uploadCattleList(RequestBody body) { public Observable<ListResponse<InspectEntity>> uploadCattleList(RequestBody body) {
return apiService.uploadCattleList(body); return apiService.uploadCattleList(body);
} }
......
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 +
'}';
}
}
...@@ -59,7 +59,7 @@ public class RetrofitClient { ...@@ -59,7 +59,7 @@ public class RetrofitClient {
public static String port = public static String port =
""//正式 ""//正式
// "9000"//阿里云测试 // "9000"//阿里云测试
// "9000"//董 // "8099"//董
; ;
private static Context mContext = Utils.getContext(); private static Context mContext = Utils.getContext();
......
...@@ -301,21 +301,10 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin ...@@ -301,21 +301,10 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
@Override @Override
public void onChanged(String s) { public void onChanged(String s) {
scanChangeLabelDialog = new MaterialDialog.Builder(getActivity()) scanChangeLabelDialog = new MaterialDialog.Builder(getActivity())
.title("请扫描或输入原耳标") .title("请扫描或原耳标")
// .iconRes(R.drawable.ic_logo) // .iconRes(R.drawable.ic_logo)
.canceledOnTouchOutside(false) .canceledOnTouchOutside(false)
.autoDismiss(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("扫描") .neutralText("扫描")
.onNeutral(new MaterialDialog.SingleButtonCallback() { .onNeutral(new MaterialDialog.SingleButtonCallback() {
@Override @Override
...@@ -325,34 +314,61 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin ...@@ -325,34 +314,61 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
viewModel.scanRfid(); viewModel.scanRfid();
} }
}) })
.positiveText("确定")
.onPositive(new MaterialDialog.SingleButtonCallback() { .onPositive(new MaterialDialog.SingleButtonCallback() {
@Override @Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
// dialog.getActionButton(DialogAction.POSITIVE).setEnabled(false); // dialog.getActionButton(DialogAction.POSITIVE).setEnabled(false);
//高频耳标
String registrationNo = dialog.getContentView().getText().toString(); String registrationNo = dialog.getContentView().getText().toString();
String individualNo = dialog.getInputEditText().getText().toString(); if (StringUtils.isEmpty(registrationNo)) {
if (StringUtils.isEmpty(registrationNo) && StringUtils.isEmpty(individualNo)) { ToastUtils.showShort("请扫描耳标!");
ToastUtils.showShort("请扫描或者输入耳标!");
return; return;
} }
if (!StringUtils.isEmpty(registrationNo) && registrationNo.length() > 50) { if (!StringUtils.isEmpty(registrationNo) && registrationNo.length() > 50) {
ToastUtils.showShort("高频耳标长度非法,请重新扫描!"); ToastUtils.showShort("高频耳标长度非法,请重新扫描!");
return; return;
} }
if (!StringUtils.isEmpty(individualNo) && individualNo.length() > 25) { viewModel.forwardChangeLabel(registrationNo, "");
ToastUtils.showShort("可视耳标超长,请填写在25位内!");
return;
}
viewModel.forwardChangeLabel(registrationNo, individualNo);
dialog.dismiss(); dialog.dismiss();
} }
}) })
.negativeText("取消") .negativeText("输入可视耳标")
.onNegative(new MaterialDialog.SingleButtonCallback() { .onNegative(new MaterialDialog.SingleButtonCallback() {
@Override @Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss(); 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(); .show();
...@@ -615,7 +631,7 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin ...@@ -615,7 +631,7 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
Window dialogWindow = mDialog.getWindow(); Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) { 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.setGravity(Gravity.CENTER);//改成Bottom,底部显示
dialogWindow.setDimAmount(0.3f); dialogWindow.setDimAmount(0.3f);
} }
......
...@@ -420,7 +420,7 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB ...@@ -420,7 +420,7 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
Window dialogWindow = mDialog.getWindow(); Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) { 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.setGravity(Gravity.CENTER);//改成Bottom,底部显示
dialogWindow.setDimAmount(0.3f); dialogWindow.setDimAmount(0.3f);
} }
......
...@@ -538,7 +538,7 @@ public class WeightManFragment extends BaseFragment<FragmentWeightmanBinding, We ...@@ -538,7 +538,7 @@ public class WeightManFragment extends BaseFragment<FragmentWeightmanBinding, We
Window dialogWindow = mDialog.getWindow(); Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) { 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.setGravity(Gravity.CENTER);//改成Bottom,底部显示
dialogWindow.setDimAmount(0.3f); dialogWindow.setDimAmount(0.3f);
} }
......
...@@ -456,6 +456,7 @@ public class BasicsCollectVM extends BaseViewModel<Repository> implements OnInve ...@@ -456,6 +456,7 @@ public class BasicsCollectVM extends BaseViewModel<Repository> implements OnInve
@Override @Override
public void call() { public void call() {
isWeightScan = true; isWeightScan = true;
scanFunction = 0;
map = new HashMap<>(); map = new HashMap<>();
epcList.clear(); epcList.clear();
scanRfid(); scanRfid();
...@@ -798,6 +799,7 @@ public class BasicsCollectVM extends BaseViewModel<Repository> implements OnInve ...@@ -798,6 +799,7 @@ public class BasicsCollectVM extends BaseViewModel<Repository> implements OnInve
if (eventType.getAction().equals(EventTag.EVENT_WEIGHT_DATA_BASICS)) { if (eventType.getAction().equals(EventTag.EVENT_WEIGHT_DATA_BASICS)) {
Double weightNum = Double.parseDouble(eventType.getObj().toString().trim()); Double weightNum = Double.parseDouble(eventType.getObj().toString().trim());
if (weightNum > 25) { if (weightNum > 25) {
scanFunction = 0;
scanRfid(); scanRfid();
// if (isWeightScan) // if (isWeightScan)
Configs.tempWeight = weightNum; Configs.tempWeight = weightNum;
......
...@@ -4,6 +4,7 @@ import android.os.Bundle; ...@@ -4,6 +4,7 @@ import android.os.Bundle;
import android.view.KeyEvent; import android.view.KeyEvent;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.databinding.ObservableField;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProviders;
import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.DialogAction;
...@@ -13,6 +14,8 @@ import com.phlx.anchorcollect.BR; ...@@ -13,6 +14,8 @@ import com.phlx.anchorcollect.BR;
import com.phlx.anchorcollect.R; import com.phlx.anchorcollect.R;
import com.phlx.anchorcollect.data.VMFactory; import com.phlx.anchorcollect.data.VMFactory;
import com.phlx.anchorcollect.databinding.ActivityLabelChangeBinding; 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.ui.base.BaseActivity;
import com.phlx.anchorcollect.util.ImagePicker; import com.phlx.anchorcollect.util.ImagePicker;
...@@ -24,6 +27,9 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding ...@@ -24,6 +27,9 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
private String epc, noticeNo; private String epc, noticeNo;
private CattleResumeEntity entity;
private InspectEntity inspectEntity;
@Override @Override
public int initContentView(Bundle savedInstanceState) { public int initContentView(Bundle savedInstanceState) {
return R.layout.activity_label_change; return R.layout.activity_label_change;
...@@ -42,6 +48,8 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding ...@@ -42,6 +48,8 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
if (_bundle != null) { if (_bundle != null) {
epc = _bundle.getString("epc"); epc = _bundle.getString("epc");
noticeNo = _bundle.getString("noticeNo"); noticeNo = _bundle.getString("noticeNo");
entity = _bundle.getParcelable("entity");
inspectEntity = _bundle.getParcelable("inspectEntity");
} }
} }
...@@ -55,7 +63,7 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding ...@@ -55,7 +63,7 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
public void initData() { public void initData() {
super.initData(); super.initData();
viewModel.initToolbar(epc, noticeNo); viewModel.initToolbar(epc, noticeNo, entity, inspectEntity);
} }
@Override @Override
......
...@@ -20,6 +20,7 @@ import com.phlx.anchorcollect.db.DbUtil; ...@@ -20,6 +20,7 @@ import com.phlx.anchorcollect.db.DbUtil;
import com.phlx.anchorcollect.db.interf.DbIDUCallBack; import com.phlx.anchorcollect.db.interf.DbIDUCallBack;
import com.phlx.anchorcollect.db.interf.DbQueryCallBack; import com.phlx.anchorcollect.db.interf.DbQueryCallBack;
import com.phlx.anchorcollect.entity.CattleResumeEntity; import com.phlx.anchorcollect.entity.CattleResumeEntity;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.ui.base.BackBarVM; import com.phlx.anchorcollect.ui.base.BackBarVM;
import com.phlx.anchorcollect.util.TextUtil; import com.phlx.anchorcollect.util.TextUtil;
import com.uhf.structures.InventoryData; import com.uhf.structures.InventoryData;
...@@ -54,6 +55,7 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL ...@@ -54,6 +55,7 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
public ObservableField<String> epc = new ObservableField<>(); public ObservableField<String> epc = new ObservableField<>();
public ObservableField<String> noticeNo = new ObservableField<>(); public ObservableField<String> noticeNo = new ObservableField<>();
public ObservableField<InspectEntity> inspectEntity = new ObservableField<>();
private boolean isModify; private boolean isModify;
...@@ -72,19 +74,28 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL ...@@ -72,19 +74,28 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
musicId = new SparseIntArray(); musicId = new SparseIntArray();
musicId.put(1, soundPool.load(getApplication(), R.raw.readcard, 1)); musicId.put(1, soundPool.load(getApplication(), R.raw.readcard, 1));
musicId.put(2, soundPool.load(getApplication(), R.raw.failure, 1)); musicId.put(2, soundPool.load(getApplication(), R.raw.failure, 1));
uploadData = new ArrayList<>();
} }
//初始化ToolBar //初始化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)); setBackTitleText(getApplication().getResources().getString(R.string.label_change));
setSettingVisibleObservable(View.GONE); setSettingVisibleObservable(View.GONE);
setBackRightTextVisible(View.VISIBLE); setBackRightTextVisible(View.VISIBLE);
setBackRightText(getApplication().getResources().getString(R.string.save)); setBackRightText(getApplication().getResources().getString(R.string.save));
if (entity == null) {
this.epc.set(epc); this.epc.set(epc);
this.noticeNo.set(noticeNo); this.noticeNo.set(noticeNo);
getCattleResume(); getCattleResume();
} else {
this.epc.set(entity.getRegistrationNo());
this.noticeNo.set(entity.getIndividualNo());
this.entity.copyEntity(entity);
this.inspectEntity.set(inspectEntity);
}
} }
...@@ -99,7 +110,6 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL ...@@ -99,7 +110,6 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
private void initData() { private void initData() {
uploadData = new ArrayList<>();
epc.set(entity.getRegistrationNo()); epc.set(entity.getRegistrationNo());
noticeNo.set(entity.getIndividualNo()); noticeNo.set(entity.getIndividualNo());
// entity.notifyChange(); // entity.notifyChange();
......
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);
}
});
}
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();
}
}
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);
}
}
...@@ -81,10 +81,12 @@ public class LoginVM extends BaseViewModel<Repository> { ...@@ -81,10 +81,12 @@ public class LoginVM extends BaseViewModel<Repository> {
userName.set(model.getUserName()); userName.set(model.getUserName());
password.set(model.getPassword()); password.set(model.getPassword());
// userName.set("13847908112"); // userName.set("13664793087");
// password.set("Wlg8112#"); // password.set("Abgq3087@");
// userName.set("15047917803"); // userName.set("15047917803");
// password.set("Tpsq7803*"); // password.set("Tpsq7803*");
// userName.set("13847913985");
// password.set("Xlht3985*");
// userName.set("ewei"); // userName.set("ewei");
// password.set("123456"); // password.set("123456");
} }
......
...@@ -11,7 +11,12 @@ import com.afollestad.materialdialogs.MaterialDialog; ...@@ -11,7 +11,12 @@ import com.afollestad.materialdialogs.MaterialDialog;
import com.phlx.anchorcollect.R; import com.phlx.anchorcollect.R;
import com.phlx.anchorcollect.data.VMFactory; import com.phlx.anchorcollect.data.VMFactory;
import com.phlx.anchorcollect.databinding.ActivitySyncBinding; import com.phlx.anchorcollect.databinding.ActivitySyncBinding;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.ui.base.BaseActivity; 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; import me.tatarka.bindingcollectionadapter2.BR;
...@@ -52,6 +57,38 @@ public class SyncActivity extends BaseActivity<ActivitySyncBinding,SyncVM> { ...@@ -52,6 +57,38 @@ public class SyncActivity extends BaseActivity<ActivitySyncBinding,SyncVM> {
showTip(s); 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) { private void showTip(String content) {
......
...@@ -28,11 +28,13 @@ import com.phlx.anchorcollect.entity.CattleResumeEntity; ...@@ -28,11 +28,13 @@ import com.phlx.anchorcollect.entity.CattleResumeEntity;
import com.phlx.anchorcollect.entity.ErrorEntity; import com.phlx.anchorcollect.entity.ErrorEntity;
import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity; import com.phlx.anchorcollect.entity.ImmuneBatchDetailEntity;
import com.phlx.anchorcollect.entity.ImmuneBatchEntity; import com.phlx.anchorcollect.entity.ImmuneBatchEntity;
import com.phlx.anchorcollect.entity.InspectEntity;
import com.phlx.anchorcollect.entity.MedicalRecordEntity; import com.phlx.anchorcollect.entity.MedicalRecordEntity;
import com.phlx.anchorcollect.entity.PerformanceEntity; import com.phlx.anchorcollect.entity.PerformanceEntity;
import com.phlx.anchorcollect.entity.WeightManEntity; import com.phlx.anchorcollect.entity.WeightManEntity;
import com.phlx.anchorcollect.params.CollectResponse; import com.phlx.anchorcollect.params.CollectResponse;
import com.phlx.anchorcollect.params.ListResponse; 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.ui.login.LoginActivity;
import com.phlx.anchorcollect.util.BaseImageUtils; import com.phlx.anchorcollect.util.BaseImageUtils;
...@@ -69,6 +71,9 @@ public class SyncVM extends BaseViewModel<Repository> { ...@@ -69,6 +71,9 @@ public class SyncVM extends BaseViewModel<Repository> {
//错误提示 //错误提示
public SingleLiveEvent<String> errorEvent = new SingleLiveEvent<>(); public SingleLiveEvent<String> errorEvent = new SingleLiveEvent<>();
//耳标重复提示
public SingleLiveEvent<ArrayList<InspectEntity>> inspectEvent = new SingleLiveEvent<>();
public ObservableField<String> cattleresumeCount = new ObservableField<>("0"); public ObservableField<String> cattleresumeCount = new ObservableField<>("0");
public ObservableField<String> performanceCount = new ObservableField<>("0"); public ObservableField<String> performanceCount = new ObservableField<>("0");
public ObservableField<String> weightManCount = new ObservableField<>("0"); public ObservableField<String> weightManCount = new ObservableField<>("0");
...@@ -371,7 +376,7 @@ public class SyncVM extends BaseViewModel<Repository> { ...@@ -371,7 +376,7 @@ public class SyncVM extends BaseViewModel<Repository> {
.compose(RxUtils.schedulersTransformer()) .compose(RxUtils.schedulersTransformer())
.compose(RxUtils.exceptionTransformer()) .compose(RxUtils.exceptionTransformer())
// .doOnSubscribe(disposable -> showDialog("正在同步性能测定数据...")) // .doOnSubscribe(disposable -> showDialog("正在同步性能测定数据..."))
.subscribe((Consumer<ListResponse<Long>>) response -> { .subscribe((Consumer<ListResponse<InspectEntity>>) response -> {
// dismissDialog(); // dismissDialog();
KLog.e("uploadBaseArchives", response.toString()); KLog.e("uploadBaseArchives", response.toString());
...@@ -383,8 +388,8 @@ public class SyncVM extends BaseViewModel<Repository> { ...@@ -383,8 +388,8 @@ public class SyncVM extends BaseViewModel<Repository> {
if (response.getCode() == 0) { if (response.getCode() == 0) {
if (response.getData() != null && response.getData().size() > 0) { if (response.getData() != null && response.getData().size() > 0) {
for (CattleResumeEntity pe : cattleResumeEntities) { for (CattleResumeEntity pe : cattleResumeEntities) {
for (Long ids : response.getData()) { for (InspectEntity inspectEntity : response.getData()) {
if (pe.getUnid().equals(ids)) { if (pe.getUnid().toString().equals(inspectEntity.getUnid())) {
pe.setUploadStatus("1"); pe.setUploadStatus("1");
break; break;
} }
...@@ -403,6 +408,8 @@ public class SyncVM extends BaseViewModel<Repository> { ...@@ -403,6 +408,8 @@ public class SyncVM extends BaseViewModel<Repository> {
} }
} }
}).updateAsyncBatch(CattleResumeEntity.class, cattleResumeEntities); }).updateAsyncBatch(CattleResumeEntity.class, cattleResumeEntities);
}else if(response.getCode() == 301){
inspectEvent.setValue((ArrayList<InspectEntity>)response.getData());
} else if (response.getCode() == 401) { } else if (response.getCode() == 401) {
dismissDialog(); dismissDialog();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
......
<?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
...@@ -27,10 +27,13 @@ ...@@ -27,10 +27,13 @@
<string name="breeding_record">配种记录</string> <string name="breeding_record">配种记录</string>
<string name="breeding_record_detail">配种详情</string> <string name="breeding_record_detail">配种详情</string>
<string name="label_change">标签换绑</string> <string name="label_change">标签换绑</string>
<string name="label_inspect">标签重复记录</string>
<string name="error_data_upload">错误上报</string> <string name="error_data_upload">错误上报</string>
<string name="one_click_sync">一键同步</string> <string name="one_click_sync">一键同步</string>
<string name="registration_no">电子耳标</string>
<string name="individual_no">可视耳标</string>
<string name="jobNum">工号:</string> <string name="jobNum">工号:</string>
......
...@@ -85,6 +85,21 @@ ...@@ -85,6 +85,21 @@
<item name="android:dialogTitle">@null</item> <item name="android:dialogTitle">@null</item>
<!--点击 dialog Activity 周围是否关闭弹窗 true 关闭(默认为true) false 为不关闭--> <!--点击 dialog Activity 周围是否关闭弹窗 true 关闭(默认为true) false 为不关闭-->
<item name="android:windowCloseOnTouchOutside">false</item> <item name="android:windowCloseOnTouchOutside">false</item>
</style> </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> </resources>
...@@ -63,6 +63,12 @@ dependencies { ...@@ -63,6 +63,12 @@ dependencies {
api (rootProject.ext.dependencies.glide){ api (rootProject.ext.dependencies.glide){
exclude group: 'com.android.support' 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"] annotationProcessor rootProject.ext.dependencies["glide-compiler"]
//recyclerview的databinding套装 //recyclerview的databinding套装
api(rootProject.ext.dependencies.bindingcollectionadapter) { api(rootProject.ext.dependencies.bindingcollectionadapter) {
......
package me.goldze.mvvmhabit; package me.goldze.mvvmhabit;
import android.content.Context; import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import static org.junit.Assert.*; 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. * Instrumentation test, which will execute on an Android device.
* *
......
package com.lingber.mycontrol; package com.lingber.mycontrol;
import android.content.Context; import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
/** /**
* Instrumentation test, which will execute on an Android device. * Instrumentation test, which will execute on an Android device.
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment