|
@@ -2,8 +2,10 @@ package com.tencent.qcloud.tuikit.tuiconversation.classicui.widget;
|
|
|
|
|
|
import android.content.Context;
|
|
|
import android.util.AttributeSet;
|
|
|
+import android.util.Log;
|
|
|
import android.widget.RelativeLayout;
|
|
|
|
|
|
+import com.tencent.qcloud.tuikit.timcommon.classicui.widget.message.TopSmoothScroller;
|
|
|
import com.tencent.qcloud.tuikit.timcommon.component.TitleBarLayout;
|
|
|
import com.tencent.qcloud.tuikit.timcommon.component.interfaces.IUIKitCallback;
|
|
|
import com.tencent.qcloud.tuikit.tuiconversation.R;
|
|
@@ -12,6 +14,8 @@ import com.tencent.qcloud.tuikit.tuiconversation.classicui.interfaces.IConversat
|
|
|
import com.tencent.qcloud.tuikit.tuiconversation.interfaces.IConversationListAdapter;
|
|
|
import com.tencent.qcloud.tuikit.tuiconversation.presenter.ConversationPresenter;
|
|
|
|
|
|
+import androidx.recyclerview.widget.RecyclerView;
|
|
|
+
|
|
|
public class ConversationLayout extends RelativeLayout implements IConversationLayout {
|
|
|
private ConversationListLayout mConversationList;
|
|
|
private ConversationPresenter presenter;
|
|
@@ -129,6 +133,45 @@ public class ConversationLayout extends RelativeLayout implements IConversationL
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void findUnReadConversation() {
|
|
|
+ ConversationListAdapter adapter = mConversationList.getAdapter();
|
|
|
+ int itemCount = adapter.getItemCount();
|
|
|
+ if (itemCount > 0) {
|
|
|
+ int firstUnreadPos = -1;
|
|
|
+ for (int i = 0; i < itemCount; i++) {
|
|
|
+ ConversationInfo item = adapter.getItem(i);
|
|
|
+ if (item != null) {
|
|
|
+ boolean markUnread = item.isMarkUnread();
|
|
|
+ if(markUnread || item.getUnRead() > 0){
|
|
|
+ firstUnreadPos = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (firstUnreadPos == -1) {
|
|
|
+ firstUnreadPos = 0;
|
|
|
+ }
|
|
|
+ scrollToPosition(firstUnreadPos);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void scrollToPosition(int pos) {
|
|
|
+ if (mConversationList != null) {
|
|
|
+ RecyclerView.LayoutManager layoutManager = mConversationList.getLayoutManager();
|
|
|
+ ConversationListAdapter adapter = mConversationList.getAdapter();
|
|
|
+ if (adapter != null && adapter.getItemCount() > 0 && layoutManager != null) {
|
|
|
+ if (pos < 0 || pos >= adapter.getItemCount()) {
|
|
|
+ pos = 0;
|
|
|
+ }
|
|
|
+ Log.i("pq", "result pos:" + pos);
|
|
|
+ final TopSmoothScroller mScroller = new TopSmoothScroller(getContext());
|
|
|
+ mScroller.setTargetPosition(pos);
|
|
|
+ layoutManager.startSmoothScroll(mScroller);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public TitleBarLayout getTitleBar() {
|
|
|
return null;
|