Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
IMSDK_Demo
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
王文龙
IMSDK_Demo
Commits
59ca9cf3
Commit
59ca9cf3
authored
Dec 15, 2020
by
王文龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update]优化通讯录中群发点击事件处理
parent
e691a879
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
84 additions
and
13 deletions
+84
-13
ContactListExpandableAdapter.java
.../offcn/imclient/adapter/ContactListExpandableAdapter.java
+33
-1
ContactListFragment.java
.../main/java/com/offcn/imclient/ui/ContactListFragment.java
+42
-10
item_contact_group.xml
app/src/main/res/layout/item_contact_group.xml
+9
-2
No files found.
app/src/main/java/com/offcn/imclient/adapter/ContactListExpandableAdapter.java
View file @
59ca9cf3
...
...
@@ -13,6 +13,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
import
com.bumptech.glide.request.RequestOptions
;
import
com.jyall.base.adapter.BaseRecyclerViewAdapter
;
import
com.jyall.base.adapter.RecyclerViewHolderUtil
;
import
com.jyall.base.util.ValidateUtils
;
import
com.offcn.imclient.R
;
import
com.offcn.imclient.bean.ServerContactBean
;
import
com.offcn.imclient.bean.UserBean
;
...
...
@@ -34,7 +35,7 @@ public class ContactListExpandableAdapter extends AnimatedExpandableListView.Ani
private
List
<
ServerContactBean
>
items
;
public
ContactListExpandableAdapter
(
Context
context
,
List
<
ServerContactBean
>
list
)
{
public
ContactListExpandableAdapter
(
Context
context
,
List
<
ServerContactBean
>
list
)
{
inflater
=
LayoutInflater
.
from
(
context
);
items
=
list
;
}
...
...
@@ -101,12 +102,31 @@ public class ContactListExpandableAdapter extends AnimatedExpandableListView.Ani
convertView
=
inflater
.
inflate
(
R
.
layout
.
item_contact_group
,
parent
,
false
);
holder
.
title
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
tv_name
);
holder
.
count
=
(
TextView
)
convertView
.
findViewById
(
R
.
id
.
tv_count
);
holder
.
ivChat
=
convertView
.
findViewById
(
R
.
id
.
iv_chat
);
convertView
.
setTag
(
holder
);
}
else
{
holder
=
(
GroupHolder
)
convertView
.
getTag
();
}
holder
.
title
.
setText
(
item
.
getKey
());
int
itemCount
=
0
;
if
(!
ValidateUtils
.
isEmpty
(
item
.
getList
()))
{
itemCount
=
item
.
getList
().
size
();
}
if
(
itemCount
==
0
)
{
holder
.
count
.
setVisibility
(
View
.
GONE
);
}
else
{
holder
.
count
.
setVisibility
(
View
.
VISIBLE
);
holder
.
count
.
setText
(
String
.
valueOf
(
itemCount
));
}
holder
.
ivChat
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnContactItemElementClickListener
!=
null
)
{
mOnContactItemElementClickListener
.
onClickChat
(
groupPosition
,
0
);
}
}
});
return
convertView
;
}
...
...
@@ -130,5 +150,17 @@ public class ContactListExpandableAdapter extends AnimatedExpandableListView.Ani
private
static
class
GroupHolder
{
TextView
title
;
TextView
count
;
ImageView
ivChat
;
}
public
void
setOnContactItemElementClickListener
(
OnContactItemElementClickListener
onContactItemElementClickListener
)
{
mOnContactItemElementClickListener
=
onContactItemElementClickListener
;
}
OnContactItemElementClickListener
mOnContactItemElementClickListener
;
public
interface
OnContactItemElementClickListener
{
void
onClickChat
(
int
groupPosition
,
int
childPosition
);
}
}
app/src/main/java/com/offcn/imclient/ui/ContactListFragment.java
View file @
59ca9cf3
...
...
@@ -63,17 +63,13 @@ public class ContactListFragment extends BaseFragment {
mRecyclerView
.
setOnChildClickListener
(
new
ExpandableListView
.
OnChildClickListener
()
{
@Override
public
boolean
onChildClick
(
ExpandableListView
parent
,
View
v
,
int
groupPosition
,
int
childPosition
,
long
id
)
{
UserBean
userBean
=
friends
.
get
(
groupPosition
).
getList
().
get
(
childPosition
);
ServerContactBean
contactBean
=
friends
.
get
(
groupPosition
);
if
(
userBean
!=
null
)
{
if
(
c
hildPosition
==
0
)
{
if
(
childPosition
==
0
)
{
// 说明是自定义的群发条目
ServerContactBean
contactBean
=
friends
.
get
(
groupPosition
);
if
(
c
ontactBean
!=
null
)
{
// 群发消息。收集当前群所有用户id,传给聊天页
String
title
=
""
;
String
title
=
contactBean
.
getKey
()
;
String
toId
=
""
;
if
(
contactBean
!=
null
)
{
title
=
contactBean
.
getKey
();
}
StringBuilder
stringBuilder
=
new
StringBuilder
();
List
<
UserBean
>
tmpList
=
contactBean
.
getList
();
if
(!
ValidateUtils
.
isEmpty
(
tmpList
))
{
...
...
@@ -85,10 +81,19 @@ public class ContactListFragment extends BaseFragment {
}
}
toId
=
stringBuilder
.
toString
();
OIMSDK
.
getInstance
().
startChat
(
getActivity
(),
OIMSendTypeEnum
.
GROUP
,
toId
,
title
,
0
);
}
else
{
CommonUtils
.
showToast
(
getActivity
(),
"该课程下暂无学生"
);
}
OIMSDK
.
getInstance
().
startChat
(
getActivity
(),
OIMSendTypeEnum
.
GROUP
,
toId
,
title
,
0
);
}
else
{
CommonUtils
.
showToast
(
getActivity
(),
"获取课程信息失败"
);
}
}
else
{
UserBean
userBean
=
friends
.
get
(
groupPosition
).
getList
().
get
(
childPosition
);
if
(
userBean
!=
null
)
{
OIMSDK
.
getInstance
().
startChat
(
getActivity
(),
OIMSendTypeEnum
.
PRIVATE
,
userBean
.
getUser_id
(),
userBean
.
getName
(),
0
);
}
else
{
CommonUtils
.
showToast
(
getActivity
(),
"获取学生信息失败"
);
}
}
...
...
@@ -106,8 +111,35 @@ public class ContactListFragment extends BaseFragment {
return
true
;
}
});
mAdapter
.
setOnContactItemElementClickListener
(
new
ContactListExpandableAdapter
.
OnContactItemElementClickListener
()
{
@Override
public
void
onClickChat
(
int
groupPosition
,
int
childPosition
)
{
ServerContactBean
contactBean
=
friends
.
get
(
groupPosition
);
if
(
contactBean
!=
null
)
{
// 群发消息。收集当前群所有用户id,传给聊天页
String
title
=
contactBean
.
getKey
();
String
toId
=
""
;
StringBuilder
stringBuilder
=
new
StringBuilder
();
List
<
UserBean
>
tmpList
=
contactBean
.
getList
();
if
(!
ValidateUtils
.
isEmpty
(
tmpList
))
{
for
(
int
i
=
0
;
i
<
tmpList
.
size
();
i
++)
{
UserBean
tmp
=
tmpList
.
get
(
i
);
stringBuilder
.
append
(
tmp
.
getUser_id
());
if
(
i
!=
tmpList
.
size
()
-
1
)
{
stringBuilder
.
append
(
","
);
}
}
toId
=
stringBuilder
.
toString
();
OIMSDK
.
getInstance
().
startChat
(
getActivity
(),
OIMSendTypeEnum
.
GROUP
,
toId
,
title
,
0
);
}
else
{
CommonUtils
.
showToast
(
getActivity
(),
"该课程下暂无学生"
);
}
}
}
});
getContactList
();
}
@Override
...
...
app/src/main/res/layout/item_contact_group.xml
View file @
59ca9cf3
...
...
@@ -2,8 +2,8 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:
paddingLeft=
"40dp
"
android:
gravity=
"center_vertical
"
>
android:
gravity=
"center_vertical
"
android:
paddingLeft=
"40dp
"
>
<TextView
android:id=
"@+id/tv_name"
...
...
@@ -17,4 +17,10 @@
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"5dp"
/>
<ImageView
android:id=
"@+id/iv_chat"
android:src=
"@mipmap/ic_teacher"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ 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