From 8006769ab67f63f5f048f2ccee06978f3a2c936c Mon Sep 17 00:00:00 2001 From: pranaysaini04 <128575315+pranaysaini04@users.noreply.github.com> Date: Thu, 2 Nov 2023 00:46:22 +0530 Subject: [PATCH] [CM-1704] - Fixed hidePostCta --- .../fragment/MobiComConversationFragment.java | 2 +- .../adapters/KmCardRMAdapter.java | 2 +- .../types/ButtonKmRichMessage.java | 2 +- .../types/ListKmRichMessage.java | 91 ++++++++++++------- 4 files changed, 62 insertions(+), 35 deletions(-) diff --git a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/fragment/MobiComConversationFragment.java b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/fragment/MobiComConversationFragment.java index 1b8b861bc..84b8511ea 100644 --- a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/fragment/MobiComConversationFragment.java +++ b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/fragment/MobiComConversationFragment.java @@ -1676,7 +1676,7 @@ public void run() { if (added) { //Todo: update unread count recyclerDetailConversationAdapter.updateLastSentMessage(message); - recyclerDetailConversationAdapter.onItemInserted(messageList.size()-1); + recyclerDetailConversationAdapter.notifyDataSetChanged(); linearLayoutManager.scrollToPositionWithOffset(messageList.size() - 1, 0); emptyTextView.setVisibility(View.GONE); currentConversationId = message.getConversationId(); diff --git a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/adapters/KmCardRMAdapter.java b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/adapters/KmCardRMAdapter.java index 285bd6723..87e4eed4e 100644 --- a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/adapters/KmCardRMAdapter.java +++ b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/adapters/KmCardRMAdapter.java @@ -173,7 +173,7 @@ protected void bindItems(RecyclerView.ViewHolder holder, int position) { try { List actionsList = payloadModel.getButtons(); for (int i = 0; i < actionsList.size(); i++) { - if (isMessageProcessed && ButtonKmRichMessage.hideMessage(themeHelper, actionsList.get(i).getType())) { + if (isMessageProcessed && ButtonKmRichMessage.hideMessage(themeHelper, actionsList.get(i).getAction().getType())) { continue; } setupBookActions(viewHolder, i, actionsList); diff --git a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ButtonKmRichMessage.java b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ButtonKmRichMessage.java index db23b75fd..ff945589c 100644 --- a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ButtonKmRichMessage.java +++ b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ButtonKmRichMessage.java @@ -2,7 +2,6 @@ import android.content.Context; import android.text.TextUtils; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; @@ -116,6 +115,7 @@ public String getActionType(KmRichMessageModel.KmPayloadModel payloadModel, Shor public static boolean hideMessage(KmThemeHelper themeHelper, String action) { return (themeHelper.hideLinkButtonsPostCTA() && KmRichMessage.WEB_LINK.equals(action)) + || (themeHelper.hideQuickRepliesPostCTA() && KmRichMessage.QUICK_REPLY_OLD.equals(action)) || (themeHelper.hideQuickRepliesPostCTA() && KmRichMessage.QUICK_REPLY.equals(action)) || (themeHelper.hideSubmitButtonsPostCTA() && KmRichMessage.SUBMIT_BUTTON.equals(action)); } diff --git a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ListKmRichMessage.java b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ListKmRichMessage.java index cfabf382c..b2500a9ad 100644 --- a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ListKmRichMessage.java +++ b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/conversation/richmessaging/types/ListKmRichMessage.java @@ -18,6 +18,7 @@ import com.applozic.mobicomkit.uiwidgets.conversation.richmessaging.adapters.KmRichMessageAdapterFactory; import com.applozic.mobicomkit.uiwidgets.conversation.richmessaging.callbacks.KmRichMessageListener; import com.applozic.mobicomkit.uiwidgets.conversation.richmessaging.models.KmRichMessageModel; +import com.applozic.mobicomkit.uiwidgets.kommunicate.utils.KmThemeHelper; import com.applozic.mobicommons.json.GsonUtils; import com.bumptech.glide.Glide; @@ -27,6 +28,7 @@ public class ListKmRichMessage extends KmRichMessage { public static final int MAX_ACTIONS_LIMIT = 3; + public static final int QUICK_REPLY_TEMPLATE_ID = 6; public ListKmRichMessage(Context context, LinearLayout containerView, Message message, KmRichMessageListener listener, AlCustomizationSettings alCustomizationSettings, boolean showTimestamp) { super(context, containerView, message, listener, alCustomizationSettings, showTimestamp); @@ -40,44 +42,53 @@ public void createRichMessage(boolean isMessageProcessed) { if (model.getPayload() != null) { TextView headerText = listItemLayout.findViewById(R.id.headerText); ImageView headerImage = listItemLayout.findViewById(R.id.headerImage); + KmRichMessageModel.KmPayloadModel payload = (KmRichMessageModel.KmPayloadModel) GsonUtils.getObjectFromJson(model.getPayload(), KmRichMessageModel.KmPayloadModel.class); - if (payload != null) { - RecyclerView listRecycler = listItemLayout.findViewById(R.id.alListItemRecycler); - LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false); - listRecycler.setLayoutManager(layoutManager); - KmListRMAdapter adapter = (KmListRMAdapter) KmRichMessageAdapterFactory.getInstance().getListRMAdapter(context, message, getFilteredList(isMessageProcessed, payload.getElements()), payload.getReplyMetadata(), listener, alCustomizationSettings, isMessageProcessed); - listRecycler.setAdapter(adapter); - - if (!TextUtils.isEmpty(payload.getHeaderText())) { - headerText.setVisibility(View.VISIBLE); - headerText.setText(getHtmlText(payload.getHeaderText())); - } else { - headerText.setVisibility(View.GONE); - } + if (payload != null) { + RecyclerView listRecycler = listItemLayout.findViewById(R.id.alListItemRecycler); + LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false); + listRecycler.setLayoutManager(layoutManager); + KmListRMAdapter adapter = (KmListRMAdapter) KmRichMessageAdapterFactory.getInstance().getListRMAdapter(context, message, getFilteredList(isMessageProcessed, payload.getElements()), payload.getReplyMetadata(), listener, alCustomizationSettings, isMessageProcessed); + listRecycler.setAdapter(adapter); + + if (!TextUtils.isEmpty(payload.getHeaderText())) { + headerText.setVisibility(View.VISIBLE); + headerText.setText(getHtmlText(payload.getHeaderText())); + } else { + headerText.setVisibility(View.GONE); + } - if (!TextUtils.isEmpty(payload.getHeaderImgSrc())) { - headerImage.setVisibility(View.VISIBLE); - Glide.with(context).load(payload.getHeaderImgSrc()).into(headerImage); - } else { - headerImage.setVisibility(View.GONE); - } + if (!TextUtils.isEmpty(payload.getHeaderImgSrc())) { + headerImage.setVisibility(View.VISIBLE); + Glide.with(context).load(payload.getHeaderImgSrc()).into(headerImage); + } else { + headerImage.setVisibility(View.GONE); + } - if (payload.getButtons() != null) { - final List action = payload.getButtons(); + if (payload.getButtons() != null) { - if (showAction(isMessageProcessed, action.get(0))) { - setActionTextView((TextView) listItemLayout.findViewById(R.id.actionButton1), null, action.get(0), payload, model); - } + final List action = payload.getButtons(); - if (action.size() > 1 && showAction(isMessageProcessed, action.get(1))) { - setActionTextView((TextView) listItemLayout.findViewById(R.id.actionButton2), listItemLayout.findViewById(R.id.actionDivider2), action.get(1), payload, model); - } + if (!showAction(isMessageProcessed, action.get(0))) { + setActionTextView((TextView) listItemLayout.findViewById(R.id.actionButton1), null, action.get(0), payload, model); + } + + if (action.size() > 1) { + if (!showAction(isMessageProcessed, action.get(1))) { + setActionTextView((TextView) listItemLayout.findViewById(R.id.actionButton2), listItemLayout.findViewById(R.id.actionDivider2), action.get(1), payload, model); + } + } + + if (action.size() > 2) { + if (!showAction(isMessageProcessed, action.get(2))) { + setActionTextView((TextView) listItemLayout.findViewById(R.id.actionButton3), listItemLayout.findViewById(R.id.actionDivider3), action.get(2), payload, model); + } + + } - if (action.size() > 2 && showAction(isMessageProcessed, action.get(2))) { - setActionTextView((TextView) listItemLayout.findViewById(R.id.actionButton3), listItemLayout.findViewById(R.id.actionDivider3), action.get(2), payload, model); } } - } + } } } @@ -96,7 +107,7 @@ private void setActionTextView(TextView actionTextView, View actionDivider, KmRi private List getFilteredList(boolean isMessageProcessed, List elementList) { List newList = new ArrayList<>(); for (KmRichMessageModel.KmElementModel element : elementList) { - if (isMessageProcessed && ButtonKmRichMessage.hideMessage(themeHelper, element.getAction().getType())) { + if (isMessageProcessed && hideMessage(themeHelper, element.getAction().getType())) { continue; } newList.add(element); @@ -105,6 +116,22 @@ private List getFilteredList(boolean isMessag } private boolean showAction(boolean isMessageProcessed, KmRichMessageModel.KmButtonModel action) { - return action != null && !(isMessageProcessed && ButtonKmRichMessage.hideMessage(themeHelper, action.getType())); + + if (action.getType() == null){ + return(isMessageProcessed && hideMessage(themeHelper, action.getAction().getType())); + } + return(isMessageProcessed && hideMessage(themeHelper, action.getType())); + } + public static boolean hideMessage(KmThemeHelper themeHelper, String action) { + return (themeHelper.hideLinkButtonsPostCTA() && KmRichMessage.WEB_LINK.equals(action)) + || (themeHelper.hideQuickRepliesPostCTA() && KmRichMessage.QUICK_REPLY_OLD.equals(action)) + || (themeHelper.hideSubmitButtonsPostCTA() && KmRichMessage.SUBMIT_BUTTON.equals(action)) + || (themeHelper.hideQuickRepliesPostCTA() && KmRichMessage.QUICK_REPLY.equals(action)); + } + private String getActionType(KmRichMessageModel.KmButtonModel payloadModel, Short templateId) { + if (payloadModel.getAction() == null) { + return templateId == QUICK_REPLY_TEMPLATE_ID ? QUICK_REPLY : SUBMIT_BUTTON; + } + return payloadModel.getAction() != null && !TextUtils.isEmpty(payloadModel.getAction().getType()) ? payloadModel.getAction().getType() : payloadModel.getType(); } }