Search in sources :

Example 1 with DirectMessage

use of com.funstill.kelefun.data.model.DirectMessage in project keleFanfou by kelefun.

the class MsgAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
    ItemViewHolder itemHolder = (ItemViewHolder) holder;
    if (data.size() > 0) {
        DirectMessage directMessage = data.get(position);
        if (directMessage.getSender().getId().equals(myUserId)) {
            itemHolder.leftMsg.setVisibility(View.GONE);
            itemHolder.rightMsg.setVisibility(View.VISIBLE);
            itemHolder.msgTextRight.setText(directMessage.getText());
            itemHolder.msgTimeRight.setText(DateUtil.toAgo(directMessage.getCreatedAt()));
            Glide.with(mContext).load(directMessage.getSender().getProfileImageUrl()).into(itemHolder.msgAvatarRight);
        } else {
            itemHolder.leftMsg.setVisibility(View.VISIBLE);
            itemHolder.rightMsg.setVisibility(View.GONE);
            itemHolder.msgTextLeft.setText(directMessage.getText());
            itemHolder.msgTimeLeft.setText(DateUtil.toAgo(directMessage.getCreatedAt()));
            Glide.with(mContext).load(directMessage.getSender().getProfileImageUrl()).into(itemHolder.msgAvatarLeft);
        }
    }
}
Also used : DirectMessage(com.funstill.kelefun.data.model.DirectMessage)

Example 2 with DirectMessage

use of com.funstill.kelefun.data.model.DirectMessage in project keleFanfou by kelefun.

the class MsgInboxAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof ItemViewHolder) {
        ItemViewHolder itemHolder = (ItemViewHolder) holder;
        if (data.size() != 0) {
            DirectMessage directMessage = data.get(position);
            itemHolder.msgInboxText.setText(directMessage.getText());
            itemHolder.msgInboxTime.setText(DateUtil.toAgo(directMessage.getCreatedAt()));
            Glide.with(mContext).load(directMessage.getSender().getProfileImageUrl()).into(itemHolder.msgInboxAvatar);
        }
    }
}
Also used : DirectMessage(com.funstill.kelefun.data.model.DirectMessage)

Example 3 with DirectMessage

use of com.funstill.kelefun.data.model.DirectMessage in project keleFanfou by kelefun.

the class MsgConvListAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof ItemViewHolder) {
        ItemViewHolder itemHolder = (ItemViewHolder) holder;
        if (data.size() != 0) {
            DirectMessage directMessage = data.get(position).getDirectMessage();
            itemHolder.msgInboxText.setText(directMessage.getText());
            itemHolder.msgInboxTime.setText(DateUtil.toAgo(directMessage.getCreatedAt()));
            String avatarUrl;
            // 如果最近一条消息发送人不是自己
            if (directMessage.getSenderId().equals(data.get(position).getOtherId())) {
                avatarUrl = directMessage.getSender().getProfileImageUrlLarge();
                itemHolder.msgInboxUsername.setText(directMessage.getSenderScreenName());
            } else {
                avatarUrl = directMessage.getRecipient().getProfileImageUrlLarge();
                itemHolder.msgInboxUsername.setText(directMessage.getRecipientScreenName());
            }
            Glide.with(mContext).load(avatarUrl).into(itemHolder.msgInboxAvatar);
        }
    }
}
Also used : DirectMessage(com.funstill.kelefun.data.model.DirectMessage)

Example 4 with DirectMessage

use of com.funstill.kelefun.data.model.DirectMessage in project keleFanfou by kelefun.

the class MsgActivity method sendMsg.

private void sendMsg() {
    MsgApi api = BaseRetrofit.retrofit(new SignInterceptor()).create(MsgApi.class);
    if ("".equals(inputMsg.getText().toString())) {
        ToastUtil.showToast(getBaseContext(), "输入不能为空");
        return;
    }
    Call<DirectMessage> call = api.sendMsg(tuserId, inputMsg.getText().toString(), null);
    call.enqueue(new Callback<DirectMessage>() {

        @Override
        public void onResponse(Call<DirectMessage> call, Response<DirectMessage> response) {
            if (response.code() == 200) {
                DirectMessage msg = response.body();
                inputMsg.setText(null);
                data.add(msg);
                mAdapter.notifyDataSetChanged();
            } else if (response.code() == 403) {
                ToastUtil.showToast(getBaseContext(), "对方设置了隐私,需先请求关注");
            } else {
                try {
                    String errStr = response.errorBody().string();
                    JsonObject errJson = new JsonParser().parse(errStr).getAsJsonObject();
                    ToastUtil.showToast(getBaseContext(), errJson.get("error").getAsString());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        @Override
        public void onFailure(Call<DirectMessage> call, Throwable t) {
            t.printStackTrace();
        }
    });
}
Also used : MsgApi(com.funstill.kelefun.data.api.MsgApi) DirectMessage(com.funstill.kelefun.data.model.DirectMessage) SignInterceptor(com.funstill.kelefun.http.SignInterceptor) JsonObject(com.google.gson.JsonObject) IOException(java.io.IOException) JsonParser(com.google.gson.JsonParser)

Aggregations

DirectMessage (com.funstill.kelefun.data.model.DirectMessage)4 MsgApi (com.funstill.kelefun.data.api.MsgApi)1 SignInterceptor (com.funstill.kelefun.http.SignInterceptor)1 JsonObject (com.google.gson.JsonObject)1 JsonParser (com.google.gson.JsonParser)1 IOException (java.io.IOException)1