Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
A
AnchorCollect_p
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_p
Commits
e65e4db2
Commit
e65e4db2
authored
Oct 11, 2024
by
hywang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.增加基础信息上传验证标签重复并修改功能。
parent
09b7a290
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
597 additions
and
24 deletions
+597
-24
build.gradle
app/build.gradle
+3
-2
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+5
-0
Repository.java
...c/main/java/com/phlx/anchorcollect_p/data/Repository.java
+2
-1
VMFactory.java
...rc/main/java/com/phlx/anchorcollect_p/data/VMFactory.java
+3
-0
ApiService.java
...n/java/com/phlx/anchorcollect_p/data/http/ApiService.java
+2
-1
HttpDataSource.java
...va/com/phlx/anchorcollect_p/data/http/HttpDataSource.java
+2
-1
HttpDataSourceImpl.java
...om/phlx/anchorcollect_p/data/http/HttpDataSourceImpl.java
+2
-1
InspectEntity.java
...n/java/com/phlx/anchorcollect_p/entity/InspectEntity.java
+75
-0
RetrofitClient.java
...ain/java/com/phlx/anchorcollect_p/net/RetrofitClient.java
+1
-1
BasicsCollectFragment.java
...lx/anchorcollect_p/ui/fragment/BasicsCollectFragment.java
+1
-1
LabelChangeActivity.java
...x/anchorcollect_p/ui/labelchange/LabelChangeActivity.java
+8
-1
LabelChangeVM.java
...om/phlx/anchorcollect_p/ui/labelchange/LabelChangeVM.java
+15
-5
ExchangeItem.java
...hlx/anchorcollect_p/ui/labelchange/list/ExchangeItem.java
+57
-0
ExchangeListActivity.java
...orcollect_p/ui/labelchange/list/ExchangeListActivity.java
+58
-0
ExchangeListVM.java
...x/anchorcollect_p/ui/labelchange/list/ExchangeListVM.java
+94
-0
LoginVM.java
.../main/java/com/phlx/anchorcollect_p/ui/login/LoginVM.java
+2
-1
SyncActivity.java
...ava/com/phlx/anchorcollect_p/ui/setting/SyncActivity.java
+34
-0
SyncVM.java
...main/java/com/phlx/anchorcollect_p/ui/setting/SyncVM.java
+10
-3
activity_exchange_list.xml
app/src/main/res/layout/activity_exchange_list.xml
+51
-0
item_exchange_label.xml
app/src/main/res/layout/item_exchange_label.xml
+138
-0
strings.xml
app/src/main/res/values/strings.xml
+4
-0
styles.xml
app/src/main/res/values/styles.xml
+14
-0
build.gradle
mvvmhabit/build.gradle
+6
-0
ExampleInstrumentedTest.java
...est/java/me/goldze/mvvmhabit/ExampleInstrumentedTest.java
+4
-2
ExampleUnitTest.java
...it/src/test/java/me/goldze/mvvmhabit/ExampleUnitTest.java
+3
-2
ExampleInstrumentedTest.java
...t/java/com/lingber/mycontrol/ExampleInstrumentedTest.java
+3
-2
No files found.
app/build.gradle
View file @
e65e4db2
...
@@ -9,8 +9,8 @@ android {
...
@@ -9,8 +9,8 @@ android {
applicationId
"com.phlx.anchorcollect_p"
applicationId
"com.phlx.anchorcollect_p"
minSdkVersion
21
minSdkVersion
21
targetSdkVersion
29
targetSdkVersion
29
versionCode
19
versionCode
20
versionName
"2.
1.3
"
versionName
"2.
2.0
"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
...
@@ -111,4 +111,5 @@ dependencies {
...
@@ -111,4 +111,5 @@ dependencies {
//表格
//表格
// implementation 'com.github.Lingber:Android_DataGridView:1.01'
// implementation 'com.github.Lingber:Android_DataGridView:1.01'
}
}
\ No newline at end of file
app/src/main/AndroidManifest.xml
View file @
e65e4db2
...
@@ -97,6 +97,11 @@
...
@@ -97,6 +97,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"
...
...
app/src/main/java/com/phlx/anchorcollect_p/data/Repository.java
View file @
e65e4db2
...
@@ -14,6 +14,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
...
@@ -14,6 +14,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
...
@@ -90,7 +91,7 @@ public class Repository extends BaseModel implements HttpDataSource, LocalDataSo
...
@@ -90,7 +91,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
);
}
}
...
...
app/src/main/java/com/phlx/anchorcollect_p/data/VMFactory.java
View file @
e65e4db2
...
@@ -19,6 +19,7 @@ import com.phlx.anchorcollect_p.ui.fragment.vm.WeightManVM;
...
@@ -19,6 +19,7 @@ import com.phlx.anchorcollect_p.ui.fragment.vm.WeightManVM;
import
com.phlx.anchorcollect_p.ui.home.HomeVM
;
import
com.phlx.anchorcollect_p.ui.home.HomeVM
;
import
com.phlx.anchorcollect_p.ui.info.CattleVM
;
import
com.phlx.anchorcollect_p.ui.info.CattleVM
;
import
com.phlx.anchorcollect_p.ui.labelchange.LabelChangeVM
;
import
com.phlx.anchorcollect_p.ui.labelchange.LabelChangeVM
;
import
com.phlx.anchorcollect_p.ui.labelchange.list.ExchangeListVM
;
import
com.phlx.anchorcollect_p.ui.login.LoginVM
;
import
com.phlx.anchorcollect_p.ui.login.LoginVM
;
import
com.phlx.anchorcollect_p.ui.main.MainVM
;
import
com.phlx.anchorcollect_p.ui.main.MainVM
;
import
com.phlx.anchorcollect_p.ui.setting.SettingVM
;
import
com.phlx.anchorcollect_p.ui.setting.SettingVM
;
...
@@ -108,6 +109,8 @@ public class VMFactory extends ViewModelProvider.NewInstanceFactory {
...
@@ -108,6 +109,8 @@ public class VMFactory extends ViewModelProvider.NewInstanceFactory {
return
(
T
)
new
SettingVM
(
mApplication
,
repository
);
return
(
T
)
new
SettingVM
(
mApplication
,
repository
);
}
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
);
...
...
app/src/main/java/com/phlx/anchorcollect_p/data/http/ApiService.java
View file @
e65e4db2
...
@@ -10,6 +10,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
...
@@ -10,6 +10,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
...
@@ -89,7 +90,7 @@ public interface ApiService {
...
@@ -89,7 +90,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
);
/**
/**
* 获取性能测定列表
* 获取性能测定列表
...
...
app/src/main/java/com/phlx/anchorcollect_p/data/http/HttpDataSource.java
View file @
e65e4db2
...
@@ -10,6 +10,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
...
@@ -10,6 +10,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
...
@@ -67,7 +68,7 @@ public interface HttpDataSource {
...
@@ -67,7 +68,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_p/data/http/HttpDataSourceImpl.java
View file @
e65e4db2
...
@@ -10,6 +10,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
...
@@ -10,6 +10,7 @@ import com.phlx.anchorcollect_p.entity.FeedbackEntity;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.GenData
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.LoginData
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
...
@@ -82,7 +83,7 @@ public class HttpDataSourceImpl implements HttpDataSource {
...
@@ -82,7 +83,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
);
}
}
...
...
app/src/main/java/com/phlx/anchorcollect_p/entity/InspectEntity.java
0 → 100644
View file @
e65e4db2
package
com
.
phlx
.
anchorcollect_p
.
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_p/net/RetrofitClient.java
View file @
e65e4db2
...
@@ -58,7 +58,7 @@ public class RetrofitClient {
...
@@ -58,7 +58,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
();
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/BasicsCollectFragment.java
View file @
e65e4db2
...
@@ -582,7 +582,7 @@ public class BasicsCollectFragment extends BaseFragment<FragmentBasicsCollectBin
...
@@ -582,7 +582,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
);
}
}
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/labelchange/LabelChangeActivity.java
View file @
e65e4db2
...
@@ -14,6 +14,8 @@ import com.phlx.anchorcollect_p.BR;
...
@@ -14,6 +14,8 @@ import com.phlx.anchorcollect_p.BR;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.data.VMFactory
;
import
com.phlx.anchorcollect_p.data.VMFactory
;
import
com.phlx.anchorcollect_p.databinding.ActivityLabelChangeBinding
;
import
com.phlx.anchorcollect_p.databinding.ActivityLabelChangeBinding
;
import
com.phlx.anchorcollect_p.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.rfid.ModuleManager
;
import
com.phlx.anchorcollect_p.rfid.ModuleManager
;
import
com.phlx.anchorcollect_p.ui.base.BaseActivity
;
import
com.phlx.anchorcollect_p.ui.base.BaseActivity
;
import
com.phlx.anchorcollect_p.util.ImagePicker
;
import
com.phlx.anchorcollect_p.util.ImagePicker
;
...
@@ -26,6 +28,9 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
...
@@ -26,6 +28,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
;
...
@@ -44,6 +49,8 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
...
@@ -44,6 +49,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"
);
}
}
}
}
...
@@ -57,7 +64,7 @@ public class LabelChangeActivity extends BaseActivity<ActivityLabelChangeBinding
...
@@ -57,7 +64,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
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/labelchange/LabelChangeVM.java
View file @
e65e4db2
...
@@ -21,6 +21,7 @@ import com.phlx.anchorcollect_p.db.DbUtil;
...
@@ -21,6 +21,7 @@ import com.phlx.anchorcollect_p.db.DbUtil;
import
com.phlx.anchorcollect_p.db.interf.DbIDUCallBack
;
import
com.phlx.anchorcollect_p.db.interf.DbIDUCallBack
;
import
com.phlx.anchorcollect_p.db.interf.DbQueryCallBack
;
import
com.phlx.anchorcollect_p.db.interf.DbQueryCallBack
;
import
com.phlx.anchorcollect_p.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect_p.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.rfid.ModuleManager
;
import
com.phlx.anchorcollect_p.rfid.ModuleManager
;
import
com.phlx.anchorcollect_p.ui.base.BackBarVM
;
import
com.phlx.anchorcollect_p.ui.base.BackBarVM
;
import
com.phlx.anchorcollect_p.ui.login.LoginActivity
;
import
com.phlx.anchorcollect_p.ui.login.LoginActivity
;
...
@@ -62,6 +63,7 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
...
@@ -62,6 +63,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
;
...
@@ -80,19 +82,28 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
...
@@ -80,19 +82,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
));
this
.
epc
.
set
(
epc
);
if
(
entity
==
null
)
{
this
.
noticeNo
.
set
(
noticeNo
);
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
();
}
}
...
@@ -107,7 +118,6 @@ public class LabelChangeVM extends BackBarVM<Repository> implements OnInventoryL
...
@@ -107,7 +118,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();
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/labelchange/list/ExchangeItem.java
0 → 100644
View file @
e65e4db2
package
com
.
phlx
.
anchorcollect_p
.
ui
.
labelchange
.
list
;
import
android.os.Bundle
;
import
androidx.annotation.NonNull
;
import
androidx.databinding.ObservableField
;
import
com.phlx.anchorcollect_p.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.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_p/ui/labelchange/list/ExchangeListActivity.java
0 → 100644
View file @
e65e4db2
package
com
.
phlx
.
anchorcollect_p
.
ui
.
labelchange
.
list
;
import
android.os.Bundle
;
import
androidx.lifecycle.ViewModelProviders
;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.data.VMFactory
;
import
com.phlx.anchorcollect_p.databinding.ActivityExchangeListBinding
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.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_p/ui/labelchange/list/ExchangeListVM.java
0 → 100644
View file @
e65e4db2
package
com
.
phlx
.
anchorcollect_p
.
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_p.BR
;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.data.Repository
;
import
com.phlx.anchorcollect_p.db.DbUtil
;
import
com.phlx.anchorcollect_p.db.gen.CattleResumeEntityDao
;
import
com.phlx.anchorcollect_p.db.interf.DbQueryCallBack
;
import
com.phlx.anchorcollect_p.entity.CattleResumeEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.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_p/ui/login/LoginVM.java
View file @
e65e4db2
...
@@ -81,7 +81,8 @@ public class LoginVM extends BaseViewModel<Repository> {
...
@@ -81,7 +81,8 @@ public class LoginVM extends BaseViewModel<Repository> {
userName
.
set
(
model
.
getUserName
());
userName
.
set
(
model
.
getUserName
());
password
.
set
(
model
.
getPassword
());
password
.
set
(
model
.
getPassword
());
// userName.set("13614799150");
// userName.set("13664793087");
// password.set("Abgq3087@");
// userName.set("15047917803");
// userName.set("15047917803");
// password.set("Tpsq7803*");
// password.set("Tpsq7803*");
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/setting/SyncActivity.java
View file @
e65e4db2
...
@@ -12,7 +12,11 @@ import com.phlx.anchorcollect_p.BR;
...
@@ -12,7 +12,11 @@ import com.phlx.anchorcollect_p.BR;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.data.VMFactory
;
import
com.phlx.anchorcollect_p.data.VMFactory
;
import
com.phlx.anchorcollect_p.databinding.ActivitySyncBinding
;
import
com.phlx.anchorcollect_p.databinding.ActivitySyncBinding
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.ui.base.BaseActivity
;
import
com.phlx.anchorcollect_p.ui.base.BaseActivity
;
import
com.phlx.anchorcollect_p.ui.labelchange.list.ExchangeListActivity
;
import
java.util.ArrayList
;
public
class
SyncActivity
extends
BaseActivity
<
ActivitySyncBinding
,
SyncVM
>
{
public
class
SyncActivity
extends
BaseActivity
<
ActivitySyncBinding
,
SyncVM
>
{
@Override
@Override
...
@@ -51,6 +55,36 @@ public class SyncActivity extends BaseActivity<ActivitySyncBinding,SyncVM> {
...
@@ -51,6 +55,36 @@ 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
)
{
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/setting/SyncVM.java
View file @
e65e4db2
...
@@ -28,6 +28,7 @@ import com.phlx.anchorcollect_p.entity.CattleResumeEntity;
...
@@ -28,6 +28,7 @@ import com.phlx.anchorcollect_p.entity.CattleResumeEntity;
import
com.phlx.anchorcollect_p.entity.ErrorEntity
;
import
com.phlx.anchorcollect_p.entity.ErrorEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchDetailEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.ImmuneBatchEntity
;
import
com.phlx.anchorcollect_p.entity.InspectEntity
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.MedicalRecordEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
import
com.phlx.anchorcollect_p.entity.PerformanceEntity
;
import
com.phlx.anchorcollect_p.entity.WeightManEntity
;
import
com.phlx.anchorcollect_p.entity.WeightManEntity
;
...
@@ -69,6 +70,9 @@ public class SyncVM extends BaseViewModel<Repository> {
...
@@ -69,6 +70,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"
);
...
@@ -375,7 +379,7 @@ public class SyncVM extends BaseViewModel<Repository> {
...
@@ -375,7 +379,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
());
...
@@ -387,8 +391,9 @@ public class SyncVM extends BaseViewModel<Repository> {
...
@@ -387,8 +391,9 @@ 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
))
{
Log
.
e
(
"why"
,
"why:pe.getUnid():"
+
pe
.
getUnid
()+
"-inspectEntity.getUnid():"
+
inspectEntity
.
getUnid
());
if
(
pe
.
getUnid
().
toString
().
equals
(
inspectEntity
.
getUnid
()))
{
pe
.
setUploadStatus
(
"1"
);
pe
.
setUploadStatus
(
"1"
);
break
;
break
;
}
}
...
@@ -407,6 +412,8 @@ public class SyncVM extends BaseViewModel<Repository> {
...
@@ -407,6 +412,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
();
...
...
app/src/main/res/layout/activity_exchange_list.xml
0 → 100644
View file @
e65e4db2
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:binding=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
>
<data>
<import
type=
"me.tatarka.bindingcollectionadapter2.BindingRecyclerViewAdapter"
/>
<import
type=
"me.goldze.mvvmhabit.binding.viewadapter.recyclerview.LayoutManagers"
/>
<import
type=
"me.goldze.mvvmhabit.binding.viewadapter.recyclerview.LineManagers"
/>
<variable
name=
"viewModel"
type=
"com.phlx.anchorcollect_p.ui.labelchange.list.ExchangeListVM"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ui.product.activity.ProductInfoListActivity"
>
<include
android:id=
"@+id/include"
layout=
"@layout/layout_back_bar"
binding:backBarVM=
"@{viewModel.backBarVM}"
/>
<LinearLayout
android:id=
"@+id/RefreshLayout"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
binding:layout_constraintBottom_toBottomOf=
"parent"
binding:layout_constraintTop_toBottomOf=
"@+id/include"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/list"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginStart=
"@dimen/dp_15"
android:layout_marginEnd=
"@dimen/dp_15"
binding:adapter=
"@{viewModel.adapter}"
binding:itemBinding=
"@{viewModel.itemBinding}"
binding:items=
"@{viewModel.observableList}"
binding:layoutManager=
"@{LayoutManagers.linear()}"
binding:lineManager=
"@{LineManagers.horizontal()}"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
app/src/main/res/layout/item_exchange_label.xml
0 → 100644
View file @
e65e4db2
<?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_p.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 @
e65e4db2
...
@@ -28,11 +28,15 @@
...
@@ -28,11 +28,15 @@
<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=
"one_click_sync"
>
一键同步
</string>
<string
name=
"one_click_sync"
>
一键同步
</string>
<string
name=
"error_data_upload"
>
错误上报
</string>
<string
name=
"error_data_upload"
>
错误上报
</string>
<string
name=
"registration_no"
>
电子耳标
</string>
<string
name=
"individual_no"
>
可视耳标
</string>
<string
name=
"jobNum"
>
工号:
</string>
<string
name=
"jobNum"
>
工号:
</string>
...
...
app/src/main/res/values/styles.xml
View file @
e65e4db2
...
@@ -87,4 +87,18 @@
...
@@ -87,4 +87,18 @@
<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>
mvvmhabit/build.gradle
View file @
e65e4db2
...
@@ -60,6 +60,12 @@ dependencies {
...
@@ -60,6 +60,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
)
{
...
...
mvvmhabit/src/androidTest/java/me/goldze/mvvmhabit/ExampleInstrumentedTest.java
View file @
e65e4db2
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.
*
*
...
...
mvvmhabit/src/test/java/me/goldze/mvvmhabit/ExampleUnitTest.java
View file @
e65e4db2
package
me
.
goldze
.
mvvmhabit
;
package
me
.
goldze
.
mvvmhabit
;
import
org.junit.Test
;
import
static
org
.
junit
.
Assert
.*;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
org.junit.Test
;
/**
/**
* Example local unit test, which will execute on the development machine (host).
* Example local unit test, which will execute on the development machine (host).
...
...
mycontrol/src/androidTest/java/com/lingber/mycontrol/ExampleInstrumentedTest.java
View file @
e65e4db2
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.
*
*
...
...
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