This commit is contained in:
2023-10-10 00:35:38 +08:00
parent 2bdc95b3b5
commit 676aba70e7
27 changed files with 1368 additions and 117 deletions

View File

@@ -15,6 +15,8 @@ import com.makeramen.roundedimageview.RoundedImageView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.AbsOTOActivity;
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
import com.shayu.onetoone.activity.fragments.message.MessageInteractiveFragment;
import com.shayu.onetoone.activity.fragments.message.MessageNoticeFragment;
import com.shayu.onetoone.activity.fragments.message.SystemMessageFragment;
import com.shayu.onetoone.bean.OfficialNoticeBean;
import com.shayu.onetoone.bean.SystemMessageBean;
@@ -34,120 +36,40 @@ import io.rong.imkit.conversation.ConversationFragment;
*/
@Route(path = RouteManager.ACTIVITY_MSG_CHAT)
public class ChatActivity extends AbsOTOActivity {
String targetId;
RoundedImageView avatar;
TextView uname;
TextView sign;
TextView home;
ImageView sex;
ImageView status;
Button follow;
OfficialNoticeBean noticeBean;
View titleBar;
int model;
Button callService;
@Override
protected void onCreate() {
super.onCreate();
model = getIntent().getIntExtra("model", 0);
String data = getIntent().getStringExtra("data");
if (!StringUtil.isEmpty(data)) {
noticeBean = JSONObject.parseObject(data, OfficialNoticeBean.class);
}
}
@Override
protected int getLayoutId() {
switch (model) {
case SystemMessageBean.TYPE_SYSTEM:
return R.layout.activity_msg_message;
}
return R.layout.activity_msg_chat;
}
@Override
protected void main(Bundle savedInstanceState) {
int type = getIntent().getIntExtra("model", 0);
ConversationFragment conversationFragment;
switch (model) {
case SystemMessageBean.TYPE_SYSTEM:
conversationFragment = new SystemMessageFragment();
initSystemMessage();
break;
default:
conversationFragment = new ChatMessageFragment();
initChat();
}
if (type == 4) {
conversationFragment = new SystemMessageFragment(getIntent().getStringExtra("data"));
} else if (type == 1) {
conversationFragment = new MessageNoticeFragment(getIntent().getStringExtra("data"));
} else if (type == 2) {
conversationFragment=new MessageInteractiveFragment(getIntent().getStringExtra("data"));
} else {
conversationFragment = new ChatMessageFragment();
}
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.container, conversationFragment);
transaction.commit();
}
private void initSystemMessage() {
titleBar = findViewById(R.id.include);
callService=findViewById(R.id.call_service);
titleBar.setVisibility(View.VISIBLE);
setTitle(noticeBean.getTitle());
callService.setOnClickListener(v -> {
String value = SpUtil.getStringValue("customerService");
if(!StringUtil.isEmpty(value)) {
OfficialNoticeBean service=JSONObject.parseObject(value, OfficialNoticeBean.class);
RouteUtil.forwardZhuangBanActivity(service.getTitle(),service.getLink());
}
});
}
private void initChat() {
avatar = findViewById(R.id.avatar);
uname = findViewById(R.id.user_name);
sign = findViewById(R.id.signature);
sex = findViewById(R.id.sex);
status = findViewById(R.id.status);
home = findViewById(R.id.home);
follow = findViewById(R.id.follow);
targetId = getIntent().getStringExtra("targetId");
updateUserInfo();
follow.setOnClickListener(v -> {
});
}
private void updateUserInfo() {
OTONetManager.getInstance(mContext)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override
public void onSuccess(UserBean data) {
ImgLoader.display(mContext, data.getUser().getAvatar(), avatar);
uname.setText(data.getUser().getUserNicename());
sign.setText(data.getUser().getSignature());
if (data.getUser().getSex() == 1) {
sex.setImageResource(R.mipmap.ic_message_tab_man);
} else {
sex.setImageResource(R.mipmap.ic_message_tab_woman);
}
switch (Integer.parseInt(data.getUser().getOnline())) {
case 0:
status.setImageResource(R.mipmap.ic_message_msg_status_online);
break;
case 2:
status.setImageResource(R.mipmap.ic_message_msg_status_busy);
break;
default:
status.setImageResource(R.mipmap.ic_message_msg_status_offline);
}
}
@Override
public void onError(String error) {
}
});
}
}