修改名称。

This commit is contained in:
2025-11-07 09:22:39 +08:00
parent d9cf55b053
commit a8dcfbb6a7
2203 changed files with 3 additions and 4 deletions

View File

@@ -0,0 +1,21 @@
package com.xscm.modulemain.activity.msg;
import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.NewsMessageList;
import java.util.List;
public class NewsContacts {
public interface View extends IView<Activity> {
void showNews(List<NewsMessageList> newsList);
void finishRefresh();
}
public interface IHomePre extends IPresenter {
void getMessagetitle(String type,String page,String pageLimit);
}
}

View File

@@ -0,0 +1,35 @@
package com.xscm.modulemain.activity.msg;
import android.content.Context;
import com.xscm.moduleutil.bean.NewsMessageList;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class NewsPresenter extends BasePresenter<NewsContacts.View> implements NewsContacts.IHomePre {
public NewsPresenter(NewsContacts.View view, Context context) {
super(view, context);
}
@Override
public void getMessagetitle(String type, String page, String pageLimit) {
api.getMessagetitle(type, page, pageLimit, new BaseObserver<List<NewsMessageList>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<NewsMessageList> newsMessageLists) {
MvpRef.get().showNews(newsMessageLists);
MvpRef.get().finishRefresh();
}
});
}
}

View File

@@ -0,0 +1,133 @@
package com.xscm.modulemain.activity.msg;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.content.Intent;
import android.text.Html;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.modulemain.BaseMvpActivity;
import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.ActivityOfficialNoticeBinding;
import com.xscm.modulemain.manager.RoomManager;
import com.xscm.modulemain.activity.WebViewActivity;
import com.xscm.moduleutil.bean.NewsMessageList;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.TimeUtils;
import java.util.List;
public class OfficialNoticeActivity extends BaseMvpActivity<NewsPresenter, ActivityOfficialNoticeBinding> implements NewsContacts.View {
private int page = 1;
private BaseQuickAdapter<NewsMessageList, BaseViewHolder> mAdapter;
private String type;
@Override
protected void initData() {
type = getIntent().getStringExtra("type");
if (type.equals("1")) {
mBinding.topBar.setTitle("系统消息");
} else {
mBinding.topBar.setTitle("官方公告");
}
// mBinding.smartRefreshLayout.autoRefresh();
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
page++;
MvpPre.getMessagetitle(type, page + "", "10");
}
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page = 1;
MvpPre.getMessagetitle(type, page + "", "10");
}
});
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new BaseQuickAdapter<NewsMessageList, BaseViewHolder>(R.layout.news_rv_item_system_news) {
@Override
protected void convert(BaseViewHolder helper, NewsMessageList item) {
String time = TimeUtils.getDateToStringNoZ(Long.parseLong(item.getCreatetime()) * 1000L);
helper.setText(R.id.tv_sys_time, time);
if (item.getImage()==null || item.getImage().isEmpty()){
helper.getView(R.id.tv_sys_con).setVisibility(VISIBLE);
helper.setText(R.id.tv_sys_con, item.getContent());
helper.getView(R.id.ll_system_official).setVisibility(GONE);
}else {
helper.getView(R.id.tv_sys_con).setVisibility(GONE);
helper.getView(R.id.ll_system_official).setVisibility(VISIBLE);
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.image));
helper.setText(R.id.tv_cont, Html.fromHtml(item.getContent()));
}
helper.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (item.getRoom_id()>0){
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), item.getRoom_id()+"","",null);
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
}else if (item.getRoom_id() == 0 && item.getUrl() != null && !item.getUrl().isEmpty()){
Intent intent = new Intent(OfficialNoticeActivity.this, WebViewActivity.class);
intent.putExtra("url", item.getUrl());
startActivity(intent);
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", item.getUrl()).navigation();
}
}
});
// if (item.getType().equals("1")) {
// helper.getView(R.id.ll_system_official).setVisibility(GONE);
// } else if (item.getType().equals("2")) {
// helper.getView(R.id.tv_sys_con).setVisibility(GONE);
// helper.getView(R.id.ll_system_official).setVisibility(VISIBLE);
// } else {
// helper.getView(R.id.ll_system_official).setVisibility(GONE);
// }
// helper.getView(R.id.image).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
// }
// });
}
};
mBinding.recycleView.setAdapter(mAdapter);
MvpPre.getMessagetitle(type, "1", "10");
}
@Override
protected int getLayoutId() {
return R.layout.activity_official_notice;
}
@Override
protected NewsPresenter bindPresenter() {
return new NewsPresenter(this, this);
}
@Override
public void showNews(List<NewsMessageList> newsList) {
mAdapter.setNewData(newsList);
}
@Override
public void finishRefresh() {
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
}
}

View File

@@ -0,0 +1,23 @@
package com.xscm.modulemain.activity.msg.contacts;
import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.NewsDataBean;
import com.xscm.moduleutil.bean.UserInfo;
public class NewsContacts {
public interface View extends IView<Activity> {
void getOfficialNoticeList(NewsDataBean newsDataBeans);
void myInfoSuccess(UserInfo data);
}
public interface IHomePre extends IPresenter {
void getOfficialNotice();
void getMyInfo();
}
}

View File

