From 392e71766bc79f0049e7a54cb635c8c12650bc09 Mon Sep 17 00:00:00 2001 From: darshanbhanushali Date: Wed, 20 Jan 2021 13:09:01 +0530 Subject: [PATCH] Android UI Kit v2.1.8 --- app/build.gradle | 2 +- uikit/build.gradle | 2 +- uikit/src/main/AndroidManifest.xml | 1 + .../src/main/java/adapter/MessageAdapter.java | 163 ++++++++++++++++++ .../pro/uikit/ComposeBox/ComposeBox.java | 68 ++++++-- .../ComposeBox/ComposeBoxActionFragment.java | 18 ++ .../main/java/constant/StringContract.java | 7 +- .../java/listeners/ComposeActionListener.java | 3 + .../CometChatGroupDetailScreenActivity.java | 14 +- .../java/screen/CometChatGroupListScreen.java | 2 +- .../CometChatMessageInfoScreenActivity.java | 8 + .../screen/CometChatStartCallActivity.java | 34 +++- .../CometChatUserDetailScreenActivity.java | 2 +- uikit/src/main/java/screen/call/AllCall.java | 2 +- .../src/main/java/screen/call/MissedCall.java | 2 +- .../messagelist/CometChatMessageScreen.java | 68 +++++++- .../CometChatThreadMessageScreen.java | 16 +- uikit/src/main/java/utils/CallUtils.java | 16 +- uikit/src/main/java/utils/Utils.java | 78 ++++++--- .../res/drawable/ic_video_call_black_24dp.xml | 9 + ...ctivity_comet_chat_message_info_screen.xml | 9 + .../layout/activity_comet_chat_start_call.xml | 1 + .../layout/fragment_composebox_actions.xml | 14 ++ .../layout/message_left_group_call_item.xml | 129 ++++++++++++++ .../res/layout/message_left_text_item.xml | 2 +- .../layout/message_right_group_call_item.xml | 109 ++++++++++++ .../res/layout/message_right_text_item.xml | 2 +- uikit/src/main/res/values-ar/strings.xml | 4 + uikit/src/main/res/values-de/strings.xml | 4 + uikit/src/main/res/values-es/strings.xml | 4 + uikit/src/main/res/values-fr/strings.xml | 4 + uikit/src/main/res/values-hi/strings.xml | 4 + uikit/src/main/res/values-ms/strings.xml | 4 + uikit/src/main/res/values-pt/strings.xml | 4 + uikit/src/main/res/values-ru/strings.xml | 4 + uikit/src/main/res/values-zh-rTW/strings.xml | 4 + uikit/src/main/res/values-zh/strings.xml | 4 + uikit/src/main/res/values/strings.xml | 14 +- 38 files changed, 758 insertions(+), 77 deletions(-) create mode 100644 uikit/src/main/res/drawable/ic_video_call_black_24dp.xml create mode 100644 uikit/src/main/res/layout/message_left_group_call_item.xml create mode 100644 uikit/src/main/res/layout/message_right_group_call_item.xml diff --git a/app/build.gradle b/app/build.gradle index 89e176f7..5d381cfc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,5 +59,5 @@ dependencies { implementation 'com.google.android.material:material:1.2.0-alpha05' implementation 'com.facebook.shimmer:shimmer:0.4.0' // - implementation 'com.cometchat:pro-android-chat-sdk:2.1.6' + implementation 'com.cometchat:pro-android-chat-sdk:2.1.7-beta2' } diff --git a/uikit/build.gradle b/uikit/build.gradle index 59249307..5f89612b 100644 --- a/uikit/build.gradle +++ b/uikit/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.google.android.gms:play-services-location:17.0.0' implementation 'com.google.android.gms:play-services-maps:17.0.0' //cometchat - compileOnly 'com.cometchat:pro-android-chat-sdk:2.1.6' + compileOnly 'com.cometchat:pro-android-chat-sdk:2.1.7-beta2' implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0' } repositories { diff --git a/uikit/src/main/AndroidManifest.xml b/uikit/src/main/AndroidManifest.xml index f0c3120e..89e985f0 100644 --- a/uikit/src/main/AndroidManifest.xml +++ b/uikit/src/main/AndroidManifest.xml @@ -104,6 +104,7 @@ android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_path" /> + \ No newline at end of file diff --git a/uikit/src/main/java/adapter/MessageAdapter.java b/uikit/src/main/java/adapter/MessageAdapter.java index 682c37b4..9b584852 100644 --- a/uikit/src/main/java/adapter/MessageAdapter.java +++ b/uikit/src/main/java/adapter/MessageAdapter.java @@ -69,6 +69,7 @@ import screen.CometChatReactionInfoScreenActivity; import screen.messagelist.CometChatMessageListActivity; import screen.threadconversation.CometChatThreadMessageActivity; +import utils.CallUtils; import utils.Extensions; import utils.FontUtils; import utils.MediaUtils; @@ -151,6 +152,10 @@ public class MessageAdapter extends RecyclerView.Adapter { + Intent intent = new Intent(context, CometChatThreadMessageActivity.class); + intent.putExtra(StringContract.IntentStrings.NAME,baseMessage.getSender().getName()); + intent.putExtra(StringContract.IntentStrings.AVATAR,baseMessage.getSender().getAvatar()); + intent.putExtra(StringContract.IntentStrings.REPLY_COUNT,baseMessage.getReplyCount()); + intent.putExtra(StringContract.IntentStrings.UID,baseMessage.getSender().getName()); + intent.putExtra(StringContract.IntentStrings.PARENT_ID,baseMessage.getId()); + intent.putExtra(StringContract.IntentStrings.MESSAGE_TYPE,baseMessage.getType()); + intent.putExtra(StringContract.IntentStrings.REACTION_INFO,Extensions.getReactionsOnMessage(baseMessage)); + intent.putExtra(StringContract.IntentStrings.SENTAT,baseMessage.getSentAt()); + + intent.putExtra(StringContract.IntentStrings.TEXTMESSAGE,Extensions.getWriteBoardUrl(baseMessage)); + + intent.putExtra(StringContract.IntentStrings.MESSAGE_CATEGORY,baseMessage.getCategory()); + intent.putExtra(StringContract.IntentStrings.TYPE,baseMessage.getReceiverType()); + if (baseMessage.getReceiverType().equals(CometChatConstants.RECEIVER_TYPE_GROUP)) { + intent.putExtra(StringContract.IntentStrings.GUID,baseMessage.getReceiverUid()); + } + else { + if (baseMessage.getReceiverUid().equals(loggedInUser.getUid())) + intent.putExtra(StringContract.IntentStrings.UID,baseMessage.getSender().getUid()); + else + intent.putExtra(StringContract.IntentStrings.UID,baseMessage.getReceiverUid()); + } + context.startActivity(intent); + }); + + showMessageTime(viewHolder, baseMessage); + viewHolder.txtTime.setVisibility(View.VISIBLE); + setColorFilter(baseMessage,viewHolder.messageContainer); + viewHolder.rlMessageBubble.setOnClickListener(view -> { + + if (baseMessage.getSender().getUid().equals(loggedInUser.getUid())){ + if (isLongClickEnabled && !isImageMessageClick) { + setLongClickSelectedItem(baseMessage); + messageLongClick.setLongMessageClick(longselectedItemList); + } else { + setSelectedMessage(baseMessage.getId()); + } + notifyDataSetChanged(); + } + + }); + + viewHolder.rlMessageBubble.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + + if (!isImageMessageClick && !isTextMessageClick) { + isLongClickEnabled = true; + setLongClickSelectedItem(baseMessage); + messageLongClick.setLongMessageClick(longselectedItemList); + notifyDataSetChanged(); + } + return true; + } + }); + setReactionSupport(baseMessage,viewHolder.reactionLayout); + } + } private void setWriteBoardData(WriteBoardViewHolder viewHolder,int i) { @@ -1828,6 +1949,8 @@ private void showMessageTime(RecyclerView.ViewHolder viewHolder, BaseMessage bas setStatusIcon((((WhiteBoardViewHolder) viewHolder).txtTime),baseMessage); } else if (viewHolder instanceof WriteBoardViewHolder) { setStatusIcon((((WriteBoardViewHolder) viewHolder).txtTime),baseMessage); + } else if (viewHolder instanceof GroupCallMessageViewHolder) { + setStatusIcon((((GroupCallMessageViewHolder) viewHolder).txtTime),baseMessage); } } @@ -2570,6 +2693,8 @@ else if (baseMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WHI return RIGHT_WHITEBOARD_MESSAGE; else if (baseMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WRITEBOARD)) return RIGHT_WRITEBOARD_MESSAGE; + else if (baseMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.GROUP_CALL)) + return RIGHT_GROUP_CALL_MESSAGE; else return RIGHT_CUSTOM_MESSAGE; } @@ -2584,6 +2709,8 @@ else if (baseMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WHI return LEFT_WHITEBOARD_MESSAGE; else if (baseMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WRITEBOARD)) return LEFT_WRITEBOARD_MESSAGE; + else if (baseMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.GROUP_CALL)) + return LEFT_GROUP_CALL_MESSAGE; else return LEFT_CUSTOM_MESSAGE; } @@ -3015,6 +3142,42 @@ public PollMessageViewHolder(View itemView) { } } + + public class GroupCallMessageViewHolder extends RecyclerView.ViewHolder { + + private TextView tvThreadReplyCount; + private RelativeLayout messageContainer; + private View view; + public TextView txtTime; + public TextView tvUser; + private int type; + private Avatar ivUser; + private RelativeLayout rlMessageBubble; + private ChipGroup reactionLayout; + + private ImageView icon; + private TextView groupCallMessage; + private MaterialButton joinBtn; + + GroupCallMessageViewHolder(@NonNull View view) { + super(view); + + type = (int) view.getTag(); + tvUser = view.findViewById(R.id.tv_user); + icon = view.findViewById(R.id.icon); + messageContainer = view.findViewById(R.id.cv_message_container); + txtTime = view.findViewById(R.id.txt_time); + ivUser = view.findViewById(R.id.iv_user); + rlMessageBubble = view.findViewById(R.id.rl_message); + tvThreadReplyCount = view.findViewById(R.id.thread_reply_count); + reactionLayout = view.findViewById(R.id.reactions_layout); + groupCallMessage = view.findViewById(R.id.group_call_message); + joinBtn = view.findViewById(R.id.join_call); + this.view = view; + + } + } + public class WhiteBoardViewHolder extends RecyclerView.ViewHolder { private TextView tvThreadReplyCount; diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBox.java b/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBox.java index 108cd12b..61482272 100644 --- a/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBox.java +++ b/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBox.java @@ -96,7 +96,7 @@ public class ComposeBox extends RelativeLayout implements View.OnClickListener { public boolean isGalleryVisible = true,isAudioVisible = true,isCameraVisible = true, isFileVisible = true,isLocationVisible = true,isPollVisible = true,isStickerVisible = true, - isWhiteBoardVisible = true, isWriteBoardVisible = true; + isWhiteBoardVisible = true, isWriteBoardVisible = true, isGroupCallVisible = true; public ComposeBox(Context context) { super(context); @@ -113,16 +113,6 @@ public ComposeBox(Context context, AttributeSet attrs, int defStyleAttr) { initViewComponent(context,attrs,defStyleAttr,-1); } - public void setAudioButtonVisible(boolean result) { isAudioVisible = result; } - - public void setGalleryButtonVisible(boolean result) { isGalleryVisible = result; } - - public void setCameraButtonVisible(boolean result) { isCameraVisible = result; } - - public void setFileButtonVisible(boolean result) { isFileVisible = result; } - - public void setLocationButtonVisible(boolean result) { isLocationVisible = result; } - private void initViewComponent(Context context,AttributeSet attributeSet,int defStyleAttr,int defStyleRes){ View view =View.inflate(context, R.layout.layout_compose_box,null); @@ -228,6 +218,11 @@ public void onWhiteBoardClick() { public void onWriteBoardClick() { composeActionListener.onWriteboardClicked(); } + + @Override + public void onVideoMeetingClick() { + composeActionListener.onVideoMeetingClicked(); + } }); etComposeBox.addTextChangedListener(new TextWatcher() { @Override @@ -299,12 +294,15 @@ public void OnMediaSelected(InputContentInfoCompat i) { isStickerVisible = UISettings.isStickerVisible(); isWhiteBoardVisible = UISettings.isWhiteBoardVisible(); isWriteBoardVisible = UISettings.isWriteBoardVisible(); + isGroupCallVisible = UISettings.isEnableVideoCalling(); + if (UISettings.isSendVoiceNotes()) { ivMic.setVisibility(View.VISIBLE); } else { ivMic.setVisibility(GONE); } - if (!UISettings.isSendPolls() && + if (!UISettings.isEnableVideoCalling() && + !UISettings.isSendPolls() && !UISettings.isSendFiles() && !UISettings.isSendPhotosVideo() && !UISettings.isSendVoiceNotes() && @@ -396,6 +394,7 @@ public void onClick(View view) { bundle.putBoolean("isFileVisible",isFileVisible); bundle.putBoolean("isAudioVisible",isAudioVisible); bundle.putBoolean("isLocationVisible",isLocationVisible); + bundle.putBoolean("isGroupCallVisible",isGroupCallVisible); if (CometChat.isExtensionEnabled("document")) bundle.putBoolean("isWriteBoardVisible",isWriteBoardVisible); if (CometChat.isExtensionEnabled("whiteboard")) @@ -587,4 +586,49 @@ private void stopRecording(boolean isCancel) { e.printStackTrace(); } } + + public void setAudioButtonVisible(boolean result) { isAudioVisible = result; } + + public void setGalleryButtonVisible(boolean result) { isGalleryVisible = result; } + + public void setCameraButtonVisible(boolean result) { isCameraVisible = result; } + + public void setFileButtonVisible(boolean result) { isFileVisible = result; } + + public void setLocationButtonVisible(boolean result) { isLocationVisible = result; } + + public void hideGroupCallOption(boolean b) { + isGroupCallVisible = !b; + } + + public void hidePollOption(boolean b) { + isPollVisible = !b; + } + + public void hideStickerOption(boolean b) { + isStickerVisible = !b; + } + + public void hideWriteBoardOption(boolean b) { + isWriteBoardVisible = !b; + } + + public void hideWhiteBoardOption(boolean b) { + isWhiteBoardVisible = !b; + } + + public void hideRecordOption(boolean b) { + if (b) { + ivMic.setVisibility(GONE); + } else { + ivMic.setVisibility(VISIBLE); + } + } + + public void hideSendButton(boolean b) { + if (b) { + ivSend.setVisibility(GONE); + } else + ivSend.setVisibility(VISIBLE); + } } diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBoxActionFragment.java b/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBoxActionFragment.java index 0fb5b137..b6639ca3 100644 --- a/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBoxActionFragment.java +++ b/uikit/src/main/java/com/cometchat/pro/uikit/ComposeBox/ComposeBoxActionFragment.java @@ -24,6 +24,7 @@ public class ComposeBoxActionFragment extends BottomSheetDialogFragment { private TextView stickerMessage; private TextView whiteBoardMessage; private TextView writeBoardMessage; + private TextView groupCallMessage; private boolean isGalleryVisible; private boolean isCameraVisible; @@ -34,6 +35,7 @@ public class ComposeBoxActionFragment extends BottomSheetDialogFragment { private boolean isStickerVisible; private boolean isWhiteBoardVisible; private boolean isWriteBoardVisible; + private boolean isGroupCallVisible; private ComposeBoxActionListener composeBoxActionListener; @@ -52,6 +54,7 @@ public void onCreate(Bundle savedInstanceState) { isStickerVisible = getArguments().getBoolean("isStickerVisible"); isWhiteBoardVisible = getArguments().getBoolean("isWhiteBoardVisible"); isWriteBoardVisible = getArguments().getBoolean("isWriteBoardVisible"); + isGroupCallVisible = getArguments().getBoolean("isGroupCallVisible"); } } @@ -81,6 +84,12 @@ public void onGlobalLayout() { locationMessage = view.findViewById(R.id.location_message); whiteBoardMessage = view.findViewById(R.id.vw_whiteboard_message); writeBoardMessage = view.findViewById(R.id.writeboard_message); + groupCallMessage = view.findViewById(R.id.group_call_message); + + if (isGroupCallVisible) + groupCallMessage.setVisibility(View.VISIBLE); + else + groupCallMessage.setVisibility(View.GONE); if (isWriteBoardVisible) writeBoardMessage.setVisibility(View.VISIBLE); @@ -119,6 +128,14 @@ public void onGlobalLayout() { else locationMessage.setVisibility(View.GONE); + groupCallMessage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (composeBoxActionListener!=null) + composeBoxActionListener.onVideoMeetingClick(); + dismiss(); + } + }); writeBoardMessage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -210,6 +227,7 @@ public interface ComposeBoxActionListener { void onStickerClick(); void onWhiteBoardClick(); void onWriteBoardClick(); + void onVideoMeetingClick(); } } \ No newline at end of file diff --git a/uikit/src/main/java/constant/StringContract.java b/uikit/src/main/java/constant/StringContract.java index 91efbdf3..9984f019 100644 --- a/uikit/src/main/java/constant/StringContract.java +++ b/uikit/src/main/java/constant/StringContract.java @@ -120,6 +120,10 @@ public static class IntentStrings { public static final String WRITEBOARD = "extension_document"; + public static final String GROUP_CALL = "meeting" ; + + public static final String GROUP_CALL_TYPE = "group_call_type"; + public static String POLL_QUESTION = "poll_question"; public static String POLL_OPTION = "poll_option"; @@ -196,7 +200,8 @@ public static class MessageRequest { StringContract.IntentStrings.POLLS, StringContract.IntentStrings.STICKERS, StringContract.IntentStrings.WHITEBOARD, - StringContract.IntentStrings.WRITEBOARD + StringContract.IntentStrings.WRITEBOARD, + StringContract.IntentStrings.GROUP_CALL )); public static List messageCategoriesForGroup = new ArrayList<>(Arrays.asList( diff --git a/uikit/src/main/java/listeners/ComposeActionListener.java b/uikit/src/main/java/listeners/ComposeActionListener.java index 1b07e53e..d754f1c5 100644 --- a/uikit/src/main/java/listeners/ComposeActionListener.java +++ b/uikit/src/main/java/listeners/ComposeActionListener.java @@ -61,4 +61,7 @@ public void onStickerClicked() { public void onWhiteboardClicked() {} public void onWriteboardClicked() { } + + public void onVideoMeetingClicked() {} + } diff --git a/uikit/src/main/java/screen/CometChatGroupDetailScreenActivity.java b/uikit/src/main/java/screen/CometChatGroupDetailScreenActivity.java index 9fde8173..e0e03a83 100644 --- a/uikit/src/main/java/screen/CometChatGroupDetailScreenActivity.java +++ b/uikit/src/main/java/screen/CometChatGroupDetailScreenActivity.java @@ -306,19 +306,13 @@ public void onClick(View view) { dividerAdmin.setVisibility(View.GONE); dividerModerator.setVisibility(View.GONE); } - if (UISettings.isEnableVoiceCalling()) - callBtn.setVisibility(View.VISIBLE); - else - callBtn.setVisibility(View.GONE); + + callBtn.setVisibility(View.GONE); + videoCallBtn.setVisibility(View.GONE); if (!UISettings.isAllowBanKickMembers()) rlBanMembers.setVisibility(View.GONE); - if (UISettings.isEnableVideoCalling()) - videoCallBtn.setVisibility(View.VISIBLE); - else - videoCallBtn.setVisibility(View.GONE); - if (UISettings.getColor()!=null) { getWindow().setStatusBarColor(Color.parseColor(UISettings.getColor())); callBtn.setImageTintList(ColorStateList.valueOf( @@ -354,7 +348,7 @@ private void checkOnGoingCall(String callType) { .setPositiveButton(getResources().getString(R.string.join), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - CallUtils.joinOnGoingCall(CometChatGroupDetailScreenActivity.this); + CallUtils.joinOnGoingCall(CometChatGroupDetailScreenActivity.this,CometChat.getActiveCall()); } }).setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { @Override diff --git a/uikit/src/main/java/screen/CometChatGroupListScreen.java b/uikit/src/main/java/screen/CometChatGroupListScreen.java index 772e2d86..627d41de 100644 --- a/uikit/src/main/java/screen/CometChatGroupListScreen.java +++ b/uikit/src/main/java/screen/CometChatGroupListScreen.java @@ -186,6 +186,7 @@ public void OnItemClick(Group group, int position) { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + fetchGroup(); } /** @@ -291,6 +292,5 @@ public void onResume() { super.onResume(); groupsRequest=null; groupListAdapter=null; - fetchGroup(); } } diff --git a/uikit/src/main/java/screen/CometChatMessageInfoScreenActivity.java b/uikit/src/main/java/screen/CometChatMessageInfoScreenActivity.java index f26949d2..8737c727 100644 --- a/uikit/src/main/java/screen/CometChatMessageInfoScreenActivity.java +++ b/uikit/src/main/java/screen/CometChatMessageInfoScreenActivity.java @@ -44,6 +44,7 @@ public class CometChatMessageInfoScreenActivity extends AppCompatActivity { private View stickerMessage; private View whiteBoardMessage; private View writeBoardMessage; + private View meetingMessage; private TextView question; private LinearLayout optionGroup; @@ -70,6 +71,7 @@ public class CometChatMessageInfoScreenActivity extends AppCompatActivity { private MaterialButton joinWhiteBoard; private MaterialButton joinWriteBoard; + private MaterialButton joinMeetingBtn; private int id; private String message; @@ -103,6 +105,9 @@ protected void onCreate(Bundle savedInstanceState) { whiteBoardMessage = findViewById(R.id.vw_whiteboard_message); writeBoardMessage = findViewById(R.id.vw_writeboard_message); + meetingMessage = findViewById(R.id.vw_meeting_message); + joinMeetingBtn = findViewById(R.id.join_call); + whiteBoardText = findViewById(R.id.whiteboard_message); writeBoardText = findViewById(R.id.writeboard_message); joinWhiteBoard = findViewById(R.id.join_whiteboard); @@ -269,6 +274,9 @@ public void onClick(View view) { } catch (JSONException e) { e.printStackTrace(); } + } else if (messageType.equals(StringContract.IntentStrings.GROUP_CALL)) { + meetingMessage.setVisibility(View.VISIBLE); + joinMeetingBtn.setEnabled(false); } else if (messageType.equals(StringContract.IntentStrings.POLLS)) { pollsMessage.setVisibility(View.VISIBLE); try { diff --git a/uikit/src/main/java/screen/CometChatStartCallActivity.java b/uikit/src/main/java/screen/CometChatStartCallActivity.java index 327e62fd..85ee6726 100644 --- a/uikit/src/main/java/screen/CometChatStartCallActivity.java +++ b/uikit/src/main/java/screen/CometChatStartCallActivity.java @@ -1,9 +1,15 @@ package screen; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.NotificationManagerCompat; +import android.app.ActivityManager; +import android.content.Context; +import android.content.Intent; import android.os.Bundle; import android.util.Log; +import android.view.View; +import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Toast; @@ -13,6 +19,7 @@ import com.cometchat.pro.core.CometChat; import com.cometchat.pro.exceptions.CometChatException; import com.cometchat.pro.models.User; +import com.cometchat.pro.repo.SettingsRepo; import com.cometchat.pro.uikit.R; import com.google.android.material.snackbar.Snackbar; @@ -39,13 +46,17 @@ public class CometChatStartCallActivity extends AppCompatActivity { private CallSettings callSettings; - private boolean joinOnGoing; + private LinearLayout connectingLayout; + + private Intent mServiceIntent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); activity = this; setContentView(R.layout.activity_comet_chat_start_call); + mainView = findViewById(R.id.call_view); + connectingLayout = findViewById(R.id.connecting_to_call); sessionID = getIntent().getStringExtra(StringContract.IntentStrings.SESSION_ID); type = getIntent().getStringExtra(StringContract.IntentStrings.TYPE); if (type!=null && type.equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_USER)) @@ -57,10 +68,11 @@ protected void onCreate(Bundle savedInstanceState) { callSettings = new CallSettings.CallSettingsBuilder(this,mainView) .setSessionId(sessionID) .build(); - + Log.e("onStartActivity ", SettingsRepo.getSettings().getWEBRTCHost()); CometChat.startCall(callSettings, new CometChat.OngoingCallListener() { @Override public void onUserJoined(User user) { + connectingLayout.setVisibility(View.GONE); Log.e("onUserJoined: ", user.getUid()); } @@ -83,4 +95,22 @@ public void onCallEnded(Call call) { } }); } + @Override + public void onBackPressed() { + if (type!=null && type.equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_GROUP)) { + CometChat.endCall(sessionID, new CometChat.CallbackListener() { + @Override + public void onSuccess(Call call) { + finish(); + } + + @Override + public void onError(CometChatException e) { + Toast.makeText(CometChatStartCallActivity.this, "Error:" + e.getCode(), Toast.LENGTH_SHORT).show(); + } + }); + } else { + super.onBackPressed(); + } + } } \ No newline at end of file diff --git a/uikit/src/main/java/screen/CometChatUserDetailScreenActivity.java b/uikit/src/main/java/screen/CometChatUserDetailScreenActivity.java index 4ff515c1..e6a8ff19 100644 --- a/uikit/src/main/java/screen/CometChatUserDetailScreenActivity.java +++ b/uikit/src/main/java/screen/CometChatUserDetailScreenActivity.java @@ -245,7 +245,7 @@ private void checkOnGoingCall(String callType) { .setPositiveButton(getResources().getString(R.string.join), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - CallUtils.joinOnGoingCall(CometChatUserDetailScreenActivity.this); + CallUtils.joinOnGoingCall(CometChatUserDetailScreenActivity.this,CometChat.getActiveCall()); } }).setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { @Override diff --git a/uikit/src/main/java/screen/call/AllCall.java b/uikit/src/main/java/screen/call/AllCall.java index 4538d894..20052975 100644 --- a/uikit/src/main/java/screen/call/AllCall.java +++ b/uikit/src/main/java/screen/call/AllCall.java @@ -132,7 +132,7 @@ private void checkOnGoingCall(Call var) { .setPositiveButton(getContext().getResources().getString(R.string.join), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - CallUtils.joinOnGoingCall(getContext()); + CallUtils.joinOnGoingCall(getContext(),CometChat.getActiveCall()); } }).setNegativeButton(getContext().getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { @Override diff --git a/uikit/src/main/java/screen/call/MissedCall.java b/uikit/src/main/java/screen/call/MissedCall.java index 6b42fb06..37fbc4da 100644 --- a/uikit/src/main/java/screen/call/MissedCall.java +++ b/uikit/src/main/java/screen/call/MissedCall.java @@ -133,7 +133,7 @@ private void checkOnGoingCall(Call var) { .setPositiveButton(getContext().getResources().getString(R.string.join), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - CallUtils.joinOnGoingCall(getContext()); + CallUtils.joinOnGoingCall(getContext(),CometChat.getActiveCall()); } }).setNegativeButton(getContext().getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { @Override diff --git a/uikit/src/main/java/screen/messagelist/CometChatMessageScreen.java b/uikit/src/main/java/screen/messagelist/CometChatMessageScreen.java index cf8ee859..3a917415 100644 --- a/uikit/src/main/java/screen/messagelist/CometChatMessageScreen.java +++ b/uikit/src/main/java/screen/messagelist/CometChatMessageScreen.java @@ -342,6 +342,9 @@ private void initViewComponent(View view) { messageShimmer = view.findViewById(R.id.shimmer_layout); composeBox = view.findViewById(R.id.message_box); composeBox.usedIn(CometChatMessageListActivity.class.getName()); + if (type.equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_USER)) + composeBox.hideGroupCallOption(true); + setComposeBoxListener(); if (UISettings.isEnableSendingMessage()) composeBox.setVisibility(View.VISIBLE); @@ -533,12 +536,20 @@ public void OnItemClick(String var, int position) { checkOnGoingCall(); } + /** + * This method is used to check if the app has ongoing call or not and based on it show the view + * through which user can join ongoing call. + * + */ private void checkOnGoingCall() { - if(CometChat.getActiveCall()!=null && - CometChat.getActiveCall().getReceiverUid().equalsIgnoreCase(Id) && - CometChat.getActiveCall().getCallStatus(). - equals(CometChatConstants.CALL_STATUS_ONGOING) && - CometChat.getActiveCall().getSessionId()!=null) { + if(CometChat.getActiveCall()!=null + && (CometChat.getActiveCall().getReceiverUid().equalsIgnoreCase(Id) || + CometChat.getActiveCall().getReceiverUid() + .equalsIgnoreCase(loggedInUser.getUid())) + && CometChat.getActiveCall().getCallStatus(). + equals(CometChatConstants.CALL_STATUS_ONGOING) + && CometChat.getActiveCall().getSessionId()!=null) { + if(onGoingCallView!=null) onGoingCallView.setVisibility(View.VISIBLE); if(onGoingCallTxt!=null) { @@ -546,7 +557,7 @@ private void checkOnGoingCall() { @Override public void onClick(View v) { onGoingCallView.setVisibility(View.GONE); - CallUtils.joinOnGoingCall(getContext()); + CallUtils.joinOnGoingCall(context,CometChat.getActiveCall()); } }); } @@ -752,6 +763,18 @@ public void OnResponseFailed(CometChatException e) { } }); } + @Override + public void onVideoMeetingClicked() { + JSONObject customData = new JSONObject(); + try { + customData.put("callType",CometChatConstants.CALL_TYPE_VIDEO); + customData.put("sessionID",Id); + } catch (JSONException e) { + e.printStackTrace(); + } + sendCustomMessage(StringContract.IntentStrings.GROUP_CALL,customData); + + } }); } @@ -927,6 +950,9 @@ private void sendCustomMessage(String customType, JSONObject customData) { CometChat.sendCustomMessage(customMessage, new CometChat.CallbackListener() { @Override public void onSuccess(CustomMessage customMessage) { + if (customType.equalsIgnoreCase(StringContract.IntentStrings.GROUP_CALL)) + CallUtils.startDirectCall(context,Utils.getDirectCallData(customMessage)); + if (messageAdapter != null) { messageAdapter.addMessage(customMessage); scrollToBottom(); @@ -2312,6 +2338,7 @@ public void setLongMessageClick(List baseMessagesList) { List stickerMessageList = new ArrayList<>(); List whiteBoardMessageList = new ArrayList<>(); List writeBoardMessageList = new ArrayList<>(); + List meetingMessageList = new ArrayList<>(); for (BaseMessage baseMessage : baseMessagesList) { if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_TEXT)) { @@ -2331,6 +2358,8 @@ public void setLongMessageClick(List baseMessagesList) { whiteBoardMessageList.add(baseMessage); } else if (baseMessage.getType().equals(StringContract.IntentStrings.WRITEBOARD)) { writeBoardMessageList.add(baseMessage); + } else if (baseMessage.getType().equals(StringContract.IntentStrings.GROUP_CALL)) { + meetingMessageList.add(baseMessage); } } if (textMessageList.size() == 1) { @@ -2521,6 +2550,30 @@ public void setLongMessageClick(List baseMessagesList) { } } + if (meetingMessageList.size()==1) { + forwardVisible = false; + copyVisible = false; + editVisible = false; + shareVisible = false; + replyVisible = false; + translateVisible = false; + threadVisible = false; + BaseMessage basemessage = meetingMessageList.get(0); + if (basemessage!=null && basemessage.getSender()!=null) { + if (basemessage.getDeletedAt() == 0) { + baseMessage = basemessage; + if (basemessage.getSender().getUid().equals(CometChat.getLoggedInUser().getUid())) + deleteVisible = UISettings.isEnableDeleteMessage(); + else { + if (loggedInUserScope!=null && (loggedInUserScope.equals(CometChatConstants.SCOPE_ADMIN) || loggedInUserScope.equals(CometChatConstants.SCOPE_MODERATOR))){ + deleteVisible = (UISettings.isEnableDeleteMessage() || UISettings.isAllowModeratorToDeleteMessages()); + } else { + deleteVisible = false; + } + } + } + } + } baseMessages = baseMessagesList; Bundle bundle = new Bundle(); @@ -2633,6 +2686,9 @@ public void onMessageInfoClick() { intent.putExtra(StringContract.IntentStrings.MESSAGE_TYPE, StringContract.IntentStrings.WRITEBOARD); intent.putExtra(StringContract.IntentStrings.TEXTMESSAGE,Extensions.getWriteBoardUrl(baseMessage)); + } else if (baseMessage.getType().equals(StringContract.IntentStrings.GROUP_CALL)) { + intent.putExtra(StringContract.IntentStrings.MESSAGE_TYPE, + StringContract.IntentStrings.GROUP_CALL); } else { intent.putExtra(StringContract.IntentStrings.MESSAGE_TYPE, StringContract.IntentStrings.POLLS); diff --git a/uikit/src/main/java/screen/threadconversation/CometChatThreadMessageScreen.java b/uikit/src/main/java/screen/threadconversation/CometChatThreadMessageScreen.java index 4be1ad12..5749a8e8 100644 --- a/uikit/src/main/java/screen/threadconversation/CometChatThreadMessageScreen.java +++ b/uikit/src/main/java/screen/threadconversation/CometChatThreadMessageScreen.java @@ -566,13 +566,13 @@ public void onError(CometChatException e) { messageShimmer = view.findViewById(R.id.shimmer_layout); composeBox = view.findViewById(R.id.message_box); composeBox.usedIn(CometChatThreadMessageActivity.class.getName()); - composeBox.isPollVisible = false; - composeBox.isStickerVisible = false; - composeBox.isWhiteBoardVisible = false; - composeBox.isWriteBoardVisible = false; - composeBox.ivMic.setVisibility(GONE); - if (UISettings.isEnableSendingMessage()) - composeBox.ivSend.setVisibility(VISIBLE); + composeBox.hidePollOption(true); + composeBox.hideStickerOption(true); + composeBox.hideWriteBoardOption(true); + composeBox.hideWhiteBoardOption(true); + composeBox.hideGroupCallOption(true); + composeBox.hideRecordOption(true); + composeBox.hideSendButton(UISettings.isEnableSendingMessage()); container = view.findViewById(R.id.reactions_container); composeBox.liveReactionBtn.setOnTouchListener(new LiveReactionListener(700, 1000, new ReactionClickListener() { @@ -786,7 +786,7 @@ private void checkOnGoingCall() { @Override public void onClick(View v) { onGoingCallView.setVisibility(View.GONE); - CallUtils.joinOnGoingCall(getContext()); + CallUtils.joinOnGoingCall(getContext(),CometChat.getActiveCall()); } }); } diff --git a/uikit/src/main/java/utils/CallUtils.java b/uikit/src/main/java/utils/CallUtils.java index 36592138..6cc4fce5 100644 --- a/uikit/src/main/java/utils/CallUtils.java +++ b/uikit/src/main/java/utils/CallUtils.java @@ -137,14 +137,24 @@ public static void startCall(Context context, Call call) { context.startActivity(intent); } + public static void startDirectCall(Context context, Call call) { + Intent intent = new Intent(context, CometChatStartCallActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(StringContract.IntentStrings.TYPE,call.getReceiverType()); + intent.putExtra(StringContract.IntentStrings.SESSION_ID,call.getSessionId()); + intent.putExtra(StringContract.IntentStrings.GROUP_CALL_TYPE,call.getType()); + context.startActivity(intent); + } /** * This method is used to join an ongoing call. * @param context */ - public static void joinOnGoingCall(Context context) { - Intent intent = new Intent(context,CometChatCallActivity.class); - intent.putExtra(StringContract.IntentStrings.JOIN_ONGOING,true); + public static void joinOnGoingCall(Context context,Call call) { + Intent intent = new Intent(context, CometChatStartCallActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(StringContract.IntentStrings.TYPE,call.getReceiverType()); + intent.putExtra(StringContract.IntentStrings.SESSION_ID,call.getSessionId()); context.startActivity(intent); } diff --git a/uikit/src/main/java/utils/Utils.java b/uikit/src/main/java/utils/Utils.java index 7cf1df17..7cb17575 100644 --- a/uikit/src/main/java/utils/Utils.java +++ b/uikit/src/main/java/utils/Utils.java @@ -40,6 +40,7 @@ import com.cometchat.pro.helpers.Logger; import com.cometchat.pro.models.Action; import com.cometchat.pro.models.BaseMessage; +import com.cometchat.pro.models.CustomMessage; import com.cometchat.pro.models.GroupMember; import com.cometchat.pro.models.MediaMessage; import com.cometchat.pro.models.TextMessage; @@ -48,6 +49,8 @@ import com.cometchat.pro.uikit.Settings.UISettings; import com.google.android.material.appbar.MaterialToolbar; +import org.json.JSONObject; + import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; @@ -240,14 +243,18 @@ public static String getLastMessage(Context context,BaseMessage lastMessage) { message = lastMessage.getSender().getName() + ": " + ((TextMessage) lastMessage).getText(); } else if (lastMessage instanceof MediaMessage) { - if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) - message = context.getString(R.string.message_image); - else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) - message = context.getString(R.string.message_video); - else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_FILE)) - message = context.getString(R.string.message_file); - else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) - message = context.getString(R.string.message_audio); + if (lastMessage.getDeletedAt()==0) { + if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) + message = context.getString(R.string.message_image); + else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) + message = context.getString(R.string.message_video); + else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_FILE)) + message = context.getString(R.string.message_file); + else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) + message = context.getString(R.string.message_audio); + } else + message = context.getString(R.string.this_message_deleted); + // if (isLoggedInUser(lastMessage.getSender())) { // @@ -258,20 +265,23 @@ else if (lastMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) } break; case CometChatConstants.CATEGORY_CUSTOM: - if (lastMessage.getType().equals(StringContract.IntentStrings.LOCATION)) - message = context.getString(R.string.custom_message_location); - else if (lastMessage.getType().equals(StringContract.IntentStrings.POLLS)) - message = context.getString(R.string.custom_message_poll); - else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.STICKERS)) - message = context.getString(R.string.custom_message_sticker); - else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WHITEBOARD)) - message = context.getString(R.string.custom_message_whiteboard); - else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WRITEBOARD)) - message = context.getString(R.string.custom_message_document); -// if (isLoggedInUser(lastMessage.getSender())) -// message = String.format(context.getString(R.string.you_sent),lastMessage.getType()); - else - message = String.format(context.getString(R.string.you_received),lastMessage.getType()); + if (lastMessage.getDeletedAt()==0) { + if (lastMessage.getType().equals(StringContract.IntentStrings.LOCATION)) + message = context.getString(R.string.custom_message_location); + else if (lastMessage.getType().equals(StringContract.IntentStrings.POLLS)) + message = context.getString(R.string.custom_message_poll); + else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.STICKERS)) + message = context.getString(R.string.custom_message_sticker); + else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WHITEBOARD)) + message = context.getString(R.string.custom_message_whiteboard); + else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.WRITEBOARD)) + message = context.getString(R.string.custom_message_document); + else if (lastMessage.getType().equalsIgnoreCase(StringContract.IntentStrings.GROUP_CALL)) + message = context.getString(R.string.custom_message_meeting); + else + message = String.format(context.getString(R.string.you_received), lastMessage.getType()); + } else + message = context.getString(R.string.this_message_deleted); break; case CometChatConstants.CATEGORY_ACTION: @@ -745,4 +755,28 @@ public static void showKeyBoard(Context context,View mainLayout) { InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInputFromWindow(mainLayout.getWindowToken(),InputMethodManager.SHOW_FORCED, 0); } + + + public static Call getDirectCallData(BaseMessage baseMessage) { + Call call = null; + String callType = CometChatConstants.CALL_TYPE_VIDEO; + try { + if (((CustomMessage)baseMessage).getCustomData() != null) { + JSONObject customObject = ((CustomMessage)baseMessage).getCustomData(); + String receiverID = baseMessage.getReceiverUid(); + String receiverType = baseMessage.getReceiverType(); + call = new Call(receiverID, receiverType, callType); + if (customObject.has("sessionID")) { + String sessionID = customObject.getString("sessionID"); + call.setSessionId(sessionID); + Log.e(TAG, "startDirectCallData: "+call.toString()); + } else { + call.setSessionId(receiverID); + } + } + } catch (Exception e) { + Log.e(TAG, "startDirectCallData: "+e.getMessage()); + } + return call; + } } diff --git a/uikit/src/main/res/drawable/ic_video_call_black_24dp.xml b/uikit/src/main/res/drawable/ic_video_call_black_24dp.xml new file mode 100644 index 00000000..d242ad8b --- /dev/null +++ b/uikit/src/main/res/drawable/ic_video_call_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/uikit/src/main/res/layout/activity_comet_chat_message_info_screen.xml b/uikit/src/main/res/layout/activity_comet_chat_message_info_screen.xml index 4536a1c6..1129118c 100644 --- a/uikit/src/main/res/layout/activity_comet_chat_message_info_screen.xml +++ b/uikit/src/main/res/layout/activity_comet_chat_message_info_screen.xml @@ -123,6 +123,15 @@ tools:visibility="visible" android:id="@+id/vw_writeboard_message" layout="@layout/message_right_writeboard_item"/> + + + diff --git a/uikit/src/main/res/layout/activity_comet_chat_start_call.xml b/uikit/src/main/res/layout/activity_comet_chat_start_call.xml index 0c23e281..573da0ff 100644 --- a/uikit/src/main/res/layout/activity_comet_chat_start_call.xml +++ b/uikit/src/main/res/layout/activity_comet_chat_start_call.xml @@ -8,6 +8,7 @@ android:background="@color/darkModeBackground" tools:context="screen.CometChatStartCallActivity"> + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uikit/src/main/res/layout/message_left_text_item.xml b/uikit/src/main/res/layout/message_left_text_item.xml index 69c8006d..15ee084b 100644 --- a/uikit/src/main/res/layout/message_left_text_item.xml +++ b/uikit/src/main/res/layout/message_left_text_item.xml @@ -74,7 +74,7 @@ android:layout_height="wrap_content"/> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uikit/src/main/res/layout/message_right_text_item.xml b/uikit/src/main/res/layout/message_right_text_item.xml index c1599162..a1ab7d1a 100644 --- a/uikit/src/main/res/layout/message_right_text_item.xml +++ b/uikit/src/main/res/layout/message_right_text_item.xml @@ -32,6 +32,7 @@ android:layout_height="wrap_content"/> diff --git a/uikit/src/main/res/values-ar/strings.xml b/uikit/src/main/res/values-ar/strings.xml index 7eb4f932..e5b1dfc6 100644 --- a/uikit/src/main/res/values-ar/strings.xml +++ b/uikit/src/main/res/values-ar/strings.xml @@ -342,4 +342,8 @@ مصنوع ترجمة الرسالة لا يوجد ترجمة متوفرة + شارك في مكالمة جماعية. + مكالمة جماعية 📹 + ابدأ مكالمة جماعية + لقد قمت بإنشاء مكالمة جماعية. \ No newline at end of file diff --git a/uikit/src/main/res/values-de/strings.xml b/uikit/src/main/res/values-de/strings.xml index 72a87674..037c912e 100644 --- a/uikit/src/main/res/values-de/strings.xml +++ b/uikit/src/main/res/values-de/strings.xml @@ -342,4 +342,8 @@ gemacht Nachricht übersetzen Keine Übersetzung verfügbar + hat einen Gruppenanruf geteilt. + 📹 Gruppenanruf + Starten Sie einen Gruppenanruf + Sie haben einen Gruppenanruf erstellt. \ No newline at end of file diff --git a/uikit/src/main/res/values-es/strings.xml b/uikit/src/main/res/values-es/strings.xml index 703941d0..85cebd99 100644 --- a/uikit/src/main/res/values-es/strings.xml +++ b/uikit/src/main/res/values-es/strings.xml @@ -350,4 +350,8 @@ hecho Traducir mensaje No hay traducción disponible + ha compartido una llamada grupal. + 📹 Llamada grupal + Iniciar una llamada grupal + Ha creado una llamada grupal. \ No newline at end of file diff --git a/uikit/src/main/res/values-fr/strings.xml b/uikit/src/main/res/values-fr/strings.xml index 7545efda..a2d93992 100644 --- a/uikit/src/main/res/values-fr/strings.xml +++ b/uikit/src/main/res/values-fr/strings.xml @@ -347,4 +347,8 @@ fabriqué Traduire le message Pas de traduction disponible + a partagé un appel de groupe. + 📹 Appel de groupe + Lancer un appel de groupe + Vous avez créé un appel de groupe. \ No newline at end of file diff --git a/uikit/src/main/res/values-hi/strings.xml b/uikit/src/main/res/values-hi/strings.xml index fc2e1bff..c774371e 100644 --- a/uikit/src/main/res/values-hi/strings.xml +++ b/uikit/src/main/res/values-hi/strings.xml @@ -343,4 +343,8 @@ " बनाया" अनुवाद संदेश कोई अनुवाद उपलब्ध नहीं + ने एक समूह कॉल साझा किया है। + 📹 ग्रुप कॉल + एक समूह कॉल प्रारंभ करें + आपने एक समूह कॉल बनाया है। \ No newline at end of file diff --git a/uikit/src/main/res/values-ms/strings.xml b/uikit/src/main/res/values-ms/strings.xml index 9a657cd2..653bd89e 100644 --- a/uikit/src/main/res/values-ms/strings.xml +++ b/uikit/src/main/res/values-ms/strings.xml @@ -342,4 +342,8 @@ dibuat Terjemahkan Mesej Terjemahan Tidak Ada + telah berkongsi panggilan kumpulan. + 📹 Panggilan Berkumpulan + Manomboha antso anaty vondrona + Anda telah membuat panggilan kumpulan. \ No newline at end of file diff --git a/uikit/src/main/res/values-pt/strings.xml b/uikit/src/main/res/values-pt/strings.xml index 1da20a1b..26c9c529 100644 --- a/uikit/src/main/res/values-pt/strings.xml +++ b/uikit/src/main/res/values-pt/strings.xml @@ -343,4 +343,8 @@ feito Traduzir mensagem Nenhuma tradução disponível + compartilhou uma chamada em grupo. + 📹 Chamada em Grupo + Iniciar uma chamada em grupo + Você criou uma chamada em grupo. \ No newline at end of file diff --git a/uikit/src/main/res/values-ru/strings.xml b/uikit/src/main/res/values-ru/strings.xml index 07e47ce4..64d9a01f 100644 --- a/uikit/src/main/res/values-ru/strings.xml +++ b/uikit/src/main/res/values-ru/strings.xml @@ -345,4 +345,8 @@ сделанный Перевести сообщение Перевод недоступен + поделился групповым вызовом. + 📹 Групповой вызов + Начать групповой вызов + Вы создали групповой вызов. \ No newline at end of file diff --git a/uikit/src/main/res/values-zh-rTW/strings.xml b/uikit/src/main/res/values-zh-rTW/strings.xml index 306c4a75..84c4c735 100644 --- a/uikit/src/main/res/values-zh-rTW/strings.xml +++ b/uikit/src/main/res/values-zh-rTW/strings.xml @@ -345,4 +345,8 @@ 制作 翻譯訊息 沒有可用的翻譯 + 分享了一个群组通话。 + "📹 群组通话 " + 发起群组通话 + 您已建立群组通话。 \ No newline at end of file diff --git a/uikit/src/main/res/values-zh/strings.xml b/uikit/src/main/res/values-zh/strings.xml index c2bc31a7..e02aa6e8 100644 --- a/uikit/src/main/res/values-zh/strings.xml +++ b/uikit/src/main/res/values-zh/strings.xml @@ -341,4 +341,8 @@ 制作 翻译讯息 没有可用的翻译 + 分享了一个群组通话。 + "📹 群组通话 " + 发起群组通话 + 您已建立群组通话。 \ No newline at end of file diff --git a/uikit/src/main/res/values/strings.xml b/uikit/src/main/res/values/strings.xml index 335e6b14..dd605c19 100644 --- a/uikit/src/main/res/values/strings.xml +++ b/uikit/src/main/res/values/strings.xml @@ -301,12 +301,12 @@ Call Ended Call Initiated Call Rejected - Document 📃 - Location 📍 + 📃 Document + 📍 Location Custom Message not supported - Polls 📊 - Sticker 💟 - Whiteboard 📝 + "📊 Polls " + "💟 Sticker " + 📝 Whiteboard Delete & Exit Password Protected Group Private Group @@ -332,5 +332,9 @@ participant Translate Message No translation available + has shared a group call. + You\'ve created a group call. + "📹 Group Call " + Start a Group Call