From f8d0aa5496718b12cf4ece4bb7e662c2a4bd9ce7 Mon Sep 17 00:00:00 2001 From: Prateek Singh Date: Fri, 4 Oct 2024 15:59:02 +0530 Subject: [PATCH 1/4] Fixed the redundant data load on conversation screen. (#556) --- .../api/conversation/database/MessageDatabaseService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kommunicate/src/main/java/com/applozic/mobicomkit/api/conversation/database/MessageDatabaseService.java b/kommunicate/src/main/java/com/applozic/mobicomkit/api/conversation/database/MessageDatabaseService.java index 146b139bd..a1c60fa1a 100755 --- a/kommunicate/src/main/java/com/applozic/mobicomkit/api/conversation/database/MessageDatabaseService.java +++ b/kommunicate/src/main/java/com/applozic/mobicomkit/api/conversation/database/MessageDatabaseService.java @@ -56,6 +56,7 @@ public class MessageDatabaseService { private static final String channelKey_AND= "channelKey = ? AND "; private static final String contactNumbers_AND = "contactNumbers = ? AND "; private static final String createdAt_AND = "createdAt >= ? AND "; + private static final String createdAt_AND_No_null = "createdAt < ? AND "; private static final String conversationID_AND = "conversationId = ? AND "; private static final String deleted_AND = "deleted = ? AND "; private static final String reply_AND = "replyMessage != ? AND "; @@ -262,7 +263,7 @@ public List getMessages(Long startTime, Long endTime, Contact contact, structuredNameParamsList.add(String.valueOf(startTime)); } if (endTime != null) { - structuredNameWhere += createdAt_AND; + structuredNameWhere += createdAt_AND_No_null; structuredNameParamsList.add(String.valueOf(endTime)); } if (BroadcastService.isContextBasedChatEnabled() && conversationId != null && conversationId != 0) { From 33649cf497c5cd74765205a5b2b5f738a3bd0ed7 Mon Sep 17 00:00:00 2001 From: Abhijeet Ranjan <139110221+AbhijeetRanjan308@users.noreply.github.com> Date: Fri, 4 Oct 2024 11:09:21 +0530 Subject: [PATCH 2/4] updated language code (#555) --- .../src/main/java/com/applozic/mobicomkit/Applozic.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kommunicate/src/main/java/com/applozic/mobicomkit/Applozic.java b/kommunicate/src/main/java/com/applozic/mobicomkit/Applozic.java index 56ccda1e1..106bc039a 100644 --- a/kommunicate/src/main/java/com/applozic/mobicomkit/Applozic.java +++ b/kommunicate/src/main/java/com/applozic/mobicomkit/Applozic.java @@ -1,6 +1,6 @@ package com.applozic.mobicomkit; -import static io.kommunicate.utils.KmConstants.KM_USER_LANGUAGE_CODE; +import static io.kommunicate.utils.KmConstants.KM_USER_LOCALE; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; @@ -74,7 +74,7 @@ public static void setDefaultLanguage(Context context){ } AlPrefSettings.getInstance(context).setDeviceDefaultLanguageToBot(deviceLanguage); Map localeMetadata = new HashMap<>(); - localeMetadata.put(KM_USER_LANGUAGE_CODE,deviceLanguage); + localeMetadata.put(KM_USER_LOCALE,deviceLanguage); KmSettings.updateChatContext(context,localeMetadata); } From a50256408b0f6dc172345e6bd07627e20e016e26 Mon Sep 17 00:00:00 2001 From: Pooja G C <38066371+PoojaGC@users.noreply.github.com> Date: Fri, 4 Oct 2024 12:03:23 +0530 Subject: [PATCH 3/4] Merge pull request #551 from Kommunicate-io/CM-2196-Hide-Chat Hide chat bar when conversation with bot --- app/src/main/assets/applozic-settings.json | 1 + .../mobicomkit/api/account/user/User.java | 9 ++++++ .../uiwidgets/AlCustomizationSettings.java | 11 +++++-- .../fragment/MobiComConversationFragment.java | 30 +++++++++++++++---- 4 files changed, 43 insertions(+), 8 deletions(-) diff --git a/app/src/main/assets/applozic-settings.json b/app/src/main/assets/applozic-settings.json index ca08e2d62..660adf310 100644 --- a/app/src/main/assets/applozic-settings.json +++ b/app/src/main/assets/applozic-settings.json @@ -65,6 +65,7 @@ "restrictedWordMessage": " Please don't use restricted word", "restrictedWordRegex": "", "hideAttachmentButton": false, + "hideChatBarWithBots": false, "groupUsersOnlineStatus": false, "launchChatFromProfilePicOrName": false, "enableShareConversation": false, diff --git a/kommunicate/src/main/java/com/applozic/mobicomkit/api/account/user/User.java b/kommunicate/src/main/java/com/applozic/mobicomkit/api/account/user/User.java index e4cea0a07..38d16a431 100755 --- a/kommunicate/src/main/java/com/applozic/mobicomkit/api/account/user/User.java +++ b/kommunicate/src/main/java/com/applozic/mobicomkit/api/account/user/User.java @@ -391,6 +391,15 @@ public enum RoleType { public Short getValue() { return value; } + + public static RoleType fromValue(Short value) { + for (RoleType roleType : RoleType.values()) { + if (roleType.getValue().equals(value)) { + return roleType; + } + } + return null; + } } public enum PushNotificationFormat { diff --git a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/AlCustomizationSettings.java b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/AlCustomizationSettings.java index 1186315d3..34ca63316 100644 --- a/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/AlCustomizationSettings.java +++ b/kommunicateui/src/main/java/com/applozic/mobicomkit/uiwidgets/AlCustomizationSettings.java @@ -158,13 +158,13 @@ public class AlCustomizationSettings extends JsonMarker { private int minimumCompressionThresholdForImagesInMB = 5; private boolean isVideoCompressionEnabled = false; private int minimumCompressionThresholdForVideosInMB = 5; - + private boolean hideAttachmentOptionsWithBots = false; + private boolean hideChatBarWithBots = false; public boolean getUseDarkMode() { return useDarkMode; } - private boolean hideAttachmentOptionsWithBots = false; public String getStaticTopMessage() { return staticTopMessage; @@ -832,10 +832,14 @@ public int getMinimumCompressionThresholdForVideosInMB() { return minimumCompressionThresholdForVideosInMB; } - public boolean getHideAttachmentOptionsWithBots() { + public boolean isHideAttachmentOptionsWithBots() { return hideAttachmentOptionsWithBots; } + public boolean isHideChatBarWithBots() { + return hideChatBarWithBots; + } + @Override public String toString() { return "AlCustomizationSettings{" + @@ -901,6 +905,7 @@ public String toString() { ", toolbarSubtitleColor=" + toolbarSubtitleColor + ", useDeviceDefaultLanguage=" + useDeviceDefaultLanguage + ", showTypingIndicatorWhileFetchingResponse=" + showTypingIndicatorWhileFetchingResponse + + ", hideChatBarWithBots=" + hideChatBarWithBots + '}'; } } 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 c4261a731..0284711a3 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 @@ -272,6 +272,7 @@ public abstract class MobiComConversationFragment extends Fragment implements Vi protected Spinner sendType; protected LinearLayout individualMessageSendLayout, mainEditTextLinearLayout; protected LinearLayout extendedSendingOptionLayout, attachmentIconLayout; + protected LinearLayout kmMessageLinearLayout; protected RelativeLayout attachmentLayout; protected ProgressBar mediaUploadProgressBar; protected View spinnerLayout; @@ -600,6 +601,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, messageList = new ArrayList(); multimediaPopupGrid = (GridView) list.findViewById(R.id.mobicom_multimedia_options1); textViewCharLimitMessage = list.findViewById(R.id.botCharLimitTextView); + kmMessageLinearLayout = list.findViewById(R.id.km_message_linear_layout); loggedInUserRole = MobiComUserPreference.getInstance(ApplozicService.getContext(getContext())).getUserRoleType(); getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); @@ -1108,10 +1110,11 @@ public void onFailure(Context context, String error) { emoticonsBtn.setVisibility(View.GONE); - boolean hideAttachmentOptionsWithBots = alCustomizationSettings.getHideAttachmentOptionsWithBots(); + boolean hideAttachmentOptionsWithBots = alCustomizationSettings.isHideAttachmentOptionsWithBots(); if (hideAttachmentOptionsWithBots) { attachmentIconLayout.setVisibility(GONE); } + toggleHideChatBarWithBots(); if (alCustomizationSettings.getAttachmentOptions() != null && !alCustomizationSettings.getAttachmentOptions().isEmpty()) { Map attachmentOptions = alCustomizationSettings.getAttachmentOptions(); @@ -2140,6 +2143,7 @@ public void loadConversation(final Contact contact, final Channel channel, final } else { userNotAbleToChatLayout.setVisibility(View.GONE); toggleMessageSendLayoutVisibility(); + toggleHideChatBarWithBots(); toggleAttachmentLayoutVisibility(); } } @@ -4562,12 +4566,26 @@ private void checkForCustomInput() { } private void toggleAttachmentLayoutVisibility() { - if (alCustomizationSettings.getHideAttachmentOptionsWithBots() && attachmentIconLayout != null) { - Contact assigneeContact = appContactService.getContactById(channel.getConversationAssignee()); - boolean isBotAssignee = User.RoleType.BOT.getValue().equals(assigneeContact.getRoleType()); + if (alCustomizationSettings.isHideAttachmentOptionsWithBots() && attachmentIconLayout != null) { + attachmentIconLayout.setVisibility( + getCurrentConversationAssignee() == User.RoleType.BOT + ? GONE : VISIBLE + ); + } + } - attachmentIconLayout.setVisibility(isBotAssignee ? GONE : VISIBLE); + private void toggleHideChatBarWithBots() { + if (!alCustomizationSettings.isHideChatBarWithBots() || kmMessageLinearLayout == null) { + return; } + kmMessageLinearLayout.setVisibility( + getCurrentConversationAssignee() == User.RoleType.BOT ? GONE : VISIBLE + ); + } + + private User.RoleType getCurrentConversationAssignee() { + Contact assigneeContact = appContactService.getContactById(channel.getConversationAssignee()); + return User.RoleType.fromValue(assigneeContact.getRoleType()); } private void updateUserFromCustomInput(String message) { @@ -5070,6 +5088,7 @@ public void onFailure(Context context, Exception e, String response) { } else { kmFeedbackView.setVisibility(View.GONE); toggleMessageSendLayoutVisibility(); + toggleHideChatBarWithBots(); toggleAttachmentLayoutVisibility(); mainDivider.setVisibility(VISIBLE); } @@ -5547,6 +5566,7 @@ public void onFailure(Context context, Exception e, String response) { } toggleMessageSendLayoutVisibility(); + toggleHideChatBarWithBots(); toggleAttachmentLayoutVisibility(); } From 54805924f81fb7b66a744da5c2428c7293ad8b62 Mon Sep 17 00:00:00 2001 From: Prateek Singh Date: Fri, 4 Oct 2024 16:34:11 +0530 Subject: [PATCH 4/4] Patch 2.10.2-sdk-2.10.3-ui --- kommunicate/build.gradle | 2 +- kommunicateui/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kommunicate/build.gradle b/kommunicate/build.gradle index 2887f026b..09bd95b82 100644 --- a/kommunicate/build.gradle +++ b/kommunicate/build.gradle @@ -18,7 +18,7 @@ android { minSdkVersion 17 targetSdkVersion 34 versionCode 1 - versionName "2.10.1" + versionName "2.10.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" buildConfigField "String", "CHAT_SERVER_URL", '"https://chat.kommunicate.io"' buildConfigField "String", "API_SERVER_URL", '"https://api.kommunicate.io"' diff --git a/kommunicateui/build.gradle b/kommunicateui/build.gradle index a4af48b78..5a742a9ae 100755 --- a/kommunicateui/build.gradle +++ b/kommunicateui/build.gradle @@ -18,7 +18,7 @@ android { minSdkVersion 17 targetSdkVersion 34 versionCode 1 - versionName "2.10.2" + versionName "2.10.3" consumerProguardFiles 'proguard-rules.txt' vectorDrawables.useSupportLibrary = true }