diff --git a/app/src/main/java/com/kanglai/push/ui/activity/InstantActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/InstantActivity.java index cb07633..5da2f36 100644 --- a/app/src/main/java/com/kanglai/push/ui/activity/InstantActivity.java +++ b/app/src/main/java/com/kanglai/push/ui/activity/InstantActivity.java @@ -1,8 +1,11 @@ package com.kanglai.push.ui.activity; import android.content.Context; +import android.icu.text.SimpleDateFormat; +import android.icu.util.Calendar; import android.os.Bundle; import android.text.InputFilter; +import android.text.TextUtils; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; @@ -15,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.blankj.utilcode.util.CacheDiskUtils; +import com.blankj.utilcode.util.StringUtils; import com.dolphin.core.base.BaseActivity; import com.dolphin.core.bus.RxBus; import com.dolphin.core.bus.RxSubscriptions; @@ -36,6 +40,8 @@ import org.json.JSONObject; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import io.reactivex.disposables.Disposable; @@ -46,22 +52,17 @@ import io.reactivex.disposables.Disposable; */ public class InstantActivity extends BaseActivity{ - private Disposable mSubscription; public SoloChatRoomAdapter mAdapter; public RefreshLayout refreshLayout; public RecyclerView mRecyclerView; - public TextView btn_send; public EditText input_box; public ImageView more_line; public ImageView more_fill; public GridLayout bottom_grid; public LinearLayout layout_footer; - public Boolean isShowBottom = false; // 底部功能模块显示开关,默认关闭 - - public List list = new ArrayList<>(); // 聊天数据 - - public LocalPushChatMsg msgData; // 聊天对象数据 - + public Boolean isShowBottom = false; + public LocalPushChatMsg localPushChatMsg; + private Disposable mSubscription; private User user = CacheDiskUtils.getInstance().getParcelable(CacheConstant.USER_INFO, User.CREATOR, new User()); @Override @@ -77,17 +78,6 @@ public class InstantActivity extends BaseActivity{ - JSONObject jsonObject = new JSONObject(new Gson().toJson(chat)); - // 收到友盟消息 查找最新的一条数据 - if (jsonObject.getString("concernFanId").equals(mViewModel.adverseData.getId())) mViewModel.loadNewDate(); -// LogUtils.d(jsonObject.getString("concernFanId"), mViewModel.adverseData.getId()); - }); - RxSubscriptions.add(mSubscription);*/ } @Override @@ -95,35 +85,36 @@ public class InstantActivity extends BaseActivity changBottomType()); more_fill.setOnClickListener(view -> changBottomType()); - bottom_grid = (GridLayout) findViewById(R.id.instant_grid); // 隐藏的九宫格 - layout_footer = (LinearLayout) findViewById(R.id.layout_footer); // 底部消息输入框、更多、发送按钮 - - msgData = getIntent().getParcelableExtra("GOING_TO_INSTANT"); // 接收跳转过来的值 - if (msgData instanceof LocalPushChatMsg) { - mViewModel.adverseData = msgData; // 将对方基础数据存起来 - mViewModel.init(); // 加载一方聊天记录 - judgeViewType(msgData); + bottom_grid = findViewById(R.id.instant_grid); + layout_footer = findViewById(R.id.layout_footer); + + localPushChatMsg= getIntent().getParcelableExtra("GOING_TO_INSTANT"); + if (localPushChatMsg instanceof LocalPushChatMsg) { + mViewModel.adverseData = localPushChatMsg; + mViewModel.init(); + judgeViewType(localPushChatMsg); } - // 一对一聊天室适配器初始化 -// final SoloChatRoomAdapter soloChatRoomAdapter = new SoloChatRoomAdapter(CollectionUtils.newArrayList(), msgData); -// mAdapter = soloChatRoomAdapter; -// RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this); // 初始化垂直适配器 -// mRecyclerView = findViewById(R.id.instant_recycler); -// mRecyclerView.setLayoutManager(mLayoutManager); -// mRecyclerView.setAdapter(mAdapter); -// -// refreshLayout = findViewById(R.id.instant_smart_refresh); // 刷新布局初始化 -// refreshLayout.setEnableRefresh(true); // 下拉刷新 -// refreshLayout.setEnableLoadMore(false); // 上拉加载更多 -// refreshLayout.setEnableAutoLoadMore(true); // 开启使上拉加载具有弹性效果 -// refreshLayout.setEnableScrollContentWhenLoaded(true); // 加载完成时滚动列表显示新的内容 -// refreshLayout.setOnRefreshListener(v -> mViewModel.init()); + mSubscription = RxBus.getInstance().toObservable(com.dolphin.umeng.entity.PushChatMessage.class) + .compose(RxUtil.schedulersTransformer()) + .compose(RxUtil.exceptionTransformer()) + .subscribe(msg -> { + com.dolphin.umeng.entity.PushChatMessage pushChatMessage = (com.dolphin.umeng.entity.PushChatMessage) msg; + PushChatMessage chatMessage = new PushChatMessage(); + chatMessage.setUserId(pushChatMessage.getFanUserId()); + chatMessage.setText(pushChatMessage.getText()); + Calendar calendar = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); + String currentTime = sdf.format(calendar.getTime()); + chatMessage.setCreateTime(currentTime); + mAdapter.append(chatMessage); + }); + RxSubscriptions.add(mSubscription); } /** @@ -131,31 +122,30 @@ public class InstantActivity extends BaseActivity requestList) { - final SoloChatRoomAdapter soloChatRoomAdapter = new SoloChatRoomAdapter(requestList, msgData); + final SoloChatRoomAdapter soloChatRoomAdapter = new SoloChatRoomAdapter(requestList, localPushChatMsg); mAdapter = soloChatRoomAdapter; RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this); // 初始化垂直适配器 mRecyclerView = findViewById(R.id.instant_recycler); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setAdapter(mAdapter); - refreshLayout = findViewById(R.id.instant_smart_refresh); // 刷新布局初始化 - refreshLayout.setEnableRefresh(true); // 下拉刷新 - refreshLayout.setEnableLoadMore(false); // 上拉加载更多 - refreshLayout.setEnableAutoLoadMore(true); // 开启使上拉加载具有弹性效果 - refreshLayout.setEnableScrollContentWhenLoaded(true); // 加载完成时滚动列表显示新的内容 + refreshLayout = findViewById(R.id.instant_smart_refresh); + refreshLayout.setEnableRefresh(true); + refreshLayout.setEnableLoadMore(false); + refreshLayout.setEnableAutoLoadMore(true); + refreshLayout.setEnableScrollContentWhenLoaded(true); refreshLayout.setOnRefreshListener(v -> mViewModel.loadMore()); - refreshLayout.setDisableContentWhenRefresh(true); // 在刷新时候禁止操作内容视图 + refreshLayout.setDisableContentWhenRefresh(true); } /** * 加载不同用户类型时的界面 - * * app端不能给 系统/企业用户/企业内部/系统 用户发消息 */ private void judgeViewType(LocalPushChatMsg data) { mViewModel.setTitleText(data.getUserName()); // 标题 if ("2".equals(data.getUserType()) || "5".equals(data.getUserType()) || "0".equals(data.getUserType())){ - layout_footer.setVisibility(View.GONE); + layout_footer.setVisibility(View.INVISIBLE); } } @@ -180,14 +170,13 @@ public class InstantActivity extends BaseActivity getWindow().getDecorView()).getWindowToken(), 0); } @Override protected void onDestroy() { super.onDestroy(); - if (mAdapter != null) mAdapter.clear(); // 清空数据 - RxSubscriptions.remove(mSubscription); // 解除RX监听防止内存泄露 + RxSubscriptions.remove(mSubscription); + if (mAdapter != null) mAdapter.clear(); } } diff --git a/app/src/main/java/com/kanglai/push/ui/adapter/MessageSwipeableRecyclerAdapter.java b/app/src/main/java/com/kanglai/push/ui/adapter/MessageSwipeableRecyclerAdapter.java index 24a977e..03448fd 100644 --- a/app/src/main/java/com/kanglai/push/ui/adapter/MessageSwipeableRecyclerAdapter.java +++ b/app/src/main/java/com/kanglai/push/ui/adapter/MessageSwipeableRecyclerAdapter.java @@ -68,11 +68,11 @@ public class MessageSwipeableRecyclerAdapter extends RecyclerView.Adapter onSwipeableViewContainerClick(view, item)); -// holder.hideBtn1.setOnClickListener(view -> onBtnSwipeable1Click(view)); - holder.hideBtn2.setOnClickListener(view -> setToRead(position)); + //holder.hideBtn1.setOnClickListener(view -> onBtnSwipeable1Click(view)); + //holder.hideBtn2.setOnClickListener(view -> setToRead(position)); holder.hideBtn3.setOnClickListener(view -> setToRemove(item)); } @@ -168,8 +168,8 @@ public class MessageSwipeableRecyclerAdapter extends RecyclerView.Adapter - + android:textStyle="bold" />--> - + android:src="@drawable/icon_badge_red" />-->