- Home
- >> Nerd Digest
- >> Android
Your account has been flagged due to frequent spamming, you are not permitted to post comments. Contact admin@findnerd.com.
-
How to make use of RecyclerView to show the chats between two people in your app?
about 8 years ago
If your app wants to show the chats between you n your friend then you can make use of RecyclerView.
Here in the layout that is being inflated in RecylerView, I have used the visibility concept that the layout consists of two major layouts one layout shows the messages sent by me while other one shows the messages received by me, so below is the code for the same:-
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:id="@+id/llreceivedLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/fifteen_dp" android:orientation="horizontal" android:visibility="gone" android:weightSum="2"> <RelativeLayout android:layout_width="80dp" android:layout_height="95dp" android:layout_gravity="center_vertical" android:layout_marginLeft="@dimen/fifteen_dp"> <com.ltj.utility.CircleImageView android:id="@+id/imgReceivedProfilePic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:src="@drawable/profile_pic" /> <ProgressBar android:id="@+id/pbReceivedProfileImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:visibility="gone" /> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="@dimen/ten_dp" android:layout_marginRight="@dimen/ten_dp" android:layout_weight="2" android:orientation="vertical"> <TextView android:id="@+id/tvSenderName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/fifteen_sp" /> <ImageView android:id="@+id/imgRedPointer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:src="@drawable/pointerred" /> <LinearLayout android:id="@+id/llmainReceived" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@+id/imgRedPointer" android:background="@color/received_message_color" android:orientation="vertical"> <RelativeLayout android:id="@+id/rlReceivedAudioMessageReceived" android:layout_width="match_parent" android:layout_height="100dp" android:layout_marginBottom="@dimen/ten_dp" android:layout_marginLeft="@dimen/five_dp" android:layout_marginRight="@dimen/five_dp" android:layout_marginTop="@dimen/ten_dp" android:background="@color/messages_screen_text_view" android:visibility="gone"> <ImageView android:id="@+id/ivReceivedMessageAudioReceived" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="@dimen/fifteen_dp" android:src="@drawable/voice" android:tag="play" /> </RelativeLayout> <LinearLayout android:id="@+id/llVideoVisibility" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/ten_dp" android:layout_marginLeft="@dimen/five_dp" android:layout_marginRight="@dimen/five_dp" android:layout_marginTop="@dimen/ten_dp" android:orientation="vertical" android:visibility="gone"> <RelativeLayout android:id="@+id/rlVideoDummy" android:layout_width="match_parent" android:layout_height="100dp" android:background="@android:color/black"> <ImageView android:id="@+id/ivMessageVideoReceived" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="@dimen/five_dp" android:src="@drawable/play" /> </RelativeLayout> <TextView android:id="@+id/tvVideoCaption" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/messages_screen_text_view" android:padding="@dimen/five_dp" android:textSize="@dimen/fifteen_sp" /> </LinearLayout> <com.ltj.fonts.RobotoMediumTextView android:id="@+id/tvReceivedMessages" android:layout_width="match_parent" android:layout_height="wrap_content" android:lineSpacingExtra="2dp" android:padding="@dimen/five_dp" android:textColor="@android:color/white" android:textSize="@dimen/thirteen_sp" android:visibility="gone" /> <LinearLayout android:id="@+id/llImageVisibility" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/five_dp" android:layout_marginLeft="@dimen/five_dp" android:layout_marginRight="@dimen/five_dp" android:orientation="vertical" android:visibility="gone"> <ImageView android:id="@+id/imgReceivedImage" android:layout_width="match_parent" android:layout_height="140dp" android:layout_marginTop="@dimen/five_dp" android:adjustViewBounds="true" android:scaleType="centerCrop" android:textColor="@color/greyish" android:textSize="@dimen/thirteen_sp" /> <TextView android:id="@+id/tvMessageCaption" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/five_dp" android:paddingTop="@dimen/five_dp" android:textSize="@dimen/fifteen_sp" /> </LinearLayout> </LinearLayout> <com.ltj.fonts.RobotoMediumTextView android:id="@+id/tvReceivedDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/llmainReceived" android:layout_marginLeft="@dimen/five_dp" android:layout_marginTop="@dimen/ten_dp" android:paddingTop="@dimen/five_dp" android:textColor="@color/greyish" /> </RelativeLayout> </LinearLayout> <LinearLayout android:id="@+id/llSentLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/fifteen_dp" android:orientation="horizontal" android:visibility="gone" android:weightSum="2"> <RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="@dimen/ten_dp" android:layout_marginRight="@dimen/ten_dp" android:layout_weight="1.9" android:orientation="vertical"> <TextView android:id="@+id/tvReceiverName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:textSize="@dimen/fifteen_sp" /> <ImageView android:id="@+id/imgBluePointer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@drawable/pointerblue" /> <LinearLayout android:id="@+id/llMainSent" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/five_dp" android:layout_below="@id/tvReceiverName" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/imgBluePointer" android:background="@color/sent_message_color" android:orientation="vertical"> <LinearLayout android:id="@+id/llSentVideoVisibility" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/ten_dp" android:layout_marginLeft="@dimen/five_dp" android:layout_marginRight="@dimen/five_dp" android:layout_marginTop="@dimen/ten_dp" android:orientation="vertical" android:visibility="gone"> <RelativeLayout android:id="@+id/rlSentVideoDummy" android:layout_width="match_parent" android:layout_height="100dp" android:background="@android:color/black"> <ImageView android:id="@+id/ivSentMessageVideoReceived" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="@dimen/five_dp" android:src="@drawable/play" /> </RelativeLayout> <TextView android:id="@+id/tvSentVideoCaption" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/messages_screen_text_view" android:padding="@dimen/five_dp" android:textSize="@dimen/fifteen_sp" /> </LinearLayout> <com.ltj.fonts.RobotoMediumTextView android:id="@+id/tvSentMessages" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:lineSpacingExtra="2dp" android:padding="@dimen/five_dp" android:textColor="@android:color/white" android:textSize="@dimen/thirteen_sp" android:visibility="gone" /> <RelativeLayout android:id="@+id/rlSentAudioMessageReceived" android:layout_width="match_parent" android:layout_height="100dp" android:layout_marginBottom="@dimen/ten_dp" android:layout_marginLeft="@dimen/five_dp" android:layout_marginRight="@dimen/five_dp" android:layout_marginTop="@dimen/ten_dp" android:background="@color/messages_screen_text_view" android:visibility="gone"> <ImageView android:id="@+id/ivSentMessageAudioReceived" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="@dimen/fifteen_dp" android:src="@drawable/voice" android:tag="play" /> </RelativeLayout> <LinearLayout android:id="@+id/llSentImageVisibility" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/five_dp" android:layout_marginLeft="@dimen/five_dp" android:layout_marginRight="@dimen/five_dp" android:orientation="vertical" android:visibility="gone"> <ImageView android:id="@+id/imgSentImage" android:layout_width="match_parent" android:layout_height="140dp" android:layout_gravity="center_vertical" android:layout_marginTop="@dimen/five_dp" android:adjustViewBounds="true" android:scaleType="centerCrop" android:textColor="@color/greyish" android:textSize="@dimen/thirteen_sp" /> <TextView android:id="@+id/tvSentMessageCaption" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/five_dp" android:textSize="@dimen/fifteen_sp" /> </LinearLayout> </LinearLayout> <com.ltj.fonts.RobotoMediumTextView android:id="@+id/tvSentDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/llMainSent" android:layout_marginTop="@dimen/fifteen_dp" android:textColor="@color/greyish" /> </RelativeLayout> <RelativeLayout android:layout_width="80dp" android:layout_height="95dp" android:layout_alignParentRight="true" android:layout_gravity="center_vertical"> <com.ltj.utility.CircleImageView android:id="@+id/imgProfilePic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:src="@drawable/profile_pic" /> <ProgressBar android:id="@+id/pbProfileImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:visibility="gone" /> </RelativeLayout> </LinearLayout> </LinearLayout>
Above is the layout that I have used and below is the RecyclerView adapter code, I have made the changes in onBindViewHolder
public class MessageHistoryRViewAdapter extends RecyclerView.Adapter<MessageHistoryRViewAdapter.ViewHolder> { private Context context; private ArrayList<MessageHistory> messageHistoryList; private String type; private String status; private ProgressDialog progressDialog; private HashMap<String, String> mParams; private HashMap<String, String> mHeaders; private CommonHttpHandler commonHttpHandler; private Gson gson; private String user_Pic; private String my_pic; private String name; private String group_Name; private AppSharedPreferences appSharedPreferences; public MessageHistoryRViewAdapter(Context context, ArrayList<MessageHistory> data, String profile_pic, String myPic, String person_name) { this.context = context; messageHistoryList = data; user_Pic = profile_pic; my_pic = myPic; name = person_name; this.type = type; this.status = status; initVariables(); } private void initVariables() { progressDialog = new ProgressDialog(context); progressDialog.setMessage(AppConstants.sPleaseWait); progressDialog.setCancelable(false); gson = new Gson(); appSharedPreferences = AppSharedPreferences.getInstance(context); } public class ViewHolder extends RecyclerView.ViewHolder { ImageView ivSentMessageAudioReceived, ivSentMessageVideoReceived, imgReceivedProfilePic, imgProfilePic, imgReceivedImage, imgSentImage, ivReceivedMessageAudioReceived, ivMessageVideoReceived; TextView tvReceiverName, tvSenderName, tvReceivedMessage, tvSentMessage, tvReceivedDate, tvReceivedTime, tvSentDate, tvSentTime, tvSentVideoCaption, tvSentMessageCaption, tvMessageCaption, tvVideoCaption; LinearLayout llreceivedLayout, llSentLayout, llImageVisibility, llSentImageVisibility, llVideoVisibility, llSentVideoVisibility; ProgressBar pbReceivedProfileImage, pbProfileImage; RelativeLayout rlReceivedAudioMessageReceived, rlSentAudioMessageReceived; private ViewHolder(View itemLayoutView) { super(itemLayoutView); ivReceivedMessageAudioReceived = (ImageView) itemLayoutView.findViewById(R.id.ivReceivedMessageAudioReceived); ivMessageVideoReceived = (ImageView) itemLayoutView.findViewById(R.id.ivMessageVideoReceived); ivSentMessageVideoReceived = (ImageView) itemLayoutView.findViewById(R.id.ivSentMessageVideoReceived); ivSentMessageAudioReceived = (ImageView) itemLayoutView.findViewById(R.id.ivSentMessageAudioReceived); llVideoVisibility = (LinearLayout) itemLayoutView.findViewById(R.id.llVideoVisibility); llSentVideoVisibility = (LinearLayout) itemLayoutView.findViewById(R.id.llSentVideoVisibility); rlReceivedAudioMessageReceived = (RelativeLayout) itemLayoutView.findViewById(R.id.rlReceivedAudioMessageReceived); rlSentAudioMessageReceived = (RelativeLayout) itemLayoutView.findViewById(R.id.rlSentAudioMessageReceived); llImageVisibility = (LinearLayout) itemLayoutView.findViewById(R.id.llImageVisibility); llSentImageVisibility = (LinearLayout) itemLayoutView.findViewById(R.id.llSentImageVisibility); imgReceivedProfilePic = (ImageView) itemLayoutView.findViewById(R.id.imgReceivedProfilePic); imgProfilePic = (ImageView) itemLayoutView.findViewById(R.id.imgProfilePic); imgReceivedImage = (ImageView) itemLayoutView.findViewById(R.id.imgReceivedImage); imgSentImage = (ImageView) itemLayoutView.findViewById(R.id.imgSentImage); tvSentVideoCaption = (TextView) itemLayoutView.findViewById(R.id.tvSentVideoCaption); tvSentMessageCaption = (TextView) itemLayoutView.findViewById(R.id.tvSentMessageCaption); tvReceivedDate = (TextView) itemLayoutView.findViewById(R.id.tvReceivedDate); tvSenderName = (TextView) itemLayoutView.findViewById(R.id.tvSenderName); tvReceiverName = (TextView) itemLayoutView.findViewById(R.id.tvReceiverName); tvMessageCaption = (TextView) itemLayoutView.findViewById(R.id.tvMessageCaption); tvVideoCaption = (TextView) itemLayoutView.findViewById(R.id.tvVideoCaption); tvSentDate = (TextView) itemLayoutView.findViewById(R.id.tvSentDate); tvSentMessage = (TextView) itemLayoutView.findViewById(R.id.tvSentMessages); tvReceivedMessage = (TextView) itemLayoutView.findViewById(R.id.tvReceivedMessages); llreceivedLayout = (LinearLayout) itemLayoutView.findViewById(R.id.llreceivedLayout); llSentLayout = (LinearLayout) itemLayoutView.findViewById(R.id.llSentLayout); pbProfileImage = (ProgressBar) itemLayoutView.findViewById(R.id.pbProfileImage); pbReceivedProfileImage = (ProgressBar) itemLayoutView.findViewById(R.id.pbReceivedProfileImage); } } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_history_layout, parent, false); return new ViewHolder(itemLayoutView); } @Override public void onBindViewHolder(final ViewHolder holder, final int position) { if (messageHistoryList.get(position).getMessage().getSender_id().equals(appSharedPreferences.getString(AppConstants.KEY_SHARED_PREFERENCE_USER_ID, ""))) { holder.llSentLayout.setVisibility(View.VISIBLE); String date = parseDateToddMMYYYY(messageHistoryList.get(position).getMessage().getCreated()); holder.tvSentDate.setText(date); holder.pbReceivedProfileImage.setVisibility(View.GONE); holder.llreceivedLayout.setVisibility(View.GONE); if (messageHistoryList.get(position).getMessage().getGroup_id() != null && messageHistoryList.get(position).getMessage().getMessage().equalsIgnoreCase("You have an invitation from a group.")) { holder.tvReceiverName.setText(appSharedPreferences.getString(AppConstants.KEY_FIRST_NAME, "") + " " + appSharedPreferences.getString(AppConstants.KEY_LAST_NAME, "")); } else { holder.tvReceiverName.setText(appSharedPreferences.getString(AppConstants.KEY_FIRST_NAME, "") + " " + appSharedPreferences.getString(AppConstants.KEY_LAST_NAME, "") + "(" + messageHistoryList.get(position).getGroup().getName() + ")"); } if (messageHistoryList.get(position).getMessage().getAudio() != null) { holder.rlSentAudioMessageReceived.setVisibility(View.VISIBLE); holder.llSentVideoVisibility.setVisibility(View.GONE); holder.llSentImageVisibility.setVisibility(View.GONE); holder.tvSentMessage.setVisibility(View.GONE); } else if (messageHistoryList.get(position).getMessage().getVideo() != null) { holder.llSentVideoVisibility.setVisibility(View.VISIBLE); holder.rlSentAudioMessageReceived.setVisibility(View.GONE); holder.llSentImageVisibility.setVisibility(View.GONE); holder.tvSentMessage.setVisibility(View.GONE); if (messageHistoryList.get(position).getMessage().getMessage() != null) { holder.tvSentVideoCaption.setText(messageHistoryList.get(position).getMessage().getMessage()); } else { holder.tvSentVideoCaption.setVisibility(View.GONE); } } else if (messageHistoryList.get(position).getMessage().getImage() != null) { holder.llSentImageVisibility.setVisibility(View.VISIBLE); holder.rlSentAudioMessageReceived.setVisibility(View.GONE); holder.llSentVideoVisibility.setVisibility(View.GONE); holder.tvSentMessage.setVisibility(View.GONE); loadImageInImageSend(messageHistoryList.get(position).getMessage().getImage(), holder.imgSentImage); if (messageHistoryList.get(position).getMessage().getMessage() != null) { holder.tvSentMessageCaption.setText(messageHistoryList.get(position).getMessage().getMessage()); } else { holder.tvSentMessageCaption.setVisibility(View.GONE); } } else { holder.tvSentMessage.setVisibility(View.VISIBLE); holder.llSentImageVisibility.setVisibility(View.GONE); holder.rlSentAudioMessageReceived.setVisibility(View.GONE); holder.llSentVideoVisibility.setVisibility(View.GONE); holder.tvSentMessage.setText(messageHistoryList.get(position).getMessage().getMessage()); } String imgUrl = my_pic; if (!imgUrl.equals("")) { holder.pbProfileImage.setVisibility(View.VISIBLE); Glide.with(context).load(imgUrl).diskCacheStrategy(DiskCacheStrategy.ALL).listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { holder.pbProfileImage.setVisibility(View.GONE); holder.imgProfilePic.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.profile_pic)); return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { holder.pbProfileImage.setVisibility(View.GONE); return false; } }).into(holder.imgProfilePic); } else { holder.pbProfileImage.setVisibility(View.GONE); holder.imgProfilePic.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.profile_pic)); } } else { holder.llreceivedLayout.setVisibility(View.VISIBLE); holder.llSentLayout.setVisibility(View.GONE); holder.pbReceivedProfileImage.setVisibility(View.GONE); if (messageHistoryList.get(position).getMessage().getGroup_id() != null) { if (messageHistoryList.get(position).getMessage().getMessage().equalsIgnoreCase("You have an invitation from a group.")) holder.tvSenderName.setText(name); else { holder.tvSenderName.setText(name + "(" + messageHistoryList.get(position).getGroup().getName() + ")"); } } else holder.tvSenderName.setText(name); String date = parseDateToddMMYYYY(messageHistoryList.get(position).getMessage().getCreated()); holder.tvReceivedDate.setText(date); if (messageHistoryList.get(position).getMessage().getAudio() != null) { holder.rlReceivedAudioMessageReceived.setVisibility(View.VISIBLE); holder.llVideoVisibility.setVisibility(View.GONE); holder.llImageVisibility.setVisibility(View.GONE); holder.tvReceivedMessage.setVisibility(View.GONE); } else if (messageHistoryList.get(position).getMessage().getVideo() != null) { holder.llVideoVisibility.setVisibility(View.VISIBLE); holder.rlReceivedAudioMessageReceived.setVisibility(View.GONE); holder.llImageVisibility.setVisibility(View.GONE); holder.tvReceivedMessage.setVisibility(View.GONE); if (messageHistoryList.get(position).getMessage().getMessage() != null) { holder.tvVideoCaption.setText(messageHistoryList.get(position).getMessage().getMessage()); } else { holder.tvVideoCaption.setVisibility(View.GONE); } } else if (messageHistoryList.get(position).getMessage().getImage() != null) { holder.llImageVisibility.setVisibility(View.VISIBLE); holder.rlReceivedAudioMessageReceived.setVisibility(View.GONE); holder.llVideoVisibility.setVisibility(View.GONE); holder.tvReceivedMessage.setVisibility(View.GONE); loadImageInImageSend(messageHistoryList.get(position).getMessage().getImage(), holder.imgReceivedImage); if (messageHistoryList.get(position).getMessage().getMessage() != null) { holder.tvMessageCaption.setText(messageHistoryList.get(position).getMessage().getMessage()); } else { holder.tvMessageCaption.setVisibility(View.GONE); } } else { holder.tvReceivedMessage.setVisibility(View.VISIBLE); holder.rlReceivedAudioMessageReceived.setVisibility(View.GONE); holder.llVideoVisibility.setVisibility(View.GONE); holder.llImageVisibility.setVisibility(View.GONE); holder.tvReceivedMessage.setText(messageHistoryList.get(position).getMessage().getMessage()); } String imgUrl = user_Pic; if (!imgUrl.equals("")) { holder.pbReceivedProfileImage.setVisibility(View.VISIBLE); Glide.with(context).load(imgUrl).diskCacheStrategy(DiskCacheStrategy.ALL).listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { holder.pbReceivedProfileImage.setVisibility(View.GONE); holder.imgReceivedProfilePic.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.profile_pic)); return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { holder.pbReceivedProfileImage.setVisibility(View.GONE); return false; } }).into(holder.imgReceivedProfilePic); } else { holder.pbReceivedProfileImage.setVisibility(View.GONE); holder.imgReceivedProfilePic.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.profile_pic)); } } holder.imgSentImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (holder.imgSentImage.getVisibility() == (View.VISIBLE)) { Intent imageShowingIntent = new Intent(context, ImageShowingActivity.class); imageShowingIntent.putExtra("imagePath", messageHistoryList.get(position).getMessage().getImage()); context.startActivity(imageShowingIntent); } } }); holder.imgReceivedImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (holder.imgReceivedImage.getVisibility() == (View.VISIBLE)) { Intent imageShowingIntent = new Intent(context, ImageShowingActivity.class); imageShowingIntent.putExtra("imagePath", messageHistoryList.get(position).getMessage().getImage()); context.startActivity(imageShowingIntent); } } }); holder.ivReceivedMessageAudioReceived.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (holder.rlReceivedAudioMessageReceived.getVisibility() == (View.VISIBLE)) { Intent audioPlayIntent = new Intent(context, AudioPlayingActivity.class); audioPlayIntent.putExtra("audioPath", messageHistoryList.get(position).getMessage().getAudio()); context.startActivity(audioPlayIntent); } } }); holder.ivMessageVideoReceived.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (holder.llVideoVisibility.getVisibility() == (View.VISIBLE)) { Intent videoPlayingIntent = new Intent(context, VideoPlayingActivity.class); videoPlayingIntent.putExtra("videoPath", messageHistoryList.get(position).getMessage().getVideo()); context.startActivity(videoPlayingIntent); } } }); holder.ivSentMessageVideoReceived.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (holder.llSentVideoVisibility.getVisibility() == (View.VISIBLE)) { Intent videoPlayingIntent = new Intent(context, VideoPlayingActivity.class); videoPlayingIntent.putExtra("videoPath", messageHistoryList.get(position).getMessage().getVideo()); context.startActivity(videoPlayingIntent); } } }); holder.ivSentMessageAudioReceived.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (holder.rlSentAudioMessageReceived.getVisibility() == (View.VISIBLE)) { Intent audioPlayIntent = new Intent(context, AudioPlayingActivity.class); audioPlayIntent.putExtra("audioPath", messageHistoryList.get(position).getMessage().getAudio()); context.startActivity(audioPlayIntent); } } }); } @Override public int getItemCount() { return messageHistoryList.size(); } private void loadImageInImageSend(String profile_image, final ImageView imageView) { Glide.with(context).load(profile_image).diskCacheStrategy(DiskCacheStrategy.ALL).listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { Toast.makeText(context, "Failed to get Image From server..Please try again", Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { return false; } }).into(imageView); } private String parseDateToddMMYYYY(String time) { String inputPattern = "yyyy-MM-dd HH:mm:ss"; String outputPattern = "dd-MMM h:mm a"; SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern); SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern); Date date; String str = null; try { date = inputFormat.parse(time); str = outputFormat.format(date); } catch (ParseException e) { e.printStackTrace(); } return str; } }
Comment on it
Insert an Image
To select an image, click on it.
Image path:
Example : https://wmd-editor.com/images/cloud1.jpg
0 Comment(s)