提交 606dbb0f 编写于 作者: 楼国栋

Merge branch 'feature/android_im_chat_load_more' into 'develop'

android聊天窗口下拉加载更新消息内容

See merge request o2oa/o2oa!1067
...@@ -146,6 +146,10 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese ...@@ -146,6 +146,10 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese
finish() finish()
} }
//消息列表初始化 //消息列表初始化
sr_o2_chat_message_layout.setOnRefreshListener {
XLog.debug("下啦零零落落零零落落来了")
getPageData()
}
rv_o2_chat_messages.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) rv_o2_chat_messages.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
rv_o2_chat_messages.adapter = adapter rv_o2_chat_messages.adapter = adapter
adapter.eventListener = object : O2ChatMessageAdapter.MessageEventListener { adapter.eventListener = object : O2ChatMessageAdapter.MessageEventListener {
...@@ -188,6 +192,7 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese ...@@ -188,6 +192,7 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese
initListener() initListener()
sr_o2_chat_message_layout.isRefreshing = true
getPageData() getPageData()
//录音格式 //录音格式
...@@ -389,6 +394,7 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese ...@@ -389,6 +394,7 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese
} }
override fun backPageMessages(list: List<IMMessage>) { override fun backPageMessages(list: List<IMMessage>) {
sr_o2_chat_message_layout.isRefreshing = false
if (list.isNotEmpty()) { if (list.isNotEmpty()) {
page++ page++
adapter.addPageMessage(list) adapter.addPageMessage(list)
......
...@@ -72,10 +72,18 @@ class O2IMConversationPresenter : BasePresenterImpl<O2IMConversationContract.Vie ...@@ -72,10 +72,18 @@ class O2IMConversationPresenter : BasePresenterImpl<O2IMConversationContract.Vie
val service = getMessageCommunicateService(mView?.getContext()) val service = getMessageCommunicateService(mView?.getContext())
service?.let { service?.let {
it.myConversationList().subscribeOn(Schedulers.io()) it.myConversationList().subscribeOn(Schedulers.io())
.flatMap { res ->
val list = res.data
if ( list != null && list.isNotEmpty()) {
val newList = list.sortedByDescending { c -> c.lastMessage?.createTime }
Observable.just(newList)
}else {
Observable.just(ArrayList())
}
}
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.o2Subscribe { .o2Subscribe {
onNext { res-> onNext { list->
val list = res.data
if (list != null) { if (list != null) {
mView?.myConversationList(list) mView?.myConversationList(list)
}else{ }else{
......
...@@ -10,14 +10,21 @@ ...@@ -10,14 +10,21 @@
<include layout="@layout/snippet_appbarlayout_toolbar" /> <include layout="@layout/snippet_appbarlayout_toolbar" />
<android.support.v7.widget.RecyclerView <android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/rv_o2_chat_messages" android:id="@+id/sr_o2_chat_message_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/ll_o2_chat_input_layout" app:layout_constraintBottom_toTopOf="@+id/ll_o2_chat_input_layout"
app:layout_constraintTop_toBottomOf="@+id/app_bar_layout_snippet" /> app:layout_constraintTop_toBottomOf="@+id/app_bar_layout_snippet">
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_o2_chat_messages"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</android.support.v4.widget.SwipeRefreshLayout>
<net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.KeyboardLayout <net.zoneland.x.bpm.mobile.v1.zoneXBPM.widgets.KeyboardLayout
android:id="@+id/rv_o2_chat_emoji_box_out" android:id="@+id/rv_o2_chat_emoji_box_out"
...@@ -37,7 +44,7 @@ ...@@ -37,7 +44,7 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rv_o2_chat_messages" app:layout_constraintTop_toBottomOf="@+id/sr_o2_chat_message_layout"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册