Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
19b956db
Commit
19b956db
authored
5 years ago
by
konghaorui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
私聊模块 补充防止 Rxjava 内存泄露逻辑
parent
aa09a02c
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
84 additions
and
69 deletions
+84
-69
DemoGlobalConfig.java
app/src/main/java/com/ydl/component/base/DemoGlobalConfig.java
+2
-2
OrderAction.java
m-im/src/main/java/com/yidianling/im/session/action/OrderAction.java
+18
-13
OtherMsgDetailActivity.java
m-im/src/main/java/com/yidianling/im/ui/activity/OtherMsgDetailActivity.java
+7
-7
SystemMsgDetailActivity.java
m-im/src/main/java/com/yidianling/im/ui/activity/SystemMsgDetailActivity.java
+5
-4
MsgListAdapter.java
m-im/src/main/java/com/yidianling/im/ui/adapter/MsgListAdapter.java
+9
-6
NewMultiMessageFragment.kt
m-im/src/main/java/com/yidianling/im/ui/page/NewMultiMessageFragment.kt
+4
-6
ChatFragment.kt
m-im/src/main/java/com/yidianling/im/ui/page/fragment/ChatFragment.kt
+3
-6
InteractFragment.kt
m-im/src/main/java/com/yidianling/im/ui/page/fragment/InteractFragment.kt
+2
-5
NoticeFragment.kt
m-im/src/main/java/com/yidianling/im/ui/page/fragment/NoticeFragment.kt
+5
-8
ChatAdapter.kt
m-im/src/main/java/com/yidianling/im/ui/page/fragment/adapter/ChatAdapter.kt
+8
-8
YDLBaseMessageActivity.java
m-im/src/main/java/com/yidianling/uikit/business/session/activity/YDLBaseMessageActivity.java
+3
-3
RxUtils.kt
ydl-platform/src/main/java/com/ydl/ydlcommon/data/http/RxUtils.kt
+17
-0
RxLifecycleUtils.kt
ydl-platform/src/main/java/com/ydl/ydlcommon/utils/RxLifecycleUtils.kt
+1
-1
No files found.
app/src/main/java/com/ydl/component/base/DemoGlobalConfig.java
View file @
19b956db
...
...
@@ -20,8 +20,8 @@ import java.util.List;
public
final
class
DemoGlobalConfig
implements
IConfigModule
{
String
APP_DOMAIN
=
"https://api.github.com/"
;
// public static String appEnv = YDLConstants.ENV_AUTO_TEST;
//
public static String appEnv = YDLConstants.ENV_PROD;
public
static
String
appEnv
=
YDLConstants
.
ENV_TEST
;
public
static
String
appEnv
=
YDLConstants
.
ENV_PROD
;
//
public static String appEnv = YDLConstants.ENV_TEST;
@Override
public
void
injectAppLifecycle
(
@NotNull
Context
context
,
@NotNull
List
<
IAppLifecycles
>
lifecycles
)
{
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/session/action/OrderAction.java
View file @
19b956db
...
...
@@ -2,23 +2,24 @@ package com.yidianling.im.session.action;
import
android.text.TextUtils
;
import
com.yidianling.nimbase.business.session.actions.BaseAction
;
import
com.yidianling.im.R
;
import
com.yidianling.im.http.ImHttpImpl
;
import
com.yidianling.im.http.ImRetrofitApi
;
import
com.yidianling.im.http.param.ExpertParam
;
import
com.yidianling.router.im.IMExpertBuild
;
import
com.ydl.webview.H5Params
;
import
com.ydl.webview.NewH5Activity
;
import
com.ydl.ydlcommon.base.lifecycle.ILifecycleable
;
import
com.ydl.ydlcommon.data.http.BaseResponse
;
import
com.ydl.ydlcommon.data.http.RxUtils
;
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
;
import
com.ydl.ydlcommon.utils.remind.ToastHelper
;
import
com.yidianling.im.R
;
import
com.yidianling.im.http.ImHttpImpl
;
import
com.yidianling.im.http.ImRetrofitApi
;
import
com.yidianling.im.http.param.ExpertParam
;
import
com.yidianling.nimbase.business.session.actions.BaseAction
;
import
com.yidianling.router.im.IMExpertBuild
;
import
org.jetbrains.annotations.NotNull
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
io.reactivex.disposables.Disposable
;
/**
* author : Zhangwenchao
...
...
@@ -35,10 +36,14 @@ public class OrderAction extends BaseAction {
@Override
public
void
onClick
()
{
ILifecycleable
lifecycleable
=
null
;
if
(
getActivity
()
instanceof
ILifecycleable
)
{
lifecycleable
=
(
ILifecycleable
)(
getActivity
());
}
//先根据uid判断用户类型:专家调一个接口,非专家调另外的接口
ImRetrofitApi
.
Companion
.
getImJavaApi
().
getUserType
(
getAccount
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
Disposable
dis
=
ImRetrofitApi
.
Companion
.
getImJavaApi
().
getUserType
(
getAccount
())
.
compose
(
RxUtils
.
applySchedulers
(
lifecycleable
))
.
subscribe
(
res
->
{
if
(
res
.
code
==
200
)
{
Observable
<
BaseResponse
<
IMExpertBuild
>>
observable
;
...
...
@@ -48,8 +53,8 @@ public class OrderAction extends BaseAction {
observable
=
ImHttpImpl
.
Companion
.
getInstance
().
getExpert
(
new
ExpertParam
(
Integer
.
valueOf
(
getAccount
()),
0
));
}
observable
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
Disposable
disposable
=
observable
.
compose
(
RxUtils
.
applySchedulers
())
.
subscribe
(
resp
->
{
if
(
resp
!=
null
&&
resp
.
data
!=
null
&&
resp
.
data
.
shareData
!=
null
&&
!
TextUtils
.
isEmpty
(
resp
.
data
.
shareData
.
order_url
))
{
NewH5Activity
.
start
(
getActivity
(),
new
H5Params
(
resp
.
data
.
shareData
.
order_url
+
"?search="
+
resp
.
data
.
shareData
.
doctorName
,
"订单"
));
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/activity/OtherMsgDetailActivity.java
View file @
19b956db
...
...
@@ -32,12 +32,12 @@ import in.srain.cube.views.ptr.PtrDefaultHandler;
import
in.srain.cube.views.ptr.PtrFrameLayout
;
import
in.srain.cube.views.ptr.PtrHandler
;
import
in.srain.cube.views.ptr.header.MaterialHeader
;
import
io.reactivex.
android.schedulers.AndroidSchedulers
;
import
io.reactivex.
disposables.Disposable
;
/**
* 动态消息列表
*/
public
class
OtherMsgDetailActivity
extends
BaseActivity
implements
PtrHandler
{
public
class
OtherMsgDetailActivity
extends
BaseActivity
implements
PtrHandler
{
String
title
=
""
;
...
...
@@ -106,7 +106,7 @@ public class OtherMsgDetailActivity extends BaseActivity implements PtrHandler {
store_house_ptr_frame
.
setPtrHandler
(
this
);
store_house_ptr_frame
.
addPtrUIHandler
(
header
);
adapter
=
new
MsgListAdapter
(
this
,
type
);
adapter
=
new
MsgListAdapter
(
this
,
type
,
this
);
lv_content
.
setAdapter
(
adapter
);
lv_content
.
setEmptyView
(
ll_empty
);
...
...
@@ -118,9 +118,9 @@ public class OtherMsgDetailActivity extends BaseActivity implements PtrHandler {
private
void
allMarkReaded
()
{
showProgressDialog
(
""
);
httpHelper
.
updateRead
(
new
ReadParam
(
type
))
Disposable
disposable
=
httpHelper
.
updateRead
(
new
ReadParam
(
type
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
updateStatusBean
->
{
dismissProgressDialog
();
if
(
updateStatusBean
!=
null
)
{
...
...
@@ -147,9 +147,9 @@ public class OtherMsgDetailActivity extends BaseActivity implements PtrHandler {
page
=
1
;
}
httpHelper
.
getMsgList
(
new
MsgListParam
(
page
+
""
,
type
))
Disposable
dis
=
httpHelper
.
getMsgList
(
new
MsgListParam
(
page
+
""
,
type
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
msgData
->
{
LogUtil
.
d
(
"data fetch compelete"
);
store_house_ptr_frame
.
refreshComplete
();
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/activity/SystemMsgDetailActivity.java
View file @
19b956db
...
...
@@ -28,11 +28,12 @@ import in.srain.cube.views.ptr.PtrHandler;
import
in.srain.cube.views.ptr.header.MaterialHeader
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
/**
* 系统消息列表
*/
public
class
SystemMsgDetailActivity
extends
BaseActivity
implements
PtrHandler
{
public
class
SystemMsgDetailActivity
extends
BaseActivity
implements
PtrHandler
{
PtrFrameLayout
store_house_ptr_frame
;
ListView
lv_content
;
...
...
@@ -99,9 +100,9 @@ public class SystemMsgDetailActivity extends BaseActivity implements PtrHandler
}
ImHttp
httpHelper
=
ImHttpImpl
.
Companion
.
getInstance
();
httpHelper
.
getSysMsgList
(
new
MsgListParam
(
page
+
""
,
type
))
Disposable
disposable
=
httpHelper
.
getSysMsgList
(
new
MsgListParam
(
page
+
""
,
type
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
systemMsgBeans
->
{
store_house_ptr_frame
.
refreshComplete
();
if
(
systemMsgBeans
.
isEmpty
())
{
...
...
@@ -112,7 +113,7 @@ public class SystemMsgDetailActivity extends BaseActivity implements PtrHandler
newTemps
.
addAll
(
adapter
.
getDataList
());
adapter
.
update
(
newTemps
);
if
(!
loadMore
)
{
Observable
.
timer
(
300
,
TimeUnit
.
MILLISECONDS
)
Disposable
dis
=
Observable
.
timer
(
300
,
TimeUnit
.
MILLISECONDS
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
aLong
->
{
//滚动到底部
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/adapter/MsgListAdapter.java
View file @
19b956db
...
...
@@ -10,6 +10,7 @@ import com.ydl.webview.H5Params;
import
com.ydl.webview.NewH5Activity
;
import
com.ydl.ydlcommon.adapter.CommonAdapter
;
import
com.ydl.ydlcommon.base.BaseActivity
;
import
com.ydl.ydlcommon.base.lifecycle.ILifecycleable
;
import
com.ydl.ydlcommon.data.http.RxUtils
;
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
;
import
com.ydl.ydlcommon.utils.StringUtils
;
...
...
@@ -28,13 +29,14 @@ import org.jetbrains.annotations.NotNull;
import
java.util.Map
;
import
de.greenrobot.event.EventBus
;
import
io.reactivex.
android.schedulers.AndroidSchedulers
;
import
io.reactivex.
disposables.Disposable
;
/**
* 消息adapter
* Created by softrice on 15/12/10.
*/
public
class
MsgListAdapter
extends
CommonAdapter
<
MsgData
>
{
private
ILifecycleable
lifecycleable
;
private
Activity
context
;
private
int
type
=
0
;
//消息类型
...
...
@@ -44,9 +46,10 @@ public class MsgListAdapter extends CommonAdapter<MsgData> {
private
ImHttp
httpHelper
;
public
MsgListAdapter
(
Activity
context
,
int
typ
e
)
{
public
MsgListAdapter
(
Activity
context
,
int
type
,
ILifecycleable
lifecycleabl
e
)
{
this
.
context
=
context
;
this
.
type
=
type
;
this
.
lifecycleable
=
lifecycleable
;
httpHelper
=
ImHttpImpl
.
Companion
.
getInstance
();
}
...
...
@@ -109,9 +112,9 @@ public class MsgListAdapter extends CommonAdapter<MsgData> {
if
(
fla
||
boo
)
{
//跟新未读
httpHelper
.
getMsgDetail
(
new
MsgDetailParam
(
mDataList
.
get
(
position
).
id
))
Disposable
dis
=
httpHelper
.
getMsgDetail
(
new
MsgDetailParam
(
mDataList
.
get
(
position
).
id
))
.
compose
(
RxUtils
.
applySchedulers
(
lifecycleable
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
msgDetail
->
{
mDataList
.
get
(
position
).
is_read
=
2
;
notifyDataSetChanged
();
...
...
@@ -125,9 +128,9 @@ public class MsgListAdapter extends CommonAdapter<MsgData> {
return
;
//如果是动态消息则到此结束,其它消息类型走下面流程
}
((
BaseActivity
)
context
).
showProgressDialog
(
"正在中转"
);
httpHelper
.
getMsgDetail
(
new
MsgDetailParam
(
mDataList
.
get
(
position
).
id
))
Disposable
di
=
httpHelper
.
getMsgDetail
(
new
MsgDetailParam
(
mDataList
.
get
(
position
).
id
))
.
compose
(
RxUtils
.
applySchedulers
(
lifecycleable
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
msgDetail
->
{
mDataList
.
get
(
position
).
is_read
=
2
;
((
BaseActivity
)
context
).
dismissProgressDialog
();
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/page/NewMultiMessageFragment.kt
View file @
19b956db
...
...
@@ -159,10 +159,9 @@ class NewMultiMessageFragment : BaseFragment() {
*/
fun
requestTopUnReadNumber
()
{
if
(
ImIn
.
getUserInfo
()
?.
uid
!=
"0"
)
{
ImHttpImpl
.
getInstance
().
getUnreadMessage
(
UnreadParam
(
"${ImIn.getUserInfo()?.uid}"
))
var
dis
=
ImHttpImpl
.
getInstance
().
getUnreadMessage
(
UnreadParam
(
"${ImIn.getUserInfo()?.uid}"
))
.
compose
<
UnreadMessageBean
>(
RxUtils
.
resultJavaData
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
subscribe
({
it
->
resetTopUnReadNumber
(
it
)
},
{
t
->
...
...
@@ -269,9 +268,8 @@ class NewMultiMessageFragment : BaseFragment() {
* 全部已读(私聊是单独处理的)
*/
fun
markAllMessageRead
()
{
ImHttpImpl
.
getInstance
().
clearMessage
(
ClearMessageParam
(
"${ImIn.getUserInfo()?.uid}"
,
"1"
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
var
dis
=
ImHttpImpl
.
getInstance
().
clearMessage
(
ClearMessageParam
(
"${ImIn.getUserInfo()?.uid}"
,
"1"
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
subscribe
({
it
->
if
(
it
.
data
)
{
//清除私聊群聊未读数
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/page/fragment/ChatFragment.kt
View file @
19b956db
...
...
@@ -21,8 +21,6 @@ import com.yidianling.im.ui.page.widget.ChatUnusualView
import
com.yidianling.im.ui.param.ChatParam
import
com.yidianling.router.RouterManager
import
de.greenrobot.event.EventBus
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.im_chat_fragment_layout.*
/**
...
...
@@ -84,10 +82,9 @@ class ChatFragment : BaseFragment(), XRecyclerView.LoadingListener {
var
selectType
:
Int
=
if
(
mChatModelType
==
ChatModelType
.
ALL
)
0
else
if
(
mChatModelType
==
ChatModelType
.
SERVICING
)
1
else
2
if
(
ImIn
.
getUserInfo
()
?.
uid
!=
"0"
)
{
ImHttpImpl
.
getInstance
().
getAllChatMessage
(
ChatParam
(
"${ImIn.getUserInfo()?.uid}"
,
"${selectType}"
))
var
dis
=
ImHttpImpl
.
getInstance
().
getAllChatMessage
(
ChatParam
(
"${ImIn.getUserInfo()?.uid}"
,
"${selectType}"
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
compose
<
ChatModelBean
>(
RxUtils
.
resultJavaData
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
it
->
if
(
it
.
before
.
data
.
size
!=
0
||
it
.
nomal
.
data
.
size
!=
0
)
{
setData
(
it
)
...
...
@@ -207,7 +204,7 @@ class ChatFragment : BaseFragment(), XRecyclerView.LoadingListener {
private
fun
initListData
()
{
chatAdapter
=
ChatAdapter
(
context
,
showData
)
chatAdapter
=
ChatAdapter
(
context
,
showData
,
this
)
chatAdapter
?.
setlistener
(
object
:
ChatAdapter
.
ChatRecyclerViewCallback
{
override
fun
onRefresh
()
{
getChatMessageData
()
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/page/fragment/InteractFragment.kt
View file @
19b956db
...
...
@@ -19,8 +19,6 @@ import com.yidianling.im.ui.page.fragment.view.InteractFooterItemView
import
com.yidianling.im.ui.page.widget.ChatUnusualView
import
com.yidianling.im.ui.param.InteractMessageParam
import
de.greenrobot.event.EventBus
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.im_interact_fragment.*
/**
...
...
@@ -91,10 +89,9 @@ class InteractFragment : BaseFragment(), XRecyclerView.LoadingListener {
if
(
ImIn
.
getUserInfo
()
?.
uid
!=
"0"
)
{
// 由于当前方法会因为各种因素多次调用,因此在接口返回值内判断只有在pageOn=1或者onLoadMore得时候,才将返回值加入展示列表中
ImHttpImpl
.
getInstance
().
getInteractMessage
(
InteractMessageParam
(
"${ImIn.getUserInfo()?.uid}"
,
"${requestPage}"
,
"${pageSize}"
))
var
dis
=
ImHttpImpl
.
getInstance
().
getInteractMessage
(
InteractMessageParam
(
"${ImIn.getUserInfo()?.uid}"
,
"${requestPage}"
,
"${pageSize}"
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
compose
(
RxUtils
.
resultJavaData
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
it
->
interact_recyclerview
.
refreshComplete
()
// 请求页面大于当前页面,才进行数据操作
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/page/fragment/NoticeFragment.kt
View file @
19b956db
...
...
@@ -3,20 +3,18 @@ package com.yidianling.im.ui.page.fragment
import
android.support.v7.widget.LinearLayoutManager
import
android.view.View
import
com.jcodecraeer.xrecyclerview.XRecyclerView
import
com.ydl.ydlcommon.base.BaseFragment
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.R
import
com.yidianling.im.event.MessageListRefreshEvent
import
com.yidianling.im.http.ImHttpImpl
import
com.yidianling.im.router.ImIn
import
com.yidianling.im.ui.page.fragment.adapter.NoticeAdapter
import
com.yidianling.im.ui.page.fragment.bean.NoticeItemBean
import
com.yidianling.im.ui.page.widget.ChatUnusualView
import
com.yidianling.im.ui.param.NoticeParam
import
com.ydl.ydlcommon.base.BaseFragment
import
com.yidianling.im.event.MessageListRefreshEvent
import
com.ydl.ydlcommon.data.http.RxUtils
import
de.greenrobot.event.EventBus
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.im_notice_fragment.*
/**
...
...
@@ -58,10 +56,9 @@ class NoticeFragment : BaseFragment(), XRecyclerView.LoadingListener {
*/
fun
getNoticeMessageData
()
{
if
(
ImIn
.
getUserInfo
()
?.
uid
!=
"0"
)
{
ImHttpImpl
.
getInstance
().
getNoticeMessage
(
NoticeParam
(
"${ImIn.getUserInfo()?.uid}"
))
var
dis
=
ImHttpImpl
.
getInstance
().
getNoticeMessage
(
NoticeParam
(
"${ImIn.getUserInfo()?.uid}"
))
.
compose
(
RxUtils
.
applySchedulers
(
this
))
.
compose
(
RxUtils
.
resultJavaData
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
it
->
noticeList
.
clear
()
// content为空的不展示
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/page/fragment/adapter/ChatAdapter.kt
View file @
19b956db
...
...
@@ -10,6 +10,7 @@ import android.view.ViewGroup
import
com.netease.nimlib.sdk.NIMClient
import
com.netease.nimlib.sdk.msg.MsgService
import
com.netease.nimlib.sdk.msg.constant.SessionTypeEnum
import
com.ydl.ydlcommon.base.lifecycle.ILifecycleable
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.utils.log.LogHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
...
...
@@ -27,13 +28,12 @@ import com.yidianling.im.ui.page.fragment.bean.ChatItemBean
import
com.yidianling.im.ui.page.fragment.view.ChatItemView
import
com.yidianling.im.ui.page.fragment.view.ChatTimeItemView
import
de.greenrobot.event.EventBus
import
io.reactivex.android.schedulers.AndroidSchedulers
/**
* 互动列表适配器
* Created by xj on 2019/10/14.
*/
class
ChatAdapter
(
var
context
:
Context
,
private
var
mList
:
ArrayList
<
ChatItemBean
>):
RecyclerView
.
Adapter
<
RecyclerView
.
ViewHolder
>()
{
class
ChatAdapter
(
var
context
:
Context
,
private
var
mList
:
ArrayList
<
ChatItemBean
>
,
private
var
lifecycleable
:
ILifecycleable
<*>
):
RecyclerView
.
Adapter
<
RecyclerView
.
ViewHolder
>()
{
companion
object
{
...
...
@@ -138,9 +138,9 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea
private
fun
delete
(
bean
:
ChatItemBean
)
{
LogHelper
.
getInstance
().
writeLogSync
(
"删除聊天:uid = "
+
bean
.
toUid
)
ImHttpImpl
.
getInstance
().
rmHistory
(
RmHistoryParam
(
bean
.
toUid
.
toString
(),
1
))
var
dis
=
ImHttpImpl
.
getInstance
().
rmHistory
(
RmHistoryParam
(
bean
.
toUid
.
toString
(),
1
))
.
compose
(
RxUtils
.
applySchedulers
(
lifecycleable
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
o
->
LogHelper
.
getInstance
().
writeLogSync
(
"删除聊天成功:uid = "
+
bean
.
toUid
)
NIMClient
.
getService
(
MsgService
::
class
.
java
).
clearChattingHistory
(
bean
.
toUid
.
toString
(),
SessionTypeEnum
.
P2P
)
...
...
@@ -153,9 +153,9 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea
private
fun
deleteItem
(
bean
:
ChatItemBean
)
{
ImHttpImpl
.
getInstance
().
rmTalk
(
RmTalkParam
(
bean
.
toUid
.
toString
()))
var
dis
=
ImHttpImpl
.
getInstance
().
rmTalk
(
RmTalkParam
(
bean
.
toUid
.
toString
()))
.
compose
(
RxUtils
.
applySchedulers
(
lifecycleable
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
o
->
NIMClient
.
getService
(
MsgService
::
class
.
java
).
clearUnreadCount
(
bean
.
toUid
.
toString
(),
SessionTypeEnum
.
P2P
)
NIMClient
.
getService
(
MsgService
::
class
.
java
).
clearUnreadCount
(
bean
.
toUid
.
toString
(),
SessionTypeEnum
.
Team
)
...
...
@@ -170,9 +170,9 @@ class ChatAdapter(var context: Context, private var mList: ArrayList<ChatItemBea
private
fun
toTop
(
bean
:
ChatItemBean
,
istop
:
Int
)
{
LogHelper
.
getInstance
().
writeLogSync
(
"置顶聊天:uid = "
+
bean
.
toUid
.
toString
()
+
"取消置顶 = "
+
(
istop
==
0
))
ImHttpImpl
.
getInstance
().
topMessage
(
TopMessageParam
(
bean
.
toUid
.
toString
(),
1
,
istop
))
var
dis
=
ImHttpImpl
.
getInstance
().
topMessage
(
TopMessageParam
(
bean
.
toUid
.
toString
(),
1
,
istop
))
.
compose
(
RxUtils
.
applySchedulers
(
lifecycleable
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
o
->
LogHelper
.
getInstance
().
writeLogSync
(
"置顶聊天成功:uid = "
+
bean
.
toUid
.
toString
()
+
"取消置顶 = "
+
(
istop
==
0
))
...
...
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/uikit/business/session/activity/YDLBaseMessageActivity.java
View file @
19b956db
...
...
@@ -10,6 +10,7 @@ import android.widget.ImageView;
import
android.widget.LinearLayout
;
import
android.widget.RelativeLayout
;
import
com.ydl.ydlcommon.data.http.RxUtils
;
import
com.yidianling.common.tools.ToastUtil
;
import
com.yidianling.im.R
;
import
com.yidianling.nimbase.api.model.session.SessionCustomization
;
...
...
@@ -27,6 +28,7 @@ import java.net.URLEncoder;
import
java.util.List
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.schedulers.Schedulers
;
/**
...
...
@@ -139,9 +141,7 @@ public abstract class YDLBaseMessageActivity extends UI {
if
(
ActionHandlerStorage
.
getL
(
sessionId
).
getUserType
()
==
2
)
{
// 专家
// 调取接口获取专家状态
ServiceImpl
.
Companion
.
getInstance
().
getDoctorChatStatus
(
Long
.
parseLong
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
toUid
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
Disposable
dis
=
ServiceImpl
.
Companion
.
getInstance
().
getDoctorChatStatus
(
Long
.
parseLong
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
toUid
))
.
subscribe
(
chatStatusBean
->
{
int
status
=
chatStatusBean
.
data
.
getStatus
();
...
...
This diff is collapsed.
Click to expand it.
ydl-platform/src/main/java/com/ydl/ydlcommon/data/http/RxUtils.kt
View file @
19b956db
...
...
@@ -2,6 +2,7 @@
package
com.ydl.ydlcommon.data.http
import
com.ydl.ydlcommon.base.BaseApp
import
com.ydl.ydlcommon.base.lifecycle.ILifecycleable
import
com.ydl.ydlcommon.mvp.base.IView
import
com.ydl.ydlcommon.mvp.lce.ILceView
import
com.ydl.ydlcommon.utils.RxLifecycleUtils
...
...
@@ -89,6 +90,7 @@ object RxUtils {
* 自动调用 showLoading/hideLoading 方法
* @param view LceView 强转使用
*/
@JvmStatic
fun
<
T
>
applySchedulers
(
view
:
ILceView
):
ObservableTransformer
<
T
,
T
>
{
return
ObservableTransformer
{
observable
->
observable
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -107,6 +109,7 @@ object RxUtils {
* RxJava 线程协调 / RxLifecycle绑定方法
*
*/
@JvmStatic
fun
<
T
>
applySchedulers
(
view
:
IView
):
ObservableTransformer
<
T
,
T
>
{
return
ObservableTransformer
{
observable
->
observable
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -116,9 +119,23 @@ object RxUtils {
}
}
@JvmStatic
fun
<
T
>
applySchedulers
(
iLifecycleable
:
ILifecycleable
<*>
?=
null
):
ObservableTransformer
<
T
,
T
>
{
if
(
iLifecycleable
==
null
){
return
applySchedulers
()
}
return
ObservableTransformer
{
observable
->
observable
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
iLifecycleable
))
}
}
/**
* RxJava 线程协调方法
*/
@JvmStatic
fun
<
T
>
applySchedulers
():
ObservableTransformer
<
T
,
T
>
{
return
ObservableTransformer
{
observable
->
observable
.
subscribeOn
(
Schedulers
.
io
())
...
...
This diff is collapsed.
Click to expand it.
ydl-platform/src/main/java/com/ydl/ydlcommon/utils/RxLifecycleUtils.kt
View file @
19b956db
...
...
@@ -83,7 +83,7 @@ class RxLifecycleUtils private constructor() {
/**
* 绑定 Activity/Fragment 的生命周期
*
* @param
view
* @param
activity
* @param <T>
* @return
</T> */
...
...
This diff is collapsed.
Click to expand it.
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