Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
58f6ac2e
authored
Nov 26, 2017
by
罗翻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
消息页面修改
parent
978834a3
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
239 additions
and
456 deletions
app/src/main/java/com/dayu/bigfish/presenter/systemmessage/SysMessagePresenter.java
app/src/main/java/com/dayu/bigfish/presenter/systemmessage/SystemMessageContract.java
app/src/main/java/com/dayu/bigfish/ui/ReceivingActivity.java
app/src/main/java/com/dayu/bigfish/ui/adapter/OrderThreeTabAdapter.java
app/src/main/java/com/dayu/bigfish/ui/adapter/SystemMessageAdapter.java
app/src/main/java/com/dayu/bigfish/ui/fragment/BigFishMessageFragment.java
app/src/main/java/com/dayu/bigfish/ui/fragment/SystemMessageFragment.java
app/src/main/res/layout/fragment_message_system.xml
app/src/main/res/layout/message_adapter.xml
app/src/main/java/com/dayu/bigfish/presenter/systemmessage/SysMessagePresenter.java
0 → 100644
View file @
58f6ac2e
package
com
.
dayu
.
bigfish
.
presenter
.
systemmessage
;
import
com.app.annotation.apt.InstanceFactory
;
import
com.apt.ApiFactory
;
import
com.dayu.bigfish.base.BasePageBean
;
import
com.dayu.bigfish.bean.NewMessage
;
import
io.reactivex.functions.Consumer
;
/**
* Created by luofan on 2017/11/8.
*/
@InstanceFactory
public
class
SysMessagePresenter
extends
SystemMessageContract
.
Presenter
{
@Override
public
void
onAttached
()
{
}
@Override
public
void
getHxMessage
(
String
hxUserId
,
int
category
,
int
page
,
int
pageSize
)
{
ApiFactory
.
getHxMessage
(
hxUserId
,
category
,
page
,
pageSize
).
subscribe
(
baseObserver
(
new
Consumer
<
BasePageBean
<
NewMessage
>>()
{
@Override
public
void
accept
(
BasePageBean
<
NewMessage
>
messageBasePageBean
)
throws
Exception
{
mView
.
getHxMessageSuccess
(
messageBasePageBean
);
}
},
new
Consumer
<
Throwable
>()
{
@Override
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
mView
.
getHxMessageFail
();
}
}));
}
}
app/src/main/java/com/dayu/bigfish/presenter/systemmessage/SystemMessageContract.java
0 → 100755
View file @
58f6ac2e
package
com
.
dayu
.
bigfish
.
presenter
.
systemmessage
;
import
com.dayu.bigfish.base.BasePageBean
;
import
com.dayu.bigfish.base.BasePresenter
;
import
com.dayu.bigfish.base.BaseView
;
import
com.dayu.bigfish.bean.NewMessage
;
/**
* Created by luo on 2016/8/4.
*/
public
interface
SystemMessageContract
{
interface
View
extends
BaseView
{
void
getHxMessageSuccess
(
BasePageBean
<
NewMessage
>
message
);
void
getHxMessageFail
();
}
abstract
class
Presenter
extends
BasePresenter
<
View
>
{
public
abstract
void
getHxMessage
(
String
hxUserId
,
int
category
,
int
page
,
int
pageSize
);
}
}
app/src/main/java/com/dayu/bigfish/ui/ReceivingActivity.java
View file @
58f6ac2e
...
...
@@ -107,7 +107,6 @@ public class ReceivingActivity extends BaseActivity<ReceivingPresenter> implemen
mAdapter
.
loadMoreComplete
();
mPage
+=
1
;
}
mAdapter
.
notifyDataSetChanged
();
}
else
{
mRefreshLayout
.
setRefreshing
(
false
);
mAdapter
.
setEmptyView
(
R
.
layout
.
tips_empty
);
...
...
app/src/main/java/com/dayu/bigfish/ui/adapter/OrderThreeTabAdapter.java
View file @
58f6ac2e
...
...
@@ -9,7 +9,6 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import
com.chad.library.adapter.base.BaseViewHolder
;
import
com.dayu.bigfish.R
;
import
com.dayu.bigfish.bean.ErrorOrder
;
import
com.dayu.bigfish.utils.DateUtils
;
import
com.dayu.bigfish.utils.UtilsDate
;
import
static
com
.
dayu
.
bigfish
.
utils
.
UtilsDate
.
FORMAT_ONE
;
...
...
@@ -22,11 +21,9 @@ import static com.dayu.bigfish.utils.UtilsDate.SHORT_DATE_FORMAT;
*/
public
class
OrderThreeTabAdapter
extends
BaseQuickAdapter
<
ErrorOrder
,
BaseViewHolder
>
{
private
DateUtils
mDateUtils
;
public
OrderThreeTabAdapter
(
int
layoutResId
)
{
super
(
layoutResId
);
mDateUtils
=
new
DateUtils
();
}
...
...
app/src/main/java/com/dayu/bigfish/ui/adapter/SystemMessageAdapter.java
View file @
58f6ac2e
package
com
.
dayu
.
bigfish
.
ui
.
adapter
;
import
android.content.Context
;
import
android.content.res.AssetManager
;
import
android.graphics.Typeface
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.BaseAdapter
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseViewHolder
;
import
com.dayu.bigfish.R
;
import
com.dayu.bigfish.bean.NewMessage
;
import
com.dayu.bigfish.utils.
DateUtils
;
import
com.dayu.bigfish.utils.
UtilsDate
;
import
java.util.List
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
static
com
.
dayu
.
bigfish
.
utils
.
UtilsDate
.
FORMAT_ONE
;
import
static
com
.
dayu
.
bigfish
.
utils
.
UtilsDate
.
LONG_TIME_FORMAT_TWO
;
import
static
com
.
dayu
.
bigfish
.
utils
.
UtilsDate
.
SHORT_DATE_FORMAT
;
/**
* 系统消息的适配器
* 2017/10/14.
*/
public
class
SystemMessageAdapter
extends
BaseAdapter
{
private
List
<
NewMessage
>
dataBeenList
;
private
DateUtils
dateUtils
=
new
DateUtils
();
private
Context
context
;
private
String
dataMD
;
private
String
dataTime
;
public
SystemMessageAdapter
(
List
<
NewMessage
>
dataBeenList
,
Context
context
)
{
this
.
dataBeenList
=
dataBeenList
;
this
.
context
=
context
;
}
public
class
SystemMessageAdapter
extends
BaseQuickAdapter
<
NewMessage
,
BaseViewHolder
>
{
@Override
public
int
getCount
()
{
return
dataBeenList
.
size
();
public
SystemMessageAdapter
(
int
layoutResId
)
{
super
(
layoutResId
);
}
@Override
public
Object
getItem
(
int
position
)
{
return
position
;
}
@Override
public
long
getItemId
(
int
position
)
{
return
position
;
}
@Override
public
View
getView
(
int
position
,
View
convertView
,
ViewGroup
parent
)
{
View
view
;
ViewHolder
viewHolder
;
if
(
convertView
==
null
)
{
view
=
View
.
inflate
(
context
,
R
.
layout
.
message_adapter
,
null
);
viewHolder
=
new
ViewHolder
(
view
,
context
);
view
.
setTag
(
viewHolder
);
}
else
{
view
=
convertView
;
viewHolder
=
(
ViewHolder
)
view
.
getTag
();
}
initData
(
position
,
viewHolder
);
return
view
;
}
private
void
initData
(
int
position
,
ViewHolder
viewHolder
)
{
if
(
dataBeenList
.
get
(
position
).
getFlag
()
!=
null
&&
dataBeenList
.
get
(
position
).
getFlag
().
equals
(
"1"
))
{
viewHolder
.
view
.
setVisibility
(
View
.
GONE
);
protected
void
convert
(
BaseViewHolder
helper
,
NewMessage
item
)
{
AssetManager
mgr
=
mContext
.
getAssets
();
//得到AssetManager
Typeface
tf
=
Typeface
.
createFromAsset
(
mgr
,
"fonts/DIN Alternate Bold.ttf"
);
//根据路径得到Typeface
helper
.
setTypeface
(
R
.
id
.
message_date
,
tf
);
if
(
item
.
getFlag
()
!=
null
&&
item
.
getFlag
().
equals
(
"1"
))
{
helper
.
getView
(
R
.
id
.
iv
).
setVisibility
(
View
.
GONE
);
}
else
{
viewHolder
.
view
.
setVisibility
(
View
.
VISIBLE
);
helper
.
getView
(
R
.
id
.
iv
)
.
setVisibility
(
View
.
VISIBLE
);
}
try
{
dataMD
=
dateUtils
.
stringDateToDate
(
dataBeenList
.
get
(
position
).
getCreateTime
());
viewHolder
.
messageTime
.
setText
(
dataMD
);
dataTime
=
dateUtils
.
stringTimeToDate
(
dataBeenList
.
get
(
position
).
getCreateTime
());
viewHolder
.
messageDate
.
setText
(
dataTime
);
String
dateMD
=
UtilsDate
.
changeFormat
(
item
.
getCreateTime
(),
FORMAT_ONE
,
SHORT_DATE_FORMAT
);
String
dateTime
=
UtilsDate
.
changeFormat
(
item
.
getCreateTime
(),
FORMAT_ONE
,
LONG_TIME_FORMAT_TWO
);
helper
.
setText
(
R
.
id
.
message_date
,
dateMD
);
helper
.
setText
(
R
.
id
.
message_time
,
dateTime
);
helper
.
setText
(
R
.
id
.
message_text_content
,
item
.
getTitle
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
viewHolder
.
messageTextContent
.
setText
(
dataBeenList
.
get
(
position
).
getTitle
());
}
static
class
ViewHolder
{
@BindView
(
R
.
id
.
line_textView
)
TextView
lineTextView
;
@BindView
(
R
.
id
.
message_date
)
TextView
messageDate
;
@BindView
(
R
.
id
.
message_time
)
TextView
messageTime
;
@BindView
(
R
.
id
.
message_text_content
)
TextView
messageTextContent
;
@BindView
(
R
.
id
.
item
)
RelativeLayout
item
;
@BindView
(
R
.
id
.
iv
)
TextView
view
;
ViewHolder
(
View
view
,
Context
context
)
{
ButterKnife
.
bind
(
this
,
view
);
AssetManager
mgr
=
context
.
getAssets
();
//得到AssetManager
Typeface
tf
=
Typeface
.
createFromAsset
(
mgr
,
"fonts/DIN Alternate Bold.ttf"
);
//根据路径得到Typeface
messageDate
.
setTypeface
(
tf
);
//设置字体
}
}
}
app/src/main/java/com/dayu/bigfish/ui/fragment/BigFishMessageFragment.java
View file @
58f6ac2e
package
com
.
dayu
.
bigfish
.
ui
.
fragment
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.view.LayoutInflater
;
import
android.support.v4.widget.SwipeRefreshLayout
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.ListView
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.dayu.bigfish.R
;
import
com.dayu.bigfish.ui.adapter.BigFishMessageAdapter
;
import
com.dayu.bigfish.api.ApiWrapper
;
import
com.dayu.bigfish.base.BaseFragment
;
import
com.dayu.bigfish.base.BasePageBean
;
import
com.dayu.bigfish.bean.NewMessage
;
import
com.dayu.bigfish.greendao.GreenDaoManager
;
import
com.dayu.bigfish.greendao.MessageBigFishDao
;
import
com.dayu.bigfish.sqlbean.MessageBigFish
;
import
com.dayu.bigfish.utils.DateUtils
;
import
com.dayu.bigfish.presenter.systemmessage.SysMessagePresenter
;
import
com.dayu.bigfish.presenter.systemmessage.SystemMessageContract
;
import
com.dayu.bigfish.ui.adapter.SystemMessageAdapter
;
import
com.dayu.bigfish.utils.GetUserInfo
;
import
com.dayu.bigfish.utils.ProgressUtil
;
import
com.dayu.bigfish.utils.ToastUtils
;
import
org.greenrobot.greendao.query.Query
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
import
io.reactivex.functions.Consumer
;
/**
* 大鱼运营官方通知
* on 2017/10/11.
*/
public
class
BigFishMessageFragment
extends
Fragment
{
public
class
BigFishMessageFragment
extends
BaseFragment
<
SysMessagePresenter
>
implements
SystemMessageContract
.
View
,
SwipeRefreshLayout
.
OnRefreshListener
{
Unbinder
unbinder
;
@BindView
(
R
.
id
.
message_bigfish_listview
)
ListView
messageBigfishListview
;
@BindView
(
R
.
id
.
big_image_empty
)
ImageView
bigImageEmpty
;
@BindView
(
R
.
id
.
big_textView_empty
)
TextView
bigTextViewEmpty
;
@BindView
(
R
.
id
.
big_message_view
)
RelativeLayout
bigMessageView
;
private
BigFishMessageAdapter
bigFishAdapter
;
private
List
<
NewMessage
>
bigFishDataList
=
new
ArrayList
<>();
@BindView
(
R
.
id
.
rl_sysmessage
)
RecyclerView
mRecyclerView
;
@BindView
(
R
.
id
.
receiving_refersh
)
SwipeRefreshLayout
mRefreshLayout
;
@BindView
(
R
.
id
.
message_view
)
RelativeLayout
messageView
;
private
SystemMessageAdapter
mAdapter
;
private
String
hxUserId
;
private
String
token
;
private
DateUtils
dateUtils
=
new
DateUtils
()
;
private
MessageBigFish
ss
;
private
MessageBigFishDao
mMessageBigfishDao
;
private
int
mPage
=
1
;
private
int
mPageSize
=
10
;
private
int
mTotalPage
=
1
;
private
int
mRefreshState
=
1
;
//1:刷新,2:下拉加载
@Nullable
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
View
layout
=
inflater
.
inflate
(
R
.
layout
.
fragment_message_bigfish
,
container
,
false
);
token
=
GetUserInfo
.
getToken
(
getContext
());
hxUserId
=
GetUserInfo
.
getHxUserId
(
getContext
());
unbinder
=
ButterKnife
.
bind
(
this
,
layout
);
mMessageBigfishDao
=
GreenDaoManager
.
getInstance
().
getmDaoSession
().
getMessageBigFishDao
();
initData1
();
initListener
();
return
layout
;
public
View
initView
(
View
view
)
{
hxUserId
=
GetUserInfo
.
getHxUserId
(
getActivity
());
ProgressUtil
.
startLoad
(
getActivity
());
mPresenter
.
getHxMessage
(
hxUserId
,
1
,
mPage
,
mPageSize
);
mAdapter
=
new
SystemMessageAdapter
(
R
.
layout
.
message_adapter
);
mRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
mRecyclerView
.
setAdapter
(
mAdapter
);
mAdapter
.
disableLoadMoreIfNotFullPage
(
mRecyclerView
);
mRefreshLayout
.
setOnRefreshListener
(
this
);
return
view
;
}
private
void
initData1
()
{
initData
(
token
,
hxUserId
);
bigFishAdapter
=
new
BigFishMessageAdapter
(
bigFishDataList
,
getContext
(),
dateUtils
);
messageBigfishListview
.
setAdapter
(
bigFishAdapter
);
@Override
public
int
getLayoutId
()
{
return
R
.
layout
.
fragment_message_system
;
}
private
void
initListener
()
{
messageBigfishListview
.
setOnItemClickListener
((
parent
,
view
,
position
,
id
)
->
{
NewMessage
lookMessagesBean
=
bigFishDataList
.
get
(
position
);
Query
query
=
mMessageBigfishDao
.
queryBuilder
().
where
(
MessageBigFishDao
.
Properties
.
Ids
.
eq
(
String
.
valueOf
(
lookMessagesBean
.
getId
())),
MessageBigFishDao
.
Properties
.
Id1
.
eq
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
())))
.
build
();
List
<
MessageBigFish
>
list
=
query
.
list
();
if
(
list
.
size
()
!=
0
)
{
if
(
list
.
get
(
0
).
getFlag
().
equals
(
"0"
))
{
MessageBigFish
types
=
list
.
get
(
0
);
types
.
setFlag
(
"1"
);
mMessageBigfishDao
.
update
(
types
);
}
}
});
@Override
protected
void
lazyLoad
()
{
}
/**
* 初始化环信数据
*/
private
void
initData
(
String
token
,
String
hxUserId
)
{
ProgressUtil
.
startLoad
(
getActivity
());
ApiWrapper
wrapper
=
new
ApiWrapper
();
wrapper
.
getHxMessage
(
hxUserId
,
2
,
1
,
10
).
subscribe
(
new
Consumer
<
BasePageBean
<
NewMessage
>>()
{
@Override
public
void
accept
(
BasePageBean
<
NewMessage
>
newMessageBasePageBean
)
throws
Exception
{
ProgressUtil
.
stopLoad
();
bigFishPager
(
newMessageBasePageBean
.
getData
());
}
},
new
Consumer
<
Throwable
>()
{
@Override
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
ProgressUtil
.
stopLoad
();
ToastUtils
.
showShortToast
(
"服务器异常,消息列表获取失败"
);
}
});
}
private
void
bigFishPager
(
List
<
NewMessage
>
dataBeen
)
{
if
(
dataBeen
.
size
()
==
0
||
dataBeen
==
null
)
{
// mTipsHelper.showEmpty();
bigMessageView
.
setVisibility
(
View
.
VISIBLE
);
messageBigfishListview
.
setVisibility
(
View
.
GONE
);
public
void
getHxMessageSuccess
(
BasePageBean
<
NewMessage
>
message
)
{
mTotalPage
=
message
.
getTotalPages
();
mPageSize
=
message
.
getPageSize
();
if
(
message
.
getData
()
!=
null
&&
message
.
getData
().
size
()
!=
0
)
{
if
(
mRefreshState
==
1
)
{
mRefreshLayout
.
setRefreshing
(
false
);
mAdapter
.
setNewData
(
message
.
getData
());
}
else
{
messageBigfishListview
.
setVisibility
(
View
.
VISIBLE
);
bigMessageView
.
setVisibility
(
View
.
GONE
);
//查询数据库 当前用户
Query
query
=
mMessageBigfishDao
.
queryBuilder
().
where
(
MessageBigFishDao
.
Properties
.
Id1
.
eq
(
String
.
valueOf
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
()))))
.
build
();
// 查询结果以 List 返回
List
<
MessageBigFish
>
list1
=
query
.
list
();
//如果用户数据库有值
if
(
list1
.
size
()
>
0
)
{
List
list
=
new
ArrayList
();
for
(
int
ks
=
0
;
ks
<
list1
.
size
();
ks
++)
{
list
.
add
(
list1
.
get
(
ks
).
getIds
());
}
//判断接口返回数据与本地数据库值,如果接口数据不包含本地。就添加
for
(
int
j
=
0
;
j
<
dataBeen
.
size
();
j
++)
{
if
(!
list
.
contains
(
String
.
valueOf
(
dataBeen
.
get
(
j
).
getId
())))
{
ss
=
new
MessageBigFish
(
null
,
String
.
valueOf
(
dataBeen
.
get
(
j
).
getId
()),
String
.
valueOf
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
())),
"0"
);
//插入数据
mMessageBigfishDao
.
insert
(
ss
);
}
mAdapter
.
addData
(
message
.
getData
());
}
if
(
mPage
==
mTotalPage
)
{
mAdapter
.
loadMoreEnd
();
}
else
{
for
(
int
i
=
0
;
i
<
dataBeen
.
size
();
i
++)
{
ss
=
new
MessageBigFish
(
null
,
String
.
valueOf
(
dataBeen
.
get
(
i
).
getId
()),
String
.
valueOf
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
())),
"0"
);
//插入数据
mMessageBigfishDao
.
insert
(
ss
);
}
mAdapter
.
loadMoreComplete
();
mPage
+=
1
;
}
Map
<
String
,
String
>
map
=
new
HashMap
();
for
(
MessageBigFish
pzIm
:
list1
)
{
map
.
put
(
pzIm
.
getIds
(),
pzIm
.
getFlag
());
}
NewMessage
LookMessagesBean2
;
bigFishDataList
.
clear
();
for
(
int
ixx
=
0
;
ixx
<
dataBeen
.
size
();
ixx
++)
{
NewMessage
LookMessagesBean1
=
dataBeen
.
get
(
ixx
);
LookMessagesBean2
=
new
NewMessage
();
LookMessagesBean2
.
setId
(
LookMessagesBean1
.
getId
());
if
(
map
.
containsKey
(
String
.
valueOf
(
LookMessagesBean1
.
getId
())))
{
LookMessagesBean2
.
setFlag
(
map
.
get
(
String
.
valueOf
(
LookMessagesBean1
.
getId
())));
}
LookMessagesBean2
.
setCreateTime
(
LookMessagesBean1
.
getCreateTime
());
LookMessagesBean2
.
setAction
(
LookMessagesBean1
.
getAction
());
LookMessagesBean2
.
setBatchId
(
LookMessagesBean1
.
getBatchId
());
LookMessagesBean2
.
setCategory
(
LookMessagesBean1
.
getCategory
());
LookMessagesBean2
.
setContent
(
LookMessagesBean1
.
getContent
());
LookMessagesBean2
.
setTitle
(
LookMessagesBean1
.
getTitle
());
LookMessagesBean2
.
setEndTime
(
LookMessagesBean1
.
getEndTime
());
LookMessagesBean2
.
setFunctionType
(
LookMessagesBean1
.
getFunctionType
());
LookMessagesBean2
.
setReason
(
LookMessagesBean1
.
getReason
());
LookMessagesBean2
.
setHxAccount
(
LookMessagesBean1
.
getHxAccount
());
LookMessagesBean2
.
setType
(
LookMessagesBean1
.
getType
());
LookMessagesBean2
.
setStatus
(
LookMessagesBean1
.
getStatus
());
LookMessagesBean2
.
setSender
(
LookMessagesBean1
.
getSender
());
LookMessagesBean2
.
setStartTime
(
LookMessagesBean1
.
getStartTime
());
LookMessagesBean2
.
setCustomJson
(
LookMessagesBean1
.
getCustomJson
());
bigFishDataList
.
add
(
LookMessagesBean2
);
if
(
bigFishDataList
.
isEmpty
())
{
Collections
.
sort
(
bigFishDataList
,
(
o1
,
o2
)
->
o1
.
getCreateTime
().
toString
().
compareTo
(
o2
.
getCreateTime
().
toString
()));
}
}
bigFishAdapter
.
notifyDataSetChanged
();
}
else
{
mRefreshLayout
.
setRefreshing
(
false
);
messageView
.
setVisibility
(
View
.
VISIBLE
);
}
}
@Override
public
void
onDestroyView
()
{
super
.
onDestroyView
();
unbinder
.
unbind
();
public
void
getHxMessageFail
()
{
messageView
.
setVisibility
(
View
.
VISIBLE
);
}
@Override
public
void
onResume
()
{
super
.
onResume
();
initData
(
token
,
hxUserId
);
public
void
onRefresh
()
{
mRefreshState
=
1
;
mPage
=
1
;
mPresenter
.
getHxMessage
(
hxUserId
,
1
,
mPage
,
mPageSize
);
}
}
app/src/main/java/com/dayu/bigfish/ui/fragment/SystemMessageFragment.java
View file @
58f6ac2e
package
com
.
dayu
.
bigfish
.
ui
.
fragment
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.text.TextUtils
;
import
android.view.LayoutInflater
;
import
android.support.v4.widget.SwipeRefreshLayout
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.ListView
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.dayu.bigfish.R
;
import
com.dayu.bigfish.ui.adapter.SystemMessageAdapter
;
import
com.dayu.bigfish.api.ApiWrapper
;
import
com.dayu.bigfish.base.BaseFragment
;
import
com.dayu.bigfish.base.BasePageBean
;
import
com.dayu.bigfish.bean.MessageJsonBean
;
import
com.dayu.bigfish.bean.NewMessage
;
import
com.dayu.bigfish.greendao.GreenDaoManager
;
import
com.dayu.bigfish.greendao.MessageSysDao
;
import
com.dayu.bigfish.sqlbean.MessageSys
;
import
com.dayu.bigfish.ui.OrderDetailsActivity
;
import
com.dayu.bigfish.presenter.systemmessage.SysMessagePresenter
;
import
com.dayu.bigfish.presenter.systemmessage.SystemMessageContract
;
import
com.dayu.bigfish.ui.adapter.SystemMessageAdapter
;
import
com.dayu.bigfish.utils.GetUserInfo
;
import
com.dayu.bigfish.utils.ProgressUtil
;
import
com.dayu.bigfish.utils.ToastUtils
;
import
com.dayu.bigfish.views.CustomProgressDialog
;
import
com.google.gson.Gson
;
import
com.google.gson.JsonObject
;
import
com.google.gson.JsonParser
;
import
org.greenrobot.greendao.query.Query
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
import
io.reactivex.functions.Consumer
;
/**
...
...
@@ -50,179 +24,76 @@ import io.reactivex.functions.Consumer;
* on 2017/10/11.
*/
public
class
SystemMessageFragment
extends
Fragment
{
@BindView
(
R
.
id
.
message_system_listview
)
ListView
messageSystemListview
;
@BindView
(
R
.
id
.
message_image_empty
)
ImageView
messageImageEmpty
;
@BindView
(
R
.
id
.
message_textView_empty
)
TextView
messageTextViewEmpty
;
public
class
SystemMessageFragment
extends
BaseFragment
<
SysMessagePresenter
>
implements
SystemMessageContract
.
View
,
SwipeRefreshLayout
.
OnRefreshListener
{
@BindView
(
R
.
id
.
rl_sysmessage
)
RecyclerView
mRecyclerView
;
@BindView
(
R
.
id
.
receiving_refersh
)
SwipeRefreshLayout
mRefreshLayout
;
@BindView
(
R
.
id
.
message_view
)
RelativeLayout
messageView
;
private
String
token
;
private
SystemMessageAdapter
systemAdapter
;
private
List
<
NewMessage
>
myDataList
=
new
ArrayList
<>();
private
SystemMessageAdapter
mAdapter
;
private
String
hxUserId
;
private
CustomProgressDialog
dialog
;
private
int
orderId
;
private
String
stringJson
;
Unbinder
unbinder
;
private
MessageSys
ss
;
private
MessageSysDao
mMessageSysDao
;
private
int
mPage
=
1
;
private
int
mPageSize
=
10
;
private
int
mTotalPage
=
1
;
private
int
mRefreshState
=
1
;
//1:刷新,2:下拉加载
@Nullable
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
View
layout
=
inflater
.
inflate
(
R
.
layout
.
fragment_message_system
,
container
,
false
);
unbinder
=
ButterKnife
.
bind
(
this
,
layout
);
dialog
=
new
CustomProgressDialog
(
getContext
(),
R
.
style
.
CustomDialog
);
token
=
GetUserInfo
.
getToken
(
getContext
());
hxUserId
=
GetUserInfo
.
getHxUserId
(
getContext
());
mMessageSysDao
=
GreenDaoManager
.
getInstance
().
getmDaoSession
().
getMessageSysDao
();
initData1
();
initListener
();
return
layout
;
}
private
void
initData1
()
{
initData
(
token
,
hxUserId
);
systemAdapter
=
new
SystemMessageAdapter
(
myDataList
,
getContext
());
messageSystemListview
.
setAdapter
(
systemAdapter
);
@Override
public
View
initView
(
View
view
)
{
hxUserId
=
GetUserInfo
.
getHxUserId
(
getActivity
());
ProgressUtil
.
startLoad
(
getActivity
());
mPresenter
.
getHxMessage
(
hxUserId
,
1
,
mPage
,
mPageSize
);
mAdapter
=
new
SystemMessageAdapter
(
R
.
layout
.
message_adapter
);
mRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
mRecyclerView
.
setAdapter
(
mAdapter
);
mAdapter
.
disableLoadMoreIfNotFullPage
(
mRecyclerView
);
mRefreshLayout
.
setOnRefreshListener
(
this
);
return
view
;
}
private
void
initListener
()
{
messageSystemListview
.
setOnItemClickListener
((
parent
,
view1
,
position
,
id
)
->
{
NewMessage
lookMessagesBean
=
myDataList
.
get
(
position
);
Query
query
=
mMessageSysDao
.
queryBuilder
().
where
(
MessageSysDao
.
Properties
.
Ids
.
eq
(
String
.
valueOf
(
lookMessagesBean
.
getId
())),
MessageSysDao
.
Properties
.
Id1
.
eq
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
())))
.
build
();
List
<
MessageSys
>
list
=
query
.
list
();
if
(
list
.
size
()
!=
0
)
{
if
(
list
.
get
(
0
).
getFlag
().
equals
(
"0"
))
{
MessageSys
types
=
list
.
get
(
0
);
types
.
setFlag
(
"1"
);
mMessageSysDao
.
update
(
types
);
}
@Override
public
int
getLayoutId
()
{
return
R
.
layout
.
fragment_message_system
;
}
stringJson
=
myDataList
.
get
(
position
).
getCustomJson
();
if
(!
TextUtils
.
isEmpty
(
stringJson
)){
JsonObject
returnData
=
new
JsonParser
().
parse
(
stringJson
).
getAsJsonObject
();
Gson
gson
=
new
Gson
();
MessageJsonBean
mess
=
gson
.
fromJson
(
returnData
,
MessageJsonBean
.
class
);
orderId
=
mess
.
getOrderId
();
Intent
intent
=
new
Intent
(
getContext
(),
OrderDetailsActivity
.
class
);
intent
.
putExtra
(
"orderId"
,
orderId
+
""
);
startActivity
(
intent
);
}
@Override
protected
void
lazyLoad
()
{
});
}
/**
* 初始化环信数据
*/
private
void
initData
(
String
token
,
String
hxUserId
)
{
ProgressUtil
.
startLoad
(
getActivity
());
ApiWrapper
wrapper
=
new
ApiWrapper
();
wrapper
.
getHxMessage
(
hxUserId
,
1
,
1
,
10
).
subscribe
(
new
Consumer
<
BasePageBean
<
NewMessage
>>()
{
@Override
public
void
accept
(
BasePageBean
<
NewMessage
>
newMessageBasePageBean
)
throws
Exception
{
ProgressUtil
.
stopLoad
();
loadPager
(
newMessageBasePageBean
.
getData
());
}
},
new
Consumer
<
Throwable
>()
{
@Override
public
void
accept
(
Throwable
throwable
)
throws
Exception
{
ProgressUtil
.
stopLoad
();
ToastUtils
.
showShortToast
(
"服务器异常,消息列表获取失败"
);
}
});
}
private
void
loadPager
(
List
<
NewMessage
>
dataBeen
)
{
if
(
dataBeen
.
size
()
==
0
||
dataBeen
==
null
)
{
// mTipsHelper.showEmpty();
messageView
.
setVisibility
(
View
.
VISIBLE
);
messageSystemListview
.
setVisibility
(
View
.
GONE
);
dialog
.
dismiss
();
public
void
getHxMessageSuccess
(
BasePageBean
<
NewMessage
>
message
)
{
mTotalPage
=
message
.
getTotalPages
();
mPageSize
=
message
.
getPageSize
();
if
(
message
.
getData
()
!=
null
&&
message
.
getData
().
size
()
!=
0
)
{
if
(
mRefreshState
==
1
)
{
mRefreshLayout
.
setRefreshing
(
false
);
mAdapter
.
setNewData
(
message
.
getData
());
}
else
{
messageSystemListview
.
setVisibility
(
View
.
VISIBLE
);
messageView
.
setVisibility
(
View
.
GONE
);
//查询数据库 当前用户
Query
query
=
mMessageSysDao
.
queryBuilder
().
where
(
MessageSysDao
.
Properties
.
Id1
.
eq
(
String
.
valueOf
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
()))))
.
build
();
// 查询结果以 List 返回
List
<
MessageSys
>
list1
=
query
.
list
();
//如果用户数据库有值
if
(
list1
.
size
()
>
0
)
{
List
list
=
new
ArrayList
();
for
(
int
ks
=
0
;
ks
<
list1
.
size
();
ks
++)
{
list
.
add
(
list1
.
get
(
ks
).
getIds
());
}
//判断接口返回数据与本地数据库值,如果接口数据不包含本地。就添加
for
(
int
j
=
0
;
j
<
dataBeen
.
size
();
j
++)
{
if
(!
list
.
contains
(
String
.
valueOf
(
dataBeen
.
get
(
j
).
getId
())))
{
ss
=
new
MessageSys
(
null
,
String
.
valueOf
(
dataBeen
.
get
(
j
).
getId
()),
String
.
valueOf
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
())),
"0"
);
//插入数据
mMessageSysDao
.
insert
(
ss
);
}
mAdapter
.
addData
(
message
.
getData
());
}
if
(
mPage
==
mTotalPage
)
{
mAdapter
.
loadMoreEnd
();
}
else
{
for
(
int
i
=
0
;
i
<
dataBeen
.
size
();
i
++)
{
ss
=
new
MessageSys
(
null
,
String
.
valueOf
(
dataBeen
.
get
(
i
).
getId
()),
String
.
valueOf
(
GetUserInfo
.
getACCOUNT_ID
(
getContext
())),
"0"
);
//插入数据
mMessageSysDao
.
insert
(
ss
);
}
mAdapter
.
loadMoreComplete
();
mPage
+=
1
;
}
Map
<
String
,
String
>
map
=
new
HashMap
();
for
(
MessageSys
pzIm
:
list1
)
{
map
.
put
(
pzIm
.
getIds
(),
pzIm
.
getFlag
());
}
NewMessage
LookMessagesBean2
;
myDataList
.
clear
();
for
(
int
ixx
=
0
;
ixx
<
dataBeen
.
size
();
ixx
++)
{
NewMessage
LookMessagesBean1
=
dataBeen
.
get
(
ixx
);
LookMessagesBean2
=
new
NewMessage
();
LookMessagesBean2
.
setId
(
LookMessagesBean1
.
getId
());
if
(
map
.
containsKey
(
String
.
valueOf
(
LookMessagesBean1
.
getId
())))
{
LookMessagesBean2
.
setFlag
(
map
.
get
(
String
.
valueOf
(
LookMessagesBean1
.
getId
())));
}
LookMessagesBean2
.
setCreateTime
(
LookMessagesBean1
.
getCreateTime
());
LookMessagesBean2
.
setAction
(
LookMessagesBean1
.
getAction
());
LookMessagesBean2
.
setBatchId
(
LookMessagesBean1
.
getBatchId
());
LookMessagesBean2
.
setCategory
(
LookMessagesBean1
.
getCategory
());
LookMessagesBean2
.
setContent
(
LookMessagesBean1
.
getContent
());
LookMessagesBean2
.
setTitle
(
LookMessagesBean1
.
getTitle
());
LookMessagesBean2
.
setEndTime
(
LookMessagesBean1
.
getEndTime
());
LookMessagesBean2
.
setFunctionType
(
LookMessagesBean1
.
getFunctionType
());
LookMessagesBean2
.
setReason
(
LookMessagesBean1
.
getReason
());
LookMessagesBean2
.
setHxAccount
(
LookMessagesBean1
.
getHxAccount
());
LookMessagesBean2
.
setType
(
LookMessagesBean1
.
getType
());
LookMessagesBean2
.
setStatus
(
LookMessagesBean1
.
getStatus
());
LookMessagesBean2
.
setSender
(
LookMessagesBean1
.
getSender
());
LookMessagesBean2
.
setStartTime
(
LookMessagesBean1
.
getStartTime
());
LookMessagesBean2
.
setCustomJson
(
LookMessagesBean1
.
getCustomJson
());
myDataList
.
add
(
LookMessagesBean2
);
if
(
myDataList
.
isEmpty
())
{
Collections
.
sort
(
myDataList
,
(
o1
,
o2
)
->
o1
.
getCreateTime
().
toString
().
compareTo
(
o2
.
getCreateTime
().
toString
()));
}
}
systemAdapter
.
notifyDataSetChanged
();
dialog
.
dismiss
();
}
else
{
mRefreshLayout
.
setRefreshing
(
false
);
messageView
.
setVisibility
(
View
.
VISIBLE
);
}
}
@Override
public
void
onDestroyView
()
{
super
.
onDestroyView
();
unbinder
.
unbind
();
public
void
getHxMessageFail
()
{
messageView
.
setVisibility
(
View
.
VISIBLE
);
}
@Override
public
void
onResume
()
{
super
.
onResume
();
initData
(
token
,
hxUserId
);
public
void
onRefresh
()
{
mRefreshState
=
1
;
mPage
=
1
;
mPresenter
.
getHxMessage
(
hxUserId
,
1
,
mPage
,
mPageSize
);
}
}
app/src/main/res/layout/fragment_message_system.xml
View file @
58f6ac2e
...
...
@@ -4,38 +4,52 @@
android:layout_height=
"match_parent"
android:background=
"@color/cl_home_listview_bg"
android:orientation=
"vertical"
>
<ListView
android:id=
"@+id/message_system_listview"
<android.support.v4.widget.SwipeRefreshLayout
android:id=
"@+id/receiving_refersh"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/rl_sysmessage"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:divider=
"@null"
android:scrollbars=
"none"
android:background=
"@color/cl_home_listview_bg"
android:background=
"#f5f5f5"
/>
</RelativeLayout>
</android.support.v4.widget.SwipeRefreshLayout>
<RelativeLayout
android:id=
"@+id/message_view"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerHorizontal=
"true"
android:layout_centerVertical=
"true"
android:visibility=
"gone"
>
<ImageView
android:id=
"@+id/message_image_empty"
android:layout_width=
"wrap_content"
android:src=
"@mipmap/yu"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/yu"
/>
<TextView
android:id=
"@+id/message_textView_empty"
android:layout_marginTop=
"@dimen/dp_17"
android:layout_below=
"@id/message_image_empty"
android:layout_centerHorizontal=
"true"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/message_image_empty"
android:layout_centerHorizontal=
"true"
android:layout_marginTop=
"@dimen/dp_17"
android:text=
"暂无通知"
android:textSize=
"@dimen/sp_13.3"
android:textColor=
"@color/cl_login_clearedittext_hint"
android:textSize=
"@dimen/sp_13.3"
/>
</RelativeLayout>
</RelativeLayout>
\ No newline at end of file
</RelativeLayout>
\ No newline at end of file
app/src/main/res/layout/message_adapter.xml
View file @
58f6ac2e
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_80"
android:orientation=
"vertical"
>
<RelativeLayout
android:id=
"@+id/item"
android:layout_width=
"@dimen/dp_333"
...
...
@@ -9,58 +11,62 @@
android:layout_centerHorizontal=
"true"
android:layout_marginTop=
"@dimen/dp_12"
android:background=
"@drawable/item_shape"
>
<TextView
android:id=
"@+id/line_textView"
android:layout_width=
"1dp"
android:background=
"@color/line_color"
android:layout_height=
"match_parent"
android:layout_marginLeft=
"89dp"
android:background=
"@color/line_color"
/>
<TextView
android:id=
"@+id/message_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_12"
android:textColor=
"@color/cl_home_title_text_color"
android:layout_marginTop=
"@dimen/dp_18"
android:layout_alignRight=
"@id/line_textView"
android:layout_marginRight=
"@dimen/dp_12"
android:layout_marginTop=
"@dimen/dp_18"
android:text=
"08-10"
android:textColor=
"@color/cl_home_title_text_color"
android:textSize=
"@dimen/sp_12"
/>
<TextView
android:id=
"@+id/message_date"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"24sp"
android:layout_marginTop=
"@dimen/dp_34"
android:textColor=
"@color/cl_home_title_text_color"
android:textStyle=
"bold"
android:layout_alignRight=
"@id/line_textView"
android:layout_marginRight=
"@dimen/dp_12"
android:layout_marginTop=
"@dimen/dp_34"
android:text=
"18:72"
android:textColor=
"@color/cl_home_title_text_color"
android:textSize=
"24sp"
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/message_text_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"工单被改派"
android:textSize=
"@dimen/sp_13.3"
android:textColor=
"@color/cl_home_title_text_color"
android:layout_alignLeft=
"@id/line_textView"
android:layout_marginLeft=
"@dimen/dp_16"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"@dimen/dp_16"
android:text=
"工单被改派"
android:textColor=
"@color/cl_home_title_text_color"
android:textSize=
"@dimen/sp_13.3"
/>
<TextView
android:id=
"@+id/iv"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_10"
android:textColor=
"@color/cl_tab_read"
android:text=
"未读"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:layout_marginRight=
"@dimen/dp_21.3"
android:text=
"未读"
android:textColor=
"@color/cl_tab_read"
android:textSize=
"@dimen/sp_10"
/>
</RelativeLayout>
</RelativeLayout>
\ 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