@@ -0,0 +1,165 @@
package com.xscm.modulemain.activity.msg.fragment;
import android.content.Intent;
import android.view.View;
import androidx.fragment.app.Fragment;
import com.xscm.modulemain.R;
import com.tencent.imsdk.v2.V2TIMConversation;
import com.tencent.qcloud.tuicore.TUIConstants;
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIC2CChatActivity;
import com.tencent.qcloud.tuikit.tuiconversation.classicui.page.TUIConversationFragment;
import com.xscm.modulemain.activity.msg.OfficialNoticeActivity;
import com.xscm.modulemain.activity.msg.contacts.NewsContacts;
import com.xscm.modulemain.activity.msg.presenter.NewsPresenter;
import com.xscm.modulemain.databinding.FragmentNewsBinding;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.NewsDataBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.event.UnreadCountEvent;
import com.xscm.moduleutil.utils.SpUtil;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
/**
*@author qx
*@data 2025/5/26
*@description: 音域
*/
public class NewsFragment extends BaseMvpFragment<NewsPresenter, FragmentNewsBinding> implements NewsContacts.View {
private Long messageCount;
public static NewsFragment newInstance () {
return new NewsFragment();
}
@Override
protected void initData () {
}
@Override
public void onResume() {
super.onResume();
MvpPre.getOfficialNotice();
MvpPre.getMyInfo();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden){
MvpPre.getOfficialNotice();
MvpPre.getMyInfo();
}
}
@Override
protected void initView () {
List<Fragment> fragments = new ArrayList<>();
// 添加 tuiconversation 组件提供的经典版会话界面
fragments.add(new TUIConversationFragment());
// 添加 tuicontact 组件提供的经典版联系人界面
// fragments.add(new TUIContactFragment());
// FragmentAdapter fragmentAdapter = new FragmentAdapter(this);
// fragmentAdapter.setFragmentList(fragments);
// mBinding.viewPager.setOffscreenPageLimit(2);
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(fragments, getChildFragmentManager()));
mBinding.viewPager.setCurrentItem(0, false);
mBinding.ivRoom2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getActivity(), TUIC2CChatActivity.class);
intent.putExtra(TUIConstants.TUIChat.CHAT_ID, "10010");
intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_C2C);
startActivity(intent);
}
});
mBinding.rlSystem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(getActivity(), OfficialNoticeActivity.class);
intent.putExtra("type", "1");
startActivity(intent);
}
});
mBinding.rlOfficial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(getActivity(), OfficialNoticeActivity.class);
intent.putExtra("type", "2");
startActivity(intent);
}
});
}
@Override
protected void initListener () {
super.initListener();
}
@Override
protected int getLayoutId () {
return R.layout.fragment_news;
}
@Override
protected NewsPresenter bindPresenter () {
return new NewsPresenter(this, getContext());
}
@Override
public void getOfficialNoticeList(NewsDataBean newsDataBeans) {
if (newsDataBeans.getAnnouncement_last_message()!=null){
mBinding.tvNr.setText(newsDataBeans.getAnnouncement_last_message().getContent()!=null?newsDataBeans.getAnnouncement_last_message().getContent():"");
}else {
mBinding.tvNr.setText("");
}
if (newsDataBeans.getSystem_last_message()!=null){
mBinding.tvXtNr.setText(newsDataBeans.getSystem_last_message().getContent()!=null?newsDataBeans.getSystem_last_message().getContent():"");
}else {
mBinding.tvXtNr.setText("");
}
if (newsDataBeans.getSystem_no_read_count()>0) {
mBinding.tvXtCount.setText(newsDataBeans.getSystem_no_read_count()+"");
}else {
mBinding.tvXtCount.setVisibility(View.GONE);
}
if (newsDataBeans.getAnnouncement_read_count()>0) {
mBinding.tvOfficialCount.setText(newsDataBeans.getAnnouncement_read_count()+"");
}else {
mBinding.tvOfficialCount.setVisibility(View.GONE);
}
int count = newsDataBeans.getSystem_no_read_count()+newsDataBeans.getAnnouncement_read_count();
UnreadCountEvent event = CommonAppContext.getInstance().getUnreadCountEvent();
if (event== null){
event = new UnreadCountEvent();
event.setALong(0);
}
event.setBLong( (long)count);
CommonAppContext.getInstance().setUnreadCountEvent(event);
EventBus.getDefault().post(event);
}
@Override
public void myInfoSuccess(UserInfo data) {
SpUtil.saveUserInfo(data);
}
}

View File

@@ -0,0 +1,47 @@
package com.xscm.modulemain.activity.msg.presenter;
import android.content.Context;
import com.xscm.modulemain.activity.msg.contacts.NewsContacts;
import com.xscm.moduleutil.bean.NewsDataBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import io.reactivex.disposables.Disposable;
public class NewsPresenter extends BasePresenter<NewsContacts.View> implements NewsContacts.IHomePre {
public NewsPresenter(NewsContacts.View view, Context context) {
super(view, context);
}
@Override
public void getOfficialNotice() {
api.getOfficialNotice( new BaseObserver<NewsDataBean>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(NewsDataBean newsDataBeans) {
MvpRef.get().getOfficialNoticeList(newsDataBeans);
}
});
}
@Override
public void getMyInfo() {
api.getMyInfo(new BaseObserver<UserInfo>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(UserInfo userInfo) {
MvpRef.get().myInfoSuccess(userInfo);
}
});
}
}