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
8e191b0a
Commit
8e191b0a
authored
Oct 29, 2024
by
hywang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.重新做配种模块逻辑,增加冻精搜索页面。
parent
e0d1879c
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
929 additions
and
152 deletions
+929
-152
build.gradle
app/build.gradle
+3
-3
BreedingRecordDetailEntityDao.java
...anchorcollect_p/db/gen/BreedingRecordDetailEntityDao.java
+134
-92
DaoMaster.java
.../main/java/com/phlx/anchorcollect_p/db/gen/DaoMaster.java
+2
-2
BreedingRecordDetailEntity.java
...lx/anchorcollect_p/entity/BreedingRecordDetailEntity.java
+65
-22
BreedingRecordFragment.java
...x/anchorcollect_p/ui/fragment/BreedingRecordFragment.java
+86
-1
CollectGridItem.java
...hlx/anchorcollect_p/ui/fragment/list/CollectGridItem.java
+16
-15
SearchFrozenSemenFragment.java
...llect_p/ui/fragment/search/SearchFrozenSemenFragment.java
+311
-0
FrozenSemenAdapter.java
...lect_p/ui/fragment/search/adapter/FrozenSemenAdapter.java
+75
-0
CircularRevealAnim.java
...collect_p/ui/fragment/search/anim/CircularRevealAnim.java
+102
-0
IOnFrozenSemenItemClickListener.java
...agment/search/interf/IOnFrozenSemenItemClickListener.java
+12
-0
IOnSearchFrozenSemenClickListener.java
...ment/search/interf/IOnSearchFrozenSemenClickListener.java
+14
-0
BreedingRecordVM.java
...phlx/anchorcollect_p/ui/fragment/vm/BreedingRecordVM.java
+12
-12
LoginVM.java
.../main/java/com/phlx/anchorcollect_p/ui/login/LoginVM.java
+5
-5
dialog_search.xml
app/src/main/res/layout/dialog_search.xml
+63
-0
item_search.xml
app/src/main/res/layout/item_search.xml
+29
-0
No files found.
app/build.gradle
View file @
8e191b0a
...
...
@@ -9,8 +9,8 @@ android {
applicationId
"com.phlx.anchorcollect_p"
minSdkVersion
21
targetSdkVersion
29
versionCode
2
1
versionName
"2.
2
.1"
versionCode
2
2
versionName
"2.
3
.1"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
...
...
@@ -50,7 +50,7 @@ android {
}
greendao
{
schemaVersion
5
//数据库版本号
schemaVersion
6
//数据库版本号
daoPackage
'com.phlx.anchorcollect_p.db.gen'
targetGenDir
'src/main/java'
}
...
...
app/src/main/java/com/phlx/anchorcollect_p/db/gen/BreedingRecordDetailEntityDao.java
View file @
8e191b0a
This diff is collapsed.
Click to expand it.
app/src/main/java/com/phlx/anchorcollect_p/db/gen/DaoMaster.java
View file @
8e191b0a
...
...
@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version
5
): knows all DAOs.
* Master of DAO (schema version
6
): knows all DAOs.
*/
public
class
DaoMaster
extends
AbstractDaoMaster
{
public
static
final
int
SCHEMA_VERSION
=
5
;
public
static
final
int
SCHEMA_VERSION
=
6
;
/** Creates underlying database table using DAOs. */
public
static
void
createAllTables
(
Database
db
,
boolean
ifNotExists
)
{
...
...
app/src/main/java/com/phlx/anchorcollect_p/entity/BreedingRecordDetailEntity.java
View file @
8e191b0a
...
...
@@ -35,15 +35,20 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
private
String
matingStyle
;
/**
*
种畜耳标
号
*
冻精注册
号
*/
private
Lo
ng
cattleresumeId
;
private
Stri
ng
cattleresumeId
;
/**
* 冻精批次号
*/
private
String
frozenSemenBatch
;
/**
* 其它
*/
private
String
other
;
/**
* 配种日期
*/
...
...
@@ -69,13 +74,23 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
*/
private
String
pregnancy
;
/**
* 饲养品种(利木赞;西门塔尔等)
*/
private
String
raiseVarieties
;
/**
* 所属种畜站
*/
private
String
breedingPlantId
;
/**
* 部门id
*/
private
Long
deptId
;
/**
*
部门id
*
临时属性 和主表 移动端上传所需(验证数据使用)
*/
private
Long
caId
;
...
...
@@ -116,17 +131,16 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
fUnid
=
in
.
readLong
();
}
matingStyle
=
in
.
readString
();
if
(
in
.
readByte
()
==
0
)
{
cattleresumeId
=
null
;
}
else
{
cattleresumeId
=
in
.
readLong
();
}
cattleresumeId
=
in
.
readString
();
frozenSemenBatch
=
in
.
readString
();
other
=
in
.
readString
();
matingDate
=
in
.
readString
();
isReturn
=
in
.
readString
();
backLoveDate
=
in
.
readString
();
dueDate
=
in
.
readString
();
pregnancy
=
in
.
readString
();
raiseVarieties
=
in
.
readString
();
breedingPlantId
=
in
.
readString
();
if
(
in
.
readByte
()
==
0
)
{
deptId
=
null
;
}
else
{
...
...
@@ -146,21 +160,25 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
remark
=
in
.
readString
();
}
@Generated
(
hash
=
1961071723
)
public
BreedingRecordDetailEntity
(
Long
unid
,
Long
fUnid
,
String
matingStyle
,
Long
cattleresumeId
,
String
frozenSemenBatch
,
String
matingDate
,
String
isReturn
,
String
backLoveDate
,
String
dueDate
,
String
pregnancy
,
Long
deptId
,
Long
caId
,
String
uploadStatus
,
String
searchValue
,
String
createBy
,
String
createTime
,
String
updateBy
,
String
updateTime
,
String
remark
)
{
@Generated
(
hash
=
2018405645
)
public
BreedingRecordDetailEntity
(
Long
unid
,
Long
fUnid
,
String
matingStyle
,
String
cattleresumeId
,
String
frozenSemenBatch
,
String
other
,
String
matingDate
,
String
isReturn
,
String
backLoveDate
,
String
dueDate
,
String
pregnancy
,
String
raiseVarieties
,
String
breedingPlantId
,
Long
deptId
,
Long
caId
,
String
uploadStatus
,
String
searchValue
,
String
createBy
,
String
createTime
,
String
updateBy
,
String
updateTime
,
String
remark
)
{
this
.
unid
=
unid
;
this
.
fUnid
=
fUnid
;
this
.
matingStyle
=
matingStyle
;
this
.
cattleresumeId
=
cattleresumeId
;
this
.
frozenSemenBatch
=
frozenSemenBatch
;
this
.
other
=
other
;
this
.
matingDate
=
matingDate
;
this
.
isReturn
=
isReturn
;
this
.
backLoveDate
=
backLoveDate
;
this
.
dueDate
=
dueDate
;
this
.
pregnancy
=
pregnancy
;
this
.
raiseVarieties
=
raiseVarieties
;
this
.
breedingPlantId
=
breedingPlantId
;
this
.
deptId
=
deptId
;
this
.
caId
=
caId
;
this
.
uploadStatus
=
uploadStatus
;
...
...
@@ -187,18 +205,16 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
dest
.
writeLong
(
fUnid
);
}
dest
.
writeString
(
matingStyle
);
if
(
cattleresumeId
==
null
)
{
dest
.
writeByte
((
byte
)
0
);
}
else
{
dest
.
writeByte
((
byte
)
1
);
dest
.
writeLong
(
cattleresumeId
);
}
dest
.
writeString
(
cattleresumeId
);
dest
.
writeString
(
frozenSemenBatch
);
dest
.
writeString
(
other
);
dest
.
writeString
(
matingDate
);
dest
.
writeString
(
isReturn
);
dest
.
writeString
(
backLoveDate
);
dest
.
writeString
(
dueDate
);
dest
.
writeString
(
pregnancy
);
dest
.
writeString
(
raiseVarieties
);
dest
.
writeString
(
breedingPlantId
);
if
(
deptId
==
null
)
{
dest
.
writeByte
((
byte
)
0
);
}
else
{
...
...
@@ -261,11 +277,11 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
this
.
matingStyle
=
matingStyle
;
}
public
Lo
ng
getCattleresumeId
()
{
public
Stri
ng
getCattleresumeId
()
{
return
cattleresumeId
;
}
public
void
setCattleresumeId
(
Lo
ng
cattleresumeId
)
{
public
void
setCattleresumeId
(
Stri
ng
cattleresumeId
)
{
this
.
cattleresumeId
=
cattleresumeId
;
}
...
...
@@ -277,6 +293,14 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
this
.
frozenSemenBatch
=
frozenSemenBatch
;
}
public
String
getOther
()
{
return
other
;
}
public
void
setOther
(
String
other
)
{
this
.
other
=
other
;
}
public
String
getMatingDate
()
{
return
matingDate
;
}
...
...
@@ -317,6 +341,22 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
this
.
pregnancy
=
pregnancy
;
}
public
String
getRaiseVarieties
()
{
return
raiseVarieties
;
}
public
void
setRaiseVarieties
(
String
raiseVarieties
)
{
this
.
raiseVarieties
=
raiseVarieties
;
}
public
String
getBreedingPlantId
()
{
return
breedingPlantId
;
}
public
void
setBreedingPlantId
(
String
breedingPlantId
)
{
this
.
breedingPlantId
=
breedingPlantId
;
}
public
Long
getDeptId
()
{
return
deptId
;
}
...
...
@@ -395,13 +435,16 @@ public class BreedingRecordDetailEntity extends BaseObservable implements Parcel
"unid="
+
unid
+
", fUnid="
+
fUnid
+
", matingStyle='"
+
matingStyle
+
'\''
+
", cattleresumeId=
"
+
cattleresumeId
+
", cattleresumeId=
'"
+
cattleresumeId
+
'\''
+
", frozenSemenBatch='"
+
frozenSemenBatch
+
'\''
+
", other='"
+
other
+
'\''
+
", matingDate='"
+
matingDate
+
'\''
+
", isReturn='"
+
isReturn
+
'\''
+
", backLoveDate='"
+
backLoveDate
+
'\''
+
", dueDate='"
+
dueDate
+
'\''
+
", pregnancy='"
+
pregnancy
+
'\''
+
", raiseVarieties='"
+
raiseVarieties
+
'\''
+
", breedingPlantId='"
+
breedingPlantId
+
'\''
+
", deptId="
+
deptId
+
", caId="
+
caId
+
", uploadStatus='"
+
uploadStatus
+
'\''
+
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/BreedingRecordFragment.java
View file @
8e191b0a
...
...
@@ -34,6 +34,8 @@ import com.phlx.anchorcollect_p.databinding.FragmentBreedingRecordBinding;
import
com.phlx.anchorcollect_p.entity.BreedingRecordDetailEntity
;
import
com.phlx.anchorcollect_p.entity.DictEntity
;
import
com.phlx.anchorcollect_p.entity.GenTableColumn
;
import
com.phlx.anchorcollect_p.ui.fragment.search.SearchFrozenSemenFragment
;
import
com.phlx.anchorcollect_p.ui.fragment.search.interf.IOnSearchFrozenSemenClickListener
;
import
com.phlx.anchorcollect_p.ui.fragment.vm.BreedingRecordVM
;
import
com.phlx.anchorcollect_p.util.LoginInfoUtils
;
import
com.phlx.anchorcollect_p.util.ImagePicker
;
...
...
@@ -41,8 +43,10 @@ import com.phlx.anchorcollect_p.util.StringUtil;
import
com.phlx.anchorcollect_p.widget.SpaceItemDecoration
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -50,7 +54,7 @@ import io.reactivex.functions.Consumer;
import
me.goldze.mvvmhabit.base.BaseFragment
;
import
me.goldze.mvvmhabit.utils.ToastUtils
;
public
class
BreedingRecordFragment
extends
BaseFragment
<
FragmentBreedingRecordBinding
,
BreedingRecordVM
>
{
public
class
BreedingRecordFragment
extends
BaseFragment
<
FragmentBreedingRecordBinding
,
BreedingRecordVM
>
implements
IOnSearchFrozenSemenClickListener
{
private
TimePickerView
pvTime
;
...
...
@@ -58,6 +62,8 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
private
DataGridView
mDataGridView
;
private
SearchFrozenSemenFragment
searchFrozenSemenFragment
;
private
static
class
SingletonClassInstance
{
private
static
final
BreedingRecordFragment
instance
=
new
BreedingRecordFragment
();
}
...
...
@@ -96,6 +102,9 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
viewModel
.
initGen
();
searchFrozenSemenFragment
=
SearchFrozenSemenFragment
.
newInstance
();
searchFrozenSemenFragment
.
setIOnSearchVeterinaryClickListener
(
this
);
// binding.rvCollect.addItemDecoration(new SpaceItemDecoration(10));
binding
.
rvCollectDetail
.
addItemDecoration
(
new
SpaceItemDecoration
(
10
));
...
...
@@ -128,6 +137,9 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
case
"radio"
:
showSpinnerDialog
(
viewModel
.
currentParamEntity
);
break
;
case
"search"
:
showSearchDialog
(
viewModel
.
currentParamEntity
);
break
;
case
"photo"
:
if
(
viewModel
.
tag
.
get
().
equals
(
""
))
{
ToastUtils
.
showShort
(
"请先输入可视耳标号"
);
...
...
@@ -232,6 +244,14 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
}).
show
();
}
//跳转搜索关键字页面
private
void
showSearchDialog
(
GenTableColumn
uiParamEntity
)
{
assert
getParentFragment
()
!=
null
;
searchFrozenSemenFragment
.
showFragment
(
requireActivity
().
getSupportFragmentManager
(),
SearchFrozenSemenFragment
.
TAG
);
}
//输入框
private
void
showInputDialog
(
GenTableColumn
uiParamEntity
)
{
...
...
@@ -333,6 +353,31 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
viewModel
.
currentParamEntity
.
setContent
(
dateFormat
.
format
(
date
));
viewModel
.
currentParamEntity
.
setShowName
(
dateFormat
.
format
(
date
));
viewModel
.
currentParamEntity
.
notifyChange
();
if
(
"matingDate"
.
equals
(
viewModel
.
currentParamEntity
.
getJavaField
()))
{
/**
计算预产期280天
*/
String
str
=
"yyyy-MM-dd"
;
SimpleDateFormat
format2
=
new
SimpleDateFormat
(
str
);
Date
dueDate
=
null
;
try
{
dueDate
=
format2
.
parse
(
dateFormat
.
format
(
date
));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
dueDate
);
calendar
.
add
(
Calendar
.
DATE
,
280
);
for
(
GenTableColumn
gtc
:
Configs
.
cattlematingDetaill
)
{
if
(
"dueDate"
.
equals
(
gtc
.
getJavaField
())){
gtc
.
setContent
(
format2
.
format
(
calendar
.
getTime
()));
gtc
.
setShowName
(
format2
.
format
(
calendar
.
getTime
()));
gtc
.
notifyChange
();
break
;
}
}
}
}
})
.
setTimeSelectChangeListener
(
new
OnTimeSelectChangeListener
()
{
...
...
@@ -471,4 +516,44 @@ public class BreedingRecordFragment extends BaseFragment<FragmentBreedingRecordB
viewModel
.
rfid
.
set
(
""
);
}
}
@Override
public
void
OnSelectedClick
(
DictEntity
dictEntity
)
{
for
(
GenTableColumn
gtc
:
Configs
.
cattlematingDetaill
)
{
switch
(
gtc
.
getJavaField
())
{
case
"frozenSemenBatch"
:
//冻精信息
gtc
.
setContent
(
dictEntity
.
getDictValue
());
gtc
.
setShowName
(
dictEntity
.
getDictLabel
());
break
;
case
"cattleresumeId"
:
//冻精注册号
if
(
"其它"
.
equals
(
dictEntity
.
getDictLabel
()))
{
gtc
.
setContent
(
""
);
gtc
.
setShowName
(
""
);
}
else
{
String
labelStr
=
""
;
if
(
dictEntity
.
getDictLabel
().
lastIndexOf
(
"/"
)>-
1
)
{
labelStr
=
dictEntity
.
getDictLabel
().
substring
(
dictEntity
.
getDictLabel
().
lastIndexOf
(
"/"
)
+
1
,
dictEntity
.
getDictLabel
().
length
());
}
else
{
labelStr
=
dictEntity
.
getDictLabel
();
}
gtc
.
setContent
(
labelStr
);
gtc
.
setShowName
(
labelStr
);
}
gtc
.
notifyChange
();
break
;
case
"other"
:
//其它
if
(
"其他"
.
equals
(
dictEntity
.
getDictLabel
()))
{
}
else
{
gtc
.
setContent
(
""
);
gtc
.
setShowName
(
""
);
}
gtc
.
notifyChange
();
break
;
}
}
viewModel
.
currentParamEntity
.
notifyChange
();
}
}
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/list/CollectGridItem.java
View file @
8e191b0a
...
...
@@ -39,19 +39,20 @@ public class CollectGridItem extends ItemViewModel<BaseViewModel> {
private
void
initView
()
{
// switch (fragmentType) {
// case Configs.BASE_ARCHIVES:
// case Configs.WEIGHTING_MANAGE:
//
// if ("1".equals(entity.get().getIsEdit())) {
// titleGrayVisiable.set(View.GONE);
// titleBlueVisiable.set(View.VISIBLE);
// } else {
// titleGrayVisiable.set(View.VISIBLE);
// titleBlueVisiable.set(View.GONE);
// }
// break;
// default:
switch
(
fragmentType
)
{
case
Configs
.
BASE_ARCHIVES
:
case
Configs
.
WEIGHTING_MANAGE
:
case
Configs
.
BREEDING_RECORD_DETAIL
:
if
(
"1"
.
equals
(
entity
.
get
().
getIsEdit
()))
{
titleGrayVisiable
.
set
(
View
.
GONE
);
titleBlueVisiable
.
set
(
View
.
VISIBLE
);
}
else
{
titleGrayVisiable
.
set
(
View
.
VISIBLE
);
titleBlueVisiable
.
set
(
View
.
GONE
);
}
break
;
default
:
if
(
"1"
.
equals
(
entity
.
get
().
getIsInsert
()))
{
titleGrayVisiable
.
set
(
View
.
GONE
);
titleBlueVisiable
.
set
(
View
.
VISIBLE
);
...
...
@@ -59,8 +60,8 @@ public class CollectGridItem extends ItemViewModel<BaseViewModel> {
titleGrayVisiable
.
set
(
View
.
VISIBLE
);
titleBlueVisiable
.
set
(
View
.
GONE
);
}
//
break;
//
}
break
;
}
}
public
BindingCommand
onItemClickCommand
=
new
BindingCommand
(
new
BindingAction
()
{
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/search/SearchFrozenSemenFragment.java
0 → 100644
View file @
8e191b0a
This diff is collapsed.
Click to expand it.
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/search/adapter/FrozenSemenAdapter.java
0 → 100644
View file @
8e191b0a
package
com
.
phlx
.
anchorcollect_p
.
ui
.
fragment
.
search
.
adapter
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.phlx.anchorcollect_p.R
;
import
com.phlx.anchorcollect_p.entity.DictEntity
;
import
com.phlx.anchorcollect_p.ui.fragment.search.interf.IOnFrozenSemenItemClickListener
;
import
java.util.ArrayList
;
public
class
FrozenSemenAdapter
extends
RecyclerView
.
Adapter
<
FrozenSemenAdapter
.
MyViewHolder
>
implements
View
.
OnClickListener
{
private
Context
context
;
private
ArrayList
<
DictEntity
>
frozenSemens
=
new
ArrayList
<>();
public
FrozenSemenAdapter
(
Context
context
,
ArrayList
<
DictEntity
>
list
)
{
this
.
context
=
context
;
this
.
frozenSemens
=
list
;
}
@Override
public
MyViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
item_search
,
parent
,
false
);
MyViewHolder
holder
=
new
MyViewHolder
(
view
);
view
.
setOnClickListener
(
this
);
return
holder
;
}
@Override
public
void
onBindViewHolder
(
final
MyViewHolder
holder
,
final
int
position
)
{
holder
.
name
.
setText
(
frozenSemens
.
get
(
position
).
getDictLabel
());
// holder.phone.setText(frozenSemens.get(position).getVeterinaryPhone());
holder
.
itemView
.
setTag
(
position
);
}
@Override
public
int
getItemCount
()
{
return
frozenSemens
.
size
();
}
@Override
public
void
onClick
(
View
v
)
{
if
(
onFrozenSemenItemClickListener
!=
null
&&
frozenSemens
.
size
()
>
0
)
{
onFrozenSemenItemClickListener
.
onItemClick
(
frozenSemens
.
get
((
Integer
)
v
.
getTag
()));
}
}
class
MyViewHolder
extends
RecyclerView
.
ViewHolder
{
TextView
name
;
// TextView phone;
public
MyViewHolder
(
View
view
)
{
super
(
view
);
name
=
(
TextView
)
view
.
findViewById
(
R
.
id
.
name_tv
);
// phone = (TextView) view.findViewById(R.id.phone_tv);
}
}
private
IOnFrozenSemenItemClickListener
onFrozenSemenItemClickListener
;
public
void
setOnItemClickListener
(
IOnFrozenSemenItemClickListener
onFrozenSemenItemClickListener
)
{
this
.
onFrozenSemenItemClickListener
=
onFrozenSemenItemClickListener
;
}
}
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/search/anim/CircularRevealAnim.java
0 → 100644
View file @
8e191b0a
package
com
.
phlx
.
anchorcollect_p
.
ui
.
fragment
.
search
.
anim
;
import
android.animation.Animator
;
import
android.animation.AnimatorListenerAdapter
;
import
android.annotation.SuppressLint
;
import
android.view.View
;
import
android.view.ViewAnimationUtils
;
import
android.view.animation.DecelerateInterpolator
;
public
class
CircularRevealAnim
{
public
static
final
long
DURATION
=
200
;
private
AnimListener
mListener
;
public
interface
AnimListener
{
void
onHideAnimationEnd
();
void
onShowAnimationEnd
();
}
@SuppressLint
(
"NewApi"
)
private
void
actionOtherVisible
(
final
boolean
isShow
,
final
View
triggerView
,
final
View
animView
)
{
if
(
android
.
os
.
Build
.
VERSION
.
SDK_INT
<
android
.
os
.
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
if
(
isShow
)
{
animView
.
setVisibility
(
View
.
VISIBLE
);
if
(
mListener
!=
null
)
mListener
.
onShowAnimationEnd
();
}
else
{
animView
.
setVisibility
(
View
.
GONE
);
if
(
mListener
!=
null
)
mListener
.
onHideAnimationEnd
();
}
return
;
}
/**
* 计算 triggerView 的中心位置
*/
int
[]
tvLocation
=
new
int
[
2
];
triggerView
.
getLocationInWindow
(
tvLocation
);
int
tvX
=
tvLocation
[
0
]
+
triggerView
.
getWidth
()
/
2
;
int
tvY
=
tvLocation
[
1
]
+
triggerView
.
getHeight
()
/
2
;
/**
* 计算 animView 的中心位置
*/
int
[]
avLocation
=
new
int
[
2
];
animView
.
getLocationInWindow
(
avLocation
);
int
avX
=
avLocation
[
0
]
+
animView
.
getWidth
()
/
2
;
int
avY
=
avLocation
[
1
]
+
animView
.
getHeight
()
/
2
;
int
rippleW
=
tvX
<
avX
?
animView
.
getWidth
()
-
tvX
:
tvX
-
avLocation
[
0
];
int
rippleH
=
tvY
<
avY
?
animView
.
getHeight
()
-
tvY
:
tvY
-
avLocation
[
1
];
float
maxRadius
=
(
float
)
Math
.
sqrt
(
rippleW
*
rippleW
+
rippleH
*
rippleH
);
float
startRadius
;
float
endRadius
;
if
(
isShow
)
{
startRadius
=
0
;
endRadius
=
maxRadius
;
}
else
{
startRadius
=
maxRadius
;
endRadius
=
0
;
}
Animator
anim
=
ViewAnimationUtils
.
createCircularReveal
(
animView
,
tvX
,
tvY
,
startRadius
,
endRadius
);
animView
.
setVisibility
(
View
.
VISIBLE
);
anim
.
setDuration
(
DURATION
);
anim
.
setInterpolator
(
new
DecelerateInterpolator
());
anim
.
addListener
(
new
AnimatorListenerAdapter
()
{
@Override
public
void
onAnimationEnd
(
Animator
animation
)
{
super
.
onAnimationEnd
(
animation
);
if
(
isShow
)
{
animView
.
setVisibility
(
View
.
VISIBLE
);
if
(
mListener
!=
null
)
mListener
.
onShowAnimationEnd
();
}
else
{
animView
.
setVisibility
(
View
.
GONE
);
if
(
mListener
!=
null
)
mListener
.
onHideAnimationEnd
();
}
}
});
anim
.
start
();
}
public
void
show
(
View
triggerView
,
View
showView
)
{
actionOtherVisible
(
true
,
triggerView
,
showView
);
}
public
void
hide
(
View
triggerView
,
View
hideView
)
{
actionOtherVisible
(
false
,
triggerView
,
hideView
);
}
public
void
setAnimListener
(
AnimListener
listener
)
{
mListener
=
listener
;
}
}
\ No newline at end of file
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/search/interf/IOnFrozenSemenItemClickListener.java
0 → 100644
View file @
8e191b0a
package
com
.
phlx
.
anchorcollect_p
.
ui
.
fragment
.
search
.
interf
;
import
com.phlx.anchorcollect_p.entity.DictEntity
;
/**
* Created by Won on 2016/4/22.
*/
public
interface
IOnFrozenSemenItemClickListener
{
void
onItemClick
(
DictEntity
dictEntity
);
}
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/search/interf/IOnSearchFrozenSemenClickListener.java
0 → 100644
View file @
8e191b0a
package
com
.
phlx
.
anchorcollect_p
.
ui
.
fragment
.
search
.
interf
;
import
com.phlx.anchorcollect_p.entity.DictEntity
;
/**
* Created by Won on 2017/1/13.
*/
public
interface
IOnSearchFrozenSemenClickListener
{
void
OnSelectedClick
(
DictEntity
dictEntity
);
}
app/src/main/java/com/phlx/anchorcollect_p/ui/fragment/vm/BreedingRecordVM.java
View file @
8e191b0a
...
...
@@ -583,18 +583,18 @@ public class BreedingRecordVM extends BaseViewModel<Repository> {
/**
计算预产期280天
*/
String
str
=
"yyyy-MM-dd"
;
SimpleDateFormat
format2
=
new
SimpleDateFormat
(
str
);
Date
date
=
null
;
try
{
date
=
format2
.
parse
(
breedingRecordDetailEntity
.
getMatingDate
());
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
DATE
,
280
);
breedingRecordDetailEntity
.
setDueDate
(
format2
.
format
(
calendar
.
getTime
()));
//
String str = "yyyy-MM-dd";
//
SimpleDateFormat format2 = new SimpleDateFormat(str);
//
Date date = null;
//
try {
//
date = format2.parse(breedingRecordDetailEntity.getMatingDate());
//
} catch (ParseException e) {
//
e.printStackTrace();
//
}
//
Calendar calendar = Calendar.getInstance();
//
calendar.setTime(date);
//
calendar.add(Calendar.DATE, 280);
//
breedingRecordDetailEntity.setDueDate(format2.format(calendar.getTime()));
detailUploadData
=
new
ArrayList
<>();
detailUploadData
.
add
(
breedingRecordDetailEntity
);
...
...
app/src/main/java/com/phlx/anchorcollect_p/ui/login/LoginVM.java
View file @
8e191b0a
...
...
@@ -81,8 +81,8 @@ public class LoginVM extends BaseViewModel<Repository> {
userName
.
set
(
model
.
getUserName
());
password
.
set
(
model
.
getPassword
());
userName
.
set
(
"13664793087"
);
password
.
set
(
"Abgq3087@"
);
//
userName.set("13664793087");
//
password.set("Abgq3087@");
// userName.set("15047917803");
// password.set("Tpsq7803*");
...
...
@@ -121,7 +121,7 @@ public class LoginVM extends BaseViewModel<Repository> {
public
BindingCommand
loginOnClickCommand
=
new
BindingCommand
(
new
BindingAction
()
{
@Override
public
void
call
()
{
if
(
Integer
.
parseInt
(
DateUtils
.
getYear
())<
2020
)
{
if
(
Integer
.
parseInt
(
DateUtils
.
getYear
())
<
2020
)
{
dateEvent
.
call
();
return
;
}
...
...
@@ -176,8 +176,8 @@ public class LoginVM extends BaseViewModel<Repository> {
SPUtils
.
getInstance
().
put
(
Configs
.
SP_DEPT_NAME
,
response
.
getData
().
getUser
().
getDept
().
getDeptName
());
//意见反馈存版本号,如果没有保存或者有变化 提醒数量清零
if
(
StringUtils
.
isEmpty
(
SPUtils
.
getInstance
().
getString
(
Configs
.
SP_VERSION_NAME
))
||
!
ApkUtil
.
getVersionName
(
getApplication
()).
equals
(
SPUtils
.
getInstance
().
getString
(
Configs
.
SP_VERSION_NAME
))){
if
(
StringUtils
.
isEmpty
(
SPUtils
.
getInstance
().
getString
(
Configs
.
SP_VERSION_NAME
))
||
!
ApkUtil
.
getVersionName
(
getApplication
()).
equals
(
SPUtils
.
getInstance
().
getString
(
Configs
.
SP_VERSION_NAME
)))
{
SPUtils
.
getInstance
().
put
(
Configs
.
SP_FEEDBACK_COUNT
,
0
);
}
SPUtils
.
getInstance
().
put
(
Configs
.
SP_VERSION_NAME
,
ApkUtil
.
getVersionName
(
getApplication
()));
...
...
app/src/main/res/layout/dialog_search.xml
0 → 100644
View file @
8e191b0a
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/shape_corner_white"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
android:padding=
"6dp"
>
<ImageView
android:id=
"@+id/iv_search_back"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"6dp"
android:src=
"@drawable/ic_back_24dp"
/>
<EditText
android:id=
"@+id/et_search_keyword"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:background=
"@null"
android:hint=
"搜索关键字"
android:imeOptions=
"actionSearch"
android:padding=
"6dp"
android:singleLine=
"true"
android:textSize=
"14sp"
/>
<!-- android:focusable="true"-->
<!-- android:focusableInTouchMode="true"-->
<ImageView
android:id=
"@+id/iv_search_search"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"6dp"
android:src=
"@drawable/ic_search_bg_24dp"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:background=
"@color/line_bg"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_search"
android:layout_width=
"match_parent"
android:layout_margin=
"@dimen/dp_15"
android:layout_height=
"0dp"
android:layout_weight=
"1"
/>
</LinearLayout>
</LinearLayout>
app/src/main/res/layout/item_search.xml
0 → 100644
View file @
8e191b0a
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_40"
>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/name_tv"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_13"
android:layout_marginStart=
"@dimen/dp_20"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/phone_tv"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_13"
android:layout_marginEnd=
"@dimen/dp_20"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
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