add 分享

add 推送(搜索还没做、卡片还没做)
add 打招呼
This commit is contained in:
2024-03-15 16:06:18 +08:00
parent 828c5bd53e
commit 687d6e9bc0
66 changed files with 2225 additions and 31 deletions

View File

@@ -95,6 +95,7 @@ import com.yunbao.common.utils.GiftCacheUtil;
import com.yunbao.common.utils.GoogleUtils;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.LocationUtil;
import com.yunbao.common.utils.MessageSayHiNotifyManager;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SpUtil;
@@ -333,6 +334,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@Override
public void onPageSelected(int position) {
MessageSayHiNotifyManager.getInstance().resetActivity();
switch (position) {
case 0:
//点击埋点
@@ -536,6 +538,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
//获取指导员账号
ConversationIMListManager.get(this).getUserInstructor(this);
checkVersion();
MessageSayHiNotifyManager.getInstance().start();
}
/**

View File

@@ -5,7 +5,9 @@ import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
@@ -230,6 +232,7 @@ public class MsgAddressBookActivity extends AbsActivity {
.getPdluserFollow(position, new HttpCallback<List<MessageChatUserBean>>() {
@Override
public void onSuccess(List<MessageChatUserBean> data) {
System.err.println("关注列表:"+data.size());
for (MessageChatUserBean item : data) {
item.setType(MyAddressBookFragment.TYPE_FOLLOW);
}
@@ -251,6 +254,7 @@ public class MsgAddressBookActivity extends AbsActivity {
.getPdluserFans(position, new HttpCallback<List<MessageChatUserBean>>() {
@Override
public void onSuccess(List<MessageChatUserBean> data) {
System.err.println("好友列表:"+data.size());
for (MessageChatUserBean item : data) {
item.setType(MyAddressBookFragment.TYPE_FAN);
}
@@ -272,6 +276,7 @@ public class MsgAddressBookActivity extends AbsActivity {
.getPdluserFriend(position, new HttpCallback<List<MessageChatUserBean>>() {
@Override
public void onSuccess(List<MessageChatUserBean> data) {
System.err.println("互关列表:"+data.size());
for (MessageChatUserBean item : data) {
item.setType(MyAddressBookFragment.TYPE_MUTUAL);
}

View File

@@ -51,9 +51,11 @@ public class MainMsgAddressBookListAdapter extends BaseAdapter<MessageChatUserBe
} else if (viewType == TYPE_SEARCH_CHAT) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false);
holder = ViewHolder.createViewHolder(parent.getContext(), view);
} else {
} else if (viewType != -200) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false);
holder = ViewHolder.createViewHolder(parent.getContext(), view);
} else {
holder = super.onCreateViewHolder(parent, viewType);
}
return holder;
}
@@ -63,12 +65,17 @@ public class MainMsgAddressBookListAdapter extends BaseAdapter<MessageChatUserBe
int type = super.getItemViewType(position);
if (mDataList.size() > position) {
type = mDataList.get(position).getModelType();
} else if (mDataList.isEmpty() || isEmpty()) {
return -200;
}
return type;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
if(isEmpty()|| mDataList.isEmpty()){
return;
}
if (getItemViewType(position) == TYPE_SEARCH_USER) {
bindUser(holder, position);
} else if (getItemViewType(position) == TYPE_SEARCH_CHAT) {
@@ -80,9 +87,9 @@ public class MainMsgAddressBookListAdapter extends BaseAdapter<MessageChatUserBe
}
holder.getConvertView().setTag(mDataList.get(position));
holder.getConvertView().setOnClickListener(view -> {
MessageChatUserBean userBean= (MessageChatUserBean) view.getTag();
MessageChatUserBean userBean = (MessageChatUserBean) view.getTag();
RouteUtils.routeToConversationActivity(view.getContext(),
Conversation.ConversationType.PRIVATE,
Conversation.ConversationType.PRIVATE,
userBean.getId());
});
}
@@ -110,7 +117,7 @@ public class MainMsgAddressBookListAdapter extends BaseAdapter<MessageChatUserBe
holder.getView(R.id.btn).setVisibility(View.VISIBLE);
holder.setText(R.id.btn, WordUtil.getNewString(R.string.activity_msg_addressbook_tab_follow));
holder.getView(R.id.btn).setBackgroundResource(R.drawable.bg_msg_address_book_user_btn_follow);
}else{
} else {
holder.getView(R.id.btn).setVisibility(View.GONE);
}
holder.getView(R.id.btn).setOnClickListener(new View.OnClickListener() {
@@ -165,7 +172,7 @@ public class MainMsgAddressBookListAdapter extends BaseAdapter<MessageChatUserBe
holder.getView(R.id.btn).setVisibility(View.VISIBLE);
holder.setText(R.id.btn, WordUtil.getNewString(R.string.activity_msg_addressbook_tab_follow));
holder.getView(R.id.btn).setBackgroundResource(R.drawable.bg_msg_address_book_user_btn_follow);
}else{
} else {
holder.getView(R.id.btn).setVisibility(View.GONE);
}
holder.getView(R.id.btn).setOnClickListener(new View.OnClickListener() {

View File

@@ -41,6 +41,9 @@ public class MainMessageChatFragment extends ConversationListFragment {
public void setEmptyView(int viewLayoutMsgId) {
super.setEmptyView(viewLayoutMsgId);
}
public void setEmptyView(View view){
super.setEmptyView(view);
}
public void search(String search) {

View File

@@ -4,6 +4,8 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -16,6 +18,7 @@ import com.yunbao.common.bean.UserBean;
import com.yunbao.common.interfaces.OnGetItemListener;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.RandomUtil;
import com.yunbao.common.utils.ViewUtils;
import com.yunbao.main.R;
import com.yunbao.main.adapter.MainMsgAddressBookListAdapter;
@@ -41,6 +44,7 @@ public class MyAddressBookFragment extends Fragment {
List<MessageChatUserBean> list;
private OnItemClickListener<OnItemClickListener<List<MessageChatUserBean>>> listener;
int p = 1;
private View emptyView;
public MyAddressBookFragment(int typeMutual, OnItemClickListener<OnItemClickListener<List<MessageChatUserBean>>> listener) {
this.type = typeMutual;
@@ -50,13 +54,18 @@ public class MyAddressBookFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
emptyView = inflater.inflate(R.layout.view_layout_msg,container, false);
ViewUtils.findViewById(emptyView,R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_addressbook_not_search);
ViewUtils.findViewById(emptyView,R.id.textView, TextView.class).setText(R.string.not_data_message_address_book_list);
return inflater.inflate(R.layout.fragment_msg_addressbook_list, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mAdapter = new MainMsgAddressBookListAdapter();
if(emptyView!=null){
mAdapter.setEmptyView(emptyView);
}
this.mList = (RecyclerView) view.findViewById(R.id.rc_conversation_list);
this.mRefreshLayout = (SmartRefreshLayout) view.findViewById(R.id.rc_refresh);
LinearLayoutManager layoutManager = new LinearLayoutManager(this.getActivity());
@@ -87,6 +96,7 @@ public class MyAddressBookFragment extends Fragment {
@Override
public void onItemClick(List<MessageChatUserBean> bean, int position) {
if(bean.isEmpty()){
// mAdapter.setDataCollection(list);
mRefreshLayout.finishLoadMoreWithNoMoreData();
return;
}
@@ -100,6 +110,8 @@ public class MyAddressBookFragment extends Fragment {
private void onConversationListRefresh(RefreshLayout refreshLayout) {
mAdapter.getData().clear();
ViewUtils.findViewById(emptyView,R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_addressbook_not_search);
ViewUtils.findViewById(emptyView,R.id.textView, TextView.class).setText(R.string.not_data_message_address_book_list);
initData();
}
@@ -128,6 +140,8 @@ public class MyAddressBookFragment extends Fragment {
}
public void setSearchData(List<MessageChatUserBean> list) {
ViewUtils.findViewById(emptyView,R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_message_not_search);
ViewUtils.findViewById(emptyView,R.id.textView, TextView.class).setText(R.string.not_data_message_address_book_list_search);
mAdapter.setDataCollection(list);
mRefreshLayout.setEnableRefresh(false);
mRefreshLayout.setEnableLoadMore(false);

View File

@@ -283,7 +283,7 @@ public class ConversationIMListManager {
//非指导员都可以点击
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(baseUiConversation.mCore.getTargetId());
String[] list;
list = new String[]{WordUtil.getNewString(R.string.copy), WordUtil.getNewString(R.string.top)};
list = new String[]{WordUtil.getNewString(R.string.top),WordUtil.getNewString(R.string.delete)};
if (userInfo != null && !TextUtils.isEmpty(userInfo.getExtra())) {
IMLoginModel model = new Gson().fromJson(userInfo.getExtra(), IMLoginModel.class);
if (!TextUtils.equals(model.getIsAdmin(), "1")) {

View File

@@ -9,6 +9,7 @@ import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.event.FloatWarOrderEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.MessageSayHiNotifyManager;
import com.yunbao.main.R;
import org.greenrobot.eventbus.EventBus;
@@ -63,6 +64,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
@Override
protected void loadPageData(int position) {
MessageSayHiNotifyManager.getInstance().resetActivity();
switch (position) {
case 0:
floatWarOrder = false;

View File

@@ -8,6 +8,7 @@ import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
@@ -33,6 +34,8 @@ import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.bean.ImUserInfoModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.MessageChatIsAnchor;
import com.yunbao.common.bean.MessageUserInfoBean;
import com.yunbao.common.dialog.MessageSayHiNotifyDialog;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
@@ -47,6 +50,7 @@ import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.ViewUtils;
import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.activity.SystemMessageActivity;
@@ -91,6 +95,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
private EditText search;
XPopup.Builder moreXPopup;
private String homeZdyPop;
private View emptyView;
public MainMessageViewHolder setHomeZdyPop(String homeZdyPop) {
this.homeZdyPop = homeZdyPop;
@@ -136,11 +141,12 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
contacts = findViewById(R.id.news_icon_contacts);
more = findViewById(R.id.news_icon_more);
search = findViewById(R.id.search);
emptyView = LayoutInflater.from(getContentView().getContext()).inflate(R.layout.view_layout_msg, getRootView(), false);
contacts.setOnClickListener(view -> {
//通讯录
RouteUtil.forwardActivity(RouteUtil.PATH_ADDRESSBOOK);
// mContext.startActivity(new Intent(mContext, CompleteUserInfoActivity.class));
// mContext.startActivity(new Intent(mContext, MessageHiConfigRecordActivity.class));
// mContext.startActivity(new Intent(mContext, CompleteUserInfoActivity.class));
// mContext.startActivity(new Intent(mContext, MessageHiConfigRecordActivity.class));
});
search.addTextChangedListener(new TextWatcher() {
@Override
@@ -156,8 +162,12 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
public void afterTextChanged(Editable editable) {
if (conversationListFragment == null) return;
if (StringUtil.isEmpty(editable.toString())) {
ViewUtils.findViewById(emptyView,R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_message_not_chat_list);
ViewUtils.findViewById(emptyView,R.id.textView, TextView.class).setText(R.string.not_data_message_chat_list);
conversationListFragment.onChatList();
} else {
ViewUtils.findViewById(emptyView,R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_message_not_search);
ViewUtils.findViewById(emptyView,R.id.textView, TextView.class).setText(R.string.not_data_message_chat_list_search);
conversationListFragment.search(editable.toString());
}
}
@@ -246,7 +256,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
transaction.replace(R.id.container, conversationListFragment);
transaction.commit();
//自定义空数据背景View
conversationListFragment.setEmptyView(com.yunbao.live.R.layout.view_layout_msg);
conversationListFragment.setEmptyView(emptyView);
//刷新列表内用户信息
ConversationIMListManager.get(mContext).addUserInfoProvider();
}

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="68dp" android:height="37dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffff83c6" android:endColor="#ffeb6fff" android:angle="180" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="68dp" android:height="37dp">
<shape android:shape="rectangle">
<solid android:color="#ffdfdfdf" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="68dp" android:height="37dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ff777777" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="235dp" android:height="44dp">
<shape android:shape="rectangle">
<solid android:color="#ffffffff" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="63dp" android:height="23dp">
<shape android:shape="rectangle">
<solid android:color="#fffff6e8" />
<corners android:topLeftRadius="20dp" android:topRightRadius="20dp" android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" />
</shape>
</item>
</selector>

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="63dp"
android:layout_height="23dp"
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginEnd="5dp"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:gravity="start|center"
android:paddingStart="6dp"
android:paddingEnd="6dp"
android:textColor="#C38764"
android:textSize="11sp"
android:id="@+id/tag"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/view_chat_top_tag"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="#标签" />
</androidx.constraintlayout.widget.ConstraintLayout>