Inside my Adapter I check if the message starts with "pic" and if it's true I try to load Glide. without the Glide it shows the ImageView with static image.
But when I enable Glide it gives the following error:
The error: java.lang.NullPointerException: Argument must not be null
It does Toast the correct values but when I insert those values inside Glide it does crash... Any idea?
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
TimeAgo timeAgo2 = new TimeAgo();
if (getItemViewType(position) == SENDER_LAY) {
String senderTime = mData.get(position).getS_msg_date();
((MyViewHolder) viewHolder).s_msg.setText(mData.get(position).getS_msg());
((MyViewHolder) viewHolder).s_date.setText(timeAgo2.covertTimeToText(senderTime));
} else {
String myMsgTime = mData.get(position).getM_msg_date();
if (mData.get(position).getM_msg().startsWith("PIC")) {
setPosition(position);
((MyMsgViewHolder) viewHolder).m_msg.setVisibility(View.VISIBLE);
((MyMsgViewHolder) viewHolder).m_msg_cam.setVisibility(View.VISIBLE);
Toast.makeText(mContext, "PIC in pos: "+getPosition() + " value = " + mData.get(getPosition()).getM_msg(), Toast.LENGTH_SHORT).show();
Glide.with(mContext).load(mData.get(getPosition()).getM_msg()).apply(option).into(((MyMsgViewHolder) viewHolder).m_msg_cam);
} else {
((MyMsgViewHolder) viewHolder).m_msg_cam.setVisibility(View.GONE);
((MyMsgViewHolder) viewHolder).m_msg.setVisibility(View.VISIBLE);
((MyMsgViewHolder) viewHolder).m_msg.setText(mData.get(position).getM_msg());
}
((MyMsgViewHolder) viewHolder).my_date.setText(timeAgo2.covertTimeToText(myMsgTime));
}
}
static class MyMsgViewHolder extends RecyclerView.ViewHolder {
EmojiTextView m_msg;
TextView my_date;
ImageView m_msg_cam;
MyMsgViewHolder(@NonNull View itemView) {
super(itemView);
m_msg = itemView.findViewById(R.id.m_msg);
my_date = itemView.findViewById(R.id.my_date);
m_msg_cam = itemView.findViewById(R.id.m_msg_cam);
}
}