Skip to content

Commit

Permalink
Merge branch 'master' into CM-1705
Browse files Browse the repository at this point in the history
  • Loading branch information
joshi-kt committed Nov 2, 2023
2 parents 922ca73 + 1919fa1 commit 4dee3b8
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ protected void bindItems(RecyclerView.ViewHolder holder, int position) {
try {
List<KmRichMessageModel.KmButtonModel> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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);
Expand All @@ -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<KmRichMessageModel.KmButtonModel> 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<KmRichMessageModel.KmButtonModel> 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);
}
}
}

}
}
}
Expand All @@ -96,7 +107,7 @@ private void setActionTextView(TextView actionTextView, View actionDivider, KmRi
private List<KmRichMessageModel.KmElementModel> getFilteredList(boolean isMessageProcessed, List<KmRichMessageModel.KmElementModel> elementList) {
List<KmRichMessageModel.KmElementModel> 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);
Expand All @@ -105,6 +116,22 @@ private List<KmRichMessageModel.KmElementModel> 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();
}
}

0 comments on commit 4dee3b8

Please sign in to comment.