diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5d35ec..59f6372 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,9 +1,4 @@
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 39c4fa7..54310a2 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ The UI Kit is developed to keep developers in mind and aims to reduce developmen
[![Platform](https://img.shields.io/badge/Language-Java-yellowgreen.svg)](#)
![GitHub repo size](https://img.shields.io/github/repo-size/cometchat-pro/android-java-chat-ui-kit)
![GitHub contributors](https://img.shields.io/github/contributors/cometchat-pro/android-java-chat-ui-kit)
-![Version](https://shields.io/badge/version-v3.0.0--beta4--1-orange)
+![Version](https://shields.io/badge/version-v3.0.0--1-orange)
![GitHub stars](https://img.shields.io/github/stars/cometchat-pro/android-java-chat-ui-kit?style=social)
![Twitter Follow](https://img.shields.io/twitter/follow/cometchat?style=social)
@@ -28,7 +28,7 @@ The UI Kit is developed to keep developers in mind and aims to reduce developmen
Before you begin, ensure you have met the following requirements:
✅ You have `Android Studio` installed in your machine.
✅ You have a `Android Device or Emulator` with Android Version 6.0 or above.
- ✅ You have read [CometChat Key Concepts](https://prodocs.cometchat.com/v3.0-beta/docs/concepts).
+ ✅ You have read [CometChat Key Concepts](https://prodocs.cometchat.com/v3.0/docs/concepts).
@@ -70,7 +70,12 @@ allprojects {
```groovy
dependencies {
- implementation 'com.cometchat:pro-android-chat-sdk:3.0.0-beta4'
+ implementation 'com.cometchat:pro-android-chat-sdk:3.0.0'
+
+ /** From v2.4+ onwards, Voice & Video Calling functionality has been
+ moved to a separate library. In case you plan to use the calling
+ feature, please add the Calling dependency.**/
+ implementation 'com.cometchat:pro-android-calls-sdk:2.1.0'
}
```
@@ -92,7 +97,7 @@ android {
You can refer to the below link for instructions on how to do so:
-[📝 Add CometChat Dependency](https://prodocs.cometchat.com/v3.0-beta/docs/android-quick-start#section-add-the-cometchat-dependency)
+[📝 Add CometChat Dependency](https://prodocs.cometchat.com/v3.0/docs/android-quick-start#section-add-the-cometchat-dependency)
@@ -167,7 +172,7 @@ String authKey = "AUTH_KEY"; // Replace with your App Auth Key
-📝 Please refer to our [Developer Documentation](https://prodocs.cometchat.com/v3.0-beta/docs/android-quick-start) for more information on how to configure the CometChat Pro SDK and implement various features using the same.
+📝 Please refer to our [Developer Documentation](https://prodocs.cometchat.com/v3.0/docs/android-quick-start) for more information on how to configure the CometChat Pro SDK and implement various features using the same.
@@ -175,7 +180,7 @@ String authKey = "AUTH_KEY"; // Replace with your App Auth Key
1. Simply clone the project from [android-java-chat-ui-kit](https://github.com/cometchat-pro/android-java-chat-ui-kit/tree/v3) repository.
-2. Import `uikit` Module from Module Settings.( To know how to import `uikit` as Module visit this [link](https://prodocs.cometchat.com/v3.0-beta/docs/android-ui-kit-setup) )
+2. Import `uikit` Module from Module Settings.( To know how to import `uikit` as Module visit this [link](https://prodocs.cometchat.com/v3.0/docs/android-ui-kit-setup) )
3. If the Library is added successfully, it will look like mentioned in the below image.
@@ -286,7 +291,7 @@ Visit our [Kotlin sample app](https://github.com/cometchat-pro/android-kotlin-ch
## Troubleshooting
-- To read the full documentation on UI Kit integration visit our [Documentation](https://prodocs.cometchat.com/v3.0-beta/docs/android-ui-kit) .
+- To read the full documentation on UI Kit integration visit our [Documentation](https://prodocs.cometchat.com/v3.0/docs/android-ui-kit) .
- Facing any issues while integrating or installing the UI Kit please connect with us via real time support present in CometChat Dashboard..
diff --git a/build.gradle b/build.gradle
index eff2378..f49409b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.5.2'
+ classpath 'com.android.tools.build:gradle:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 987c254..d105203 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Thu Jan 23 15:07:58 IST 2020
+#Tue Aug 17 02:58:03 IST 2021
distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
+zipStoreBase=GRADLE_USER_HOME
diff --git a/uikit/build.gradle b/uikit/build.gradle
index de722dc..d49870e 100644
--- a/uikit/build.gradle
+++ b/uikit/build.gradle
@@ -1,10 +1,10 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 29
+ compileSdkVersion 30
defaultConfig {
minSdkVersion 21
- targetSdkVersion 29
+ targetSdkVersion 30
versionCode 1
versionName "1.0"
multiDexEnabled true
@@ -90,7 +90,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:3.0.0-beta4'
-
+ compileOnly 'com.cometchat:pro-android-chat-sdk:3.0.0'
+ compileOnly 'com.cometchat:pro-android-calls-sdk:2.1.0'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0'
}
diff --git a/uikit/src/main/AndroidManifest.xml b/uikit/src/main/AndroidManifest.xml
index 2cba428..1d3bc25 100644
--- a/uikit/src/main/AndroidManifest.xml
+++ b/uikit/src/main/AndroidManifest.xml
@@ -6,28 +6,49 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
+
@@ -47,7 +68,7 @@
-
+
@@ -57,6 +78,7 @@
+
@@ -95,6 +117,7 @@
android:name=".ui_components.messages.message_list.CometChatMessageListActivity"
android:parentActivityName=".ui_components.cometchat_ui.CometChatUI"
android:screenOrientation="portrait" />
+
-
-
+
-
-
+
\ No newline at end of file
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatCallList.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatCallList.java
index 96a71d5..09bc78e 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatCallList.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatCallList.java
@@ -21,6 +21,7 @@
import com.cometchat.pro.uikit.R;
import com.cometchat.pro.uikit.ui_components.shared.cometchatCalls.CometChatCalls;
import com.cometchat.pro.uikit.ui_resources.utils.CometChatError;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.facebook.shimmer.ShimmerFrameLayout;
import com.google.android.material.tabs.TabLayout;
@@ -83,20 +84,17 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_cometchat_calls, container, false);
tvTitle = view.findViewById(R.id.tv_title);
- fetchSettings();
CometChatError.init(getContext());
phoneAddIv = view.findViewById(R.id.add_phone_iv);
- if (oneOnoneCallEnabled || oneOnoneVideoCallEnabled)
- phoneAddIv.setVisibility(View.VISIBLE);
- else
- phoneAddIv.setVisibility(View.GONE);
-
phoneAddIv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openUserListScreen();
}
});
+
+ fetchSettings();
+
viewPager = view.findViewById(R.id.viewPager);
tabLayout = view.findViewById(R.id.tabLayout);
if (getActivity() != null) {
@@ -106,13 +104,13 @@ public void onClick(View v) {
viewPager.setAdapter(tabAdapter);
}
tabLayout.setupWithViewPager(viewPager);
- if (FeatureRestriction.getColor()!=null) {
- phoneAddIv.setImageTintList(ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ if (UIKitSettings.getColor()!=null) {
+ phoneAddIv.setImageTintList(ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
Drawable wrappedDrawable = DrawableCompat.wrap(getResources().
getDrawable(R.drawable.tab_layout_background_active));
- DrawableCompat.setTint(wrappedDrawable, Color.parseColor(FeatureRestriction.getColor()));
+ DrawableCompat.setTint(wrappedDrawable, Color.parseColor(UIKitSettings.getColor()));
tabLayout.getTabAt(tabLayout.getSelectedTabPosition()).view.setBackground(wrappedDrawable);
- tabLayout.setSelectedTabIndicatorColor(Color.parseColor(FeatureRestriction.getColor()));
+ tabLayout.setSelectedTabIndicatorColor(Color.parseColor(UIKitSettings.getColor()));
} else {
tabLayout.getTabAt(tabLayout.getSelectedTabPosition()).
view.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
@@ -121,10 +119,10 @@ public void onClick(View v) {
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
- if (FeatureRestriction.getColor()!=null) {
+ if (UIKitSettings.getColor()!=null) {
Drawable wrappedDrawable = DrawableCompat.wrap(getResources().
getDrawable(R.drawable.tab_layout_background_active));
- DrawableCompat.setTint(wrappedDrawable, Color.parseColor(FeatureRestriction.getColor()));
+ DrawableCompat.setTint(wrappedDrawable, Color.parseColor(UIKitSettings.getColor()));
tab.view.setBackground(wrappedDrawable);
}
else
@@ -149,13 +147,15 @@ private void fetchSettings() {
FeatureRestriction.isOneOnOneAudioCallEnabled(new FeatureRestriction.OnSuccessListener() {
@Override
public void onSuccess(Boolean booleanVal) {
- oneOnoneCallEnabled = booleanVal;
+ if (booleanVal)
+ phoneAddIv.setVisibility(View.VISIBLE);
}
});
FeatureRestriction.isOneOnOneVideoCallEnabled(new FeatureRestriction.OnSuccessListener() {
@Override
public void onSuccess(Boolean booleanVal) {
- oneOnoneVideoCallEnabled = booleanVal;
+ if (booleanVal)
+ phoneAddIv.setVisibility(View.VISIBLE);
}
});
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatNewCallList.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatNewCallList.java
index f98782d..78c6137 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatNewCallList.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_list/CometChatNewCallList.java
@@ -48,6 +48,7 @@
import com.cometchat.pro.uikit.R;
import com.cometchat.pro.uikit.ui_components.shared.CometChatSnackBar;
import com.cometchat.pro.uikit.ui_resources.utils.CometChatError;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.facebook.shimmer.ShimmerFrameLayout;
import java.util.List;
@@ -101,19 +102,19 @@ public CometChatNewCallList() {
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_cometchat_userlist);
+ fetchSettings();
title = findViewById(R.id.tv_title);
CometChatError.init(this);
ImageView imageView = new ImageView(this);
- imageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_close_24dp));
- if (FeatureRestriction.getColor()!=null) {
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ imageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_back_arrow_selected));
+ if (UIKitSettings.getColor()!=null) {
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
imageView.setImageTintList(ColorStateList.valueOf(
- Color.parseColor(FeatureRestriction.getColor())));
+ Color.parseColor(UIKitSettings.getColor())));
} else
imageView.setImageTintList(
ColorStateList.valueOf(getResources().getColor(R.color.colorPrimary)));
- fetchSettings();
imageView.setClickable(true);
imageView.setPadding(8,8,8,8);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
@@ -128,11 +129,11 @@ public void onClick(View v) {
onBackPressed();
}
});
- title.setTypeface(FontUtils.getInstance(this).getTypeFace(FontUtils.robotoMedium));
RelativeLayout.LayoutParams titleLayoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
titleLayoutParams.setMargins(16,32,16,48);
titleLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
title.setLayoutParams(titleLayoutParams);
+ title.setTextAppearance(R.style.TextAppearance_AppCompat_Large);
title.setText(getResources().getString(R.string.new_call));
rvUserList = findViewById(R.id.rv_user_list);
etSearch = findViewById(R.id.search_bar);
@@ -201,9 +202,7 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat
}
});
- if (audioCallEnabled || videoCallEnabled) {
- // Used to trigger event on click of user item in rvUserList (RecyclerView)
- rvUserList.setItemClickListener(new OnItemClickListener() {
+ rvUserList.setItemClickListener(new OnItemClickListener() {
@Override
public void OnItemClick(User var, int position) {
User user = var;
@@ -229,7 +228,7 @@ public void onClick(DialogInterface dialogInterface, int i) {
alertDialog.show();
}
});
- }
+
fetchUsers();
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatCallActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatCallActivity.java
index 28fbc7c..dca99c3 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatCallActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatCallActivity.java
@@ -234,10 +234,10 @@ public void setCallType(boolean isVideoCall, boolean isIncoming) {
outgoingCallView.setVisibility(View.GONE);
if (isVideoCall) {
callMessage.setText(getResources().getString(R.string.incoming_video_call));
- callMessage.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_videocam_white_24dp),null,null,null);
+ callMessage.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_incoming_video_call),null,null,null);
} else {
callMessage.setText(getResources().getString(R.string.incoming_audio_call));
- callMessage.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_call_incoming_24dp),null,null,null);
+ callMessage.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_incoming_call),null,null,null);
}
} else {
callTv.setText(getString(R.string.calling));
@@ -248,7 +248,7 @@ public void setCallType(boolean isVideoCall, boolean isIncoming) {
if (isVideoCall) {
cameraPreview = new CameraPreview(this);
cameraFrame.addView(cameraPreview);
- hangUp.setImageDrawable(getResources().getDrawable(R.drawable.ic_videocam_white_24dp));
+ hangUp.setImageDrawable(getResources().getDrawable(R.drawable.ic_videocall));
} else {
hangUp.setImageDrawable(getResources().getDrawable(R.drawable.ic_call_end_white_24dp));
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatStartCallActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatStartCallActivity.java
index 7884292..e680847 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatStartCallActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/calls/call_manager/CometChatStartCallActivity.java
@@ -25,8 +25,8 @@
import com.cometchat.pro.core.CallSettings;
import com.cometchat.pro.core.CometChat;
import com.cometchat.pro.exceptions.CometChatException;
+import com.cometchat.pro.models.AudioMode;
import com.cometchat.pro.models.User;
-import com.cometchat.pro.rtc.model.AudioMode;
import com.cometchat.pro.uikit.R;
import com.cometchat.pro.uikit.ui_components.calls.call_manager.ongoing_call.OngoingCallService;
import com.cometchat.pro.uikit.ui_components.shared.CometChatSnackBar;
@@ -94,16 +94,17 @@ protected void onCreate(Bundle savedInstanceState) {
.setSessionId(sessionID)
.build();
+ CometChatError.init(this);
Log.e( "startCallActivity: ",sessionID+" "+type);
CometChat.startCall(callSettings, new CometChat.OngoingCallListener() {
@Override
- public void onAudioModesUpdated(List list) {
- Log.e( "onAudioModesUpdated: ",list.toString() );
+ public void onUserListUpdated(List list) {
+ Log.e( "onUserListUpdated: ",list.toString() );
}
@Override
- public void onUserListUpdated(List list) {
- Log.e( "onUserListUpdated: ",list.toString() );
+ public void onAudioModesUpdated(List list) {
+ Log.e("onAudioModesUpdated: ",list.toString() );
}
@Override
@@ -122,7 +123,7 @@ public void onUserLeft(User user) {
mainView, getString(R.string.user_left)+":"+ user.getName(),
CometChatSnackBar.INFO);
Log.e("onUserLeft: ", user.getUid());
- if (callSettings.isDefaultLayout()) {
+ if (callSettings.getMode().equals(CallSettings.MODE_SINGLE)) {
endCall();
}
} else {
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatConversationList.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatConversationList.java
index ec7ce8f..faba9bc 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatConversationList.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatConversationList.java
@@ -21,6 +21,7 @@
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
@@ -33,6 +34,7 @@
import com.cometchat.pro.models.Action;
import com.cometchat.pro.models.Group;
import com.cometchat.pro.models.MessageReceipt;
+import com.cometchat.pro.models.TypingIndicator;
import com.cometchat.pro.models.User;
import com.cometchat.pro.uikit.ui_components.shared.CometChatSnackBar;
import com.cometchat.pro.uikit.ui_components.shared.cometchatConversations.CometChatConversations;
@@ -46,6 +48,7 @@
import com.cometchat.pro.uikit.ui_resources.utils.custom_alertDialog.CustomAlertDialogHelper;
import com.cometchat.pro.uikit.ui_resources.utils.custom_alertDialog.OnAlertDialogButtonClickListener;
import com.cometchat.pro.uikit.ui_resources.utils.recycler_touch.RecyclerViewSwipeListener;
+import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.facebook.shimmer.ShimmerFrameLayout;
@@ -93,6 +96,8 @@ public class CometChatConversationList extends Fragment implements TextWatcher,
private List conversationList = new ArrayList<>();
+ private ImageView startConversation;
+
public CometChatConversationList() {
// Required empty public constructor
}
@@ -122,6 +127,23 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
CometChatError.init(getContext());
+ startConversation = view.findViewById(R.id.start_conversation);
+ FeatureRestriction.isStartConversationEnabled(new FeatureRestriction.OnSuccessListener() {
+ @Override
+ public void onSuccess(Boolean booleanVal) {
+ if (booleanVal)
+ startConversation.setVisibility(View.VISIBLE);
+ else
+ startConversation.setVisibility(View.GONE);
+ }
+ });
+
+ startConversation.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ CometChatStartConversation.launch(getContext());
+ }
+ });
searchEdit.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH) {
if (!textView.getText().toString().isEmpty()) {
@@ -184,69 +206,76 @@ public void OnItemClick(Conversation conversation, int position) {
RecyclerViewSwipeListener swipeHelper = new RecyclerViewSwipeListener(getContext()) {
@Override
public void instantiateUnderlayButton(RecyclerView.ViewHolder viewHolder, List underlayButtons) {
- Bitmap deleteBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.ic_delete);
- underlayButtons.add(new RecyclerViewSwipeListener.UnderlayButton(
- "Delete",
- deleteBitmap,
- getResources().getColor(R.color.red),
- new RecyclerViewSwipeListener.UnderlayButtonClickListener() {
- @Override
- public void onClick(final int pos) {
- Conversation conversation = rvConversationList.getConversation(pos);
- if (conversation!=null) {
- String conversationUid = "";
- String type = "";
- if (conversation.getConversationType()
- .equalsIgnoreCase(CometChatConstants.CONVERSATION_TYPE_GROUP)) {
- conversationUid = ((Group)conversation.getConversationWith()).getGuid();
- type = CometChatConstants.CONVERSATION_TYPE_GROUP;
- } else {
- conversationUid = ((User)conversation.getConversationWith()).getUid();
- type = CometChatConstants.CONVERSATION_TYPE_USER;
- }
- String finalConversationUid = conversationUid;
- String finalType = type;
- new CustomAlertDialogHelper(getContext(),
- getString(R.string.delete_conversation_message),
- null,
- getString(R.string.yes),
- "", getString(R.string.no), new OnAlertDialogButtonClickListener() {
+ Bitmap deleteBitmap = Utils.drawableToBitmap(getResources().getDrawable(R.drawable.ic_delete_conversation));
+ FeatureRestriction.isDeleteConversationEnabled(new FeatureRestriction.OnSuccessListener() {
+ @Override
+ public void onSuccess(Boolean booleanVal) {
+ if (booleanVal) {
+ underlayButtons.add(new RecyclerViewSwipeListener.UnderlayButton(
+ "Delete",
+ deleteBitmap,
+ getResources().getColor(R.color.red),
+ new RecyclerViewSwipeListener.UnderlayButtonClickListener() {
@Override
- public void onButtonClick(AlertDialog alertDialog, View v, int which, int popupId) {
- if (which==DialogInterface.BUTTON_POSITIVE) {
- ProgressDialog progressDialog = ProgressDialog.show(getContext(),null,
- getString(R.string.deleting_conversation));
- CometChat.deleteConversation(
- finalConversationUid, finalType,
- new CometChat.CallbackListener() {
- @Override
- public void onSuccess(String s) {
- Handler handler = new Handler();
- handler.postDelayed(new Runnable() {
- public void run() {
- alertDialog.dismiss();
- progressDialog.dismiss();
- }
- }, 1500);
- rvConversationList.remove(conversation);
- }
-
- @Override
- public void onError(CometChatException e) {
- progressDialog.dismiss();
- e.printStackTrace();
- }
- });
- } else if (which==DialogInterface.BUTTON_NEGATIVE) {
- alertDialog.dismiss();
+ public void onClick(final int pos) {
+ Conversation conversation = rvConversationList.getConversation(pos);
+ if (conversation!=null) {
+ String conversationUid = "";
+ String type = "";
+ if (conversation.getConversationType()
+ .equalsIgnoreCase(CometChatConstants.CONVERSATION_TYPE_GROUP)) {
+ conversationUid = ((Group)conversation.getConversationWith()).getGuid();
+ type = CometChatConstants.CONVERSATION_TYPE_GROUP;
+ } else {
+ conversationUid = ((User)conversation.getConversationWith()).getUid();
+ type = CometChatConstants.CONVERSATION_TYPE_USER;
+ }
+ String finalConversationUid = conversationUid;
+ String finalType = type;
+ new CustomAlertDialogHelper(getContext(),
+ getString(R.string.delete_conversation_message),
+ null,
+ getString(R.string.yes),
+ "", getString(R.string.no), new OnAlertDialogButtonClickListener() {
+ @Override
+ public void onButtonClick(AlertDialog alertDialog, View v, int which, int popupId) {
+ if (which==DialogInterface.BUTTON_POSITIVE) {
+ ProgressDialog progressDialog = ProgressDialog.show(getContext(),null,
+ getString(R.string.deleting_conversation));
+ CometChat.deleteConversation(
+ finalConversationUid, finalType,
+ new CometChat.CallbackListener() {
+ @Override
+ public void onSuccess(String s) {
+ Handler handler = new Handler();
+ handler.postDelayed(new Runnable() {
+ public void run() {
+ alertDialog.dismiss();
+ progressDialog.dismiss();
+ }
+ }, 1500);
+ rvConversationList.remove(conversation);
+ }
+
+ @Override
+ public void onError(CometChatException e) {
+ progressDialog.dismiss();
+ e.printStackTrace();
+ }
+ });
+ } else if (which==DialogInterface.BUTTON_NEGATIVE) {
+ alertDialog.dismiss();
+ }
+ }
+ }, 1, true);
+
}
}
- }, 1, true);
-
- }
- }
+ }
+ ));
}
- ));
+ }
+ });
}
};
swipeHelper.attachToRecyclerView(rvConversationList);
@@ -378,6 +407,8 @@ private void addConversationListener() {
CometChat.addMessageListener(TAG, new CometChat.MessageListener() {
@Override
public void onTextMessageReceived(TextMessage message) {
+ if (!message.getSender().getUid().equalsIgnoreCase(CometChat.getLoggedInUser().getUid()))
+ CometChat.markAsDelivered(message);
if (rvConversationList!=null) {
rvConversationList.refreshConversation(message);
checkNoConverstaion();
@@ -386,6 +417,8 @@ public void onTextMessageReceived(TextMessage message) {
@Override
public void onMediaMessageReceived(MediaMessage message) {
+ if (!message.getSender().getUid().equalsIgnoreCase(CometChat.getLoggedInUser().getUid()))
+ CometChat.markAsDelivered(message);
if (rvConversationList != null) {
rvConversationList.refreshConversation(message);
checkNoConverstaion();
@@ -394,6 +427,8 @@ public void onMediaMessageReceived(MediaMessage message) {
@Override
public void onCustomMessageReceived(CustomMessage message) {
+ if (!message.getSender().getUid().equalsIgnoreCase(CometChat.getLoggedInUser().getUid()))
+ CometChat.markAsDelivered(message);
if (rvConversationList != null) {
rvConversationList.refreshConversation(message);
checkNoConverstaion();
@@ -423,6 +458,18 @@ public void onMessageDeleted(BaseMessage message) {
if (rvConversationList!=null)
rvConversationList.refreshConversation(message);
}
+
+ @Override
+ public void onTypingStarted(TypingIndicator typingIndicator) {
+ if (rvConversationList!=null)
+ rvConversationList.setTypingIndicator(typingIndicator,false);
+ }
+
+ @Override
+ public void onTypingEnded(TypingIndicator typingIndicator) {
+ if (rvConversationList!=null)
+ rvConversationList.setTypingIndicator(typingIndicator,true);
+ }
});
CometChat.addGroupListener(TAG, new CometChat.GroupListener() {
@Override
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatStartConversation.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatStartConversation.java
new file mode 100644
index 0000000..e864b79
--- /dev/null
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/chats/CometChatStartConversation.java
@@ -0,0 +1,98 @@
+package com.cometchat.pro.uikit.ui_components.chats;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager.widget.ViewPager;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.cometchat.pro.uikit.R;
+import com.cometchat.pro.uikit.ui_components.groups.group_list.CometChatGroupList;
+import com.cometchat.pro.uikit.ui_components.shared.cometchatSharedMedia.adapter.TabAdapter;
+import com.cometchat.pro.uikit.ui_components.users.user_list.CometChatUserList;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
+import com.cometchat.pro.uikit.ui_settings.enums.ConversationMode;
+import com.google.android.material.tabs.TabLayout;
+
+public class CometChatStartConversation extends AppCompatActivity {
+
+ private ViewPager viewPager;
+
+ private TabLayout tabLayout;
+
+ private TabAdapter adapter;
+
+ private TextView title;
+
+ private ImageView backIcon;
+
+ private String conversationType = UIKitSettings.getConversationsMode().toString();
+
+ public static void launch(Context context) {
+ context.startActivity(new Intent(context,CometChatStartConversation.class));
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_comet_chat_start_conversation);
+ title = findViewById(R.id.title);
+ viewPager = findViewById(R.id.viewPager);
+ tabLayout = findViewById(R.id.tabLayout);
+ adapter = new TabAdapter(getSupportFragmentManager());
+ backIcon = findViewById(R.id.backIcon);
+ backIcon.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onBackPressed();
+ }
+ });
+
+ CometChatUserList cometChatUserList = new CometChatUserList();
+ cometChatUserList.setTitleVisible(false);
+ CometChatGroupList cometChatGroupList = new CometChatGroupList();
+ cometChatGroupList.setTitleVisible(false);
+ cometChatGroupList.setGroupCreateVisible(false);
+ if (conversationType.equalsIgnoreCase(ConversationMode.ALL_CHATS.toString())) {
+ adapter.addFragment(cometChatUserList, getString(R.string.users));
+ adapter.addFragment(cometChatGroupList, getString(R.string.groups));
+ } else if (conversationType.equalsIgnoreCase(ConversationMode.GROUP.toString())) {
+ title.setText(getString(R.string.select_group));
+ tabLayout.setVisibility(View.GONE);
+ adapter.addFragment(cometChatGroupList, getString(R.string.groups));
+ } else {
+ title.setText(getString(R.string.select_user));
+ tabLayout.setVisibility(View.GONE);
+ adapter.addFragment(cometChatUserList, getString(R.string.users));
+ }
+ viewPager.setAdapter(adapter);
+ viewPager.setOffscreenPageLimit(3);
+ tabLayout.setupWithViewPager(viewPager);
+
+ tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+ if (tab.getPosition()==0) {
+ title.setText(getString(R.string.select_user));
+ } else {
+ title.setText(getString(R.string.select_group));
+ }
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {
+
+ }
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {
+
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/cometchat_ui/CometChatUI.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/cometchat_ui/CometChatUI.java
index ea259ad..1ae4ca6 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/cometchat_ui/CometChatUI.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/cometchat_ui/CometChatUI.java
@@ -40,6 +40,8 @@
import com.cometchat.pro.uikit.databinding.ActivityCometchatUnifiedBinding;
import com.cometchat.pro.uikit.ui_components.shared.CometChatSnackBar;
import com.cometchat.pro.uikit.ui_resources.utils.CometChatError;
+import com.cometchat.pro.uikit.ui_resources.utils.EncryptionUtils;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.google.android.material.badge.BadgeDrawable;
import com.google.android.material.bottomnavigation.BottomNavigationView;
@@ -62,6 +64,11 @@
import com.cometchat.pro.uikit.ui_resources.utils.Utils;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
/**
* Purpose - CometChatUnified class is main class used to launch the fully working chat application.
* It consist of BottomNavigationBar which helps to navigate between different screens like
@@ -121,8 +128,6 @@ protected void onCreate(Bundle savedInstanceState) {
// It performs action on click of user item in CometChatUserListScreen.
setUserClickListener();
-
-
//It performs action on click of group item in CometChatGroupListScreen.
//It checks whether the logged-In user is already a joined a group or not and based on it perform actions.
setGroupClickListener();
@@ -148,26 +153,20 @@ private void setGroupClickListener() {
CometChatGroupList.setItemClickListener(new OnItemClickListener() {
@Override
public void OnItemClick(Group g, int position) {
- FeatureRestriction.isGroupChatEnabled(new FeatureRestriction.OnSuccessListener() {
- @Override
- public void onSuccess(Boolean booleanVal) {
- group = g;
- if (group.isJoined()) {
- startGroupIntent(group);
- } else {
- if (group.getGroupType().equals(CometChatConstants.GROUP_TYPE_PASSWORD)) {
- View dialogview = getLayoutInflater().inflate(R.layout.cc_dialog, null);
- TextView tvTitle = dialogview.findViewById(R.id.textViewDialogueTitle);
- tvTitle.setText(String.format(getResources().getString(R.string.enter_password_to_join),group.getName()));
- new CustomAlertDialogHelper(CometChatUI.this, getResources().getString(R.string.password), dialogview, getResources().getString(R.string.join),
- "", getResources().getString(R.string.cancel), CometChatUI.this, 1, false);
- } else if (group.getGroupType().equals(CometChatConstants.GROUP_TYPE_PUBLIC)) {
- joinGroup(group);
- }
- }
-
+ group = g;
+ if (group.isJoined()) {
+ startGroupIntent(group);
+ } else {
+ if (group.getGroupType().equals(CometChatConstants.GROUP_TYPE_PASSWORD)) {
+ View dialogview = getLayoutInflater().inflate(R.layout.cc_dialog, null);
+ TextView tvTitle = dialogview.findViewById(R.id.textViewDialogueTitle);
+ tvTitle.setText(String.format(getResources().getString(R.string.enter_password_to_join),group.getName()));
+ new CustomAlertDialogHelper(CometChatUI.this, getResources().getString(R.string.password), dialogview, getResources().getString(R.string.join),
+ "", getResources().getString(R.string.cancel), CometChatUI.this, 1, false);
+ } else if (group.getGroupType().equals(CometChatConstants.GROUP_TYPE_PUBLIC)) {
+ joinGroup(group);
}
- });
+ }
}
});
}
@@ -176,13 +175,7 @@ private void setUserClickListener() {
CometChatUserList.setItemClickListener(new OnItemClickListener() {
@Override
public void OnItemClick(User user, int position) {
- FeatureRestriction.isOneOnOneChatEnabled(new FeatureRestriction.OnSuccessListener() {
- @Override
- public void onSuccess(Boolean booleanVal) {
- if (booleanVal)
- startUserIntent(user);
- }
- });
+ startUserIntent(user);
}
});
}
@@ -206,9 +199,9 @@ private void initViewComponent() {
activityCometChatUnifiedBinding.bottomNavigation.setOnNavigationItemSelectedListener(this);
- if (FeatureRestriction.getColor()!=null && !FeatureRestriction.getColor().isEmpty()) {
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
- int widgetColor = Color.parseColor(FeatureRestriction.getColor());
+ if (UIKitSettings.getColor()!=null && !UIKitSettings.getColor().isEmpty()) {
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
+ int widgetColor = Color.parseColor(UIKitSettings.getColor());
ColorStateList colorStateList = new ColorStateList(new int[][] {
{ -android.R.attr.state_selected }, {} }, new int[] { Color.GRAY, widgetColor });
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/add_members/CometChatAddMembersActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/add_members/CometChatAddMembersActivity.java
index 3fa7c43..041aa87 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/add_members/CometChatAddMembersActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/add_members/CometChatAddMembersActivity.java
@@ -13,6 +13,7 @@
import com.cometchat.pro.uikit.ui_resources.constants.UIKitConstants;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
public class CometChatAddMembersActivity extends AppCompatActivity {
@@ -23,8 +24,8 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
handleIntent();
- if (FeatureRestriction.getColor()!=null)
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ if (UIKitSettings.getColor()!=null)
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
}
private void handleIntent() {
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/admin_moderator_list/CometChatAdminModeratorListActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/admin_moderator_list/CometChatAdminModeratorListActivity.java
index add9ea4..e7e8389 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/admin_moderator_list/CometChatAdminModeratorListActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/admin_moderator_list/CometChatAdminModeratorListActivity.java
@@ -13,6 +13,7 @@
import com.cometchat.pro.uikit.ui_resources.constants.UIKitConstants;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
public class CometChatAdminModeratorListActivity extends AppCompatActivity {
@@ -29,8 +30,8 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
handleIntent();
- if (FeatureRestriction.getColor()!=null)
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ if (UIKitSettings.getColor()!=null)
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
}
private void handleIntent() {
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/banned_members/CometChatBanMembersActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/banned_members/CometChatBanMembersActivity.java
index 4867131..654d121 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/banned_members/CometChatBanMembersActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/banned_members/CometChatBanMembersActivity.java
@@ -10,6 +10,7 @@
import android.view.View;
import com.cometchat.pro.uikit.R;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.google.android.material.appbar.MaterialToolbar;
import com.cometchat.pro.uikit.ui_resources.constants.UIKitConstants;
@@ -32,8 +33,8 @@ public void onClick(View v) {
}
});
handleIntent();
- if (FeatureRestriction.getColor()!=null)
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ if (UIKitSettings.getColor()!=null)
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
CometChatBanMembers banFragment = new CometChatBanMembers();
Bundle bundle = new Bundle();
bundle.putString(UIKitConstants.IntentStrings.GUID,guid);
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroup.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroup.java
index f158b5e..a4cb7e8 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroup.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroup.java
@@ -89,7 +89,7 @@ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!etGroupPassword.getText().toString().isEmpty() && s.toString().equals(etGroupPassword.getText().toString())) {
- groupCnfPasswordLayout.setEndIconDrawable(getResources().getDrawable(R.drawable.ic_check_black_24dp));
+ groupCnfPasswordLayout.setEndIconDrawable(getResources().getDrawable(R.drawable.ic_baseline_check_circle_24));
groupCnfPasswordLayout.setEndIconTintList(ColorStateList.valueOf(getResources().getColor(R.color.green_600)));
}
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroupActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroupActivity.java
index 3b02b83..1d21f88 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroupActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/create_group/CometChatCreateGroupActivity.java
@@ -12,6 +12,7 @@
import com.cometchat.pro.uikit.R;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
public class CometChatCreateGroupActivity extends AppCompatActivity {
@@ -26,8 +27,8 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_screen);
Fragment fragment = new CometChatCreateGroup();
getSupportFragmentManager().beginTransaction().replace(R.id.frame_fragment,fragment).commit();
- if (FeatureRestriction.getColor()!=null)
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ if (UIKitSettings.getColor()!=null)
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_details/CometChatGroupDetailActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_details/CometChatGroupDetailActivity.java
index 78ec891..e85eddb 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_details/CometChatGroupDetailActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_details/CometChatGroupDetailActivity.java
@@ -78,6 +78,8 @@ public class CometChatGroupDetailActivity extends AppCompatActivity {
private CometChatAvatar groupIcon;
+ private ImageView editGroup;
+
private String groupType;
private String ownerId;
@@ -124,8 +126,6 @@ public class CometChatGroupDetailActivity extends AppCompatActivity {
private TextView tvLoadMore;
- private List groupMembers = new ArrayList<>();
-
private AlertDialog.Builder dialog;
private TextView tvMemberCount;
@@ -167,6 +167,13 @@ private void initComponent() {
tvGroupName = findViewById(R.id.tv_group_name);
tvGroupDesc = findViewById(R.id.group_description);
tvGroupName.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ }
+ });
+ editGroup = findViewById(R.id.edit_group);
+
+ editGroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateGroupDialog();
@@ -224,6 +231,13 @@ public void onClick(View v) {
// rvMemberList.setNestedScrollingEnabled(false);
handleIntent();
+
+ if (loggedInUserScope.equalsIgnoreCase(CometChatConstants.SCOPE_ADMIN))
+ editGroup.setVisibility(View.VISIBLE);
+ else
+ editGroup.setVisibility(View.GONE);
+
+
checkDarkMode();
sharedMediaLayout = findViewById(R.id.shared_media_layout);
@@ -368,8 +382,8 @@ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMen
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.group_action_menu, menu);
-
- menu.findItem(R.id.item_make_admin).setVisible(false);
+ if (!ownerId.equalsIgnoreCase(loggedInUser.getUid()))
+ menu.findItem(R.id.item_make_admin).setVisible(false);
menu.setHeaderTitle(getString(R.string.group_alert));
}
@@ -382,11 +396,32 @@ public boolean onContextItemSelected(@NonNull MenuItem item) {
kickMember();
} else if(item.getItemId() == R.id.item_ban) {
banMember();
+ } else if (item.getItemId() == R.id.item_make_admin) {
+ transferOwner(groupMember);
}
return super.onContextItemSelected(item);
}
+ private void transferOwner(GroupMember groupMember) {
+ CometChat.transferGroupOwnership(guid, groupMember.getUid(), new CometChat.CallbackListener() {
+ @Override
+ public void onSuccess(String s) {
+ CometChatSnackBar.show(CometChatGroupDetailActivity.this,
+ rvMemberList,
+ String.format(getResources().getString(R.string.user_is_owner),groupMember.getName()), CometChatSnackBar.SUCCESS);
+ }
+
+ @Override
+ public void onError(CometChatException e) {
+ CometChatSnackBar.show(CometChatGroupDetailActivity.this,
+ rvMemberList,
+ String.format(getResources().getString(R.string.update_scope_error)+e.getCode(),groupMember.getName())
+ +", "+CometChatError.localized(e),CometChatSnackBar.ERROR);
+ }
+ });
+ }
+
/**
* This method is used to create dialog box on click of events like Delete Group and Exit Group
@@ -495,6 +530,10 @@ private void handleIntent() {
}
if (getIntent().hasExtra(UIKitConstants.IntentStrings.GROUP_DESC)) {
gDesc = getIntent().getStringExtra(UIKitConstants.IntentStrings.GROUP_DESC);
+ if (gDesc!=null) {
+ if (!gDesc.isEmpty())
+ tvGroupDesc.setVisibility(View.VISIBLE);
+ }
tvGroupDesc.setText(gDesc);
}
if (getIntent().hasExtra(UIKitConstants.IntentStrings.GROUP_PASSWORD)) {
@@ -983,7 +1022,7 @@ public void afterTextChanged(Editable s) {
if(!s.toString().isEmpty())
{
avatar.setVisibility(View.VISIBLE);
- Glide.with(CometChatGroupDetailActivity.this).load(s.toString()).into(avatar);
+ avatar.setAvatar(s.toString());
} else
avatar.setVisibility(View.GONE);
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_list/CometChatGroupList.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_list/CometChatGroupList.java
index d1e9582..cba07d4 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_list/CometChatGroupList.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_list/CometChatGroupList.java
@@ -10,6 +10,7 @@
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.text.Editable;
import android.text.TextWatcher;
@@ -40,6 +41,7 @@
import java.util.ArrayList;
import java.util.List;
+import com.cometchat.pro.uikit.ui_resources.constants.UIKitConstants;
import com.cometchat.pro.uikit.ui_resources.utils.CometChatError;
import com.cometchat.pro.uikit.ui_resources.utils.item_clickListener.OnItemClickListener;
import com.cometchat.pro.uikit.ui_components.groups.create_group.CometChatCreateGroupActivity;
@@ -65,10 +67,14 @@ public class CometChatGroupList extends Fragment {
private CometChatGroups rvGroupList; //Uses to display list of groups.
- private GroupsRequest groupsRequest; //Uses to fetch Groups.
+ private SwipeRefreshLayout swipeRefreshLayout;
+ private GroupsRequest groupsRequest; //Uses to fetch Groups.
+ private TextView title;
private EditText etSearch; //Uses to perform search operations on groups.
+ private boolean isGroupCreateVisible = true;
+
private ImageView clearSearch;
private ImageView ivCreateGroup;
@@ -87,22 +93,76 @@ public CometChatGroupList() {
// Required empty public constructor
}
+
+ public void setGroupCreateVisible(boolean isVisible) {
+ Bundle bundle = null;
+ if (getArguments()!=null) {
+ bundle = getArguments();
+ } else {
+ bundle = new Bundle();
+ }
+ bundle.putBoolean(UIKitConstants.IntentStrings.CREATE_GROUP_VISIBLE, isVisible);
+ setArguments(bundle);
+ }
+
+ public void isGroupCreateVisible() {
+ if (getArguments()!=null) {
+ isGroupCreateVisible = getArguments()
+ .getBoolean(UIKitConstants.IntentStrings.CREATE_GROUP_VISIBLE, true);
+ if (isGroupCreateVisible)
+ ivCreateGroup.setVisibility(View.VISIBLE);
+ else
+ ivCreateGroup.setVisibility(View.GONE);
+ }
+ }
+
+ public void setTitleVisible(boolean isVisible) {
+ Bundle bundle = null;
+ if (getArguments()!=null) {
+ bundle = getArguments();
+ } else {
+ bundle = new Bundle();
+ }
+ bundle.putBoolean(UIKitConstants.IntentStrings.IS_TITLE_VISIBLE,isVisible);
+ setArguments(bundle);
+ }
+
+ public void isTitleVisible() {
+ if (getArguments()!=null) {
+ boolean isVisible = getArguments()
+ .getBoolean(UIKitConstants.IntentStrings.IS_TITLE_VISIBLE, true);
+ if (isVisible)
+ title.setVisibility(View.VISIBLE);
+ else
+ title.setVisibility(View.GONE);
+ }
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view= inflater.inflate(R.layout.fragment_cometchat_grouplist, container, false);
- TextView title = view.findViewById(R.id.tv_title);
+ title = view.findViewById(R.id.tv_title);
title.setTypeface(FontUtils.getInstance(getActivity()).getTypeFace(FontUtils.robotoMedium));
rvGroupList=view.findViewById(R.id.rv_group_list);
+ swipeRefreshLayout = view.findViewById(R.id.swipe_refresh);
noGroupLayout = view.findViewById(R.id.no_group_layout);
etSearch = view.findViewById(R.id.search_bar);
clearSearch = view.findViewById(R.id.clear_search);
CometChatError.init(getContext());
ivCreateGroup = view.findViewById(R.id.create_group);
- ivCreateGroup.setImageTintList(ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ ivCreateGroup.setImageTintList(ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
+ isTitleVisible();
+ swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+ @Override
+ public void onRefresh() {
+ groupsRequest = null;
+ rvGroupList.clear();
+ fetchGroup();
+ }
+ });
FeatureRestriction.isGroupSearchEnabled(new FeatureRestriction.OnSuccessListener() {
@Override
public void onSuccess(Boolean booleanVal) {
@@ -115,7 +175,7 @@ public void onSuccess(Boolean booleanVal) {
FeatureRestriction.isGroupCreationEnabled(new FeatureRestriction.OnSuccessListener() {
@Override
public void onSuccess(Boolean booleanVal) {
- if (booleanVal)
+ if (booleanVal && isGroupCreateVisible)
ivCreateGroup.setVisibility(View.VISIBLE);
else
ivCreateGroup.setVisibility(View.GONE);
@@ -224,11 +284,13 @@ public void OnItemClick(Group group, int position) {
event.OnItemClick(group,position);
}
});
+ isGroupCreateVisible();
return view;
}
private void checkGroups() {
- if (isPublicGroupEnabled || isPasswordGroupEnabled || isPrivateGroupEnabled) {
+ if ((isPublicGroupEnabled || isPasswordGroupEnabled || isPrivateGroupEnabled)
+ && isGroupCreateVisible) {
ivCreateGroup.setVisibility(View.VISIBLE);
} else
ivCreateGroup.setVisibility(View.GONE);
@@ -254,6 +316,8 @@ private void fetchGroup(){
public void onSuccess(List groups) {
rvGroupList.setGroupList(groups); // sets the groups in rvGroupList i.e CometChatGroupList Component.
groupList.addAll(groups);
+ if (swipeRefreshLayout.isRefreshing())
+ swipeRefreshLayout.setRefreshing(false);
if (groupList.size()==0) {
noGroupLayout.setVisibility(View.VISIBLE);
rvGroupList.setVisibility(View.GONE);
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/CometChatGroupMemberListActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/CometChatGroupMemberListActivity.java
index f792fdf..f79d1a7 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/CometChatGroupMemberListActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/CometChatGroupMemberListActivity.java
@@ -13,6 +13,7 @@
import com.cometchat.pro.uikit.ui_resources.constants.UIKitConstants;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
public class CometChatGroupMemberListActivity extends AppCompatActivity {
@@ -42,8 +43,8 @@ protected void onCreate(Bundle savedInstanceState) {
bundle.putBoolean(UIKitConstants.IntentStrings.TRANSFER_OWNERSHIP,transferOwnerShip);
fragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_fragment,fragment).commit();
- if (FeatureRestriction.getColor()!=null)
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ if (UIKitSettings.getColor()!=null)
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/GroupMemberAdapter.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/GroupMemberAdapter.java
index 5fda61e..135d485 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/GroupMemberAdapter.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/groups/group_members/GroupMemberAdapter.java
@@ -113,7 +113,7 @@ public void onBindViewHolder(@NonNull GroupMemberViewHolder groupMemberViewHolde
} else if (groupMember.getScope().equals(CometChatConstants.SCOPE_MODERATOR)){
groupMemberViewHolder.userListRowBinding.txtUserScope.setText(R.string.moderator);
} else {
- groupMemberViewHolder.userListRowBinding.txtUserScope.setText("");
+ groupMemberViewHolder.userListRowBinding.txtUserScope.setText(R.string.participant);
}
groupMemberViewHolder.userListRowBinding.txtUserName.setTypeface(fontUtils.getTypeFace(FontUtils.robotoMedium));
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/forward_message/CometChatForwardMessageActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/forward_message/CometChatForwardMessageActivity.java
index 31a41b9..77c6c85 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/forward_message/CometChatForwardMessageActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/forward_message/CometChatForwardMessageActivity.java
@@ -231,10 +231,10 @@ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
@Override
public void afterTextChanged(Editable editable) {
- if (editable.toString().length()!=0) {
- if (conversationListAdapter != null)
- conversationListAdapter.getFilter().filter(editable.toString());
- }
+ if (editable.toString().length()!=0) {
+ if (conversationListAdapter != null)
+ conversationListAdapter.getFilter().filter(editable.toString());
+ }
}
});
@@ -273,7 +273,7 @@ public void OnItemClick(Conversation conversation, int position) {
avatar = ((Group) conversation.getConversationWith()).getIcon();
}
chip.setText(name);
- Glide.with(CometChatForwardMessageActivity.this).load(avatar).placeholder(R.drawable.ic_contacts_24dp).transform(new CircleCrop()).into(new SimpleTarget() {
+ Glide.with(CometChatForwardMessageActivity.this).load(avatar).placeholder(R.drawable.ic_contacts).transform(new CircleCrop()).into(new SimpleTarget() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition super Drawable> transition) {
chip.setChipIcon(resource);
@@ -294,7 +294,7 @@ public void onClick(View vw) {
checkUserList();
}
else {
- CometChatSnackBar.show(CometChatForwardMessageActivity.this,
+ CometChatSnackBar.show(CometChatForwardMessageActivity.this,
selectedUsers,
getString(R.string.forward_to_5_at_a_time), CometChatSnackBar.WARNING);
}
@@ -333,7 +333,11 @@ public void onClick(View view) {
}
}).start();
- } else if (messageType != null && messageType.equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) {
+ } else if (messageType != null &&
+ (messageType.equals(CometChatConstants.MESSAGE_TYPE_IMAGE) ||
+ messageType.equals(CometChatConstants.MESSAGE_TYPE_AUDIO) ||
+ messageType.equals(CometChatConstants.MESSAGE_TYPE_FILE) ||
+ messageType.equals(CometChatConstants.MESSAGE_TYPE_VIDEO))) {
new Thread(() -> {
for (int i = 0; i <= userList.size() - 1; i++) {
Conversation conversation = new ArrayList<>(userList.values()).get(i);
@@ -547,9 +551,9 @@ public boolean onCreateOptionsMenu(Menu menu) {
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
- if (item.getItemId()==android.R.id.home){
- onBackPressed();
- }
+ if (item.getItemId()==android.R.id.home){
+ onBackPressed();
+ }
return super.onOptionsItemSelected(item);
}
@@ -582,7 +586,7 @@ public void onSuccess(List conversationsList) {
@Override
public void onError(CometChatException e) {
- CometChatSnackBar.show(CometChatForwardMessageActivity.this,
+ CometChatSnackBar.show(CometChatForwardMessageActivity.this,
rvConversationList, CometChatError.localized(e), CometChatSnackBar.ERROR);
}
});
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_actions/CometChatMessageActions.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_actions/CometChatMessageActions.java
index 80f62e0..2bdb5d8 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_actions/CometChatMessageActions.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_actions/CometChatMessageActions.java
@@ -47,10 +47,10 @@ public class CometChatMessageActions extends BottomSheetDialogFragment {
private TextView shareMessage;
private TextView translateMessage;
private TextView retryMessage;
+ private TextView replyMessagePrivately;
private TextView messagePrivately;
- private String userName;
private String userAvatar;
private LinearLayout reactionsList;
@@ -64,6 +64,7 @@ public class CometChatMessageActions extends BottomSheetDialogFragment {
private boolean isDeleteVisible;
private boolean isForwardVisible;
private boolean isReplyVisible;
+ private boolean isReplyPrivatelyVisible;
private boolean isMessageInfoVisible;
private boolean isReactionsVisible;
private boolean isTranslateVisible;
@@ -89,6 +90,7 @@ private void fetchArguments() {
isEditVisible = getArguments().getBoolean("editVisible");
isDeleteVisible = getArguments().getBoolean("deleteVisible");
isReplyVisible = getArguments().getBoolean("replyVisible");
+ isReplyPrivatelyVisible = getArguments().getBoolean("replyPrivatelyVisible");
isForwardVisible = getArguments().getBoolean("forwardVisible");
isShareVisible = getArguments().getBoolean("shareVisible");
isMessageInfoVisible = getArguments().getBoolean("messageInfoVisible");
@@ -117,22 +119,6 @@ public void onGlobalLayout() {
}
});
- messagePrivately = view.findViewById(R.id.reply_privately);
-
- if ((userName!=null && userName.isEmpty())
- || (userAvatar!=null && userAvatar.isEmpty()))
- messagePrivately.setVisibility(View.GONE);
- else {
- if (isPrivateReplyVisible)
- messagePrivately.setVisibility(View.VISIBLE);
- else
- messagePrivately.setVisibility(View.GONE);
- }
-
- messagePrivately.setOnClickListener(v-> {
- messageActionListener.onPrivateReplyToUser();
- dismiss();
- });
reactionsList = view.findViewById(R.id.initial_reactions);
List reactions = Extensions.getInitialReactions(INITIAL_REACTION_COUNT);
for(Reaction reaction : reactions) {
@@ -157,7 +143,7 @@ public void onClick(View view) {
});
}
ImageView addEmojiView = new ImageView(getContext());
- addEmojiView.setImageDrawable(getResources().getDrawable(R.drawable.add_emoji));
+ addEmojiView.setImageDrawable(getResources().getDrawable(R.drawable.ic_reactions));
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
(int)Utils.dpToPx(getContext(),36),(int)Utils.dpToPx(getContext(),36));
layoutParams.topMargin = 8;
@@ -184,6 +170,19 @@ public void onClick(View view) {
shareMessage = view.findViewById(R.id.share_message);
messageInfo = view.findViewById(R.id.message_info);
+ messagePrivately = view.findViewById(R.id.reply_privately);
+ replyMessagePrivately = view.findViewById(R.id.reply_message_privately);
+
+ if (isPrivateReplyVisible)
+ messagePrivately.setVisibility(View.VISIBLE);
+ else
+ messagePrivately.setVisibility(View.GONE);
+
+ if (isReplyPrivatelyVisible)
+ replyMessagePrivately.setVisibility(View.VISIBLE);
+ else
+ replyMessagePrivately.setVisibility(View.GONE);
+
if (isPrivateReplyVisible)
messagePrivately.setVisibility(View.VISIBLE);
else
@@ -236,10 +235,23 @@ public void onClick(View view) {
messageInfo.setVisibility(View.VISIBLE);
else
messageInfo.setVisibility(View.GONE);
+
if (type!=null && type.equals(CometChatThreadMessageListActivity.class.getName())) {
threadMessage.setVisibility(View.GONE);
}
+ replyMessagePrivately.setOnClickListener(v-> {
+ if (messageActionListener!=null)
+ messageActionListener.onReplyMessagePrivately();
+ dismiss();
+ });
+ messagePrivately.setOnClickListener(v-> {
+ if (messageActionListener!=null) {
+ messageActionListener.onPrivateReplyToUser();
+ dismiss();
+ }
+ });
+
retryMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -346,6 +358,8 @@ public interface MessageActionListener {
void onTranslateMessageClick();
void onRetryClick();
void onPrivateReplyToUser();
+
+ void onReplyMessagePrivately();
}
@Override
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageList.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageList.java
index 7243d53..82d643c 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageList.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageList.java
@@ -5,6 +5,7 @@
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
+import android.annotation.TargetApi;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.ClipData;
@@ -31,9 +32,6 @@
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateDecelerateInterpolator;
@@ -48,7 +46,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.inputmethod.InputContentInfoCompat;
import androidx.fragment.app.Fragment;
@@ -64,6 +61,7 @@
import com.cometchat.pro.core.GroupMembersRequest;
import com.cometchat.pro.core.MessagesRequest;
import com.cometchat.pro.exceptions.CometChatException;
+import com.cometchat.pro.helpers.CometChatHelper;
import com.cometchat.pro.models.Action;
import com.cometchat.pro.models.Attachment;
import com.cometchat.pro.models.BaseMessage;
@@ -73,6 +71,7 @@
import com.cometchat.pro.models.MediaMessage;
import com.cometchat.pro.models.MessageReceipt;
import com.cometchat.pro.models.TextMessage;
+import com.cometchat.pro.models.TransientMessage;
import com.cometchat.pro.models.TypingIndicator;
import com.cometchat.pro.models.User;
import com.cometchat.pro.uikit.R;
@@ -110,6 +109,7 @@
import com.cometchat.pro.uikit.ui_resources.utils.pattern_utils.PatternUtils;
import com.cometchat.pro.uikit.ui_resources.utils.sticker_header.StickyHeaderDecoration;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.facebook.shimmer.ShimmerFrameLayout;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
@@ -260,7 +260,7 @@ public class CometChatMessageList extends Fragment implements View.OnClickListen
private User loggedInUser = CometChat.getLoggedInUser();
- String[] CAMERA_PERMISSION = {Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE};
+ String[] CAMERA_PERMISSION = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE};
private boolean isInProgress;
@@ -320,7 +320,9 @@ public class CometChatMessageList extends Fragment implements View.OnClickListen
private ImageView videoCallAction;
private ImageView backIcon;
+ private BaseMessage repliedMessage;
+ private boolean isLiveReactionEnded = true;
public CometChatMessageList() {
// Required empty public constructor
}
@@ -351,6 +353,16 @@ private void handleArguments() {
groupPassword = getArguments().getString(UIKitConstants.IntentStrings.GROUP_PASSWORD);
groupType = getArguments().getString(UIKitConstants.IntentStrings.GROUP_TYPE);
}
+
+ String message = getArguments().getString(UIKitConstants.IntentStrings.MESSAGE);
+ if (message != null) {
+ try {
+ JSONObject repliedMessageJSON = new JSONObject(message);
+ repliedMessage = CometChatHelper.processMessage(repliedMessageJSON);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
}
}
@@ -391,53 +403,36 @@ private void initViewComponent(View view) {
composeBox.hideGroupCallOption(true);
setComposeBoxListener();
- composeBox.setVisibility(View.VISIBLE);
+ if (type.equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_USER)) {
+ FeatureRestriction.isOneOnOneChatEnabled(new FeatureRestriction.OnSuccessListener() {
+ @Override
+ public void onSuccess(Boolean booleanVal) {
+ if (booleanVal)
+ composeBox.setVisibility(View.VISIBLE);
+ else
+ composeBox.setVisibility(View.GONE);
+ }
+ });
+ } else if (type.equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_GROUP)) {
+ FeatureRestriction.isGroupChatEnabled(new FeatureRestriction.OnSuccessListener() {
+ @Override
+ public void onSuccess(Boolean booleanVal) {
+ if (booleanVal)
+ composeBox.setVisibility(View.VISIBLE);
+ else
+ composeBox.setVisibility(GONE);
+ }
+ });
+ }
container = view.findViewById(R.id.reactions_container);
- composeBox.liveReactionBtn.setOnTouchListener(new LiveReactionListener(700, 1000, new ReactionClickListener() {
- @Override
- public void onClick(View var1) {
- container.setAlpha(1.0f);
- sendLiveReaction();
- }
-
+ composeBox.liveReactionBtn.setOnClickListener(new View.OnClickListener() {
@Override
- public void onCancel(View var1) {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- if (imageView!=null && animation!=null && animation.isRunning()) {
- ObjectAnimator animator = ObjectAnimator.ofFloat(container,"alpha",0.2f);
- animator.setDuration(700);
- animator.start();
- animator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- if (imageView!=null)
- imageView.clearAnimation();
- container.removeAllViews();
- if (typingTimer!=null)
- typingTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- JSONObject metaData = new JSONObject();
- try {
- metaData.put("reaction", "heart");
- } catch (JSONException e) {
- e.printStackTrace();
- }
- TypingIndicator typingIndicator = new TypingIndicator(Id, type, metaData);
- CometChat.endTyping(typingIndicator);
- }
- },2000);
- }
- });
- }
- }
- },1400);
+ public void onClick(View v) {
+ if (isLiveReactionEnded)
+ sendLiveReaction();
}
- }));
+ });
newMessageLayout = view.findViewById(R.id.new_message_layout);
@@ -468,12 +463,12 @@ public void onClick(View view) {
public void onClickListener(Sticker sticker) {
JSONObject stickerData = new JSONObject();
try {
- stickerData.put("url",sticker.getUrl());
- stickerData.put("name",sticker.getName());
+ stickerData.put("sticker_url", sticker.getUrl());
+ stickerData.put("sticker_name", sticker.getName());
} catch (JSONException e) {
e.printStackTrace();
}
- sendCustomMessage(UIKitConstants.IntentStrings.STICKERS,stickerData);
+ sendCustomMessage(UIKitConstants.IntentStrings.STICKERS, stickerData);
stickerLayout.setVisibility(GONE);
}
});
@@ -485,6 +480,10 @@ public void onClickListener(Sticker sticker) {
replyClose = view.findViewById(R.id.iv_reply_close);
replyClose.setOnClickListener(this);
+ if (repliedMessage != null) {
+ baseMessage = repliedMessage;
+ replyMessage();
+ }
rvChatListView = view.findViewById(R.id.rv_message_list);
MaterialButton unblockUserBtn = view.findViewById(R.id.btn_unblock_user);
@@ -532,7 +531,7 @@ public void onClickListener(Sticker sticker) {
if (isEdit) {
composeBox.ivMic.setVisibility(GONE);
composeBox.ivSend.setVisibility(View.VISIBLE);
- }else {
+ } else {
FeatureRestriction.isVoiceNotesEnabled(new FeatureRestriction.OnSuccessListener() {
@Override
public void onSuccess(Boolean booleanVal) {
@@ -562,16 +561,16 @@ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newStat
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- if (!isNoMoreMessages && !isInProgress) {
- if (linearLayoutManager.findFirstVisibleItemPosition() == 10 || !rvChatListView.canScrollVertically(-1)) {
- isInProgress = true;
- fetchMessage();
- }
- }
- if (messageAdapter!=null && ((messageAdapter.getItemCount() - 1) - linearLayoutManager.findLastVisibleItemPosition() < 5)) {
- newMessageLayout.setVisibility(GONE);
- newMessageCount = 0;
+ if (!isNoMoreMessages && !isInProgress) {
+ if (linearLayoutManager.findFirstVisibleItemPosition() == 10 || !rvChatListView.canScrollVertically(-1)) {
+ isInProgress = true;
+ fetchMessage();
}
+ }
+ if (messageAdapter != null && ((messageAdapter.getItemCount() - 1) - linearLayoutManager.findLastVisibleItemPosition() < 5)) {
+ newMessageLayout.setVisibility(GONE);
+ newMessageCount = 0;
+ }
}
});
@@ -594,15 +593,15 @@ public void OnItemClick(String var, int position) {
checkOnGoingCall();
}
- private void checkOnGoingCall(String callType) {
- if(CometChat.getActiveCall()!=null && CometChat.getActiveCall().getCallStatus().equals(CometChatConstants.CALL_STATUS_ONGOING) && CometChat.getActiveCall().getSessionId()!=null) {
+ private void checkOnGoingCall(String callType) {
+ if (CometChat.getActiveCall() != null && CometChat.getActiveCall().getCallStatus().equals(CometChatConstants.CALL_STATUS_ONGOING) && CometChat.getActiveCall().getSessionId() != null) {
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(getResources().getString(R.string.ongoing_call))
.setMessage(getResources().getString(R.string.ongoing_call_message))
.setPositiveButton(getResources().getString(R.string.join), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- CallUtils.joinOnGoingCall(context,CometChat.getActiveCall());
+ CallUtils.joinOnGoingCall(context, CometChat.getActiveCall());
}
}).setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
@@ -612,18 +611,17 @@ public void onClick(DialogInterface dialog, int which) {
videoCallAction.setClickable(true);
}
}).create().show();
- }
- else {
+ } else {
Call call = null;
if (type.equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_GROUP))
- call = new Call(Id, CometChatConstants.RECEIVER_TYPE_GROUP,callType);
+ call = new Call(Id, CometChatConstants.RECEIVER_TYPE_GROUP, callType);
else
- call = new Call(Id, CometChatConstants.RECEIVER_TYPE_USER,callType);
+ call = new Call(Id, CometChatConstants.RECEIVER_TYPE_USER, callType);
CometChat.initiateCall(call, new CometChat.CallbackListener() {
@Override
public void onSuccess(Call call) {
CallUtils.startCallIntent(context,
- ((User)call.getCallReceiver()),call.getType(),true,
+ ((User) call.getCallReceiver()), call.getType(), true,
call.getSessionId());
}
@@ -631,57 +629,58 @@ public void onSuccess(Call call) {
public void onError(CometChatException e) {
audioCallAction.setClickable(true);
videoCallAction.setClickable(true);
- Log.e(TAG, "onError: "+e.getMessage());
+ Log.e(TAG, "onError: " + e.getMessage());
CometChatSnackBar.show(context,
rvChatListView,
- CometChatError.localized(e),CometChatSnackBar.ERROR);
+ CometChatError.localized(e), CometChatSnackBar.ERROR);
}
});
}
}
+
/**
* 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().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) {
- onGoingCallTxt.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
+ 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) {
+ onGoingCallTxt.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onGoingCallView.setVisibility(View.GONE);
+ if (CometChat.getActiveCall() != null)
+ CallUtils.joinOnGoingCall(context, CometChat.getActiveCall());
+ else {
+ Toast.makeText(context, getString(R.string.call_ended), Toast.LENGTH_LONG).show();
onGoingCallView.setVisibility(View.GONE);
- if (CometChat.getActiveCall()!=null)
- CallUtils.joinOnGoingCall(context,CometChat.getActiveCall());
- else {
- Toast.makeText(context,getString(R.string.call_ended),Toast.LENGTH_LONG).show();
- onGoingCallView.setVisibility(View.GONE);
- }
- }
- });
- }
- if(onGoingCallClose!=null) {
- onGoingCallClose.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- onGoingCallView.setVisibility(GONE);
}
- });
- }
- } else if (CometChat.getActiveCall()!=null){
- if (onGoingCallView!=null)
- onGoingCallView.setVisibility(GONE);
- Log.e(TAG, "checkOnGoingCall: "+CometChat.getActiveCall().toString());
+ }
+ });
}
+ if (onGoingCallClose != null) {
+ onGoingCallClose.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onGoingCallView.setVisibility(GONE);
+ }
+ });
+ }
+ } else if (CometChat.getActiveCall() != null) {
+ if (onGoingCallView != null)
+ onGoingCallView.setVisibility(GONE);
+ Log.e(TAG, "checkOnGoingCall: " + CometChat.getActiveCall().toString());
+ }
}
private void setComposeBoxListener() {
@@ -792,7 +791,7 @@ public void onSuccess(Boolean booleanVal) {
Toast.makeText(getContext(), "Emoji Support is not enabled",
Toast.LENGTH_LONG).show();
}
- } else {
+ } else {
if (isEdit) {
editMessage(baseMessage, message);
editMessageLayout.setVisibility(GONE);
@@ -816,17 +815,21 @@ public void onVoiceNoteComplete(String string) {
@Override
public void onLocationActionClicked() {
- if (Utils.hasPermissions(getContext(), Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION)) {
+ if (Utils.hasPermissions(getContext(), Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.ACCESS_COARSE_LOCATION)) {
initLocation();
// locationManager = (LocationManager) Objects.requireNonNull(getContext()).getSystemService(Context.LOCATION_SERVICE);
- boolean provider = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
- if (!provider) {
+ boolean gpsprovider = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
+ if (!gpsprovider) {
turnOnLocation();
} else {
getLocation();
}
} else {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, UIKitConstants.RequestCode.LOCATION);
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.R) {
+ checkBackgroundLocationPermissionAPI30(UIKitConstants.RequestCode.LOCATION);
+ }
}
}
@@ -844,9 +847,10 @@ public void OnResponseSuccess(Object var) {
JSONObject stickersJSON = (JSONObject) var;
stickersView.setData(Id, type, Extensions.extractStickersFromJSON(stickersJSON));
}
+
@Override
public void OnResponseFailed(CometChatException e) {
- CometChatSnackBar.show(context,stickersView, CometChatError.localized(e), CometChatSnackBar.ERROR);
+ CometChatSnackBar.show(context, stickersView, CometChatError.localized(e), CometChatSnackBar.ERROR);
}
});
}
@@ -856,12 +860,12 @@ public void onWhiteboardClicked() {
Extensions.callWhiteBoardExtension(Id, type, new ExtensionResponseListener() {
@Override
public void OnResponseSuccess(Object var) {
- JSONObject jsonObject = (JSONObject)var;
+ JSONObject jsonObject = (JSONObject) var;
}
@Override
public void OnResponseFailed(CometChatException e) {
- CometChatSnackBar.show(context,rvChatListView, CometChatError.localized(e), CometChatSnackBar.ERROR);
+ CometChatSnackBar.show(context, rvChatListView, CometChatError.localized(e), CometChatSnackBar.ERROR);
}
});
}
@@ -871,22 +875,44 @@ public void onWriteboardClicked() {
Extensions.callWriteBoardExtension(Id, type, new ExtensionResponseListener() {
@Override
public void OnResponseSuccess(Object var) {
- JSONObject jsonObject = (JSONObject)var;
+ JSONObject jsonObject = (JSONObject) var;
}
@Override
public void OnResponseFailed(CometChatException e) {
- CometChatSnackBar.show(context,rvChatListView, CometChatError.localized(e), CometChatSnackBar.ERROR);
+ CometChatSnackBar.show(context, rvChatListView, CometChatError.localized(e), CometChatSnackBar.ERROR);
}
});
}
});
}
+ @TargetApi(30)
+ private void checkBackgroundLocationPermissionAPI30(int backgroundLocationRequestCode) {
+ if (Utils.hasPermissions(context, Manifest.permission.ACCESS_BACKGROUND_LOCATION))
+ return;
+ AlertDialog alertDialog = new AlertDialog.Builder(context)
+ .setTitle(R.string.background_location_permission_title)
+ .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ requestPermissions(new String[]{
+ Manifest.permission.ACCESS_BACKGROUND_LOCATION}
+ , backgroundLocationRequestCode);
+ }
+ })
+ .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ }
+ }).create();
+ alertDialog.show();
+ }
private void createPollDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context, R.style.MyDialogTheme);
- View view = LayoutInflater.from(context).inflate(R.layout.add_polls_layout,null);
+ View view = LayoutInflater.from(context).inflate(R.layout.add_polls_layout, null);
alertDialog.setView(view);
Dialog dialog = alertDialog.create();
optionsArrayList.clear();
@@ -898,12 +924,12 @@ private void createPollDialog() {
MaterialCardView addOption = view.findViewById(R.id.add_options);
LinearLayout optionLayout = view.findViewById(R.id.options_layout);
MaterialButton addPoll = view.findViewById(R.id.add_poll);
- addPoll.setBackgroundColor(Color.parseColor(FeatureRestriction.getColor()));
+ addPoll.setBackgroundColor(Color.parseColor(UIKitSettings.getColor()));
ImageView cancelPoll = view.findViewById(R.id.close_poll);
addOption.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- View optionView = LayoutInflater.from(context).inflate(R.layout.polls_option,null);
+ View optionView = LayoutInflater.from(context).inflate(R.layout.polls_option, null);
optionsArrayList.add(optionView);
optionLayout.addView(optionView);
optionView.findViewById(R.id.delete_option).setOnClickListener(new View.OnClickListener() {
@@ -936,7 +962,7 @@ else if (option2Text.getText().toString().trim().isEmpty())
JSONArray optionJson = new JSONArray();
optionJson.put(option1Text.getText().toString());
optionJson.put(option2Text.getText().toString());
- for(View views : optionsArrayList) {
+ for (View views : optionsArrayList) {
EditText optionsText = views.findViewById(R.id.option_txt);
if (!optionsText.getText().toString().trim().isEmpty())
optionJson.put(optionsText.getText().toString());
@@ -958,17 +984,17 @@ public void onSuccess(JSONObject jsonObject) {
public void onError(CometChatException e) {
progressDialog.dismiss();
addPoll.setEnabled(true);
- Log.e(TAG, "onErrorCallExtension: "+e.getMessage());
- if (view!=null)
- CometChatSnackBar.show(context,view,
- CometChatError.Extension.localized(e,"polls")
+ Log.e(TAG, "onErrorCallExtension: " + e.getMessage());
+ if (view != null)
+ CometChatSnackBar.show(context, view,
+ CometChatError.Extension.localized(e, "polls")
, CometChatSnackBar.ERROR);
}
});
} catch (Exception e) {
addPoll.setEnabled(true);
- Log.e(TAG, "onErrorJSON: "+e.getMessage());
- Toast.makeText(context,e.getMessage(),Toast.LENGTH_LONG).show();
+ Log.e(TAG, "onErrorJSON: " + e.getMessage());
+ Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
@@ -985,27 +1011,39 @@ public void onClick(View v) {
private void getLocation() {
fusedLocationProviderClient.getLastLocation().addOnSuccessListener(new OnSuccessListener() {
- @Override
- public void onSuccess(Location location) {
- if (location != null)
- {
- double lon = location.getLongitude();
- double lat = location.getLatitude();
+ @Override
+ public void onSuccess(Location location_) {
+ if (location_ != null) {
+ double lon = location_.getLongitude();
+ double lat = location_.getLatitude();
+
+ JSONObject customData = new JSONObject();
+ try {
+ customData.put("latitude", lat);
+ customData.put("longitude", lon);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
- JSONObject customData = new JSONObject();
- try {
- customData.put("latitude", lat);
- customData.put("longitude", lon);
- } catch (JSONException e) {
- e.printStackTrace();
- }
+ initAlert(customData);
+ } else if(location!=null) {
+ double lon = location.getLongitude();
+ double lat = location.getLatitude();
+
+ JSONObject customData = new JSONObject();
+ try {
+ customData.put("latitude", lat);
+ customData.put("longitude", lon);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
- initAlert(customData);
- } else {
- Toast.makeText(context,getString(R.string.unable_to_get_location),Toast.LENGTH_LONG).show();
+ initAlert(customData);
+ } else {
+ Toast.makeText(context, getString(R.string.unable_to_get_location), Toast.LENGTH_LONG).show();
+ }
}
- }
- });
+ });
}
private void initAlert(JSONObject customData) {
@@ -1025,6 +1063,7 @@ private void initAlert(JSONObject customData) {
UIKitConstants.MapUrl.MAP_ACCESS_KEY;
Glide.with(this)
.load(mapUrl)
+ .placeholder(R.drawable.default_map)
.into(mapView);
builder.setPositiveButton(getString(R.string.share), new DialogInterface.OnClickListener() {
@@ -1055,25 +1094,31 @@ private void sendCustomMessage(String customType, JSONObject customData) {
else
customMessage = new CustomMessage(Id, CometChatConstants.RECEIVER_TYPE_GROUP, customType, customData);
- if (customType.equalsIgnoreCase(UIKitConstants.IntentStrings.LOCATION)) {
- try {
- JSONObject jsonObject = customMessage.getMetadata();
- if (jsonObject==null) {
- jsonObject = new JSONObject();
- jsonObject.put("incrementUnreadCount", true);
- } else {
- jsonObject.accumulate("incrementUnreadCount", true);
- }
- customMessage.setMetadata(jsonObject);
- } catch(Exception e) {
- Toast.makeText(context,e.getMessage(),Toast.LENGTH_LONG).show();
+ String pushNotificationMessage="";
+ if (customType.equalsIgnoreCase(UIKitConstants.IntentStrings.LOCATION))
+ pushNotificationMessage = getString(R.string.shared_location);
+ else if (customType.equalsIgnoreCase(UIKitConstants.IntentStrings.STICKERS))
+ pushNotificationMessage = getString(R.string.shared_a_sticker);
+ try {
+ JSONObject jsonObject = customMessage.getMetadata();
+ if (jsonObject==null) {
+ jsonObject = new JSONObject();
+ jsonObject.put("incrementUnreadCount", true);
+ jsonObject.put("pushNotification",pushNotificationMessage);
+ } else {
+ jsonObject.accumulate("incrementUnreadCount", true);
}
+ customMessage.setMetadata(jsonObject);
+ } catch(Exception e) {
+ Toast.makeText(context,e.getMessage(),Toast.LENGTH_LONG).show();
}
+
CometChat.sendCustomMessage(customMessage, new CometChat.CallbackListener() {
@Override
public void onSuccess(CustomMessage customMessage) {
Log.e(TAG, "onSuccessCustomMesage: "+customMessage.toString());
if (customType.equalsIgnoreCase(UIKitConstants.IntentStrings.GROUP_CALL)) {
+ rvSmartReply.setVisibility(GONE);
if (CometChat.getActiveCall() == null)
CallUtils.startDirectCall(context, Utils.getDirectCallData(customMessage));
}
@@ -1115,7 +1160,9 @@ private void initLocation() {
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(getActivity());
locationListener = new LocationListener() {
@Override
- public void onLocationChanged(Location location) {}
+ public void onLocationChanged(Location l) {
+ location = l;
+ }
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
@@ -1128,8 +1175,7 @@ public void onProviderDisabled(String provider) {}
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME, MIN_DIST, locationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DIST, locationListener);
}
- catch (Exception e)
- {
+ catch (Exception e) {
e.printStackTrace();
}
}
@@ -1543,6 +1589,7 @@ public void onSuccess(MediaMessage mediaMessage) {
Log.d(TAG, "sendMediaMessage onSuccess: " + mediaMessage.toString());
if (messageAdapter != null) {
messageAdapter.updateChangedMessage(mediaMessage);
+ rvSmartReply.setVisibility(GONE);
}
}
@@ -1800,58 +1847,44 @@ private void replyMessage(BaseMessage baseMessage, String message) {
else
textMessage = new TextMessage(Id, message, CometChatConstants.RECEIVER_TYPE_GROUP);
JSONObject replyObject = new JSONObject();
- replyObject.put("type", "reply");
- if (baseMessage.getCategory().equals(CometChatConstants.CATEGORY_MESSAGE)) {
- if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_TEXT)) {
-// replyObject.put("type", CometChatConstants.MESSAGE_TYPE_TEXT);
- replyObject.put("message", ((TextMessage) baseMessage).getText());
- } else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) {
-// replyObject.put("type", CometChatConstants.MESSAGE_TYPE_IMAGE);
- replyObject.put("message", getString(R.string.shared_a_image));
- } else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) {
-// replyObject.put("type", CometChatConstants.MESSAGE_TYPE_VIDEO);
- replyObject.put("message", getString(R.string.shared_a_video));
- } else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_FILE)) {
-// replyObject.put("type", CometChatConstants.MESSAGE_TYPE_FILE);
- replyObject.put("message",getString(R.string.shared_a_file));
- } else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) {
-// replyObject.put("type", CometChatConstants.MESSAGE_TYPE_AUDIO);
- replyObject.put("message", getString(R.string.shared_a_audio));
- }
- } else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.LOCATION)) {
-// replyObject.put("type", UIKitConstants.IntentStrings.LOCATION);
- replyObject.put("message",getString(R.string.custom_message_location));
- } else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.POLLS)) {
-// replyObject.put("type", UIKitConstants.IntentStrings.POLLS);
- replyObject.put("message",getString(R.string.custom_message_poll));
- } else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.STICKERS)) {
-// replyObject.put("type", UIKitConstants.IntentStrings.STICKERS);
- replyObject.put("message",getString(R.string.custom_message_sticker));
- } else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.WHITEBOARD)) {
-// replyObject.put("type", UIKitConstants.IntentStrings.WHITEBOARD);
- replyObject.put("message",getString(R.string.custom_message_whiteboard));
- } else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.WRITEBOARD)) {
-// replyObject.put("type", UIKitConstants.IntentStrings.WRITEBOARD);
- replyObject.put("message",getString(R.string.custom_message_document));
- }
- replyObject.put("name",baseMessage.getSender().getName());
- replyObject.put("avatar",baseMessage.getSender().getAvatar());
-// jsonObject.put("reply",replyObject);
+ replyObject.put("reply-message", baseMessage.getRawMessage());
textMessage.setMetadata(replyObject);
sendTypingIndicator(true);
+ textMessage.setCategory(CometChatConstants.CATEGORY_MESSAGE);
+ textMessage.setSender(loggedInUser);
+ textMessage.setMuid(System.currentTimeMillis()+"");
+ if (messageAdapter != null) {
+ MediaUtils.playSendSound(context, R.raw.outgoing_message);
+ messageAdapter.addMessage(textMessage);
+ scrollToBottom();
+ }
+ isSmartReplyClicked=false;
+ rvSmartReply.setVisibility(GONE);
CometChat.sendMessage(textMessage, new CometChat.CallbackListener() {
@Override
public void onSuccess(TextMessage textMessage) {
if (messageAdapter != null) {
MediaUtils.playSendSound(context, R.raw.outgoing_message);
- messageAdapter.addMessage(textMessage);
+ messageAdapter.updateChangedMessage(textMessage);
scrollToBottom();
}
}
@Override
public void onError(CometChatException e) {
- Log.e(TAG, "onError: "+e.getMessage());
+ if (e.getCode().equalsIgnoreCase("ERROR_INTERNET_UNAVAILABLE")) {
+ CometChatSnackBar.show(context, rvChatListView,
+ getString(R.string.no_internet_available), CometChatSnackBar.ERROR);
+ } else if (!e.getCode().equalsIgnoreCase("ERR_BLOCKED_BY_EXTENSION")) {
+ if (messageAdapter == null) {
+ Log.e(TAG, "onError: MessageAdapter is null");
+ } else {
+ textMessage.setSentAt(-1);
+ messageAdapter.updateChangedMessage(textMessage);
+ }
+ } else if (messageAdapter != null) {
+ messageAdapter.remove(textMessage);
+ }
}
});
}catch (Exception e) {
@@ -1952,7 +1985,7 @@ public void onUserOnline(User user) {
Log.d(TAG, "onUserOnline: " + user.toString());
if (user.getUid().equals(Id)) {
status = CometChatConstants.USER_STATUS_ONLINE;
- tvStatus.setText(user.getStatus());
+ tvStatus.setText(getString(R.string.online));
tvStatus.setTextColor(getResources().getColor(R.color.colorPrimary));
}
}
@@ -1965,7 +1998,7 @@ public void onUserOffline(User user) {
tvStatus.setTextColor(getResources().getColor(R.color.textColorWhite));
else
tvStatus.setTextColor(getResources().getColor(android.R.color.black));
- tvStatus.setText(user.getStatus());
+ tvStatus.setText(getString(R.string.offline));
status = CometChatConstants.USER_STATUS_OFFLINE;
}
}
@@ -1980,11 +2013,8 @@ public void onUserOffline(User user) {
* @param baseMessage is object of BaseMessage.class. It is message which is been marked as read.
*/
private void markMessageAsRead(BaseMessage baseMessage) {
- CometChat.markAsRead(baseMessage); //Used for v3
-// if (type.equals(CometChatConstants.RECEIVER_TYPE_USER))
-// CometChat.markAsRead(baseMessage.getId(), baseMessage.getSender().getUid(), baseMessage.getReceiverType());
-// else
-// CometChat.markAsRead(baseMessage.getId(), baseMessage.getReceiverUid(), baseMessage.getReceiverType());
+ CometChat.markAsDelivered(baseMessage);
+ CometChat.markAsRead(baseMessage);
}
@@ -2056,6 +2086,12 @@ public void onMessageDeleted(BaseMessage message) {
updateMessage(message);
}
}
+ @Override
+ public void onTransientMessageReceived(TransientMessage transientMessage) {
+ if (transientMessage.getData()!=null) {
+ setLiveReaction();
+ }
+ }
});
}
@@ -2135,6 +2171,10 @@ private void setMessage(BaseMessage message) {
messageList.add(message);
initMessageAdapter(messageList);
}
+ } else {
+ if (messageAdapter!=null) {
+ messageAdapter.updateReplyCount(message.getParentMessageId());
+ }
}
}
@@ -2142,9 +2182,9 @@ private void showNewMessage(int messageCount) {
rvSmartReply.setVisibility(GONE);
newMessageLayout.setVisibility(View.VISIBLE);
if (messageCount==1)
- newMessageLayoutText.setText(messageCount+" New Message");
+ newMessageLayoutText.setText(messageCount+getString(R.string.new_message));
else
- newMessageLayoutText.setText(messageCount+" New Messages");
+ newMessageLayoutText.setText(messageCount+getString(R.string.new_messages));
newMessageLayout.setOnClickListener(v-> {
newMessageCount = 0;
scrollToBottom();
@@ -2178,8 +2218,7 @@ public void onSuccess(Boolean booleanVal) {
}
});
}
- else
- setLiveReaction();
+
} else {
if (typingIndicator.getMetadata() == null) {
FeatureRestriction.isTypingIndicatorsEnabled(new FeatureRestriction.OnSuccessListener() {
@@ -2190,44 +2229,14 @@ public void onSuccess(Boolean booleanVal) {
}
});
}
- else
- setLiveReaction();
}
} else {
if (typingIndicator.getReceiverType().equals(CometChatConstants.RECEIVER_TYPE_USER)) {
if (typingIndicator.getMetadata() == null)
tvStatus.setText(status);
- else {
- ObjectAnimator animator = ObjectAnimator.ofFloat(container,"alpha",0.2f);
- animator.setDuration(700);
- animator.start();
- animator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- if (imageView!=null)
- imageView.clearAnimation();
- container.removeAllViews();
- }
- });
- }
} else{
if (typingIndicator.getMetadata() == null)
tvStatus.setText(memberNames);
- else {
- ObjectAnimator animator = ObjectAnimator.ofFloat(container,"alpha",0.2f);
- animator.setDuration(700);
- animator.start();
- animator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- if (imageView!=null)
- imageView.clearAnimation();
- container.removeAllViews();
- }
- });
- }
}
}
@@ -2908,7 +2917,7 @@ public void onSuccess(Boolean booleanVal) {
copyVisible = false;
editVisible = false;
shareVisible = false;
- replyVisible = false;
+ replyVisible = true;
translateVisible = false;
threadVisible = false;
BaseMessage basemessage = meetingMessageList.get(0);
@@ -2954,7 +2963,9 @@ public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReceiverType().equalsIgnoreCase(CometChatConstants.RECEIVER_TYPE_GROUP) &&
!baseMessage.getSender().getUid().equalsIgnoreCase(loggedInUser.getUid())) {
bundle.putBoolean("privateReplyVisible", replyPrivately);
+ bundle.putBoolean("replyPrivatelyVisible",replyVisible);
}
+
if(CometChat.isExtensionEnabled("reactions")) {
bundle.putBoolean("isReactionVisible", true);
} else {
@@ -2980,6 +2991,24 @@ public void onSuccess(Boolean booleanVal) {
}
}
messageActionFragment.setMessageActionListener(new CometChatMessageActions.MessageActionListener() {
+ @Override
+ public void onReplyMessagePrivately() {
+ if (baseMessage!=null) {
+ User user = baseMessage.getSender();
+ Intent intent = new Intent(context, CometChatMessageListActivity.class);
+ intent.putExtra(UIKitConstants.IntentStrings.UID, user.getUid());
+ intent.putExtra(UIKitConstants.IntentStrings.AVATAR, user.getAvatar());
+ intent.putExtra(UIKitConstants.IntentStrings.STATUS, user.getStatus());
+ intent.putExtra(UIKitConstants.IntentStrings.LINK,user.getLink());
+ intent.putExtra(UIKitConstants.IntentStrings.NAME, user.getName());
+ intent.putExtra(UIKitConstants.IntentStrings.TYPE, CometChatConstants.RECEIVER_TYPE_USER);
+ intent.putExtra(UIKitConstants.IntentStrings.MESSAGE,baseMessage.getRawMessage().toString());
+ startActivity(intent);
+ if (getActivity()!=null)
+ getActivity().finish();
+ }
+ }
+
@Override
public void onPrivateReplyToUser() {
if (baseMessage!=null) {
@@ -3215,16 +3244,29 @@ private void replyMessage() {
replyMessage.setCompoundDrawablesWithIntrinsicBounds(0,0,0,0);
replyMedia.setVisibility(View.VISIBLE);
if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_TEXT)) {
- replyMessage.setText(((TextMessage) baseMessage).getText());
+// boolean isSentimentNegative = Extensions.checkSentiment(baseMessage);
+// if (isSentimentNegative) {
+// replyMessage.setBackgroundColor(getResources().getColor(R.color.red));
+// replyMessage.setText(getString(R.string.sentiment_content));
+// }
+// else {
+// replyMessage.setBackgroundColor(getResources().getColor(android.R.color.transparent));
+ replyMessage.setText(((TextMessage) baseMessage).getText());
+// }
replyMedia.setVisibility(GONE);
} else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) {
replyMessage.setText(getResources().getString(R.string.shared_a_image));
- Glide.with(context).load(((MediaMessage) baseMessage).getAttachment().getFileUrl()).into(replyMedia);
+// boolean isImageSafe = Extensions.getImageModeration(context,baseMessage);
+// if (isImageSafe)
+ Glide.with(context).load(((MediaMessage) baseMessage).getAttachment().getFileUrl()).into(replyMedia);
+// else {
+// replyMedia.setImageResource(R.drawable.ic_privacy);
+// }
} else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) {
String messageStr = String.format(getResources().getString(R.string.shared_a_audio),
Utils.getFileSize(((MediaMessage) baseMessage).getAttachment().getFileSize()));
replyMessage.setText(messageStr);
- replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_library_music_24dp, 0, 0, 0);
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_audio, 0, 0, 0);
} else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) {
replyMessage.setText(getResources().getString(R.string.shared_a_video));
Glide.with(context).load(((MediaMessage) baseMessage).getAttachment().getFileUrl()).into(replyMedia);
@@ -3232,7 +3274,7 @@ private void replyMessage() {
String messageStr = String.format(getResources().getString(R.string.shared_a_file),
Utils.getFileSize(((MediaMessage) baseMessage).getAttachment().getFileSize()));
replyMessage.setText(messageStr);
- replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_insert_drive_file_black_24dp, 0, 0, 0);
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_file_upload, 0, 0, 0);
} else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.LOCATION)) {
try {
JSONObject jsonObject = ((CustomMessage) baseMessage).getCustomData();
@@ -3260,12 +3302,15 @@ private void replyMessage() {
}
} else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.WHITEBOARD)) {
replyMessage.setText(getString(R.string.shared_a_whiteboard));
- replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_whiteboard_24dp, 0, 0, 0);
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_collaborative_whiteboard, 0, 0, 0);
} else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.WRITEBOARD)) {
replyMessage.setText(getString(R.string.shared_a_writeboard));
- replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_writeboard_24dp, 0, 0, 0);
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_collaborative_document, 0, 0, 0);
+ } else if (baseMessage.getType().equals(UIKitConstants.IntentStrings.GROUP_CALL)) {
+ replyMessage.setText(getString(R.string.has_shared_group_call));
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_video_call_selected,0,0,0);
}
composeBox.ivMic.setVisibility(GONE);
composeBox.ivSend.setVisibility(View.VISIBLE);
@@ -3282,20 +3327,43 @@ private void sendLiveReaction() {
try {
JSONObject metaData = new JSONObject();
metaData.put("reaction", "heart");
- TypingIndicator typingIndicator = new TypingIndicator(Id, type, metaData);
- CometChat.startTyping(typingIndicator);
+ metaData.put("type","live_reaction");
+ TransientMessage transientMessage = new TransientMessage(Id, type, metaData);
+ CometChat.sendTransientMessage(transientMessage);
setLiveReaction();
} catch (Exception e) {
Log.e(TAG, "sendLiveReaction: "+e.getMessage());
}
}
+ private void stopLiveReaction() {
+ ObjectAnimator animator = ObjectAnimator.ofFloat(container,"alpha",0.2f);
+ animator.setDuration(700);
+ animator.start();
+ animator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ if (imageView!=null)
+ imageView.clearAnimation();
+ container.removeAllViews();
+ isLiveReactionEnded = true;
+ }
+ });
+ }
private void setLiveReaction() {
container.setAlpha(1.0f);
- flyEmoji(R.drawable.heart_reaction);
+ isLiveReactionEnded = false;
+ animateLiveReaction(R.drawable.heart_reaction);
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ stopLiveReaction();
+ }
+ },1500);
}
- private void flyEmoji(final int resId) {
+ private void animateLiveReaction(final int resId) {
imageView = new ImageView(getContext());
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
@@ -3359,13 +3427,13 @@ public void onSuccess(Boolean booleanVal) {
});
}
- if (FeatureRestriction.getColor()!=null) {
+ if (UIKitSettings.getColor()!=null) {
audioCallAction.setImageTintList(ColorStateList.valueOf(
- Color.parseColor(FeatureRestriction.getColor())));
+ Color.parseColor(UIKitSettings.getColor())));
videoCallAction.setImageTintList(ColorStateList.valueOf(
- Color.parseColor(FeatureRestriction.getColor())));
+ Color.parseColor(UIKitSettings.getColor())));
infoAction.setImageTintList(ColorStateList.valueOf(
- Color.parseColor(FeatureRestriction.getColor())));
+ Color.parseColor(UIKitSettings.getColor())));
}
FeatureRestriction.isShareCopyForwardMessageEnabled(new FeatureRestriction.OnSuccessListener() {
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageListActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageListActivity.java
index 1c776b3..9eabd90 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageListActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/CometChatMessageListActivity.java
@@ -88,6 +88,12 @@ protected void onCreate(Bundle savedInstanceState) {
bundle.putString(UIKitConstants.IntentStrings.GROUP_DESC,getIntent().getStringExtra(UIKitConstants.IntentStrings.GROUP_DESC));
bundle.putString(UIKitConstants.IntentStrings.GROUP_PASSWORD,getIntent().getStringExtra(UIKitConstants.IntentStrings.GROUP_PASSWORD));
}
+
+ if (getIntent().hasExtra(UIKitConstants.IntentStrings.MESSAGE)) {
+ bundle.putString(UIKitConstants.IntentStrings.MESSAGE,
+ getIntent().getStringExtra(UIKitConstants.IntentStrings.MESSAGE));
+ }
+
fragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().replace(R.id.chat_fragment, fragment).commit();
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/MessageAdapter.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/MessageAdapter.java
index 588bed6..5a2d89b 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/MessageAdapter.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/message_list/MessageAdapter.java
@@ -29,6 +29,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
+import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.emoji.text.EmojiCompat;
import androidx.emoji.text.EmojiSpan;
import androidx.recyclerview.widget.RecyclerView;
@@ -41,9 +42,11 @@
import com.cometchat.pro.core.Call;
import com.cometchat.pro.core.CometChat;
import com.cometchat.pro.exceptions.CometChatException;
+import com.cometchat.pro.helpers.CometChatHelper;
import com.cometchat.pro.models.Action;
import com.cometchat.pro.models.Attachment;
import com.cometchat.pro.models.CustomMessage;
+import com.cometchat.pro.models.Group;
import com.cometchat.pro.uikit.R;
import com.cometchat.pro.uikit.ui_components.messages.extensions.Extensions;
@@ -56,7 +59,9 @@
import com.cometchat.pro.uikit.ui_resources.utils.pattern_utils.PatternUtils;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.google.android.material.button.MaterialButton;
+import com.google.android.material.card.MaterialCardView;
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
@@ -580,7 +585,7 @@ private void setPollsData(PollMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -622,7 +627,7 @@ public void onSuccess(Boolean booleanVal) {
context.startActivity(intent);
});
viewHolder.optionGroup.removeAllViews();
- viewHolder.totalCount.setText("0 Votes");
+ viewHolder.totalCount.setText("0"+context.getString(R.string.votes));
ArrayList optionList = new ArrayList<>();
try {
JSONObject jsonObject = ((CustomMessage) baseMessage).getCustomData();
@@ -630,13 +635,20 @@ public void onSuccess(Boolean booleanVal) {
ArrayList voterInfo = Extensions.getVoterInfo(baseMessage,options.length());
viewHolder.tvQuestion.setText(jsonObject.getString("question"));
for (int k = 0; k < options.length(); k++) {
- viewHolder.totalCount.setText(Extensions.getVoteCount(baseMessage)+" Votes");
- LinearLayout linearLayout = new LinearLayout(context);
+ int voteCount = Extensions.getVoteCount(baseMessage);
+ if (voteCount==1) {
+ viewHolder.totalCount.setText(voteCount +
+ context.getString(R.string.vote));
+ } else {
+ viewHolder.totalCount.setText(voteCount +
+ context.getString(R.string.votes));
+ }
+ LinearLayout linearLayout = new LinearLayout(context);
LinearLayout.LayoutParams layoutParams = new LinearLayout
.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.setPadding(8,8,8,8);
- linearLayout.setBackgroundColor(Color.parseColor(FeatureRestriction.getColor()));
+ linearLayout.setBackgroundColor(Color.parseColor(UIKitSettings.getColor()));
linearLayout.setBackgroundTintList(ColorStateList.valueOf(context.getResources()
.getColor(R.color.textColorWhite)));
layoutParams.bottomMargin = (int) Utils.dpToPx(context, 8);
@@ -653,7 +665,6 @@ public void onSuccess(Boolean booleanVal) {
textViewOption.setTextColor(context.getResources().getColor(R.color.primaryTextColor));
String optionStr = options.getString(String.valueOf(k + 1));
textViewOption.setText(optionStr);
- int voteCount = Extensions.getVoteCount(baseMessage);
if (voteCount>0) {
int percentage = Math.round((Integer.parseInt(voterInfo.get(k)) * 100) /
voteCount);
@@ -689,7 +700,7 @@ public void onClick(View v) {
public void onSuccess(JSONObject jsonObject) {
// Voted successfully
viewHolder.loadingProgress.setVisibility(View.VISIBLE);
- viewHolder.totalCount.setText("0 Votes");
+ viewHolder.totalCount.setText("0"+context.getString(R.string.votes));
Log.e(TAG, "onSuccess: " + jsonObject.toString());
Toast.makeText(context, context.getString(R.string.voted_success), Toast.LENGTH_LONG).show();
}
@@ -794,7 +805,7 @@ public void onClick(DialogInterface dialog, int which) {
if (baseMessage.getReplyCount()!=0) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -837,7 +848,7 @@ public void onClick(DialogInterface dialog, int which) {
} else {
setSelectedMessage(baseMessage.getId());
}
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
});
@@ -850,7 +861,7 @@ public boolean onLongClick(View view) {
isLongClickEnabled = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -896,7 +907,7 @@ public void onClick(View v) {
if (baseMessage.getReplyCount()!=0) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -939,7 +950,7 @@ public void onClick(View v) {
} else {
setSelectedMessage(baseMessage.getId());
}
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
});
@@ -952,7 +963,7 @@ public boolean onLongClick(View view) {
isLongClickEnabled = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1001,7 +1012,7 @@ public void onClick(View v) {
if (baseMessage.getReplyCount()!=0) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1044,7 +1055,7 @@ public void onClick(View v) {
} else {
setSelectedMessage(baseMessage.getId());
}
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
});
@@ -1057,7 +1068,7 @@ public boolean onLongClick(View view) {
isLongClickEnabled = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1099,7 +1110,7 @@ private void setLocationData(LocationMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1147,6 +1158,7 @@ public void onSuccess(Boolean booleanVal) {
Glide.with(context)
.load(mapUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
+ .placeholder(R.drawable.default_map)
.into(viewHolder.ivMap);
} catch (JSONException e) {
e.printStackTrace();
@@ -1154,7 +1166,7 @@ public void onSuccess(Boolean booleanVal) {
viewHolder.senderTxt.setText(String.format(context.getString(R.string.shared_location),baseMessage.getSender().getName()));
- viewHolder.navigateBtn.setOnClickListener(new View.OnClickListener() {
+ viewHolder.ivMap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
@@ -1193,7 +1205,7 @@ public void onClick(View v) {
else {
setSelectedMessage(baseMessage.getId());
}
- notifyDataSetChanged();
+ notifyItemChanged(i);
});
viewHolder.rlMessageBubble.setOnLongClickListener(new View.OnLongClickListener() {
@Override
@@ -1203,7 +1215,7 @@ public boolean onLongClick(View view) {
isLocationMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1242,7 +1254,7 @@ private void setAudioData(AudioMessageViewHolder viewHolder, int i) {
viewHolder.tvUser.setText(baseMessage.getSender().getName());
}
} else {
- viewHolder.playBtn.setImageTintList(ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ viewHolder.playBtn.setImageTintList(ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
}
FeatureRestriction.isThreadedMessagesEnabled(new FeatureRestriction.OnSuccessListener() {
@@ -1250,7 +1262,7 @@ private void setAudioData(AudioMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1321,7 +1333,7 @@ public boolean onLongClick(View v) {
isImageMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1383,7 +1395,7 @@ private void setFileData(FileMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1435,7 +1447,7 @@ public void onSuccess(Boolean booleanVal) {
MediaUtils.openFile(((MediaMessage) baseMessage).getAttachment().getFileUrl(),context);
setSelectedMessage(baseMessage.getId());
// }
- notifyDataSetChanged();
+ notifyItemChanged(i);
});
viewHolder.rlMessageBubble.setOnLongClickListener(new View.OnLongClickListener() {
@Override
@@ -1444,7 +1456,7 @@ public boolean onLongClick(View v) {
isImageMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1518,7 +1530,7 @@ private void setImageData(ImageMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1603,7 +1615,7 @@ public boolean onLongClick(View v) {
isImageMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1687,7 +1699,7 @@ private void setStickerData(StickerMessageViewHolder viewHolder, int i) {
viewHolder.stickerView.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_defaulf_image));
try {
- Glide.with(context).load(((CustomMessage)baseMessage).getCustomData().getString("url")).into(viewHolder.stickerView);
+ Glide.with(context).load(((CustomMessage)baseMessage).getCustomData().getString("sticker_url")).into(viewHolder.stickerView);
} catch (JSONException e) {
e.printStackTrace();
}
@@ -1697,7 +1709,7 @@ private void setStickerData(StickerMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1751,7 +1763,7 @@ public boolean onLongClick(View v) {
isImageMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -1792,7 +1804,7 @@ private void setVideoData(VideoMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -1849,7 +1861,7 @@ public boolean onLongClick(View v) {
isImageMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -2068,15 +2080,15 @@ public void onSuccess(Boolean booleanVal) {
progressBar.setVisibility(View.GONE);
if (baseMessage.getReadAt() != 0) {
txtTime.setText(Utils.getHeaderDate(baseMessage.getReadAt() * 1000));
- txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_double_tick, 0);
+ txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_message_read, 0);
txtTime.setCompoundDrawablePadding(10);
} else if (baseMessage.getDeliveredAt() != 0) {
txtTime.setText(Utils.getHeaderDate(baseMessage.getDeliveredAt() * 1000));
- txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_done_all_black_24dp, 0);
+ txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_message_delivered, 0);
txtTime.setCompoundDrawablePadding(10);
} else if (baseMessage.getSentAt()>0){
txtTime.setText(Utils.getHeaderDate(baseMessage.getSentAt() * 1000));
- txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_check_black_24dp, 0);
+ txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_message_sent, 0);
txtTime.setCompoundDrawablePadding(10);
} else if (baseMessage.getSentAt()==-1) {
txtTime.setText("");
@@ -2165,72 +2177,86 @@ public void onClick(DialogInterface dialog, int which) {
if (baseMessage.getMetadata()!=null) {
try {
JSONObject metaData = baseMessage.getMetadata();
- String messageType = metaData.getString("type");
- String message = metaData.getString("message");
- viewHolder.replyLayout.setVisibility(View.VISIBLE);
- viewHolder.replyMessage.setText(message);
- if (metaData.has("name")) {
+ if (metaData.has("reply-message")) {
+ JSONObject replyMessageJSON = metaData.getJSONObject("reply-message");
+ BaseMessage replyMessage = CometChatHelper.processMessage(replyMessageJSON);
+ String messageType = replyMessage.getType();
+ viewHolder.replyLayout.setVisibility(View.VISIBLE);
viewHolder.replyUser.setVisibility(View.VISIBLE);
- viewHolder.replyUser.setText(metaData.getString("name"));
+ if (replyMessage.getReceiverType().equals(CometChatConstants.RECEIVER_TYPE_USER))
+ viewHolder.replyUser.setText(replyMessage.getSender().getName());
+ else
+ viewHolder.replyUser.setText(replyMessage.getSender().getName()+
+ " ~ "+((Group)replyMessage.getReceiver()).getName());
+ if (messageType.equals(CometChatConstants.MESSAGE_TYPE_TEXT)) {
+ String message = ((TextMessage)replyMessage).getText();
+ if(CometChat.isExtensionEnabled("profanity-filter")) {
+ message = Extensions.checkProfanityMessage(context,replyMessage);
+ }
+ if(CometChat.isExtensionEnabled("data-masking")) {
+ message = Extensions.checkDataMasking(context,replyMessage);
+ }
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(message);
+ } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) {
+ viewHolder.replyMessage.setText(context.getResources().getString(R.string.message_image));
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(context.getResources()
+ .getString(R.string.message_audio));
+ } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(context.getResources().getString(R.string.message_video));
+ } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_FILE)) {
+ viewHolder.replyMessage.setText(context.getResources().getString(R.string.message_file));
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ } else if (messageType.equals(UIKitConstants.IntentStrings.LOCATION)) {
+ viewHolder.replyMessage.setText(R.string.custom_message_location);
+ viewHolder.replyMessageImage.setImageResource(R.drawable.default_map);
+ } else if (messageType.equals(UIKitConstants.IntentStrings.POLLS)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(context.getString(R.string.custom_message_poll));
+ } else if (messageType.equals(UIKitConstants.IntentStrings.STICKERS)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(String.format(context.getString(R.string.custom_message_sticker)));
+ } else if (messageType.equals(UIKitConstants.IntentStrings.WHITEBOARD)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(context.getString(R.string.custom_message_whiteboard));
+ } else if (messageType.equals(UIKitConstants.IntentStrings.WRITEBOARD)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(context.getString(R.string.custom_message_document));
+ } else if (messageType.equals(UIKitConstants.IntentStrings.GROUP_CALL)) {
+ viewHolder.replyMessageImage.setVisibility(View.GONE);
+ viewHolder.replyMessage.setText(context.getString(R.string.custom_message_meeting));
+ }
+ viewHolder.rlMessageBubble.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View view) {
+ if (!isImageMessageClick) {
+ isLongClickEnabled = true;
+ isTextMessageClick = true;
+ setLongClickSelectedItem(baseMessage);
+ messageLongClick.setLongMessageClick(longselectedItemList);
+ notifyItemChanged(i);
+ }
+ return true;
+ }
+ });
} else {
- viewHolder.replyUser.setVisibility(View.GONE);
+ viewHolder.replyLayout.setVisibility(View.GONE);
}
- }catch (Exception e) {
- Log.e(TAG, "setTextData: "+e.getMessage());
+ } catch(Exception e){
+ Log.e(TAG, "setTextData: " + e.getMessage());
}
}
-// if (messageType.equals(CometChatConstants.MESSAGE_TYPE_TEXT)) {
-// } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_IMAGE)) {
-// viewHolder.replyMessage.setText(context.getResources().getString(R.string.shared_a_image));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_photo,0,0,0);
-// } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_AUDIO)) {
-// viewHolder.replyMessage.setText(String.format(context.getResources().getString(R.string.shared_a_audio),""));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_library_music_24dp,0,0,0);
-// } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) {
-// viewHolder.replyMessage.setText(context.getResources().getString(R.string.shared_a_video));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_videocam_24dp,0,0,0);
-// } else if (messageType.equals(CometChatConstants.MESSAGE_TYPE_FILE)) {
-// viewHolder.replyMessage.setText(String.format(context.getResources().getString(R.string.shared_a_file),""));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_insert_drive_file_black_24dp,0,0,0);
-// } else if (messageType.equals(UIKitConstants.IntentStrings.LOCATION)) {
-// viewHolder.replyMessage.setText(String.format(context
-// .getString(R.string.shared_location),"").trim());
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_near_me_24dp,0,0,0);
-// } else if (messageType.equals(UIKitConstants.IntentStrings.POLLS)) {
-// viewHolder.replyMessage.setText(String.format(context.getString(R.string.shared_a_polls),message));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_poll_24dp,0,0,0);
-// } else if (messageType.equals(UIKitConstants.IntentStrings.STICKERS)) {
-// viewHolder.replyMessage.setText(String.format(context.getString(R.string.shared_a_sticker)));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.default_sticker,0,0,0);
-// } else if (messageType.equals(UIKitConstants.IntentStrings.WHITEBOARD)) {
-// viewHolder.replyMessage.setText(context.getString(R.string.shared_a_whiteboard));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_whiteboard_24dp,0,0,0);
-// } else if (messageType.equals(UIKitConstants.IntentStrings.WRITEBOARD)) {
-// viewHolder.replyMessage.setText(context.getString(R.string.shared_a_writeboard));
-// viewHolder.replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_writeboard_24dp,0,0,0);
-// }
- viewHolder.rlMessageBubble.setOnLongClickListener(new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View view) {
- if (!isImageMessageClick) {
- isLongClickEnabled = true;
- isTextMessageClick = true;
- setLongClickSelectedItem(baseMessage);
- messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
- }
- return true;
- }
- });
-
-
FeatureRestriction.isThreadedMessagesEnabled(new FeatureRestriction.OnSuccessListener() {
@Override
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -2323,7 +2349,7 @@ public boolean onLongClick(View view) {
isTextMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -2387,7 +2413,7 @@ private void setReactionSupport(BaseMessage baseMessage, ChipGroup reactionLayou
Chip chip = new Chip(context);
chip.setChipStrokeWidth(2f);
chip.setChipBackgroundColor(ColorStateList.valueOf(context.getResources().getColor(android.R.color.transparent)));
- chip.setChipStrokeColor(ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ chip.setChipStrokeColor(ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
chip.setText(str + " " + reactionOnMessage.get(str));
reactionLayout.addView(chip);
chip.setOnLongClickListener(new View.OnLongClickListener() {
@@ -2485,12 +2511,12 @@ private void setColorFilter(BaseMessage baseMessage,View view){
{
if (baseMessage.getSender().equals(CometChat.getLoggedInUser())) {
if (view instanceof CardView) {
- ((CardView)view).setCardBackgroundColor(Color.parseColor(FeatureRestriction.getColor()));
+ ((CardView)view).setCardBackgroundColor(Color.parseColor(UIKitSettings.getColor()));
} else {
if (Build.VERSION.SDK_INT >= 29) {
- view.getBackground().setColorFilter(new PorterDuffColorFilter(Color.parseColor(FeatureRestriction.getColor()), PorterDuff.Mode.SRC_ATOP));
+ view.getBackground().setColorFilter(new PorterDuffColorFilter(Color.parseColor(UIKitSettings.getColor()), PorterDuff.Mode.SRC_ATOP));
} else {
- view.getBackground().setColorFilter(Color.parseColor(FeatureRestriction.getColor()), PorterDuff.Mode.SRC_ATOP);
+ view.getBackground().setColorFilter(Color.parseColor(UIKitSettings.getColor()), PorterDuff.Mode.SRC_ATOP);
}
}
} else {
@@ -2580,7 +2606,7 @@ private void setLinkData(LinkMessageViewHolder viewHolder, int i) {
public void onSuccess(Boolean booleanVal) {
if (baseMessage.getReplyCount()!=0 && booleanVal) {
viewHolder.tvThreadReplyCount.setVisibility(View.VISIBLE);
- viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" Replies");
+ viewHolder.tvThreadReplyCount.setText(baseMessage.getReplyCount()+" "+context.getResources().getString(R.string.replies));
} else {
viewHolder.tvThreadReplyCount.setVisibility(View.GONE);
}
@@ -2654,7 +2680,7 @@ public void onClick(View v) {
else {
setSelectedMessage(baseMessage.getId());
}
- notifyDataSetChanged();
+ notifyItemChanged(i);
});
viewHolder.rlMessageBubble.setOnLongClickListener(new View.OnLongClickListener() {
@@ -2665,7 +2691,7 @@ public boolean onLongClick(View view) {
isTextMessageClick = true;
setLongClickSelectedItem(baseMessage);
messageLongClick.setLongMessageClick(longselectedItemList);
- notifyDataSetChanged();
+ notifyItemChanged(i);
}
return true;
}
@@ -2706,7 +2732,7 @@ public void setLongClickSelectedItem(BaseMessage baseMessage) {
private void setAvatar(CometChatAvatar avatar, String avatarUrl, String name) {
if (avatarUrl != null && !avatarUrl.isEmpty())
- Glide.with(context).load(avatarUrl).into(avatar);
+ avatar.setAvatar(avatarUrl);
else
avatar.setInitials(name);
@@ -2990,6 +3016,16 @@ public int getPosition(BaseMessage baseMessage){
return messageList.indexOf(baseMessage);
}
+ public void updateReplyCount(int parentMessageId) {
+ for(BaseMessage baseMessage : messageList) {
+ if (baseMessage.getId()==parentMessageId) {
+ int replyCount = baseMessage.getReplyCount();
+ baseMessage.setReplyCount(++replyCount);
+ notifyItemChanged(messageList.indexOf(baseMessage));
+ }
+ }
+ }
+
class ImageMessageViewHolder extends RecyclerView.ViewHolder {
private ImageView imageView;
@@ -3140,9 +3176,10 @@ public class TextMessageViewHolder extends RecyclerView.ViewHolder {
private RelativeLayout sentimentVw; //sentiment extension layout
private TextView viewSentimentMessage; //sentiment extension text
- private RelativeLayout replyLayout; //reply message layout
+ private MaterialCardView replyLayout; //reply message layout
private TextView replyUser; //reply message sender name
private TextView replyMessage; //reply message text
+ private ImageView replyMessageImage;
private ChipGroup reactionLayout;
@@ -3161,6 +3198,7 @@ public class TextMessageViewHolder extends RecyclerView.ViewHolder {
rlMessageBubble = view.findViewById(R.id.rl_message);
replyLayout = view.findViewById(R.id.replyLayout);
replyUser = view.findViewById(R.id.reply_user);
+ replyMessageImage = view.findViewById(R.id.reply_image);
replyMessage = view.findViewById(R.id.reply_message);
tvThreadReplyCount = view.findViewById(R.id.thread_reply_count);
sentimentVw = view.findViewById(R.id.sentiment_layout);
@@ -3234,9 +3272,8 @@ public class LocationMessageViewHolder extends RecyclerView.ViewHolder {
public ImageView ivMap;
public TextView tvAddress;
public TextView senderTxt;
- public MaterialButton navigateBtn;
- public CardView cvMessageView;
+ public MaterialCardView cvMessageView;
public TextView tvThreadReplyCount;
public TextView txtTime;
@@ -3259,7 +3296,6 @@ public LocationMessageViewHolder(View itemView) {
ivUser = itemView.findViewById(R.id.iv_user);
tvThreadReplyCount = itemView.findViewById(R.id.thread_reply_count);
senderTxt = itemView.findViewById(R.id.sender_location_txt);
- navigateBtn = itemView.findViewById(R.id.navigate_btn);
reactionLayout = itemView.findViewById(R.id.reactions_layout);
this.view = itemView;
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageList.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageList.java
index 09a5eba..7449a1b 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageList.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageList.java
@@ -105,6 +105,7 @@
import com.cometchat.pro.uikit.ui_resources.utils.keyboard_utils.KeyBoardUtils;
import com.cometchat.pro.uikit.ui_resources.utils.sticker_header.StickyHeaderDecoration;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.facebook.shimmer.ShimmerFrameLayout;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
@@ -679,7 +680,7 @@ public void run() {
ivMoreOption.setVisibility(GONE);
}
if (replyCount>0) {
- tvReplyCount.setText(replyCount + " Replies");
+ tvReplyCount.setText(replyCount +" "+ getString(R.string.replies));
noReplyMessages.setVisibility(GONE);
}
else {
@@ -775,7 +776,7 @@ private void setReactionForParentMessage() {
Chip chip = new Chip(context);
chip.setChipStrokeWidth(2f);
chip.setChipBackgroundColor(ColorStateList.valueOf(context.getResources().getColor(android.R.color.transparent)));
- chip.setChipStrokeColor(ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ chip.setChipStrokeColor(ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
chip.setText(key + " " + reactionInfo.get(key));
reactionLayout.addView(chip);
chip.setOnClickListener(new View.OnClickListener() {
@@ -1714,11 +1715,11 @@ private void scrollToBottom() {
* @param baseMessage is object of BaseMessage.class. It is message which is been marked as read.
*/
private void markMessageAsRead(BaseMessage baseMessage) {
- CometChat.markAsRead(baseMessage);
-// if (type.equals(CometChatConstants.RECEIVER_TYPE_USER))
-// CometChat.markAsRead(baseMessage.getId(), baseMessage.getSender().getUid(), baseMessage.getReceiverType());
-// else
-// CometChat.markAsRead(baseMessage.getId(), baseMessage.getReceiverUid(), baseMessage.getReceiverType());
+// CometChat.markAsRead(baseMessage);
+ if (type.equals(CometChatConstants.RECEIVER_TYPE_USER))
+ CometChat.markAsRead(baseMessage.getId(), baseMessage.getSender().getUid(), baseMessage.getReceiverType());
+ else
+ CometChat.markAsRead(baseMessage.getId(), baseMessage.getReceiverUid(), baseMessage.getReceiverType());
}
@@ -1881,9 +1882,9 @@ private void setMessage(BaseMessage message) {
private void setReply() {
replyCount = replyCount+1;
if (replyCount==1)
- tvReplyCount.setText(replyCount+" Reply");
+ tvReplyCount.setText(replyCount+" "+getString(R.string.reply));
else
- tvReplyCount.setText(replyCount+" Replies");
+ tvReplyCount.setText(replyCount+" "+getString(R.string.replies));
}
private void checkSmartReply(BaseMessage lastMessage) {
@@ -2326,6 +2327,7 @@ public void onSuccess(Boolean booleanVal) {
private void showBottomSheet(CometChatMessageActions messageActionFragment) {
messageActionFragment.show(getFragmentManager(),messageActionFragment.getTag());
messageActionFragment.setMessageActionListener(new CometChatMessageActions.MessageActionListener() {
+
@Override
public void onPrivateReplyToUser() {
if (baseMessage!=null) {
@@ -2357,9 +2359,10 @@ public void onEditMessageClick() {
}
@Override
- public void onReplyMessageClick() {
+ public void onReplyMessageClick() {}
- }
+ @Override
+ public void onReplyMessagePrivately() {}
@Override
public void onForwardMessageClick() {
@@ -2694,7 +2697,7 @@ private void replyMessage() {
String messageStr = String.format(getResources().getString(R.string.shared_a_audio),
Utils.getFileSize(((MediaMessage) baseMessage).getAttachment().getFileSize()));
replyMessage.setText(messageStr);
- replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_library_music_24dp, 0, 0, 0);
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_audio, 0, 0, 0);
} else if (baseMessage.getType().equals(CometChatConstants.MESSAGE_TYPE_VIDEO)) {
replyMessage.setText(getResources().getString(R.string.shared_a_video));
Glide.with(context).load(((MediaMessage) baseMessage).getAttachment().getFileUrl()).into(replyMedia);
@@ -2702,7 +2705,7 @@ private void replyMessage() {
String messageStr = String.format(getResources().getString(R.string.shared_a_file),
Utils.getFileSize(((MediaMessage) baseMessage).getAttachment().getFileSize()));
replyMessage.setText(messageStr);
- replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_insert_drive_file_black_24dp, 0, 0, 0);
+ replyMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_file_upload, 0, 0, 0);
}
composeBox.ivSend.setVisibility(View.VISIBLE);
replyMessageLayout.setVisibility(View.VISIBLE);
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageListActivity.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageListActivity.java
index 4867c44..05bf3b0 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageListActivity.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/CometChatThreadMessageListActivity.java
@@ -28,6 +28,7 @@
import com.cometchat.pro.uikit.ui_components.messages.message_actions.listener.OnMessageLongClick;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
/**
@@ -109,8 +110,8 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cometchat_message_list);
- if (FeatureRestriction.getColor() !=null) {
- getWindow().setStatusBarColor(Color.parseColor(FeatureRestriction.getColor()));
+ if (UIKitSettings.getColor() !=null) {
+ getWindow().setStatusBarColor(Color.parseColor(UIKitSettings.getColor()));
}
EmojiCompat.Config config = new BundledEmojiCompatConfig(this);
EmojiCompat.init(config);
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/ThreadAdapter.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/ThreadAdapter.java
index 6a5dede..32578e9 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/ThreadAdapter.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/messages/thread_message_list/ThreadAdapter.java
@@ -51,7 +51,9 @@
import com.cometchat.pro.uikit.ui_resources.utils.pattern_utils.PatternUtils;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
import com.google.android.material.button.MaterialButton;
+import com.google.android.material.card.MaterialCardView;
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
@@ -789,15 +791,15 @@ private void setStatusIcon(ProgressBar progressBar,TextView txtTime, BaseMessage
progressBar.setVisibility(View.GONE);
if (baseMessage.getReadAt() != 0) {
txtTime.setText(Utils.getHeaderDate(baseMessage.getReadAt() * 1000));
- txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_double_tick, 0);
+ txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_message_read, 0);
txtTime.setCompoundDrawablePadding(10);
} else if (baseMessage.getDeliveredAt() != 0) {
txtTime.setText(Utils.getHeaderDate(baseMessage.getDeliveredAt() * 1000));
- txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_done_all_black_24dp, 0);
+ txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_message_delivered, 0);
txtTime.setCompoundDrawablePadding(10);
} else if (baseMessage.getSentAt()>0){
txtTime.setText(Utils.getHeaderDate(baseMessage.getSentAt() * 1000));
- txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_check_black_24dp, 0);
+ txtTime.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_message_sent, 0);
txtTime.setCompoundDrawablePadding(10);
} else if (baseMessage.getSentAt()==-1) {
txtTime.setText("");
@@ -990,7 +992,7 @@ private void setReactionSupport(BaseMessage baseMessage, ChipGroup reactionLayou
Chip chip = new Chip(context);
chip.setChipStrokeWidth(2f);
chip.setChipBackgroundColor(ColorStateList.valueOf(context.getResources().getColor(android.R.color.transparent)));
- chip.setChipStrokeColor(ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ chip.setChipStrokeColor(ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
chip.setText(str + " " + reactionOnMessage.get(str));
reactionLayout.addView(chip);
chip.setOnLongClickListener(new View.OnLongClickListener() {
@@ -1169,7 +1171,7 @@ public void setLongClickSelectedItem(BaseMessage baseMessage) {
private void setAvatar(CometChatAvatar avatar, String avatarUrl, String name) {
if (avatarUrl != null && !avatarUrl.isEmpty())
- Glide.with(context).load(avatarUrl).into(avatar);
+ avatar.setAvatar(avatarUrl);
else
avatar.setInitials(name);
@@ -1485,7 +1487,7 @@ public class TextMessageViewHolder extends RecyclerView.ViewHolder {
private int type;
private CometChatAvatar ivUser;
private RelativeLayout rlMessageBubble;
- private RelativeLayout replyLayout;
+ private MaterialCardView replyLayout;
private TextView replyUser;
private TextView replyMessage;
private RelativeLayout sentimentVw;
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/CometChatSnackBar.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/CometChatSnackBar.java
index e398c6c..62f01b3 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/CometChatSnackBar.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/CometChatSnackBar.java
@@ -37,21 +37,21 @@ private static void customSnackBar(Context context,View parentLayout,String mess
ImageView closeImage = dialogView.findViewById(R.id.iv_close);
ImageView iconImage = dialogView.findViewById(R.id.iv_icon);
if (type.equalsIgnoreCase(ERROR)) {
- iconImage.setImageResource(R.drawable.ic_baseline_error_24);
+ iconImage.setImageResource(R.drawable.ic_error);
iconImage.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
closeImage.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
messageTv.setTextColor(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
dialogView.setBackgroundColor(context.getResources().getColor(R.color.red));
} else if (type.equalsIgnoreCase(INFO)) {
snackbar.setDuration(Snackbar.LENGTH_LONG);
- iconImage.setImageResource(R.drawable.ic_info_image);
+ iconImage.setImageResource(R.drawable.ic_info);
iconImage.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
closeImage.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
messageTv.setTextColor(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
dialogView.setBackgroundColor(context.getResources().getColor(R.color.colorPrimary));
} else if (type.equalsIgnoreCase(WARNING)) {
snackbar.setDuration(Snackbar.LENGTH_LONG);
- iconImage.setImageResource(R.drawable.ic_warning_image);
+ iconImage.setImageResource(R.drawable.ic_report);
iconImage.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
closeImage.setImageTintList(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
messageTv.setTextColor(ColorStateList.valueOf(context.getResources().getColor(R.color.textColorWhite)));
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatAvatar/CometChatAvatar.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatAvatar/CometChatAvatar.java
index c43af79..5801242 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatAvatar/CometChatAvatar.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatAvatar/CometChatAvatar.java
@@ -3,37 +3,24 @@
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.ColorFilter;
-import android.graphics.Outline;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.PixelFormat;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
-import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
-import android.view.ViewOutlineProvider;
+import android.widget.ImageView;
+import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
-import androidx.appcompat.widget.AppCompatImageView;
-import androidx.databinding.BindingMethod;
-import androidx.databinding.BindingMethods;
import com.bumptech.glide.Glide;
+import com.cometchat.pro.models.AppEntity;
import com.cometchat.pro.models.Group;
import com.cometchat.pro.models.User;
import com.cometchat.pro.uikit.R;
-import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
-import com.cometchat.pro.uikit.ui_resources.utils.Utils;
+import com.google.android.material.card.MaterialCardView;
/**
* Purpose - This class is a subclass of AppCompatImageView, It is a component which is been used by developer
@@ -45,22 +32,11 @@
*
* Modified on - 20th January 2020
*
-*/
-@BindingMethods(value = {@BindingMethod(type = CometChatAvatar.class, attribute = "app:avatar", method = "setAvatar"),
- @BindingMethod(type = CometChatAvatar.class, attribute = "app:avatar_name", method = "setInitials")})
-public class CometChatAvatar extends AppCompatImageView {
+ */
+public class CometChatAvatar extends MaterialCardView {
private static final String TAG = CometChatAvatar.class.getSimpleName();
- private final Class avatar = CometChatAvatar.class;
-
- private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP;
-
- /*
- * Path of them image to be clipped (to be shown)
- * */
- Path clipPath;
-
/*
* Place holder drawable (with background color and initials)
* */
@@ -71,48 +47,12 @@ public class CometChatAvatar extends AppCompatImageView {
* */
String text;
- /*
- * Used to set size and color of the member initials
- * */
- TextPaint textPaint;
-
- /*
- * Used as background of the initials with user specific color
- * */
- Paint paint;
-
- /*
- * To draw border
- */
- private Paint borderPaint;
-
- /*
- * Shape to be drawn
- * */
- int shape;
-
- /*
- * Constants to define shape
- * */
- protected static final int CIRCLE = 0;
- protected static final int RECTANGLE = 1;
-
/*
* User whose avatar should be displayed
* */
//User user;
String avatarUrl;
- /*
- * Image width and height (both are same and com.cometchat.pro.uikit.UI_Resources.constant, defined in dimens.xml
- * We cache them in this field
- * */
- private int imageSize;
-
- /*
- * We will set it as 2dp
- * */
- int cornerRadius;
/*
* Bounds of the canvas in float
@@ -127,9 +67,15 @@ public class CometChatAvatar extends AppCompatImageView {
private int borderColor;
+ private int backgroundColor;
+
private float borderWidth;
- private float borderRadius;
+ private float radius;
+
+ private MaterialCardView cardView;
+ private ImageView imageView;
+ private TextView textView;
public CometChatAvatar(Context context) {
super(context);
@@ -140,177 +86,68 @@ public CometChatAvatar(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
getAttributes(attrs);
- init();
}
public CometChatAvatar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.context = context;
getAttributes(attrs);
- init();
}
private void getAttributes(AttributeSet attrs) {
+ View view =View.inflate(context, R.layout.cometchat_avatar,null);
TypedArray a = getContext().getTheme().obtainStyledAttributes(
attrs,
R.styleable.Avatar,
0, 0);
+ /*
+ * Get the shape and set shape field accordingly
+ * */
+ drawable = a.getDrawable(R.styleable.Avatar_image);
+ radius = a.getDimension(R.styleable.Avatar_corner_radius,16);
+ backgroundColor = a.getColor(R.styleable.Avatar_background_color,
+ getResources().getColor(R.color.colorPrimary));
+ avatarUrl = a.getString(R.styleable.Avatar_avatar);
+// borderRadius = a.getInteger(R.styleable.Avatar_cornerRadius,8);
+ borderColor = a.getColor(R.styleable.Avatar_border_color,getResources().getColor(R.color.colorPrimary));
+ // backgroundColor = a.getColor(R.styleable.Avatar_backgroundColor,getResources().getColor(R.color.colorPrimary));
+ borderWidth = a.getDimension(R.styleable.Avatar_border_width,1f);
+
+
+ addView(view);
+
+
+ cardView = view.findViewById(R.id.cardView);
+ setRadius(radius);
+ cardView.setCardBackgroundColor(backgroundColor);
+ imageView = view.findViewById(R.id.image);
+ textView = view.findViewById(R.id.text);
+ if (drawable!=null)
+ imageView.setImageDrawable(drawable);
+ }
- try {
-
- /*
- * Get the shape and set shape field accordingly
- * */
- String avatarShape = a.getString(R.styleable.Avatar_avatar_shape);
- avatarUrl = a.getString(R.styleable.Avatar_avatar);
- borderColor =a.getColor(R.styleable.Avatar_border_color,Color.WHITE);
- borderWidth=a.getDimension(R.styleable.Avatar_border_width,1);
-
-
+ private void setAvatar(@NonNull User user) {
- /*
- * If the attribute is not specified, consider circle shape
- * */
- if (avatarShape == null) {
- shape = CIRCLE;
+ if (user!=null) {
+ if (user.getAvatar() != null) {
+ avatarUrl = user.getAvatar();
+ if (isValidContextForGlide(context)) {
+ setValues();
+ }
} else {
- if (new String("rectangle").equalsIgnoreCase(avatarShape)) {
- shape = RECTANGLE;
- } else {
- shape = CIRCLE;
+ if (user.getName()!=null&&!user.getName().isEmpty()) {
+ if (user.getName().length() > 2) {
+ text = user.getName().substring(0, 2);
+ } else {
+ text = user.getName();
+ }
+ }else {
+ text="??";
}
+ imageView.setVisibility(View.GONE);
+ textView.setText(text);
}
- } finally {
- a.recycle();
}
- }
-
- @Override
- public ScaleType getScaleType() {
- return SCALE_TYPE;
- }
-
- @Override
- public void setScaleType(ScaleType scaleType) {
- if (scaleType != SCALE_TYPE) {
- throw new IllegalArgumentException(String.format("ScaleType %1$s not supported.", scaleType));
- }
- }
-
- public void setShape(String shapestr)
- {
- if (shapestr.equalsIgnoreCase("circle")) {
- shape = CIRCLE;
- } else {
- shape = RECTANGLE;
- }
- }
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
- init();
- }
-
- @Override
- public void setAdjustViewBounds(boolean adjustViewBounds) {
- if (adjustViewBounds) {
- throw new IllegalArgumentException("adjustViewBounds not supported.");
- }
- }
-
- @Override
- public void setPadding(int left, int top, int right, int bottom) {
- super.setPadding(left, top, right, bottom);
- init();
- }
-
- @Override
- public void setPaddingRelative(int start, int top, int end, int bottom) {
- super.setPaddingRelative(start, top, end, bottom);
- init();
- }
- /*
- * Initialize fields
- * */
- protected void init() {
- rectF = new RectF();
- clipPath = new Path();
- rectF.set(calculateBounds());
-
- //imageSize = getResources().getDimensionPixelSize(R.dimen.avatar_size);
- imageSize = getHeight();
- cornerRadius = (int) Utils.dpToPixel(2, getResources());
-
- paint = new Paint(Paint.ANTI_ALIAS_FLAG);
- if (FeatureRestriction.getColor()!=null && !FeatureRestriction.getColor().isEmpty()) {
- paint.setColor(Color.parseColor(FeatureRestriction.getColor()));
- }
- else
- paint.setColor(getResources().getColor(R.color.colorPrimary));
-
- textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
- textPaint.setTextSize(16f * getResources().getDisplayMetrics().scaledDensity);
- textPaint.setColor(Color.WHITE);
-
- borderPaint = new Paint();
- borderPaint.setStyle(Paint.Style.STROKE);
- borderPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
-
- borderPaint.setColor(borderColor);
- borderPaint.setAntiAlias(true);
- borderPaint.setStrokeWidth(borderWidth);
-
- if (FeatureRestriction.getColor()!=null && FeatureRestriction.getColor().isEmpty())
- color = Color.parseColor(FeatureRestriction.getColor());
- else
- color = getResources().getColor(R.color.colorPrimary);
-
- setOutlineProvider(new OutlineProvider());
- }
-
- private RectF calculateBounds() {
- int availableWidth = getWidth() - getPaddingLeft() - getPaddingRight();
- int availableHeight = getHeight() - getPaddingTop() - getPaddingBottom();
-
- int sideLength = Math.min(availableWidth, availableHeight);
-
- float left = getPaddingLeft() + (availableWidth - sideLength) / 2f;
- float top = getPaddingTop() + (availableHeight - sideLength) / 2f;
-
- return new RectF(left, top, left + sideLength, top + sideLength);
- }
-
- /**
- * This method is used to check if the user parameter passed is null or not. If it is not null then
- * it will show avatar of user, else it will show default drawable or first two letter of user name.
- *
- * @param user is an object of User.class.
- * @see User
- */
- public void setAvatar(@NonNull User user) {
-
- if (user!=null) {
- if (user.getAvatar() != null) {
- avatarUrl = user.getAvatar();
- if (isValidContextForGlide(context)) {
- init();
- setValues();
- }
- } else {
- if (user.getName()!=null&&!user.getName().isEmpty()) {
- if (user.getName().length() > 2) {
- text = user.getName().substring(0, 2);
- } else {
- text = user.getName();
- }
- }else {
- text="??";
- }
- init();
- setImageDrawable(drawable);
- setDrawable();
- }
- }
}
@@ -321,28 +158,34 @@ public void setAvatar(@NonNull User user) {
* @param group is an object of Group.class.
* @see Group
*/
- public void setAvatar(@NonNull Group group) {
-
- if (group!=null) {
-
- if (group.getIcon() != null) {
- avatarUrl = group.getIcon();
- if (isValidContextForGlide(context))
- init();
- setValues();
- } else {
- if (group.getName().length() > 2)
- text = group.getName().substring(0, 2);
- else {
- text = group.getName();
- }
-
- init();
- setDrawable();
- setImageDrawable(drawable);
- }
- }
+ private void setAvatar(@NonNull Group group) {
+
+ if (group!=null) {
+
+ if (group.getIcon() != null) {
+ avatarUrl = group.getIcon();
+ if (isValidContextForGlide(context))
+ setValues();
+ } else {
+ if (group.getName().length() > 2)
+ text = group.getName().substring(0, 2);
+ else {
+ text = group.getName();
+ }
+ imageView.setVisibility(View.GONE);
+ textView.setText(text);
+ }
+ }
+ }
+
+ public void setAvatar(AppEntity appEntity) {
+ if (appEntity instanceof User) {
+ setAvatar((User)appEntity);
+ } else if (appEntity instanceof Group) {
+ setAvatar((Group)appEntity);
+ }
}
+
/**
* This method is used to set image by using url passed in parameter..
*
@@ -353,7 +196,6 @@ public void setAvatar(@NonNull String avatarUrl) {
this.avatarUrl = avatarUrl;
if (isValidContextForGlide(context))
- init();
setValues();
}
@@ -366,7 +208,6 @@ public void setAvatar(Drawable drawable, @NonNull String avatarUrl) {
this.drawable = drawable;
this.avatarUrl = avatarUrl;
if (isValidContextForGlide(context)) {
- init();
setValues();
}
}
@@ -387,10 +228,16 @@ public void setInitials(@NonNull String name) {
}else {
text=name;
}
- setDrawable();
- setImageDrawable(drawable);
+ imageView.setVisibility(View.GONE);
+ textView.setText(text);
+ textView.setVisibility(View.VISIBLE);
}
+ public void setAvatar(String url,String name) {
+ setAvatar(url);
+ if (url==null)
+ setInitials(name);
+ }
public float getBorderWidth() {
return borderWidth;
}
@@ -398,6 +245,12 @@ public Drawable getDrawable()
{
return drawable;
}
+
+ public void setDrawable(Drawable drawable) {
+ imageView.setImageDrawable(drawable);
+ imageView.setVisibility(View.VISIBLE);
+ textView.setVisibility(View.GONE);
+ }
/*
* Set user specific fields in here
* */
@@ -408,12 +261,10 @@ private void setValues() {
Glide.with(context)
.load(avatarUrl)
.placeholder(drawable)
- .centerCrop()
- .override(imageSize, imageSize)
- .into(this);
+ .into(imageView);
}
- } else {
- setImageDrawable(drawable);
+ imageView.setVisibility(View.VISIBLE);
+ textView.setVisibility(View.GONE);
}
} catch (Exception e) {
Toast.makeText(context,e.getMessage(),Toast.LENGTH_LONG).show();
@@ -435,98 +286,13 @@ public static boolean isValidContextForGlide(final Context context) {
}
- /*
- * Create placeholder drawable
- * */
- private void setDrawable() {
- drawable = new Drawable() {
- @Override
- public void draw(@NonNull Canvas canvas) {
-
- int centerX = Math.round(canvas.getWidth() * 0.5f);
- int centerY = Math.round(canvas.getHeight() * 0.5f);
-
- /*
- * To draw text
- * */
- if (text != null) {
- float textWidth = textPaint.measureText(text) * 0.5f;
- float textBaseLineHeight = textPaint.getFontMetrics().ascent * -0.4f;
-
- /*
- * Draw the background color before drawing initials text
- * */
- if (shape == RECTANGLE) {
- canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint);
- } else {
- canvas.drawCircle(centerX,
- centerY,
- Math.max(canvas.getHeight() / 2, textWidth / 2),
- paint);
- }
-
- /*
- * Draw the text above the background color
- * */
- canvas.drawText(text, centerX - textWidth, centerY + textBaseLineHeight, textPaint);
- }
- }
-
- @Override
- public void setAlpha(int alpha) {
-
- }
-
- @Override
- public void setColorFilter(ColorFilter colorFilter) {
-
- }
-
- @Override
- public int getOpacity() {
- return PixelFormat.UNKNOWN;
- }
- };
- }
-
- /*
- * Set the canvas bounds here
- * */
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- int screenWidth = MeasureSpec.getSize(widthMeasureSpec);
- int screenHeight = MeasureSpec.getSize(heightMeasureSpec);
- rectF.set(0, 0, screenWidth, screenHeight);
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- if (shape == RECTANGLE) {
- canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, borderPaint);
- clipPath.addRoundRect(rectF, cornerRadius, cornerRadius, Path.Direction.CCW);
- } else {
- canvas.drawCircle(rectF.centerX(), rectF.centerY(), (rectF.height() / 2)-borderWidth, borderPaint);
-
- clipPath.addCircle(rectF.centerX(), rectF.centerY(), (rectF.height() / 2)-borderWidth, Path.Direction.CCW);
- }
-
- canvas.clipPath(clipPath);
- super.onDraw(canvas);
- }
-
- @Override
- public void setBackgroundColor(int color) {
- this.paint.setColor(color);
- }
-
/**
* This method is used to set border color of avatar.
* @param color
*/
public void setBorderColor(@ColorInt int color) {
this.borderColor = color;
- this.borderPaint.setColor(color);
+ cardView.setStrokeColor(color);
}
/**
@@ -536,19 +302,17 @@ public void setBorderColor(@ColorInt int color) {
public void setBorderWidth(int borderWidth) {
this.borderWidth = borderWidth;
- this.borderPaint.setStrokeWidth(borderWidth);
- invalidate();
+ cardView.setStrokeWidth(borderWidth);
}
- private class OutlineProvider extends ViewOutlineProvider {
-
- @Override
- public void getOutline(View view, Outline outline) {
- Rect bounds = new Rect();
- rectF.roundOut(bounds);
- outline.setRoundRect(bounds, bounds.width() / 2.0f);
- }
-
+ public void setCornerRadius(int radius) {
+ this.radius = radius;
+ cardView.setRadius(radius);
+ setRadius(radius);
}
+ public void setBackgroundColor(@ColorInt int color) {
+ this.backgroundColor = color;
+ imageView.setBackgroundColor(backgroundColor);
+ }
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatBadgeCount/CometChatBadgeCount.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatBadgeCount/CometChatBadgeCount.java
index 149faf5..be0940d 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatBadgeCount/CometChatBadgeCount.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatBadgeCount/CometChatBadgeCount.java
@@ -16,6 +16,7 @@
import com.cometchat.pro.uikit.ui_components.shared.cometchatAvatar.CometChatAvatar;
import com.cometchat.pro.uikit.R;
+import com.google.android.material.card.MaterialCardView;
/**
* Purpose - This class is a subclass of LinearLayout, It is a component which is been used by developer
@@ -27,13 +28,15 @@
*
* Modified on - 16th January 2020
*
-*/
+ */
-@BindingMethods(value = {@BindingMethod(type = CometChatAvatar.class, attribute = "app:count", method = "setCount")})
-public class CometChatBadgeCount extends LinearLayout {
+@BindingMethods(value = {@BindingMethod(type = CometChatBadgeCount.class, attribute = "app:count", method = "setCount")})
+public class CometChatBadgeCount extends MaterialCardView {
private TextView tvCount; //Used to display count
+ private MaterialCardView countView;
+
private int count; //Used to store value of count
private float countSize; //Used to store size of count
@@ -80,19 +83,18 @@ private void initViewComponent(Context context, AttributeSet attributeSet, int d
addView(view);
- if (count==0){
- setVisibility(INVISIBLE);
- }else {
- setVisibility(VISIBLE);
- }
+ if (count==0){
+ setVisibility(INVISIBLE);
+ }else {
+ setVisibility(VISIBLE);
+ }
+ countView = view.findViewById(R.id.count_parent);
tvCount = view.findViewById(R.id.tvSetCount);
- tvCount.setBackground(getResources().getDrawable(R.drawable.count_background));
tvCount.setTextSize(countSize);
tvCount.setTextColor(countColor);
tvCount.setText(String.valueOf(count));
setCountBackground(countBackgroundColor);
-
}
/**
@@ -100,11 +102,15 @@ private void initViewComponent(Context context, AttributeSet attributeSet, int d
* @param color is an object of Color.class . It is used as color for background.
*/
public void setCountBackground(@ColorInt int color) {
- Drawable unwrappedDrawable = tvCount.getBackground();
- Drawable wrappedDrawable = DrawableCompat.wrap(unwrappedDrawable);
- DrawableCompat.setTint(wrappedDrawable,color);
+ countView.setCardBackgroundColor(color);
+ setCardBackgroundColor(color);
}
+
+ public void setCornerRadius(float radius) {
+ countView.setRadius(radius);
+ setRadius(radius);
+ }
/**
* This method is used to set color of count i.e integer.
* @param color is an object of Color.class. It is used as color of text in tvCount (TextView)
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatCalls/CometChatCallsAdapter.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatCalls/CometChatCallsAdapter.java
index ebedb86..af72a2f 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatCalls/CometChatCallsAdapter.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatCalls/CometChatCallsAdapter.java
@@ -27,6 +27,7 @@
import com.cometchat.pro.uikit.ui_resources.utils.FontUtils;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
import com.cometchat.pro.uikit.ui_resources.utils.Utils;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
/**
* Purpose - CallListAdapter is a subclass of RecyclerView Adapter which is used to display
@@ -173,18 +174,22 @@ public void onBindViewHolder(@NonNull CallViewHolder callViewHolder, int positio
}
if (isVideo)
{
- callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_videocam_24dp,0,0,0);
+ if(isIncoming) {
+ callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_incoming_video_call,0,0,0);
+ } else {
+ callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_outgoing_video_call,0,0,0);
+ }
}
else
{
if (isIncoming && isMissed) {
callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_call_missed_incoming_24dp,0,0,0);
} else if(isIncoming && !isMissed) {
- callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_call_incoming_24dp,0,0,0);
+ callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_incoming_call,0,0,0);
} else if (!isIncoming && isMissed) {
callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_call_missed_outgoing_24dp,0,0,0);
} else {
- callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_call_outgoing_24dp,0,0,0);
+ callViewHolder.callListRowBinding.callMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_outgoing_call,0,0,0);
}
}
callViewHolder.callListRowBinding.calltimeTv.setText(Utils.getLastMessageDate(context,call.getInitiatedAt()));
@@ -199,7 +204,7 @@ public void onBindViewHolder(@NonNull CallViewHolder callViewHolder, int positio
}
callViewHolder.callListRowBinding.callIv.setImageTintList(
- ColorStateList.valueOf(Color.parseColor(FeatureRestriction.getColor())));
+ ColorStateList.valueOf(Color.parseColor(UIKitSettings.getColor())));
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatComposeBox/CometChatComposeBox.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatComposeBox/CometChatComposeBox.java
index a72c03c..eba8886 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatComposeBox/CometChatComposeBox.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatComposeBox/CometChatComposeBox.java
@@ -43,6 +43,7 @@
import com.cometchat.pro.uikit.ui_resources.utils.audio_visualizer.AudioRecordView;
import com.cometchat.pro.uikit.ui_settings.FeatureRestriction;
import com.cometchat.pro.uikit.ui_resources.utils.Utils;
+import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
public class CometChatComposeBox extends RelativeLayout implements View.OnClickListener {
@@ -66,7 +67,7 @@ public class CometChatComposeBox extends RelativeLayout implements View.OnClickL
private boolean isOpen,isRecording,isPlaying,voiceMessage;
- public ImageView ivAudio,ivCamera,ivGallery, ivFile,ivSend,ivArrow,ivMic,ivDelete;
+ public ImageView ivSend,ivArrow,ivMic,ivDelete;
private SeekBar voiceSeekbar;
@@ -151,29 +152,17 @@ public void onAudioFocusChange(int focusChange) {
voiceMessageLayout=this.findViewById(R.id.voiceMessageLayout);
recordTime=this.findViewById(R.id.record_time);
voiceSeekbar=this.findViewById(R.id.voice_message_seekbar);
- ivCamera=this.findViewById(R.id.ivCamera);
- ivGallery=this.findViewById(R.id.ivImage);
- ivAudio = this.findViewById(R.id.ivAudio);
- ivFile =this.findViewById(R.id.ivFile);
- ivSend=this.findViewById(R.id.ivSend);
ivArrow=this.findViewById(R.id.ivArrow);
etComposeBox=this.findViewById(R.id.etComposeBox);
- rlActionContainer=this.findViewById(R.id.rlActionContainers);
+ ivSend=this.findViewById(R.id.ivSend);
ivArrow.setImageTintList(ColorStateList.valueOf(color));
- ivCamera.setImageTintList(ColorStateList.valueOf(color));
- ivGallery.setImageTintList(ColorStateList.valueOf(color));
- ivFile.setImageTintList(ColorStateList.valueOf(color));
ivSend.setImageTintList(ColorStateList.valueOf(color));
- ivAudio.setOnClickListener(this);
ivArrow.setOnClickListener(this);
ivSend.setOnClickListener(this);
ivDelete.setOnClickListener(this);
- ivFile.setOnClickListener(this);
ivMic.setOnClickListener(this);
- ivGallery.setOnClickListener(this);
- ivCamera.setOnClickListener(this);
composeBoxActionFragment = new CometChatComposeBoxActions();
@@ -257,28 +246,21 @@ public void OnMediaSelected(InputContentInfoCompat i) {
if (Utils.isDarkMode(context)) {
composeBox.setBackgroundColor(getResources().getColor(R.color.darkModeBackground));
- ivAudio.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
- ivMic.setImageDrawable(getResources().getDrawable(R.drawable.ic_mic_white_24dp));
+ ivMic.setImageDrawable(getResources().getDrawable(R.drawable.ic_microphone_white_selected));
flBox.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
etComposeBox.setTextColor(getResources().getColor(R.color.textColorWhite));
ivArrow.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
ivSend.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
- ivCamera.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
- ivGallery.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
- ivFile.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.textColorWhite)));
} else {
composeBox.setBackgroundColor(getResources().getColor(R.color.textColorWhite));
- ivAudio.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.colorPrimary)));
- ivMic.setImageDrawable(getResources().getDrawable(R.drawable.ic_mic_grey_24dp));
+ ivMic.setImageDrawable(getResources().getDrawable(R.drawable.ic_microphone_grey_selected));
etComposeBox.setTextColor(getResources().getColor(R.color.primaryTextColor));
ivSend.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.colorPrimary)));
flBox.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.grey)));
ivArrow.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.grey)));
- ivCamera.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.colorPrimary)));
- ivFile.setImageTintList(ColorStateList.valueOf(getResources().getColor(R.color.colorPrimary)));
}
- if (FeatureRestriction.getColor()!=null) {
- int settingsColor = Color.parseColor(FeatureRestriction.getColor());
+ if (UIKitSettings.getColor()!=null) {
+ int settingsColor = Color.parseColor(UIKitSettings.getColor());
ivSend.setImageTintList(ColorStateList.valueOf(settingsColor));
}
fetchSettings();
@@ -362,18 +344,10 @@ public void setColor(int color)
{
ivSend.setImageTintList(ColorStateList.valueOf(color));
- ivCamera.setImageTintList(ColorStateList.valueOf(color));
- ivGallery.setImageTintList(ColorStateList.valueOf(color));
- ivFile.setImageTintList(ColorStateList.valueOf(color));
-
ivArrow.setImageTintList(ColorStateList.valueOf(color));
}
public void setComposeBoxListener(ComposeActionListener composeActionListener){
this.composeActionListener=composeActionListener;
-
- this.composeActionListener.getCameraActionView(ivCamera);
- this.composeActionListener.getGalleryActionView(ivGallery);
- this.composeActionListener.getFileActionView(ivFile);
}
@Override
@@ -385,19 +359,13 @@ public void onClick(View view) {
etComposeBox.setVisibility(View.VISIBLE);
ivArrow.setVisibility(View.VISIBLE);
ivMic.setVisibility(View.VISIBLE);
- ivMic.setImageDrawable(getResources().getDrawable(R.drawable.ic_mic_grey_24dp));
+ ivMic.setImageDrawable(getResources().getDrawable(R.drawable.ic_microphone_grey_selected));
isPlaying = false;
isRecording = false;
voiceMessage = false;
ivDelete.setVisibility(GONE);
ivSend.setVisibility(View.GONE);
}
- if (view.getId()==R.id.ivCamera){
-// composeActionListener.onCameraActionClicked(ivCamera);
- }
- if (view.getId()==R.id.ivImage){
-// composeActionListener.onGalleryActionClicked(ivGallery);
- }
if (view.getId()==R.id.ivSend){
if (!voiceMessage) {
composeActionListener.onSendActionClicked(etComposeBox);
@@ -413,15 +381,9 @@ public void onClick(View view) {
isRecording = false;
isPlaying = false;
voiceMessage = false;
- ivMic.setImageResource(R.drawable.ic_mic_grey_24dp);
+ ivMic.setImageResource(R.drawable.ic_microphone_grey_selected);
}
- }
- if(view.getId()==R.id.ivAudio) {
-// composeActionListener.onAudioActionClicked(ivAudio);
- }
- if (view.getId()==R.id.ivFile){
-// composeActionListener.onFileActionClicked(ivFile);
}
if(view.getId()==R.id.ivArrow) {
// if (isOpen) {
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversations.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversations.java
index c5d4d21..92bac8a 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversations.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversations.java
@@ -15,6 +15,7 @@
import com.cometchat.pro.models.BaseMessage;
import com.cometchat.pro.models.Conversation;
import com.cometchat.pro.models.MessageReceipt;
+import com.cometchat.pro.models.TypingIndicator;
import com.cometchat.pro.uikit.R;
import java.util.List;
@@ -188,4 +189,9 @@ public void clearList() {
public int size() {
return conversationViewModel.size();
}
+
+ public void setTypingIndicator(TypingIndicator typingIndicator, boolean b) {
+ if (conversationViewModel!=null)
+ conversationViewModel.setTypingIndicator(typingIndicator,b);
+ }
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversationsAdapter.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversationsAdapter.java
index f907f46..443849d 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversationsAdapter.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_components/shared/cometchatConversations/CometChatConversationsAdapter.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.graphics.Color;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -17,6 +18,7 @@
import com.cometchat.pro.constants.CometChatConstants;
import com.cometchat.pro.core.CometChat;
import com.cometchat.pro.models.MessageReceipt;
+import com.cometchat.pro.models.TypingIndicator;
import com.cometchat.pro.uikit.R;
import com.cometchat.pro.models.BaseMessage;
import com.cometchat.pro.models.Conversation;
@@ -35,6 +37,8 @@
import com.cometchat.pro.uikit.ui_resources.utils.Utils;
import com.cometchat.pro.uikit.ui_settings.UIKitSettings;
+import org.json.JSONObject;
+
/**
* Purpose - ConversationListAdapter is a subclass of RecyclerView Adapter which is used to display
* the list of conversations. It helps to organize the list data in recyclerView.
@@ -63,6 +67,9 @@ public class CometChatConversationsAdapter extends RecyclerView.Adapter userList = new ArrayList<>();
+ private SwipeRefreshLayout swipeRefreshLayout;
+
public CometChatUserList() {
// Required empty public constructor
}
@@ -123,6 +127,15 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
clearSearch = view.findViewById(R.id.clear_search);
rlSearchBox=view.findViewById(R.id.rl_search_box);
+ swipeRefreshLayout = view.findViewById(R.id.swipe_refresh);
+ swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+ @Override
+ public void onRefresh() {
+ usersRequest= null;
+ rvUserList.clear();
+ fetchUsers();
+ }
+ });
CometChatError.init(getContext());
shimmerFrameLayout=view.findViewById(R.id.shimmer_layout);
@@ -142,6 +155,7 @@ public void onSuccess(Boolean booleanVal) {
}
});
+ isTitleVisible();
etSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { }
@@ -176,6 +190,8 @@ public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
}
});
+
+
clearSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -213,13 +229,27 @@ public void OnItemClick(User user, int position) {
return view;
}
+ private void isTitleVisible() {
+ if (getArguments()!=null) {
+ boolean isVisible = getArguments().getBoolean(UIKitConstants.IntentStrings.IS_TITLE_VISIBLE,true);
+ if (isVisible)
+ title.setVisibility(View.VISIBLE);
+ else
+ title.setVisibility(View.GONE);
+ }
+ }
+
private void stopHideShimmer() {
shimmerFrameLayout.stopShimmer();
shimmerFrameLayout.setVisibility(View.GONE);
- title.setVisibility(View.VISIBLE);
rlSearchBox.setVisibility(View.VISIBLE);
}
+ public void setTitleVisible(boolean isVisible) {
+ Bundle bundle = new Bundle();
+ bundle.putBoolean(UIKitConstants.IntentStrings.IS_TITLE_VISIBLE,isVisible);
+ setArguments(bundle);
+ }
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
@@ -250,6 +280,8 @@ public void onSuccess(List users) {
userList.addAll(users);
stopHideShimmer();
rvUserList.setUserList(users); // set the users to rvUserList i.e CometChatUserList Component.
+ if (swipeRefreshLayout.isRefreshing())
+ swipeRefreshLayout.setRefreshing(false);
if (userList.size()==0) {
noUserLayout.setVisibility(View.VISIBLE);
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/constants/UIKitConstants.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/constants/UIKitConstants.java
index 002667e..b8a2b2f 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/constants/UIKitConstants.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/constants/UIKitConstants.java
@@ -67,6 +67,8 @@ public static class IntentStrings {
public static final String MESSAGE_TYPE_IMAGE_SIZE = "file_size";
+ public static final String MESSAGE = "message";
+
public static final String SHOW_MODERATORLIST = "is_moderator";
public static final String GROUP_DESC = "group_description";
@@ -109,7 +111,7 @@ public static class IntentStrings {
public static final String TRANSFER_OWNERSHIP = "transfer_ownership";
- public static final String STICKERS = "Sticker";
+ public static final String STICKERS = "extension_sticker";
public static final String REACTION_INFO = "reaction_info";
@@ -131,6 +133,9 @@ public static class IntentStrings {
public static final String LINK = "link";
+ public static final String IS_TITLE_VISIBLE = "IS_TITLE_VISIBLE";
+ public static final String CREATE_GROUP_VISIBLE = "IS_CREATE_GROUP_VISIBLE";
+
public static String POLL_QUESTION = "poll_question";
public static String POLL_OPTION = "poll_option";
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/CometChatError.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/CometChatError.java
index 7487941..cf15dea 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/CometChatError.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/CometChatError.java
@@ -52,15 +52,9 @@ else if (e.getCode().equalsIgnoreCase(ERROR_INVALID_GUID_MESSAGE)) {
} else if (e.getCode().equalsIgnoreCase(ERROR_UID_WITH_SPACE_MESSAGE)) {
return new CometChatException(ERROR_UID_WITH_SPACE_MESSAGE,
errorContext.getString(R.string.err_uid_with_space_message)).getMessage();
- } else if (e.getCode().equalsIgnoreCase(ERROR_UID_GUID_NOT_SPECIFIED_MESSAGE)) {
- return new CometChatException(ERROR_UID_GUID_NOT_SPECIFIED_MESSAGE,
- errorContext.getString(R.string.err_uid_guid_not_specified_message)).getMessage();
} else if (e.getCode().equalsIgnoreCase(ERROR_INTERNET_UNAVAILABLE_MESSAGE)) {
return new CometChatException(ERROR_INTERNET_UNAVAILABLE_MESSAGE,
errorContext.getString(R.string.err_internet_unavailable)).getMessage();
- } else if (e.getCode().equalsIgnoreCase(ERROR_REQUEST_IN_PROGRESS_MESSAGE)) {
- return new CometChatException(ERROR_REQUEST_IN_PROGRESS_MESSAGE,
- errorContext.getString(R.string.err_request_in_progress_message)).getMessage();
} else if (e.getCode().equalsIgnoreCase(ERROR_EMPTY_GROUP_NAME_MESSAGE)) {
return new CometChatException(ERROR_EMPTY_GROUP_NAME_MESSAGE,
errorContext.getString(R.string.err_empty_group_name_message)).getMessage();
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/EncryptionUtils.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/EncryptionUtils.java
new file mode 100644
index 0000000..5dd74c9
--- /dev/null
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/EncryptionUtils.java
@@ -0,0 +1,97 @@
+package com.cometchat.pro.uikit.ui_resources.utils;
+
+import java.math.BigInteger;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.security.SecureRandom;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.GCMParameterSpec;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+public class EncryptionUtils {
+
+ private static final String ENCRYPT_ALGO = "AES/CBC/PKCS5Padding";
+ private static final int TAG_LENGTH_BIT = 128;
+ private static final int IV_LENGTH_BYTE = 16;
+
+ private static final Charset UTF_8 = StandardCharsets.UTF_8;
+
+ // hex representation
+ public static String hex(byte[] bytes) {
+ StringBuilder result = new StringBuilder();
+ for (byte b : bytes) {
+ result.append(String.format("%02x", b));
+ }
+ return result.toString();
+ }
+
+ public static byte[] toByteArray(String hexString) {
+ byte[] byteArray = new BigInteger(hexString, 16)
+ .toByteArray();
+ if (byteArray[0] == 0) {
+ byte[] output = new byte[byteArray.length - 1];
+ System.arraycopy(
+ byteArray, 1, output,
+ 0, output.length);
+ return output;
+ }
+ return byteArray;
+ }
+ // AES-GCM needs GCMParameterSpec
+ public static byte[] encrypt(byte[] pText, SecretKeySpec secret, byte[] iv) throws Exception {
+
+ Cipher cipher = Cipher.getInstance(ENCRYPT_ALGO);
+ cipher.init(Cipher.ENCRYPT_MODE, secret, new IvParameterSpec(iv));
+ byte[] encryptedText = cipher.doFinal(pText);
+ return encryptedText;
+
+ }
+
+ // prefix IV length + IV bytes to cipher text
+ public static byte[] encryptWithPrefixIV(byte[] pText, SecretKeySpec secret, byte[] iv) throws Exception {
+
+ byte[] cipherText = encrypt(pText, secret, iv);
+
+ byte[] cipherTextWithIv = ByteBuffer.allocate(iv.length + cipherText.length)
+ .put(iv)
+ .put(cipherText)
+ .array();
+ return cipherTextWithIv;
+
+ }
+
+ public static String decrypt(byte[] cText, SecretKey secret, byte[] iv) throws Exception {
+
+ Cipher cipher = Cipher.getInstance(ENCRYPT_ALGO);
+ cipher.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(iv));
+ byte[] plainText = cipher.doFinal(cText);
+ return new String(plainText, UTF_8);
+
+ }
+
+ public static byte[] getRandomNonce(int numBytes) {
+ byte[] nonce = new byte[numBytes];
+ new SecureRandom().nextBytes(nonce);
+ return nonce;
+ }
+
+ public static String decryptWithPrefixIV(byte[] cText, SecretKey secret) throws Exception {
+
+ ByteBuffer bb = ByteBuffer.wrap(cText);
+
+ byte[] iv = new byte[IV_LENGTH_BYTE];
+ bb.get(iv);
+ //bb.get(iv, 0, iv.length);
+
+ byte[] cipherText = new byte[bb.remaining()];
+ bb.get(cipherText);
+
+ String plainText = decrypt(cipherText, secret, iv);
+ return plainText;
+
+ }
+}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/Utils.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/Utils.java
index b04a785..f2f6d98 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/Utils.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_resources/utils/Utils.java
@@ -11,7 +11,10 @@
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
import android.location.Address;
import android.location.Geocoder;
import android.media.AudioManager;
@@ -77,6 +80,8 @@
import kotlin.ranges.RangesKt;
+import static android.os.Environment.DIRECTORY_DOCUMENTS;
+
public class Utils {
private static final String TAG = "Utils";
@@ -657,10 +662,18 @@ public static String getOutputMediaFile(Context context) {
if (!var0.exists() && !var0.mkdirs()) {
return null;
} else {
- String var1 = Environment.getExternalStorageDirectory() + "/" + context.getResources().getString(R.string.app_name) + "/"
- + "audio/";
- createDirectory(var1);
- return var1 + (new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date()) + ".mp3";
+ String dir;
+ if (Build.VERSION_CODES.R > Build.VERSION.SDK_INT) {
+ dir = Environment.getExternalStorageDirectory()+"/"+context.getResources().getString(R.string.app_name) + "/"
+ + "audio/";
+ } else {
+ dir = Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS).getPath()+"/"+context.getResources().getString(R.string.app_name) + "/"
+ + "audio/";
+ }
+// String var1 = Environment.getExternalStorageDirectory() + "/" + context.getResources().getString(R.string.app_name) + "/"
+// + "audio/";
+ createDirectory(dir);
+ return dir + (new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date()) + ".mp3";
}
}
@@ -709,6 +722,19 @@ public static Bitmap getBitmapFromURL(String strURL) {
}
}
+ public static Bitmap drawableToBitmap (Drawable drawable) {
+
+ if (drawable instanceof BitmapDrawable) {
+ return ((BitmapDrawable)drawable).getBitmap();
+ }
+
+ Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+ drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+ drawable.draw(canvas);
+
+ return bitmap;
+ }
public static String getAddress(Context context, double latitude, double longitude) {
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
try {
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/FeatureRestriction.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/FeatureRestriction.java
index dd40a44..75b5393 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/FeatureRestriction.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/FeatureRestriction.java
@@ -2,7 +2,6 @@
import com.cometchat.pro.core.CometChat;
import com.cometchat.pro.exceptions.CometChatException;
-import com.cometchat.pro.uikit.R;
public class FeatureRestriction {
public static boolean isGroupActionMessagesEnabled() {
@@ -13,11 +12,6 @@ public static boolean isCallActionMessageEnabled() {
return UIKitSettings.isCallNotification();
}
- public static String getColor() {
- return UIKitSettings.color;
- }
-
-
public static void isUserListEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.chat_users_list_enabled, new CometChat.CallbackListener() {
@Override
@@ -54,35 +48,35 @@ public static void isUserSettingsEnabled(OnSuccessListener onSuccessListener) {
public static void isOneOnOneChatEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.chat_one_on_one_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean)
- UIKitSettings.sendMessageInOneOneOne(false);
- onSuccessListener.onSuccess(UIKitSettings.isSendMessageInOneOneOne());
- }
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean)
+ UIKitSettings.sendMessageInOneOneOne(false);
+ onSuccessListener.onSuccess(UIKitSettings.isSendMessageInOneOneOne());
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isGroupChatEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.chat_groups_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean)
- UIKitSettings.sendMessageInGroup(false);
- onSuccessListener.onSuccess(UIKitSettings.isSendMessageInGroup());
- }
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean)
+ UIKitSettings.sendMessageInGroup(false);
+ onSuccessListener.onSuccess(UIKitSettings.isSendMessageInGroup());
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isDeliveryReceiptsEnabled(OnSuccessListener onSuccessListener) {
@@ -163,7 +157,7 @@ public void onSuccess(Boolean aBoolean) {
if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.polls))
UIKitSettings.sendPolls(false);
else {
- UIKitSettings.sendPolls(true);
+ UIKitSettings.sendPolls(true);
}
onSuccessListener.onSuccess(UIKitSettings.isSendPolls());
}
@@ -408,18 +402,18 @@ public static void isGroupActionMessagesEnabled(OnSuccessListener onSuccessListe
public static void isOneOnOneVideoCallEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.call_one_on_one_video_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean)
- UIKitSettings.userVideoCall(false);
- onSuccessListener.onSuccess(UIKitSettings.isUserVideoCall());
- }
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean)
+ UIKitSettings.userVideoCall(false);
+ onSuccessListener.onSuccess(UIKitSettings.isUserVideoCall());
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isOneOnOneAudioCallEnabled(OnSuccessListener onSuccessListener) {
@@ -457,18 +451,18 @@ public void onError(CometChatException e) {
public static void isGroupAudioCallEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.call_groups_audio_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean)
- UIKitSettings.groupAudioCall(false);
- onSuccessListener.onSuccess(UIKitSettings.isGroupAudioCall());
- }
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean)
+ UIKitSettings.groupAudioCall(false);
+ onSuccessListener.onSuccess(UIKitSettings.isGroupAudioCall());
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isMessagesSoundEnabled(OnSuccessListener onSuccessListener) {
@@ -494,74 +488,74 @@ public static int getUrlColor() {
public static void isLiveReactionEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.live_reactions_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean)
- UIKitSettings.sendLiveReaction(false);
- onSuccessListener.onSuccess(UIKitSettings.isSendLiveReaction());
- }
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean)
+ UIKitSettings.sendLiveReaction(false);
+ onSuccessListener.onSuccess(UIKitSettings.isSendLiveReaction());
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isReactionEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.reactions_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.reactions))
- UIKitSettings.sendMessageReaction(false);
- else {
- UIKitSettings.sendMessageReaction(true);
- }
- onSuccessListener.onSuccess(UIKitSettings.isSendMessageReaction());
- }
-
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.reactions))
+ UIKitSettings.sendMessageReaction(false);
+ else {
+ UIKitSettings.sendMessageReaction(true);
+ }
+ onSuccessListener.onSuccess(UIKitSettings.isSendMessageReaction());
+ }
+
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isCollaborativeWhiteBoardEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.collaboration_whiteboard_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.whiteboard))
- UIKitSettings.collaborativeWhiteBoard(false);
- onSuccessListener.onSuccess(UIKitSettings.isCollaborativeWhiteboard());
- }
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.whiteboard))
+ UIKitSettings.collaborativeWhiteBoard(false);
+ onSuccessListener.onSuccess(UIKitSettings.isCollaborativeWhiteboard());
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isCollaborativeDocumentEnabled(OnSuccessListener onSuccessListener) {
CometChat.isFeatureEnabled(Feature.collaboration_document_enabled,
new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.document))
- UIKitSettings.collaborativeDocument(false);
- else
- UIKitSettings.collaborativeDocument(true);
- onSuccessListener.onSuccess(UIKitSettings.isCollaborativeDocument());
- }
-
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean || !CometChat.isExtensionEnabled(Feature.Extension.document))
+ UIKitSettings.collaborativeDocument(false);
+ else
+ UIKitSettings.collaborativeDocument(true);
+ onSuccessListener.onSuccess(UIKitSettings.isCollaborativeDocument());
+ }
+
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isMessageTranslationEnabled(OnSuccessListener onSuccessListener) {
@@ -667,20 +661,20 @@ public void onError(CometChatException e) {
}
public static void isUserSearchEnabled(OnSuccessListener onSuccessListener) {
- CometChat.isFeatureEnabled(Feature.chat_users_search_enabled, new CometChat.CallbackListener() {
- @Override
- public void onSuccess(Boolean aBoolean) {
- if (!aBoolean)
- UIKitSettings.searchUser(false);
- onSuccessListener.onSuccess(UIKitSettings.isSearchUser());
+ CometChat.isFeatureEnabled(Feature.chat_users_search_enabled, new CometChat.CallbackListener() {
+ @Override
+ public void onSuccess(Boolean aBoolean) {
+ if (!aBoolean)
+ UIKitSettings.searchUser(false);
+ onSuccessListener.onSuccess(UIKitSettings.isSearchUser());
- }
+ }
- @Override
- public void onError(CometChatException e) {
- e.printStackTrace();
- }
- });
+ @Override
+ public void onError(CometChatException e) {
+ e.printStackTrace();
+ }
+ });
}
public static void isGroupSearchEnabled(OnSuccessListener onSuccessListener) {
@@ -884,7 +878,7 @@ public void onSuccess(Boolean aBoolean) {
@Override
public void onError(CometChatException e) {
- e.printStackTrace();
+ e.printStackTrace();
}
});
}
@@ -996,6 +990,14 @@ public void onError(CometChatException e) {
});
}
+ public static void isDeleteConversationEnabled(OnSuccessListener onSuccessListener) {
+ onSuccessListener.onSuccess(UIKitSettings.isDeleteConversation());
+ }
+
+ public static void isStartConversationEnabled(OnSuccessListener onSuccessListener) {
+ onSuccessListener.onSuccess(UIKitSettings.isStartConversation());
+ }
+
public interface OnSuccessListener {
void onSuccess(Boolean booleanVal);
}
diff --git a/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/UIKitSettings.java b/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/UIKitSettings.java
index 6fa6d0e..7a0301a 100644
--- a/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/UIKitSettings.java
+++ b/uikit/src/main/java/com/cometchat/pro/uikit/ui_settings/UIKitSettings.java
@@ -25,7 +25,7 @@
public class UIKitSettings {
//style
- protected static String color = "#03A9F4";
+ protected static String UIcolor = "#03A9F4";
//BottomBar
private static boolean users = true;
private static boolean groups = true;
@@ -33,8 +33,8 @@ public class UIKitSettings {
private static boolean calls = true;
private static boolean userSettings = true;
- //main
- @Deprecated private static boolean enableSendingMessage = true;
+ private static boolean startConversation = true;
+ private static boolean deleteConversation = true;
private static boolean sendMessageInOneOneOne = true;
private static boolean sendMessageInGroup = true;
@@ -181,6 +181,10 @@ public static void showReplyPrivately(boolean isEnable) {
showReplyPrivately = isEnable;
}
+ public static String getColor() {
+ return UIcolor;
+ }
+
public void addConnectionListener(String TAG) {
CometChat.addConnectionListener(TAG, new CometChat.ConnectionListener() {
@Override
@@ -329,7 +333,16 @@ public void onError(CometChatException e) {
}
public static void setColor(String color) {
- color = color;
+ UIcolor = color;
+ }
+
+
+ public static void deleteConversation(boolean isEnabled) {
+ deleteConversation = isEnabled;
+ }
+
+ public static void startConversation(boolean isEanbled) {
+ startConversation = isEanbled;
}
public static void users(boolean showUsers) {
@@ -448,7 +461,7 @@ public static void richMedia(boolean isEnable) {
public static void sendStickers(boolean isEnable) {
- sendStickers = isEnable;
+ sendStickers = isEnable;
}
public static void unreadCount(boolean isEnable) { unreadCount = isEnable; }
@@ -907,4 +920,11 @@ public static boolean isHideDeleteMessage() {
return hideDeleteMessage;
}
+ public static boolean isDeleteConversation() {
+ return deleteConversation;
+ }
+
+ public static boolean isStartConversation() {
+ return startConversation;
+ }
}
diff --git a/uikit/src/main/res-components/calls/layout/activity_cometchat_callmanager.xml b/uikit/src/main/res-components/calls/layout/activity_cometchat_callmanager.xml
index c99f594..4bcf6e4 100644
--- a/uikit/src/main/res-components/calls/layout/activity_cometchat_callmanager.xml
+++ b/uikit/src/main/res-components/calls/layout/activity_cometchat_callmanager.xml
@@ -39,6 +39,7 @@
+ tools:src="@tools:sample/avatars"/>
diff --git a/uikit/src/main/res-components/calls/layout/fragment_cometchat_calls.xml b/uikit/src/main/res-components/calls/layout/fragment_cometchat_calls.xml
index c3d33b9..b47ba98 100644
--- a/uikit/src/main/res-components/calls/layout/fragment_cometchat_calls.xml
+++ b/uikit/src/main/res-components/calls/layout/fragment_cometchat_calls.xml
@@ -21,9 +21,10 @@
android:layout_height="wrap_content"/>
diff --git a/uikit/src/main/res-components/chats/layout/cometchat_conversation_list_row.xml b/uikit/src/main/res-components/chats/layout/cometchat_conversation_list_row.xml
index f3c5456..5eb7fa6 100644
--- a/uikit/src/main/res-components/chats/layout/cometchat_conversation_list_row.xml
+++ b/uikit/src/main/res-components/chats/layout/cometchat_conversation_list_row.xml
@@ -17,25 +17,10 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
-
-
+ tools:src="@tools:sample/avatars"/>
+
-
+
+
+
+
+
@@ -293,7 +304,6 @@
+ android:layout_height="36dp" />
-
+
+
diff --git a/uikit/src/main/res-components/messagebubbles/layout/message_left_link_item.xml b/uikit/src/main/res-components/messagebubbles/layout/message_left_link_item.xml
index ace0ad5..657ee1e 100644
--- a/uikit/src/main/res-components/messagebubbles/layout/message_left_link_item.xml
+++ b/uikit/src/main/res-components/messagebubbles/layout/message_left_link_item.xml
@@ -15,6 +15,7 @@
@@ -27,7 +28,7 @@
android:layout_toEndOf="@+id/iv_user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
-
@@ -73,17 +76,9 @@
android:paddingLeft="4dp"
android:textStyle="italic"
android:paddingBottom="4dp"/>
-
-
+
-
-
+ app:cardCornerRadius="8dp"
+ android:orientation="vertical"
+ app:cardElevation="0dp"
+ android:maxWidth="200dp"
+ app:cardBackgroundColor="@android:color/transparent"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+
+
+
+
+ android:layout_height="wrap_content"
+ app:cardCornerRadius="8dp">
-
-
-
\ No newline at end of file
+ android:id="@+id/reply_image"
+ android:layout_width="48dp"
+ android:background="@drawable/cc_message_bubble_right"
+ android:layout_height="48dp"
+ android:scaleType="centerCrop"
+ tools:src="@tools:sample/avatars" />
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/messagebubbles/layout/message_left_sticker_item.xml b/uikit/src/main/res-components/messagebubbles/layout/message_left_sticker_item.xml
index 4c2643d..5fcdfac 100644
--- a/uikit/src/main/res-components/messagebubbles/layout/message_left_sticker_item.xml
+++ b/uikit/src/main/res-components/messagebubbles/layout/message_left_sticker_item.xml
@@ -15,6 +15,7 @@
-
-
-
+
-
-
+ android:layout_alignParentEnd="true"
+ app:cardCornerRadius="8dp"
+ app:cardElevation="0dp"
+ app:cardBackgroundColor="@android:color/transparent"
+ android:orientation="vertical"
+ android:maxWidth="200dp"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+
+
+
+
+
+
+
-
-
-
-
\ No newline at end of file
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxWidth="150dp"
+ android:maxLines="3"
+ android:textColor="@color/textColorWhite"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/reply_user"
+ tools:text="@string/replyTxt" />
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/messagebubbles/layout/message_right_sticker_item.xml b/uikit/src/main/res-components/messagebubbles/layout/message_right_sticker_item.xml
index 715dfb6..e2ee546 100644
--- a/uikit/src/main/res-components/messagebubbles/layout/message_right_sticker_item.xml
+++ b/uikit/src/main/res-components/messagebubbles/layout/message_right_sticker_item.xml
@@ -32,7 +32,7 @@
android:textSize="12sp"
android:textStyle="bold"
android:visibility="gone"
- tools:drawableEnd="@drawable/ic_double_tick"
+ tools:drawableEnd="@drawable/ic_message_read"
tools:text="11:00 PM"
tools:visibility="visible" />
diff --git a/uikit/src/main/res-components/messagebubbles/layout/message_right_writeboard_item.xml b/uikit/src/main/res-components/messagebubbles/layout/message_right_writeboard_item.xml
index 6f07229..f5584f7 100644
--- a/uikit/src/main/res-components/messagebubbles/layout/message_right_writeboard_item.xml
+++ b/uikit/src/main/res-components/messagebubbles/layout/message_right_writeboard_item.xml
@@ -28,7 +28,7 @@
android:layout_centerVertical="true"
android:padding="8dp"
android:id="@+id/icon"
- android:src="@drawable/ic_writeboard_24dp"
+ android:src="@drawable/ic_collaborative_document"
android:tint="@color/textColorWhite"
android:layout_width="36dp"
android:layout_height="36dp"/>
diff --git a/uikit/src/main/res-components/messagebubbles/layout/thread_message_file_item.xml b/uikit/src/main/res-components/messagebubbles/layout/thread_message_file_item.xml
index 92bb6fe..a69fea1 100644
--- a/uikit/src/main/res-components/messagebubbles/layout/thread_message_file_item.xml
+++ b/uikit/src/main/res-components/messagebubbles/layout/thread_message_file_item.xml
@@ -79,8 +79,7 @@
android:layout_height="wrap_content">
-
+ android:layout_height="32dp"/>
diff --git a/uikit/src/main/res-components/messages/layout/cometchat_composebox_actions.xml b/uikit/src/main/res-components/messages/layout/cometchat_composebox_actions.xml
index 474c4de..3627260 100644
--- a/uikit/src/main/res-components/messages/layout/cometchat_composebox_actions.xml
+++ b/uikit/src/main/res-components/messages/layout/cometchat_composebox_actions.xml
@@ -1,6 +1,5 @@
-
@@ -12,21 +13,21 @@
android:focusable="true"
android:layout_margin="8dp"
android:layout_centerVertical="true"
- android:src="@drawable/ic_arrow_back_24dp"
- android:tint="@color/primaryTextColor"
+ android:src="@drawable/ic_back_arrow_selected"
android:id="@+id/back_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
+ android:layout_height="36dp"/>
diff --git a/uikit/src/main/res-components/messages/layout/fragment_cometchat_message_actions.xml b/uikit/src/main/res-components/messages/layout/fragment_cometchat_message_actions.xml
index b3211b1..c10b845 100644
--- a/uikit/src/main/res-components/messages/layout/fragment_cometchat_message_actions.xml
+++ b/uikit/src/main/res-components/messages/layout/fragment_cometchat_message_actions.xml
@@ -1,13 +1,10 @@
-
+ xmlns:android="http://schemas.android.com/apk/res/android">
-
+
+
+
+
@@ -321,7 +319,7 @@
android:layout_height="wrap_content">
diff --git a/uikit/src/main/res-components/messages/layout/message_placeholder.xml b/uikit/src/main/res-components/messages/layout/message_placeholder.xml
index dc72e75..936c209 100644
--- a/uikit/src/main/res-components/messages/layout/message_placeholder.xml
+++ b/uikit/src/main/res-components/messages/layout/message_placeholder.xml
@@ -66,7 +66,6 @@
diff --git a/uikit/src/main/res-components/others/layout/cometchat_dialog_layout.xml b/uikit/src/main/res-components/others/layout/cometchat_dialog_layout.xml
index 20fd695..c262793 100644
--- a/uikit/src/main/res-components/others/layout/cometchat_dialog_layout.xml
+++ b/uikit/src/main/res-components/others/layout/cometchat_dialog_layout.xml
@@ -4,7 +4,6 @@
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardElevation="8dp"
- android:id="@+id/card_layout"
android:layout_height="wrap_content">
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res-components/others/layout/footer_decor.xml b/uikit/src/main/res-components/others/layout/footer_decor.xml
deleted file mode 100644
index ce1aede..0000000
--- a/uikit/src/main/res-components/others/layout/footer_decor.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
diff --git a/uikit/src/main/res-components/others/layout/group_list_row.xml b/uikit/src/main/res-components/others/layout/group_list_row.xml
index 8fd064d..27ded3b 100644
--- a/uikit/src/main/res-components/others/layout/group_list_row.xml
+++ b/uikit/src/main/res-components/others/layout/group_list_row.xml
@@ -18,14 +18,15 @@
+ android:layout_width="36dp"
+ app:corner_radius="18dp"
+ android:layout_height="36dp"/>
\ No newline at end of file
diff --git a/uikit/src/main/res-components/others/layout/view_message_box.xml b/uikit/src/main/res-components/others/layout/view_message_box.xml
deleted file mode 100644
index 9717930..0000000
--- a/uikit/src/main/res-components/others/layout/view_message_box.xml
+++ /dev/null
@@ -1,155 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res-components/shared/layout/cometchat_avatar.xml b/uikit/src/main/res-components/shared/layout/cometchat_avatar.xml
new file mode 100644
index 0000000..4f0d12a
--- /dev/null
+++ b/uikit/src/main/res-components/shared/layout/cometchat_avatar.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/shared/layout/cometchat_badge_count.xml b/uikit/src/main/res-components/shared/layout/cometchat_badge_count.xml
index ed9ffeb..71bb556 100644
--- a/uikit/src/main/res-components/shared/layout/cometchat_badge_count.xml
+++ b/uikit/src/main/res-components/shared/layout/cometchat_badge_count.xml
@@ -1,6 +1,7 @@
-
@@ -8,13 +9,12 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/shared/layout/cometchat_compose_box.xml b/uikit/src/main/res-components/shared/layout/cometchat_compose_box.xml
index b2060bb..575c8e1 100644
--- a/uikit/src/main/res-components/shared/layout/cometchat_compose_box.xml
+++ b/uikit/src/main/res-components/shared/layout/cometchat_compose_box.xml
@@ -7,56 +7,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
-
-
-
-
-
-
-
-
-
-
diff --git a/uikit/src/main/res-components/shared/layout/cometchat_shared_media_video_row.xml b/uikit/src/main/res-components/shared/layout/cometchat_shared_media_video_row.xml
index b4b0188..766ac1f 100644
--- a/uikit/src/main/res-components/shared/layout/cometchat_shared_media_video_row.xml
+++ b/uikit/src/main/res-components/shared/layout/cometchat_shared_media_video_row.xml
@@ -13,7 +13,6 @@
android:scaleType="centerCrop"
android:adjustViewBounds="true" />
-
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res-components/userprofile/layout/activity_cometchat_more_privacy.xml b/uikit/src/main/res-components/userprofile/layout/activity_cometchat_more_privacy.xml
index d27d4b8..aa0f59d 100644
--- a/uikit/src/main/res-components/userprofile/layout/activity_cometchat_more_privacy.xml
+++ b/uikit/src/main/res-components/userprofile/layout/activity_cometchat_more_privacy.xml
@@ -36,7 +36,7 @@
android:id="@+id/tv_blocked_user_count"
android:gravity="center"
android:drawablePadding="8dp"
- android:drawableEnd="@drawable/ic_arrow_right_24dp"
+ android:drawableEnd="@drawable/ic_arrow_right"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
diff --git a/uikit/src/main/res-components/userprofile/layout/fragment_cometchat_user_profile.xml b/uikit/src/main/res-components/userprofile/layout/fragment_cometchat_user_profile.xml
index d9ffdb5..9a4d804 100644
--- a/uikit/src/main/res-components/userprofile/layout/fragment_cometchat_user_profile.xml
+++ b/uikit/src/main/res-components/userprofile/layout/fragment_cometchat_user_profile.xml
@@ -28,13 +28,14 @@
android:layout_width="match_parent"
android:layout_height="72dp">
+ android:id="@+id/iv_user"/>
+
@@ -87,7 +96,7 @@
@@ -114,31 +123,24 @@
android:foreground="?attr/selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content">
+
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_gravity="center"
+ android:src="@drawable/ic_privacy" />
-
diff --git a/uikit/src/main/res-components/users/drawable/add_circle.xml b/uikit/src/main/res-components/users/drawable/add_circle.xml
new file mode 100644
index 0000000..e2e554e
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/add_circle.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/add_circle_filled.xml b/uikit/src/main/res-components/users/drawable/add_circle_filled.xml
new file mode 100644
index 0000000..75b792c
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/add_circle_filled.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_add_users_to_group.xml b/uikit/src/main/res-components/users/drawable/ic_add_users_to_group.xml
new file mode 100644
index 0000000..ad052a9
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_add_users_to_group.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_arrow_right_selected.xml b/uikit/src/main/res-components/users/drawable/ic_arrow_right_selected.xml
new file mode 100644
index 0000000..b7c2197
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_arrow_right_selected.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_arrow_right_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_arrow_right_unselected.xml
new file mode 100644
index 0000000..36902d0
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_arrow_right_unselected.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_audio.xml b/uikit/src/main/res-components/users/drawable/ic_audio.xml
new file mode 100644
index 0000000..71e38f4
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_audio.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_audiocall.xml b/uikit/src/main/res-components/users/drawable/ic_audiocall.xml
index e516b4c..a2706af 100644
--- a/uikit/src/main/res-components/users/drawable/ic_audiocall.xml
+++ b/uikit/src/main/res-components/users/drawable/ic_audiocall.xml
@@ -1,6 +1,11 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/users/drawable/ic_back_arrow_selected.xml b/uikit/src/main/res-components/users/drawable/ic_back_arrow_selected.xml
new file mode 100644
index 0000000..bbae1b0
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_back_arrow_selected.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_back_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_back_unselected.xml
new file mode 100644
index 0000000..80be180
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_back_unselected.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_calls.xml b/uikit/src/main/res-components/users/drawable/ic_calls.xml
new file mode 100644
index 0000000..bc17238
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_calls.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_calls_selected.xml b/uikit/src/main/res-components/users/drawable/ic_calls_selected.xml
new file mode 100644
index 0000000..36561ae
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_calls_selected.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_camera.xml b/uikit/src/main/res-components/users/drawable/ic_camera.xml
new file mode 100644
index 0000000..4f1e816
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_camera.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_chats.xml b/uikit/src/main/res-components/users/drawable/ic_chats.xml
new file mode 100644
index 0000000..51b8c97
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_chats.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/users/drawable/ic_chats_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_chats_unselected.xml
new file mode 100644
index 0000000..24c272a
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_chats_unselected.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_close_circle_selected.xml b/uikit/src/main/res-components/users/drawable/ic_close_circle_selected.xml
new file mode 100644
index 0000000..3608cf1
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_close_circle_selected.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_close_circle_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_close_circle_unselected.xml
new file mode 100644
index 0000000..8057ca9
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_close_circle_unselected.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_collaborative_document.xml b/uikit/src/main/res-components/users/drawable/ic_collaborative_document.xml
new file mode 100644
index 0000000..b4c1257
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_collaborative_document.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_collaborative_whiteboard.xml b/uikit/src/main/res-components/users/drawable/ic_collaborative_whiteboard.xml
new file mode 100644
index 0000000..703f92a
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_collaborative_whiteboard.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_copy.xml b/uikit/src/main/res-components/users/drawable/ic_copy.xml
new file mode 100644
index 0000000..810c2d3
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_copy.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_copy_paste.xml b/uikit/src/main/res-components/users/drawable/ic_copy_paste.xml
new file mode 100644
index 0000000..b68f659
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_copy_paste.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_create.xml b/uikit/src/main/res-components/users/drawable/ic_create.xml
new file mode 100644
index 0000000..958d8af
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_create.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_delete.xml b/uikit/src/main/res-components/users/drawable/ic_delete.xml
new file mode 100644
index 0000000..1cc805b
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_delete.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_edit.xml b/uikit/src/main/res-components/users/drawable/ic_edit.xml
new file mode 100644
index 0000000..d277097
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_edit.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_error.xml b/uikit/src/main/res-components/users/drawable/ic_error.xml
new file mode 100644
index 0000000..114d975
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_error.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_file.xml b/uikit/src/main/res-components/users/drawable/ic_file.xml
new file mode 100644
index 0000000..d24a822
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_file.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_file_upload.xml b/uikit/src/main/res-components/users/drawable/ic_file_upload.xml
new file mode 100644
index 0000000..61c9d0f
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_file_upload.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_forward.xml b/uikit/src/main/res-components/users/drawable/ic_forward.xml
new file mode 100644
index 0000000..cf76ec1
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_forward.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_groups.xml b/uikit/src/main/res-components/users/drawable/ic_groups.xml
new file mode 100644
index 0000000..9b75fc7
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_groups.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_groups_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_groups_unselected.xml
new file mode 100644
index 0000000..50526cd
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_groups_unselected.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_hand.xml b/uikit/src/main/res-components/users/drawable/ic_hand.xml
new file mode 100644
index 0000000..c17d998
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_hand.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_image_library.xml b/uikit/src/main/res-components/users/drawable/ic_image_library.xml
new file mode 100644
index 0000000..bd4d712
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_image_library.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_incoming_call.xml b/uikit/src/main/res-components/users/drawable/ic_incoming_call.xml
new file mode 100644
index 0000000..bf926ad
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_incoming_call.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_incoming_video_call.xml b/uikit/src/main/res-components/users/drawable/ic_incoming_video_call.xml
new file mode 100644
index 0000000..cfc8d10
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_incoming_video_call.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_info.xml b/uikit/src/main/res-components/users/drawable/ic_info.xml
index b1dae71..66b6e09 100644
--- a/uikit/src/main/res-components/users/drawable/ic_info.xml
+++ b/uikit/src/main/res-components/users/drawable/ic_info.xml
@@ -1,12 +1,27 @@
+ android:pathData="M12.8,14.6H12.2C11.8818,14.6 11.5766,14.4736 11.3515,14.2485C11.1265,14.0235 11,13.7182 11,13.4V10.4C11,10.2409 10.9368,10.0882 10.8243,9.9757C10.7118,9.8632 10.5592,9.8 10.4,9.8H9.8"
+ android:strokeLineJoin="round"
+ android:strokeWidth="1.5"
+ android:fillColor="#00000000"
+ android:strokeColor="#808080"
+ android:strokeLineCap="round"/>
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_info_selected.xml b/uikit/src/main/res-components/users/drawable/ic_info_selected.xml
new file mode 100644
index 0000000..5e3dead
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_info_selected.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_info_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_info_unselected.xml
new file mode 100644
index 0000000..371e6b3
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_info_unselected.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_location.xml b/uikit/src/main/res-components/users/drawable/ic_location.xml
new file mode 100644
index 0000000..6e2b936
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_location.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_message_delivered.xml b/uikit/src/main/res-components/users/drawable/ic_message_delivered.xml
new file mode 100644
index 0000000..b1e6daf
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_message_delivered.xml
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_message_read.xml b/uikit/src/main/res-components/users/drawable/ic_message_read.xml
new file mode 100644
index 0000000..7220ff8
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_message_read.xml
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_message_sent.xml b/uikit/src/main/res-components/users/drawable/ic_message_sent.xml
new file mode 100644
index 0000000..9a8dbb5
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_message_sent.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_microphone_grey_selected.xml b/uikit/src/main/res-components/users/drawable/ic_microphone_grey_selected.xml
new file mode 100644
index 0000000..a1cc1c8
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_microphone_grey_selected.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_microphone_grey_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_microphone_grey_unselected.xml
new file mode 100644
index 0000000..9d628d3
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_microphone_grey_unselected.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_microphone_white_selected.xml b/uikit/src/main/res-components/users/drawable/ic_microphone_white_selected.xml
new file mode 100644
index 0000000..a7bf108
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_microphone_white_selected.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_microphone_white_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_microphone_white_unselected.xml
new file mode 100644
index 0000000..ee1438c
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_microphone_white_unselected.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_more.xml b/uikit/src/main/res-components/users/drawable/ic_more.xml
new file mode 100644
index 0000000..8c707b0
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_more.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_more_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_more_unselected.xml
new file mode 100644
index 0000000..789a3ff
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_more_unselected.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_notifications.xml b/uikit/src/main/res-components/users/drawable/ic_notifications.xml
new file mode 100644
index 0000000..cb9d133
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_notifications.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_outgoing_call.xml b/uikit/src/main/res-components/users/drawable/ic_outgoing_call.xml
new file mode 100644
index 0000000..b91c24a
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_outgoing_call.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_outgoing_video_call.xml b/uikit/src/main/res-components/users/drawable/ic_outgoing_video_call.xml
new file mode 100644
index 0000000..67ad331
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_outgoing_video_call.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_polls.xml b/uikit/src/main/res-components/users/drawable/ic_polls.xml
new file mode 100644
index 0000000..931aaa2
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_polls.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_privacy.xml b/uikit/src/main/res-components/users/drawable/ic_privacy.xml
new file mode 100644
index 0000000..32d890b
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_privacy.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_reactions.xml b/uikit/src/main/res-components/users/drawable/ic_reactions.xml
new file mode 100644
index 0000000..e9e47be
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_reactions.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_reply_message.xml b/uikit/src/main/res-components/users/drawable/ic_reply_message.xml
new file mode 100644
index 0000000..fce27d1
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_reply_message.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_reply_message_in_private.xml b/uikit/src/main/res-components/users/drawable/ic_reply_message_in_private.xml
new file mode 100644
index 0000000..78bc61d
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_reply_message_in_private.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_report.xml b/uikit/src/main/res-components/users/drawable/ic_report.xml
new file mode 100644
index 0000000..c3ef177
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_report.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_search.xml b/uikit/src/main/res-components/users/drawable/ic_search.xml
new file mode 100644
index 0000000..16aca4b
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_search.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_send_message.xml b/uikit/src/main/res-components/users/drawable/ic_send_message.xml
new file mode 100644
index 0000000..39a1ec0
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_send_message.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_send_message_in_private.xml b/uikit/src/main/res-components/users/drawable/ic_send_message_in_private.xml
new file mode 100644
index 0000000..b420364
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_send_message_in_private.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_send_message_selected.xml b/uikit/src/main/res-components/users/drawable/ic_send_message_selected.xml
new file mode 100644
index 0000000..dfdebad
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_send_message_selected.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_share.xml b/uikit/src/main/res-components/users/drawable/ic_share.xml
new file mode 100644
index 0000000..222aea2
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_share.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_sticker.xml b/uikit/src/main/res-components/users/drawable/ic_sticker.xml
new file mode 100644
index 0000000..fcf3cb4
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_sticker.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_threaded_message.xml b/uikit/src/main/res-components/users/drawable/ic_threaded_message.xml
new file mode 100644
index 0000000..456376c
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_threaded_message.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_translate.xml b/uikit/src/main/res-components/users/drawable/ic_translate.xml
new file mode 100644
index 0000000..d30071a
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_translate.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_users.xml b/uikit/src/main/res-components/users/drawable/ic_users.xml
new file mode 100644
index 0000000..7828b63
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_users.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_users_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_users_unselected.xml
new file mode 100644
index 0000000..9d4dda0
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_users_unselected.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_video_call.xml b/uikit/src/main/res-components/users/drawable/ic_video_call.xml
new file mode 100644
index 0000000..e28855b
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_video_call.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_video_call_selected.xml b/uikit/src/main/res-components/users/drawable/ic_video_call_selected.xml
new file mode 100644
index 0000000..21cd9a0
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_video_call_selected.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_video_group_call_selected.xml b/uikit/src/main/res-components/users/drawable/ic_video_group_call_selected.xml
new file mode 100644
index 0000000..53c38d8
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_video_group_call_selected.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_video_group_call_unselected.xml b/uikit/src/main/res-components/users/drawable/ic_video_group_call_unselected.xml
new file mode 100644
index 0000000..8c27ca5
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_video_group_call_unselected.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/drawable/ic_videocall.xml b/uikit/src/main/res-components/users/drawable/ic_videocall.xml
index 9dc81c0..de629eb 100644
--- a/uikit/src/main/res-components/users/drawable/ic_videocall.xml
+++ b/uikit/src/main/res-components/users/drawable/ic_videocall.xml
@@ -1,6 +1,7 @@
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res-components/users/drawable/ic_warning.xml b/uikit/src/main/res-components/users/drawable/ic_warning.xml
new file mode 100644
index 0000000..4fe28aa
--- /dev/null
+++ b/uikit/src/main/res-components/users/drawable/ic_warning.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/uikit/src/main/res-components/users/layout/activity_cometchat_user_detail.xml b/uikit/src/main/res-components/users/layout/activity_cometchat_user_detail.xml
index cd1400c..812447e 100644
--- a/uikit/src/main/res-components/users/layout/activity_cometchat_user_detail.xml
+++ b/uikit/src/main/res-components/users/layout/activity_cometchat_user_detail.xml
@@ -9,6 +9,7 @@
android:layout_width="match_parent"
android:id="@+id/user_detail_toolbar"
app:title="@string/user_title"
+ app:navigationIcon="@drawable/ic_back_arrow_selected"
android:layout_height="wrap_content"/>
+ android:layout_height="36dp"/>
+ tools:src="@tools:sample/avatars"/>
diff --git a/uikit/src/main/res/anim/animate_left_slide.xml b/uikit/src/main/res/anim/animate_left_slide.xml
deleted file mode 100644
index aa5d6f7..0000000
--- a/uikit/src/main/res/anim/animate_left_slide.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/anim/animate_right_slide.xml b/uikit/src/main/res/anim/animate_right_slide.xml
deleted file mode 100644
index d2387af..0000000
--- a/uikit/src/main/res/anim/animate_right_slide.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/anim/animate_up_slide.xml b/uikit/src/main/res/anim/animate_up_slide.xml
deleted file mode 100644
index 4f32193..0000000
--- a/uikit/src/main/res/anim/animate_up_slide.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable-hdpi/ic_edit.png b/uikit/src/main/res/drawable-hdpi/ic_edit.png
deleted file mode 100644
index 781504f..0000000
Binary files a/uikit/src/main/res/drawable-hdpi/ic_edit.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable-hdpi/ic_warning_image.png b/uikit/src/main/res/drawable-hdpi/ic_warning_image.png
deleted file mode 100644
index 11188ec..0000000
Binary files a/uikit/src/main/res/drawable-hdpi/ic_warning_image.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable-mdpi/ic_warning_image.png b/uikit/src/main/res/drawable-mdpi/ic_warning_image.png
deleted file mode 100644
index e43955e..0000000
Binary files a/uikit/src/main/res/drawable-mdpi/ic_warning_image.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable-xhdpi/ic_warning_image.png b/uikit/src/main/res/drawable-xhdpi/ic_warning_image.png
deleted file mode 100644
index 69dcef4..0000000
Binary files a/uikit/src/main/res/drawable-xhdpi/ic_warning_image.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable-xxhdpi/ic_warning_image.png b/uikit/src/main/res/drawable-xxhdpi/ic_warning_image.png
deleted file mode 100644
index 436ae9f..0000000
Binary files a/uikit/src/main/res/drawable-xxhdpi/ic_warning_image.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable-xxxhdpi/ic_warning_image.png b/uikit/src/main/res/drawable-xxxhdpi/ic_warning_image.png
deleted file mode 100644
index 4810121..0000000
Binary files a/uikit/src/main/res/drawable-xxxhdpi/ic_warning_image.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/cc_message_bubble_left.xml b/uikit/src/main/res/drawable/cc_message_bubble_left.xml
index 6fc49fb..569f1e6 100755
--- a/uikit/src/main/res/drawable/cc_message_bubble_left.xml
+++ b/uikit/src/main/res/drawable/cc_message_bubble_left.xml
@@ -6,7 +6,8 @@
android:bottom="2px">
-
+
diff --git a/uikit/src/main/res/drawable/cc_message_bubble_right.xml b/uikit/src/main/res/drawable/cc_message_bubble_right.xml
index 7e2b606..6752f13 100755
--- a/uikit/src/main/res/drawable/cc_message_bubble_right.xml
+++ b/uikit/src/main/res/drawable/cc_message_bubble_right.xml
@@ -6,7 +6,8 @@
android:bottom="2px">
-
+
diff --git a/uikit/src/main/res/drawable/copy.png b/uikit/src/main/res/drawable/copy.png
deleted file mode 100644
index de1e672..0000000
Binary files a/uikit/src/main/res/drawable/copy.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/default_map.png b/uikit/src/main/res/drawable/default_map.png
new file mode 100644
index 0000000..9e0fc14
Binary files /dev/null and b/uikit/src/main/res/drawable/default_map.png differ
diff --git a/uikit/src/main/res/drawable/default_sticker.png b/uikit/src/main/res/drawable/default_sticker.png
deleted file mode 100644
index c8f15b4..0000000
Binary files a/uikit/src/main/res/drawable/default_sticker.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/forward.png b/uikit/src/main/res/drawable/forward.png
deleted file mode 100644
index a4701de..0000000
Binary files a/uikit/src/main/res/drawable/forward.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/ic_add.xml b/uikit/src/main/res/drawable/ic_add.xml
index f2a5c23..e77eead 100755
--- a/uikit/src/main/res/drawable/ic_add.xml
+++ b/uikit/src/main/res/drawable/ic_add.xml
@@ -1,5 +1,6 @@
-
-
-
-
\ No newline at end of file
+
+
+
+
+
diff --git a/uikit/src/main/res/drawable/ic_add_24dp.xml b/uikit/src/main/res/drawable/ic_add_24dp.xml
deleted file mode 100644
index b5c6c73..0000000
--- a/uikit/src/main/res/drawable/ic_add_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_add_circle_grey.xml b/uikit/src/main/res/drawable/ic_add_circle_grey.xml
new file mode 100644
index 0000000..e05e8a2
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_add_circle_grey.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_add_circle_grey_32dp.xml b/uikit/src/main/res/drawable/ic_add_circle_grey_32dp.xml
deleted file mode 100644
index ee81581..0000000
--- a/uikit/src/main/res/drawable/ic_add_circle_grey_32dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_arrow_back_24dp.xml b/uikit/src/main/res/drawable/ic_arrow_back_24dp.xml
deleted file mode 100644
index f632160..0000000
--- a/uikit/src/main/res/drawable/ic_arrow_back_24dp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_arrow_right.xml b/uikit/src/main/res/drawable/ic_arrow_right.xml
new file mode 100644
index 0000000..4746484
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_arrow_right.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_arrow_right_24dp.xml b/uikit/src/main/res/drawable/ic_arrow_right_24dp.xml
deleted file mode 100644
index 5bc098b..0000000
--- a/uikit/src/main/res/drawable/ic_arrow_right_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_back.xml b/uikit/src/main/res/drawable/ic_back.xml
new file mode 100644
index 0000000..663bab2
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_back.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_baseline_error_24.xml b/uikit/src/main/res/drawable/ic_baseline_error_24.xml
deleted file mode 100644
index 1fa8716..0000000
--- a/uikit/src/main/res/drawable/ic_baseline_error_24.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_baseline_more_vert_24.xml b/uikit/src/main/res/drawable/ic_baseline_more_vert_24.xml
index 48272f6..fde5725 100644
--- a/uikit/src/main/res/drawable/ic_baseline_more_vert_24.xml
+++ b/uikit/src/main/res/drawable/ic_baseline_more_vert_24.xml
@@ -5,6 +5,6 @@
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
diff --git a/uikit/src/main/res/drawable/ic_call_24dp.xml b/uikit/src/main/res/drawable/ic_call_24dp.xml
deleted file mode 100644
index ebf9de6..0000000
--- a/uikit/src/main/res/drawable/ic_call_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_call_green24dp.xml b/uikit/src/main/res/drawable/ic_call_green24dp.xml
deleted file mode 100644
index f19c931..0000000
--- a/uikit/src/main/res/drawable/ic_call_green24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_call_missed_incoming_24dp.xml b/uikit/src/main/res/drawable/ic_call_missed_incoming_24dp.xml
index 57d1cd7..c41e014 100644
--- a/uikit/src/main/res/drawable/ic_call_missed_incoming_24dp.xml
+++ b/uikit/src/main/res/drawable/ic_call_missed_incoming_24dp.xml
@@ -1,4 +1,4 @@
-
diff --git a/uikit/src/main/res/drawable/ic_call_missed_outgoing_24dp.xml b/uikit/src/main/res/drawable/ic_call_missed_outgoing_24dp.xml
index 057efff..1214277 100644
--- a/uikit/src/main/res/drawable/ic_call_missed_outgoing_24dp.xml
+++ b/uikit/src/main/res/drawable/ic_call_missed_outgoing_24dp.xml
@@ -1,4 +1,4 @@
-
diff --git a/uikit/src/main/res/drawable/ic_camera.xml b/uikit/src/main/res/drawable/ic_camera.xml
deleted file mode 100644
index 83ad59e..0000000
--- a/uikit/src/main/res/drawable/ic_camera.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_chat.xml b/uikit/src/main/res/drawable/ic_chat.xml
deleted file mode 100755
index 80caabf..0000000
--- a/uikit/src/main/res/drawable/ic_chat.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_chat_pin_white_24dp.xml b/uikit/src/main/res/drawable/ic_chat_pin_white_24dp.xml
deleted file mode 100644
index c76ecac..0000000
--- a/uikit/src/main/res/drawable/ic_chat_pin_white_24dp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_chats.png b/uikit/src/main/res/drawable/ic_chats.png
deleted file mode 100644
index 6324266..0000000
Binary files a/uikit/src/main/res/drawable/ic_chats.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/ic_chats_selected.xml b/uikit/src/main/res/drawable/ic_chats_selected.xml
new file mode 100644
index 0000000..b18fa53
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_chats_selected.xml
@@ -0,0 +1,13 @@
+
+
+
diff --git a/uikit/src/main/res/drawable/ic_check_black_24dp.xml b/uikit/src/main/res/drawable/ic_check_black_24dp.xml
deleted file mode 100644
index 9019a15..0000000
--- a/uikit/src/main/res/drawable/ic_check_black_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_circle_outline_12dp.xml b/uikit/src/main/res/drawable/ic_circle_outline_12dp.xml
deleted file mode 100644
index d105190..0000000
--- a/uikit/src/main/res/drawable/ic_circle_outline_12dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_close_24dp.xml b/uikit/src/main/res/drawable/ic_close_24dp.xml
index 5bd1ee8..56150dc 100644
--- a/uikit/src/main/res/drawable/ic_close_24dp.xml
+++ b/uikit/src/main/res/drawable/ic_close_24dp.xml
@@ -1,5 +1,20 @@
-
-
+
+
+
diff --git a/uikit/src/main/res/drawable/ic_close_circle.xml b/uikit/src/main/res/drawable/ic_close_circle.xml
index c35a0af..34972f6 100644
--- a/uikit/src/main/res/drawable/ic_close_circle.xml
+++ b/uikit/src/main/res/drawable/ic_close_circle.xml
@@ -1,5 +1,5 @@
-
-
-
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_contacts_24dp.xml b/uikit/src/main/res/drawable/ic_contacts_24dp.xml
deleted file mode 100644
index af96087..0000000
--- a/uikit/src/main/res/drawable/ic_contacts_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_content_copy_black_24dp.xml b/uikit/src/main/res/drawable/ic_content_copy_black_24dp.xml
deleted file mode 100644
index 8a894a3..0000000
--- a/uikit/src/main/res/drawable/ic_content_copy_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_delete.png b/uikit/src/main/res/drawable/ic_delete.png
deleted file mode 100644
index 31bae4b..0000000
Binary files a/uikit/src/main/res/drawable/ic_delete.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/ic_delete_24dp.xml b/uikit/src/main/res/drawable/ic_delete_24dp.xml
deleted file mode 100644
index f696718..0000000
--- a/uikit/src/main/res/drawable/ic_delete_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_delete_conversation.xml b/uikit/src/main/res/drawable/ic_delete_conversation.xml
new file mode 100644
index 0000000..1a9194b
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_delete_conversation.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
diff --git a/uikit/src/main/res/drawable/ic_done_all_black_24dp.xml b/uikit/src/main/res/drawable/ic_done_all_black_24dp.xml
deleted file mode 100644
index 39990bb..0000000
--- a/uikit/src/main/res/drawable/ic_done_all_black_24dp.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_double_tick.xml b/uikit/src/main/res/drawable/ic_double_tick.xml
deleted file mode 100755
index 099dda1..0000000
--- a/uikit/src/main/res/drawable/ic_double_tick.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_file_download.xml b/uikit/src/main/res/drawable/ic_file_download.xml
deleted file mode 100644
index 84db281..0000000
--- a/uikit/src/main/res/drawable/ic_file_download.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_forward.xml b/uikit/src/main/res/drawable/ic_forward.xml
deleted file mode 100644
index a121e65..0000000
--- a/uikit/src/main/res/drawable/ic_forward.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_group.xml b/uikit/src/main/res/drawable/ic_group.xml
deleted file mode 100644
index 5c90d29..0000000
--- a/uikit/src/main/res/drawable/ic_group.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_group_add_black_24dp.xml b/uikit/src/main/res/drawable/ic_group_add_black_24dp.xml
deleted file mode 100644
index 8220314..0000000
--- a/uikit/src/main/res/drawable/ic_group_add_black_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_groups_selected.xml b/uikit/src/main/res/drawable/ic_groups_selected.xml
new file mode 100644
index 0000000..c32aeef
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_groups_selected.xml
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/uikit/src/main/res/drawable/ic_hand.xml b/uikit/src/main/res/drawable/ic_hand.xml
deleted file mode 100644
index c3b2281..0000000
--- a/uikit/src/main/res/drawable/ic_hand.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_happy.xml b/uikit/src/main/res/drawable/ic_happy.xml
deleted file mode 100644
index 8e9c44e..0000000
--- a/uikit/src/main/res/drawable/ic_happy.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_help.xml b/uikit/src/main/res/drawable/ic_help.xml
deleted file mode 100755
index 7c280d3..0000000
--- a/uikit/src/main/res/drawable/ic_help.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_help_24dp.xml b/uikit/src/main/res/drawable/ic_help_24dp.xml
deleted file mode 100644
index f6a5215..0000000
--- a/uikit/src/main/res/drawable/ic_help_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_info_image.png b/uikit/src/main/res/drawable/ic_info_image.png
deleted file mode 100644
index 055c2fc..0000000
Binary files a/uikit/src/main/res/drawable/ic_info_image.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml b/uikit/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml
deleted file mode 100644
index bb78063..0000000
--- a/uikit/src/main/res/drawable/ic_insert_drive_file_black_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_keyboard_arrow_down_red_24dp.xml b/uikit/src/main/res/drawable/ic_keyboard_arrow_down_red_24dp.xml
deleted file mode 100644
index 1d309e9..0000000
--- a/uikit/src/main/res/drawable/ic_keyboard_arrow_down_red_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml b/uikit/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
deleted file mode 100644
index 4a3f179..0000000
--- a/uikit/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_keyboard_arrow_up_green_24dp.xml b/uikit/src/main/res/drawable/ic_keyboard_arrow_up_green_24dp.xml
deleted file mode 100644
index 7276ae8..0000000
--- a/uikit/src/main/res/drawable/ic_keyboard_arrow_up_green_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_keyboard_black_24dp.xml b/uikit/src/main/res/drawable/ic_keyboard_black_24dp.xml
deleted file mode 100644
index 4f594a1..0000000
--- a/uikit/src/main/res/drawable/ic_keyboard_black_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_library_music_24dp.xml b/uikit/src/main/res/drawable/ic_library_music_24dp.xml
deleted file mode 100644
index 3e60c09..0000000
--- a/uikit/src/main/res/drawable/ic_library_music_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_mic_grey.xml b/uikit/src/main/res/drawable/ic_mic_grey.xml
new file mode 100644
index 0000000..f80e4c8
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_mic_grey.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_mic_grey_24dp.xml b/uikit/src/main/res/drawable/ic_mic_grey_24dp.xml
deleted file mode 100644
index a734aad..0000000
--- a/uikit/src/main/res/drawable/ic_mic_grey_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_mic_white.xml b/uikit/src/main/res/drawable/ic_mic_white.xml
new file mode 100644
index 0000000..240127a
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_mic_white.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_mic_white_24dp.xml b/uikit/src/main/res/drawable/ic_mic_white_24dp.xml
deleted file mode 100644
index 877b8c1..0000000
--- a/uikit/src/main/res/drawable/ic_mic_white_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_missed_video_call_24dp.xml b/uikit/src/main/res/drawable/ic_missed_video_call_24dp.xml
deleted file mode 100644
index c5a49d1..0000000
--- a/uikit/src/main/res/drawable/ic_missed_video_call_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_more.xml b/uikit/src/main/res/drawable/ic_more.xml
deleted file mode 100644
index 8a5434e..0000000
--- a/uikit/src/main/res/drawable/ic_more.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_more_selected.xml b/uikit/src/main/res/drawable/ic_more_selected.xml
new file mode 100644
index 0000000..3e82351
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_more_selected.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/uikit/src/main/res/drawable/ic_near_me_24dp.xml b/uikit/src/main/res/drawable/ic_near_me_24dp.xml
deleted file mode 100644
index 7a97d60..0000000
--- a/uikit/src/main/res/drawable/ic_near_me_24dp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_notification.xml b/uikit/src/main/res/drawable/ic_notification.xml
deleted file mode 100755
index 0b77b8e..0000000
--- a/uikit/src/main/res/drawable/ic_notification.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_notifications_black_24dp.xml b/uikit/src/main/res/drawable/ic_notifications_black_24dp.xml
deleted file mode 100644
index 17141e5..0000000
--- a/uikit/src/main/res/drawable/ic_notifications_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_photo.xml b/uikit/src/main/res/drawable/ic_photo.xml
deleted file mode 100644
index f695bd6..0000000
--- a/uikit/src/main/res/drawable/ic_photo.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_pin_circle_24dp.xml b/uikit/src/main/res/drawable/ic_pin_circle_24dp.xml
deleted file mode 100644
index 0522016..0000000
--- a/uikit/src/main/res/drawable/ic_pin_circle_24dp.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_poll_24dp.xml b/uikit/src/main/res/drawable/ic_poll_24dp.xml
deleted file mode 100644
index 2059e8b..0000000
--- a/uikit/src/main/res/drawable/ic_poll_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_reply.xml b/uikit/src/main/res/drawable/ic_reply.xml
deleted file mode 100644
index 82c6dc3..0000000
--- a/uikit/src/main/res/drawable/ic_reply.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_reply_24dp.xml b/uikit/src/main/res/drawable/ic_reply_24dp.xml
deleted file mode 100644
index 72a87676..0000000
--- a/uikit/src/main/res/drawable/ic_reply_24dp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_report_problem.xml b/uikit/src/main/res/drawable/ic_report_problem.xml
deleted file mode 100755
index dfcee6a..0000000
--- a/uikit/src/main/res/drawable/ic_report_problem.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_report_problem_24dp.xml b/uikit/src/main/res/drawable/ic_report_problem_24dp.xml
deleted file mode 100644
index e2920f7..0000000
--- a/uikit/src/main/res/drawable/ic_report_problem_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_search_24dp.xml b/uikit/src/main/res/drawable/ic_search_24dp.xml
deleted file mode 100644
index b2d0147..0000000
--- a/uikit/src/main/res/drawable/ic_search_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_security.xml b/uikit/src/main/res/drawable/ic_security.xml
deleted file mode 100755
index b046468..0000000
--- a/uikit/src/main/res/drawable/ic_security.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_send.xml b/uikit/src/main/res/drawable/ic_send.xml
index 3f8d347..3c80770 100644
--- a/uikit/src/main/res/drawable/ic_send.xml
+++ b/uikit/src/main/res/drawable/ic_send.xml
@@ -1,9 +1,7 @@
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_share_24dp.xml b/uikit/src/main/res/drawable/ic_share_24dp.xml
deleted file mode 100644
index f3a3196..0000000
--- a/uikit/src/main/res/drawable/ic_share_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_thread_24dp.xml b/uikit/src/main/res/drawable/ic_thread_24dp.xml
deleted file mode 100644
index 4ee41d9..0000000
--- a/uikit/src/main/res/drawable/ic_thread_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_translate.xml b/uikit/src/main/res/drawable/ic_translate.xml
deleted file mode 100644
index 20ddcb0..0000000
--- a/uikit/src/main/res/drawable/ic_translate.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_unreadchat_bubble_white_24dp.xml b/uikit/src/main/res/drawable/ic_unreadchat_bubble_white_24dp.xml
deleted file mode 100644
index 370183d..0000000
--- a/uikit/src/main/res/drawable/ic_unreadchat_bubble_white_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_users_selected.xml b/uikit/src/main/res/drawable/ic_users_selected.xml
new file mode 100644
index 0000000..d2e193f
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_users_selected.xml
@@ -0,0 +1,13 @@
+
+
+
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
deleted file mode 100644
index d242ad8..0000000
--- a/uikit/src/main/res/drawable/ic_video_call_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_video_group_call.xml b/uikit/src/main/res/drawable/ic_video_group_call.xml
new file mode 100644
index 0000000..80cbd5a
--- /dev/null
+++ b/uikit/src/main/res/drawable/ic_video_group_call.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_videocam_24dp.xml b/uikit/src/main/res/drawable/ic_videocam_24dp.xml
deleted file mode 100644
index 5498ba1..0000000
--- a/uikit/src/main/res/drawable/ic_videocam_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/uikit/src/main/res/drawable/ic_videocam_green_24dp.xml b/uikit/src/main/res/drawable/ic_videocam_green_24dp.xml
deleted file mode 100644
index 246475d..0000000
--- a/uikit/src/main/res/drawable/ic_videocam_green_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/ic_whiteboard_24dp.png b/uikit/src/main/res/drawable/ic_whiteboard_24dp.png
deleted file mode 100644
index 3203dbf..0000000
Binary files a/uikit/src/main/res/drawable/ic_whiteboard_24dp.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/ic_writeboard_24dp.png b/uikit/src/main/res/drawable/ic_writeboard_24dp.png
deleted file mode 100644
index 1c10e29..0000000
Binary files a/uikit/src/main/res/drawable/ic_writeboard_24dp.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/info.png b/uikit/src/main/res/drawable/info.png
deleted file mode 100644
index 055c2fc..0000000
Binary files a/uikit/src/main/res/drawable/info.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/left_border_lmessage.xml b/uikit/src/main/res/drawable/left_border_lmessage.xml
index 8a5ec9a..0fecb59 100644
--- a/uikit/src/main/res/drawable/left_border_lmessage.xml
+++ b/uikit/src/main/res/drawable/left_border_lmessage.xml
@@ -3,8 +3,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/left_border_rmessage.xml b/uikit/src/main/res/drawable/left_border_rmessage.xml
index 47a5e4b..6502a0b 100644
--- a/uikit/src/main/res/drawable/left_border_rmessage.xml
+++ b/uikit/src/main/res/drawable/left_border_rmessage.xml
@@ -3,7 +3,7 @@
-
+
diff --git a/uikit/src/main/res/drawable/reply.png b/uikit/src/main/res/drawable/reply.png
deleted file mode 100644
index 6134649..0000000
Binary files a/uikit/src/main/res/drawable/reply.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/reply_privately.png b/uikit/src/main/res/drawable/reply_privately.png
deleted file mode 100644
index 3d758fc..0000000
Binary files a/uikit/src/main/res/drawable/reply_privately.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/share.png b/uikit/src/main/res/drawable/share.png
deleted file mode 100644
index 4db3d51..0000000
Binary files a/uikit/src/main/res/drawable/share.png and /dev/null differ
diff --git a/uikit/src/main/res/drawable/smart_reply.xml b/uikit/src/main/res/drawable/smart_reply.xml
deleted file mode 100644
index c9e18d0..0000000
--- a/uikit/src/main/res/drawable/smart_reply.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/start_converastion_tab_state.xml b/uikit/src/main/res/drawable/start_converastion_tab_state.xml
new file mode 100644
index 0000000..e0b9b22
--- /dev/null
+++ b/uikit/src/main/res/drawable/start_converastion_tab_state.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/start_conversation_tab_active.xml b/uikit/src/main/res/drawable/start_conversation_tab_active.xml
new file mode 100644
index 0000000..0f9a2b3
--- /dev/null
+++ b/uikit/src/main/res/drawable/start_conversation_tab_active.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/thin_rounded_border.xml b/uikit/src/main/res/drawable/thin_rounded_border.xml
deleted file mode 100644
index cff1883..0000000
--- a/uikit/src/main/res/drawable/thin_rounded_border.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/uikit/src/main/res/drawable/thread.png b/uikit/src/main/res/drawable/thread.png
deleted file mode 100644
index 7b9ad8b..0000000
Binary files a/uikit/src/main/res/drawable/thread.png and /dev/null differ
diff --git a/uikit/src/main/res/layout/activity_comet_chat_start_conversation.xml b/uikit/src/main/res/layout/activity_comet_chat_start_conversation.xml
new file mode 100644
index 0000000..a6d50ff
--- /dev/null
+++ b/uikit/src/main/res/layout/activity_comet_chat_start_conversation.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uikit/src/main/res/menu/cometchat_navigation_bottom.xml b/uikit/src/main/res/menu/cometchat_navigation_bottom.xml
index 43f5f00..ebe3179 100644
--- a/uikit/src/main/res/menu/cometchat_navigation_bottom.xml
+++ b/uikit/src/main/res/menu/cometchat_navigation_bottom.xml
@@ -9,15 +9,15 @@
+ android:icon="@drawable/ic_audiocall" />
+ android:icon="@drawable/ic_users"/>
\ No newline at end of file
diff --git a/uikit/src/main/res/raw/incoming_call.wav b/uikit/src/main/res/raw/incoming_call.wav
index 83b86ab..742a253 100644
Binary files a/uikit/src/main/res/raw/incoming_call.wav and b/uikit/src/main/res/raw/incoming_call.wav differ
diff --git a/uikit/src/main/res/raw/incoming_message.wav b/uikit/src/main/res/raw/incoming_message.wav
index 042b935..3b1d636 100644
Binary files a/uikit/src/main/res/raw/incoming_message.wav and b/uikit/src/main/res/raw/incoming_message.wav differ
diff --git a/uikit/src/main/res/raw/outgoing_call.wav b/uikit/src/main/res/raw/outgoing_call.wav
index 7fa2615..aff9792 100644
Binary files a/uikit/src/main/res/raw/outgoing_call.wav and b/uikit/src/main/res/raw/outgoing_call.wav differ
diff --git a/uikit/src/main/res/raw/outgoing_message.wav b/uikit/src/main/res/raw/outgoing_message.wav
index d7c4282..667431f 100644
Binary files a/uikit/src/main/res/raw/outgoing_message.wav and b/uikit/src/main/res/raw/outgoing_message.wav differ
diff --git a/uikit/src/main/res/raw/record_error.wav b/uikit/src/main/res/raw/record_error.wav
deleted file mode 100644
index 9749c15..0000000
Binary files a/uikit/src/main/res/raw/record_error.wav and /dev/null differ
diff --git a/uikit/src/main/res/raw/record_finished.wav b/uikit/src/main/res/raw/record_finished.wav
deleted file mode 100644
index 3844708..0000000
Binary files a/uikit/src/main/res/raw/record_finished.wav and /dev/null differ
diff --git a/uikit/src/main/res/raw/record_start.wav b/uikit/src/main/res/raw/record_start.wav
deleted file mode 100644
index cc4a1f3..0000000
Binary files a/uikit/src/main/res/raw/record_start.wav and /dev/null differ
diff --git a/uikit/src/main/res/values-ar/strings.xml b/uikit/src/main/res/values-ar/strings.xml
index 2ba63b8..25a695b 100644
--- a/uikit/src/main/res/values-ar/strings.xml
+++ b/uikit/src/main/res/values-ar/strings.xml
@@ -4,9 +4,7 @@
المكالماتالمجموعاتالمزيد
- إرسال...⚠️ تم حذف هذه الرسالة
- ⚠️ قمت بحذف هذه الرسالةعرض على يوتيوب📷 صور📹 فيديو
@@ -21,91 +19,54 @@
📝 السبورة📃 وثيقةعبر الإنترنت
- غير متصلأنتمشرفمدير الجلسةمشاركالخصوصية والأمان
- الخصوصيةالمستخدمون المحظورون
- الجميعالتفضيلاتلقد حظرتالأعضاء
- إلى الخلفإلغاءنص تم نسخه إلى الحافظةاليومالبارحة
- كتابة...هو كتابة...
- إغلاقيرجى إدخال اسم المجموعة
- منعش...إلغاء الحظرجعل مشرف المجموعةجعل مشرف المجموعةالإداريون
- إضافة مشرف
- إضافة مشرفمالكتعيين كمشرف المجموعةإزالة كمشرف المجموعةتعيين كمنسق للمجموعةإزالة كمجموعة مشرف
- تتم إزالة كمشرف المجموعةتتم إزالة كمشرف مجموعةهو الآن المشرفهو الآن مشرف⚠️ إزالة
- كمشرف من
- كمشرف منمجموعة؟✅ إضافة
- كمشرف في
- كمشرف فيطيب
- كمشرف
- كمشرفإضافة أعضاءقضايا
- الخصوصية والدعم
- ارسل رسالةإضافة فيإلغاء حظر المستخدمكتلة المستخدم
- تمت إضافتها بنجاحتم إلغاء حظره بنجاح
- تم حظره بنجاح
- حذف وخروجترك المجموعة
- من عند
- تمت إزالتها بنجاححظرت بنجاحغير محظورة بنجاح
- تم حذفها بنجاح
- لقد غادرت من
- إزالة العضوحظر عضو
- عضوًاإنشاء مجموعة
- إنضممت
- إلى الأماموسائل الإعلام المشتركة
- غير قادر على إعادة توجيه الرسالة إلىيمكنك إعادة توجيه الرسالة فقط إلى 5 مشاركين في كل مرة
- لا توجد صور
- لا توجد فيديوهات
- لا توجد وثائقالتاريخمكالمة فيديومكالمة صوتية
- السبورة
- التحميل...
- 1 الرد
- الردودإطلاقانضموقد شارك خنزير أبيض تعاوني
@@ -124,66 +85,24 @@
نسخ الرسالةإنشاء استطلاع للرأيإرسال ملصق
- إرسال الموقع...
- تم إرسال الموقع بنجاحالبحث
- لم يتم العثور على المستخدمينخطأ
- لم يتم العثور على مجموعات
- لم يتم العثور على دردشات
- رسالة إعلاميةمكالمة صوتية واردةمكالمة فيديو واردة
- انخفاض
- قبول
- بدأ الاتصال
- مكالمة صوتية صادرة
- مكالمة فيديو صادرة
- تم رفض المكالمةمكالمة مرفوضة
- تم قبول المكالمةانضم
- ترك المكالمة
- مكالمة صوتية لم تتم الإجابة عليها
- مكالمة فيديو لم تتم الإجابة عليهاانتهت المكالمة
- تم إلغاء المكالمة
- استدعاء مشغولالدعوة...
- لم يتم العثور على أعضاء محظورينالأعضاء المحظورين
- اسم
- النطاقنبان
- تحديد نوع المجموعةأدخل كلمة مرور المجموعة
- إنشاءإنشاء استطلاع للرأيسؤالأدخل سؤالك
- خياراتأدخل الخيار الخاص بك
- إضافة خيار جديد
- عرض الأعضاءتفاصيل
- الإشعارات
- أخرى
- مساعدة
- الإبلاغ عن مشكلة
- أعضاء المجموعةبان
- ركلة
- اختيار الرموز التعبيرية الخاصة بك
- المجموعة المحميةزيارة
- رمز تعبيري
- لم يتم العثور على رسائل
- الموضوع
- وثيقة تعاونية
- السبورة التعاونية
- إضافة رد فعل
- لم يتم العثور على ملصقات
- الرد في موضوعاكتب رسالةفشل استرجاع المستخدم المحظور
@@ -192,22 +111,17 @@
هل ترغب في إلغاء حظر %1$sغير قادر على حظر %1$sيرجى إدخال تفاصيل المجموعة للمتابعة
- غير قادر على الانضمام إلى المجموعةهل ترغب في جعل %1$s كمسؤول⚠️ إزالة من %1$sإضافة %1$s إلى\» %2$s\»تمت إضافة %1$s إلى\» %2$s\»تتم إزالة %1$s من\ "%2$s\»
- فشل عضو المجموعةهل ترغب في الرحيل من المجموعة؟حذف المجموعةحذف المجموعة
- فشل حذف المجموعةلا يمكن إزالة %1$s
- غير قادر على ترك المجموعةتحميل المزيدتحميل المزيد من الأعضاء %1$s
- غير قادر على جلب قائمة المجموعاتكلمة المرورالانضمامغير صحيح
@@ -219,13 +133,11 @@
أدخل كلمة المرور للانضمام إلى %1$sلا يوجد أعضاء محظورينالمشرفين
- غير قادر على استرداد قائمة المنسق.هل ترغب في جعل %1$s كمشرفالمشرف فقط يمكن إزالة مشرفتحديث المجموعةأدخل رابط أيقونة المجموعةتم تحديث المجموعة بنجاح
- لم يتم تحديث المجموعةأدخل كلمة المرور القديمةأدخل كلمة مرور جديدةتنبيه المجموعة
@@ -234,8 +146,6 @@
هل ترغب في جعل %1$s كمالك%1$s هو الآن المالكأنت لست عضوًا في هذه المجموعة (%1$s)
- تنبيه المالك
- يرجى نقل ملكية المجموعة إلى عضو آخر قبل مغادرة المجموعةعامةخاص
@@ -248,15 +158,10 @@
يمكن لمالك المجموعة فقط إزالة المشرف.تتم إزالة %1$s من امتياز المشرفغير قادر على تحديث عضو المجموعة
- >فشل استرداد قائمة المشرف
- غير قادر على إنشاء مجموعةفشلت العملية على %1$s
- خطأ: غير قادر على تحميل قائمة أعضاء المجموعة
- غير قادر على جلب قائمة الأعضاء المحظورينيرجى منح إذن الكاميرا من إعداد التطبيقيرجى منح إذن تخزين من إعداد التطبيقالملف غير موجود
- غير قادر على جلب قائمة المكالماتأنت لم تقم بأي مكالماتغير قادر على بدء المكالمة
@@ -283,7 +188,6 @@
إرسالالخصوصية والدعمالمستخدم
- رسالة مخصصة غير معتمدةأدخل عنوان ورل للصورة الرمزيةأدخل اسم المستخدمتحديث المستخدم
@@ -302,8 +206,6 @@
مؤشر الترابط في %1$sتم إرساله في: %1$sالاتصال بالمكالمة
- القراءة في: %1$s
- تم تسليمها عند: %1$sالتنقليرجى السماح بإذن الموقع.إرسال ملفات صوتية
@@ -315,7 +217,6 @@
تمكين نظام تحديد المواقعنظام تحديد المواقع تعطيلخيارات
- إرسال رسالة الوسائطإضافة خيار جديدغير قادر على الحصول على موقعكانتهى
@@ -324,11 +225,10 @@
مشاركة لوح معلوماتمشاركة لوح الكتابةمشاركة لوحة الكتابة
- لقد أرسلت %1$sتلقيت %1$sبدء مكالمةانقر لبدء المحادثة
- تم حظر٪ 1 $ s بنجاح
+ تم حظر ٪1$s بنجاحشارك مستندًا تعاونيًا.لا رسائل الموضوعمضاف
@@ -338,7 +238,6 @@
لا يوجد ترجمة متوفرةشارك في مكالمة جماعية.مكالمة جماعية 📹
- ابدأ مكالمة جماعيةلقد قمت بإنشاء مكالمة جماعية.تم التصويت على النجاحتحميل
@@ -348,9 +247,6 @@
تم تحديث المستخدم بنجاح "مستخدم اليسار" انضمام المستخدم
- تم الاتصال بنجاح
- الاتصال قيد التقدم
- أنت غير متصل. لا يتوفر إنترنت تم حظرك بواسطة
@@ -364,29 +260,43 @@
الاستطلاع \ "id \" مفقود أنت لست منشئ الاستطلاع
- يرجى الاتصال بطريقة CometChat.init () ويفضل أن تكون في طريقة onCreate () لفئة التطبيق قبل استدعاء أي طرق أخرى متعلقة بـ CometChatكلمة المرور إلزامية لمجموعة محمية
- تجاوز الحد الحد الأقصى لـ ٪s
- يرجى تسجيل الدخول إلى CometChat قبل استدعاء هذه الطريقةالرجاء تقديم GUID صالحالرجاء تقديم UID صالحلا يمكن أن يكون المعرف الفريد فارغًا. يرجى تقديم UID صالحلا يمكن أن يحتوي المعرف الفريد على مسافات. يرجى تقديم UID صالحهناك خطأ ماالتمديد معطل. يرجى تمكين الامتداد من CometChat Dashboard
- لا يمكن أن يكون نص الرسالة فارغًالا يمكن أن يكون اسم المجموعة فارغًا أو فارغًا
- لا يمكن أن تكون الرسالة فارغة. الرجاء تمرير كائن "BaseMessage" صالح
- تم توفير اسم غير صالح للمستخدم. الرجاء إدخال اسم صالح
- لا يمكن أن يكون اسم المجموعة فارغًا. يرجى تقديم اسم مجموعة صالحتعذر العثور على الامتداد المقدم.ركلغادرجارى التحميلإنشاء المجموعة
- إرسال الرسالة بشكل خاص
+ إرسال الرسالة بشكل خاصعرض الصفحة الشخصية
- مسح المحادثةهل ترغب في حذف هذه المحادثة؟حذف المحادثة
+ لا يوجد إنترنت متاح
+ غير متصل على الانترنت
+ رسائل جديدة
+ رسالة جديدة
+ تم التوصيل
+ يقرأ
+ تصويت
+ الأصوات
+ يتناقص
+ إجابه
+ رد
+ الردود
+ الرد بشكل خاص
+ اختر المستخدم
+ اختر مجموعة
+ بحث في المستخدمين
+ مجموعات البحث
+ مكالمة صوتية مرفوضة
+ مكالمة فيديو مرفوضة
+ مكالمة صوتية صادرة
+ مكالمة فيديو صادرة
+ لم يتم العثور على أعضاء محظورين
\ 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 43aca14..5e851e3 100644
--- a/uikit/src/main/res/values-de/strings.xml
+++ b/uikit/src/main/res/values-de/strings.xml
@@ -4,10 +4,8 @@
AnrufeGruppenmehr
- Senden...⚠️ Diese Nachricht wurde gelöscht
- ⚠️ Du hast diese Nachricht gelöscht
- 📷 Foto
+ 📷 Bild📹 Video🎵 Audio📁 Datei
@@ -20,9 +18,8 @@
📝 Whiteboard📃 DokumentOnline
- OfflineDu
- Admin
+ VerwalterModeratorTeilnehmerin
@@ -31,89 +28,55 @@
Passwort-geschütztDatenschutz und Sicherheit
- Datenschutz
- Gesperrte
- Jeder
+ Gesperrte BenutzerPräferenzenDu hast geblocktMitglieder
- zurückAbbrechenText in Zwischenablage kopiert
- heute
+ HeuteGestern
- tippen...
- tippt...
- schliessen
- Bitte geben Sie den Gruppennamen ein
- Erfrischend
+ schreibt...
+ Gruppennamen eingebenEntsperrenGruppenadministrator machenMachen Sie GruppenmoderatorAdministratoren
- Admin hinzufügen
- Moderator hinzufügenInhaberAls Gruppenadministrator zuweisenAls Gruppenadministrator entfernenAls Gruppenmoderator zuweisenAls Gruppen-Moderator entfernen
- wird als Gruppenadministrator entferntwird als Gruppenmoderator entferntist jetzt Administ jetzt Moderator⚠️ Entfernen
- als Admin von
- als Moderator vonGruppe?✅ Addieren
- als Admin in
- als Moderator inOKAY
- als Moderator
- als AdminMitglieder hinzufügen
- AKTIONEN
- DATENSCHUTZ & UNTERSTÜTZUNG
- Nachricht senden
+ AktionenFügen Sie hinzuBenutzer entsperrenBenutzer blockieren
- erfolgreich hinzugefügtwurde erfolgreich freigegeben
- erfolgreich geblockt
- Löschen & BeendenVerlasse die Gruppe
- von
- erfolgreich entfernterfolgreich gebanntunbanned erfolgreich
- erfolgreich gelöscht
- Du bist weggegangen
- Mitglied entfernenBan Mitglied
- Unban-MitgliedGruppe erstellen
- Du bist beigetreten
- VorwärtsGeteilte Medien
- Nachricht kann nicht weiterleiten anSie können Nachrichten nur an 5 Teilnehmer gleichzeitig weiterleiten
- Keine Fotos
- Keine Videos
- Keine DokumenteGeschichteVideoanrufAudio-Anruf
- Whiteboard
- Wird geladen...
- 1 antwort
- AntwortenStartenBeitreten
- hat einen kollaborativen Whiteboar geteilt
- Du hast einen neuen kollaborativen Whiteboar erstellt
+ hat ein kollaboratives Whiteboard geteilt
+ Du hast ein neues kollaboratives Whiteboard erstelltDu hast ein neues kollaboratives Dokument erstellt
+ hat ein gemeinschaftliches Dokument geteilt.
+
Foto- und VideothekMach ein FotoStandort teilen
@@ -121,79 +84,30 @@
Nachricht löschenAntwort-MeldungNachricht weiterleiten
- Faden starten
+ Antwort im ThreadNachricht teilenInformationen zur MeldungMitteilung kopierenEine Umfrage erstellenSticker versenden
- Standort wird gesendet...
- Standort wurde erfolgreich gesendetSuche
- Keine Benutzer gefundenFehler
- Keine Gruppen gefunden
- Keine Chats gefunden
- Mediale BotschaftEingehender AudioanrufEingehender Videoanruf
- Rückgang
- Akzeptieren
- Anruf initiiert
- Ausgehender Audioanruf
- Ausgehender Videoanruf
- Anruf abgelehntAnruf abgelehnt
- Anruf akzeptiertverbunden
- hat den Anruf verlassen
- Unbeantworteter Audioan
- Unbeantworteter VideoanAnruf endete
- Anruf wurde abgebrochen
- Anruf beschäftigtRufen...
- Keine verbotenen Mitglieder gefundenVerbotene Mitglieder
- Nennen
- Scope
- Aufheben
- Gruppentyp wählen
- erstellen
+ EntsperrenUmfrage erstellenFrageGib deine Frage ein
- OptionenGeben Sie Ihre Option
- Neue Option hinzufügen
- Mitglieder ansehenEinzelheiten
- Benachrichtigungen
- andere
- Hilfe
- Melden Sie ein Problem
- Mitglieder der Gruppe
- Ban
- Tritt
- Wähle dein Emoji
- Geschützte Gruppe
+ SperrenAuf Youtube ansehenBesuch
- Emoji
- Keine Nachrichten gefunden
- Gewinde
- Gemeinschaftliches Dokument
- Kollaboratives Whiteboard
- Reaktion hinzufügen
- Keine Aufkleber gefunden
- Antwort im Thread
- SONNTAG
- MONTAG
- DIENSTAG
- MITTWOCH
- DONNERSTAG
- FREITAG
- SAMSTAGSchreiben Sie eine NachrichtAbrufen des blockierten Benutzers fehlgeschlagenSie können keine Nachrichten senden oder empfangen
@@ -201,22 +115,17 @@
Würdest du möchte %1$s entsperren%1$s kann nicht blockiert werdenBitte geben Sie Gruppendetails ein, um fortzufahren
- Gruppe kann nicht beitretenMöchtest Sie %1$s als Admin machen⚠️ Entfernen von %1$s%1$s zu\“ %2$s\“%1$s wurde zu\“ %2$s\“ hinzugefügt%1$s wird von\“ %2$s\“ entfernt
- Gruppenmitglied gekickt
- Möchten Sie von der Gruppe abreisen?
- Gruppe löschen
- Löschen Sie die Gruppe
- Löschen der Gruppe ist fehlgeschlagen
+ Bist du sicher, dass du die Gruppe verlassen willst?
+ Löschen und beenden
+ Bist du sicher, dass du löschen möchtest?%1$s kann nicht entfernt werden
- Die Gruppe kann nicht verlassen werdenLade mehrLaden Sie mehr %1$s Mitglieder
- Die Gruppenliste kann nicht abgerufen werdenPasswortBeitrittFalsch
@@ -229,23 +138,19 @@
Geben Sie das Passwort ein, um %1$sKeine verbotenen MitgliederModeratoren
- Die Moderatorenliste kann nicht abgerufen werden.Möchtest Sie %1$s als Moderator machenNur Admin kann Moderator entfernenUpdate-GruppeGruppen-Icon-URL eingebenGruppe wurde erfolgreich aktualisiert
- Gruppe wurde nicht aktualisiertGeben Sie ein altes PasswortGeben Sie ein neues PasswortGruppen-Alarm
- Sie sind Gruppeninhaber, übertragen Sie den Gruppeneigentum an jemand anderen, bevor Sie die Gruppe verlassen.
+ Du bist der Gruppeninhaber, bitte übertrage die Gruppe an ein Mitglied, bevor Du die Gruppe verlässt.Inhaber machenMöchtest Sie %1$s als Eigentümer machen%1$s ist jetzt EigentümerSie sind kein Mitglied dieser Gruppe (%1$s)
- Besitzer-Alarm
- Bitte übertragen Sie den Gruppenbesitz auf ein anderes Mitglied, bevor Sie die Gruppe verlassenÖffentliche GruppePrivate GruppePasswort geschützte Gruppe
@@ -253,15 +158,10 @@
Nur Gruppenbesitzer kann Admin entfernen.%1$s wurde von Admin-Berechtigungen entferntGruppenmitglied kann nicht aktualisiert werden
- >Abruf der Admin-Liste ist fehl
- Eine Gruppe kann nicht erstellt werdenVorgang ist bei %1$s fehlgeschlagen
- Fehler: Die Liste der Gruppenmitglieder kann nicht geladen werden
- Liste der gesperrten Mitglieder konnte nicht abgerufen werdenBitte erteilen Sie die Kamera-Berechtigung aus derBitte erteilen Sie Speicherberechtigung aus App-EinstellungDie Datei existiert nicht
- Anrufliste kann nicht abgerufen werdenSie haben keine Anrufe getätigtAnruf kann nicht eingeleitet werden
@@ -278,9 +178,9 @@
BilderVIDEOS-Dateien
- Du hast keine Gespräche.
- Keine Benutzer verfügbar
- Keine Gruppen verfügbar
+ Keine Chats gefunden
+ Keine Benutzer gefunden
+ Keine Gruppen gefundenKeine BlockbenutzerSie haben keine verpassten Anrufeja
@@ -288,7 +188,6 @@
SendeDatenschutz & Unterstützungbenutzer
- Benutzerdefinierte Nachricht wird nicht unterstütztGeben Sie die URL für Avatar einGeben Sie den BenutzernamenUpdate-Benutzer
@@ -307,8 +206,6 @@
Faden in %1$sGesendet am: %1$sVerbindung mit Anruf
- Lesen bei: %1$s
- Geliefert am: %1$sNavigierenBitte erlauben Sie Standortgenehmigung.Senden von Audiodateien
@@ -320,8 +217,7 @@
GPS aktiviertGPS deaktiviertOptionen
- Senden von Medienbotschaft
- Eine neue Option hinzufügen
+ Neue Option hinzufügenIhr Standort konnte nicht abgerufen werdenBeendetLaufende
@@ -329,12 +225,10 @@
Ein WhiteBoard geteiltWriteBoard teilenEin WriteBoard geteilt
- Sie haben einen %1$s gesendetSie haben einen %1$s erhaltenEinen Anruf einleitenTippen Sie hier, um das Gespräch zu starten%1$s erfolgreich blockiert
- hat ein kollaboratives Dokument freigegeben.Keine Thread-Nachrichtenhinzugefügtinitiiert
@@ -344,7 +238,6 @@
Keine Übersetzung verfügbarhat einen Gruppenanruf geteilt.📹 Gruppenanruf
- Starten Sie einen GruppenanrufSie haben einen Gruppenanruf erstellt.Gewählter ErfolgHochladen
@@ -354,9 +247,6 @@
Benutzer erfolgreich aktualisiert "User Left" Benutzer beigetreten
- Erfolgreich verbunden
- Verbindung in Bearbeitung
- Sie sind nicht verbunden. Kein Internet verfügbar Sie wurden von blockiert
@@ -370,86 +260,43 @@
Die Umfrage "id" fehlt Sie sind nicht der Ersteller der Umfrage
- Rufen Sie die CometChat.init () -Methode vorzugsweise in der onCreate () -Methode der Anwendungsklasse auf, bevor Sie andere mit CometChat zusammenhängende Methoden aufrufenDas Passwort ist für eine geschützte Gruppe obligatorisch
- Die Grenze hat die maximale Grenze von %s überschritten
- Bitte melden Sie sich bei CometChat an, bevor Sie diese Methode aufrufenBitte geben Sie eine gültige GUID anBitte geben Sie eine gültige UID anDie UID darf nicht leer sein. Bitte geben Sie eine gültige UID anDie UID darf keine Leerzeichen enthalten. Bitte geben Sie eine gültige UID an
- etwas ist schief gelaufen
- Der Anruf kann nicht abgebrochen werden, ohne einen Anruf einzuleiten
- Beim Verbinden ist ein Fehler aufgetreten
- Sitzungsfehlanpassung aufrufen. Bitte überprüfen Sie die Sitzungs-ID
- Sowohl UID als auch GUID wurden nicht angegeben Bitte geben Sie die UID oder die GUID an für die die Nachricht abgerufen werden muss
+ Etwas ist schief gelaufen, bitte versuche es noch einmalKeine Internetverbindung. Bitte versuchen Sie es später erneut
- Anfrage bereits in Bearbeitung
- Für die Verwendung der Methode "fetchNext()" ist Timestamp oder MessageId oder updatedAfter erforderlich
- Auth token kann nicht leer sein. Bitte geben Sie eine gültige auth tokenDie Erweiterung ist deaktiviert. Bitte aktivieren Sie die Erweiterung über das CometChat-Dashboard
- Die angegebene Nachrichten-ID ist ungültig Bitte geben Sie eine gültige Nachrichten-ID an
- Es kann nur TextMessage oder CustomMessage bearbeitet werden. Bitte geben Sie eine gültige Nachricht an
- Die Liste ist leer. Bitte geben Sie eine gültige Liste an
- Die Methode "updatesOnly()" kann nicht ohne die Methode "setUpdatedAfter()" verwendet werden
- Fehler beim Parsen von JSON
- Fehler beim Abmelden
- AppID darf nicht leer sein. Bitte geben Sie eine gültige AppID an
- Der angegebene Grenzwert muss eine positive Zahl sein
- Region nicht angegeben. Bitte geben Sie die Region in der AppSettingsBuilder-Klasse mit der Methode `setRegion()` an
- Die AppSettings dürfen nicht null sein
- ApiKey kann nicht null oder leer sein. Bitte geben Sie einen gültigen API-Schlüssel an
- Der von Ihnen eingegebene Nachrichtentyp ist für die folgende Aktion ungültig
- Der Nachrichtentext darf nicht leer sein
- Das Dateiobjekt darf nicht null sein oder der Dateipfad ist nicht vorhanden
- Die URL der Mediennachricht ist auf null oder leer gesetzt
- Benutzerdefiniertes Datenfeld darf nicht null oder leer seinDer Gruppenname darf nicht null oder leer sein
- Der Gruppentyp darf nicht null oder leer sein
- Login in Bearbeitung. Bitte warten Sie, bis die Anmeldeanforderung abgeschlossen ist
- Nachricht kann nicht null sein. Bitte übergeben Sie ein gültiges BaseMessage-Objekt
- Gruppe kann nicht null sein. Bitte übergeben Sie ein gültiges Gruppenobjekt
- Anruf kann nicht null sein. Bitte übergeben Sie ein gültiges "Call" -Objekt
- Ungültiger Anruftyp. Bitte geben Sie einen gültigen Anruftyp an
- Ungültiger Empfängertyp. Bitte geben Sie einen gültigen Empfängertyp an
- Ungültiger Sitzungs-ID-Typ. Bitte geben Sie eine gültige Sitzungs-ID an
- Die bereitgestellte Aktivität darf nicht null sein.
- Vorausgesetzt, RelativeLayout darf nicht null sein
- Das bereitgestellte FCM-Token darf nicht null oder leer sein. Bitte geben Sie einen gültigen FCM-Token an
- Der angegebene Gruppentyp darf nicht null oder leer sein
- Anruf ist in Bearbeitung. Bitte beenden Sie den vorherigen Anruf, um diesen Vorgang auszuführen
- Anruf, der von einer anderen Person initiiert wurde, kann nicht abgebrochen werden. Bitte verwenden Sie stattdessen den Status "Abgelehnt"
- Ungültiger Name für den Benutzer angegeben. Bitte geben Sie einen gültigen Namen an
- Benutzerobjekt darf nicht null sein. Bitte geben Sie ein gültiges Benutzerobjekt an
- Der Gruppenname darf nicht leer sein. Bitte geben Sie einen gültigen Gruppennamen an
- Der Zeitstempel muss positiv sein. Bitte geben Sie einen gültigen Zeitstempel an
- Ungültige Kategorie. Bitte geben Sie eine gültige Kategorie an
- Leeres Symbol. Bitte geben Sie ein gültiges Symbol an
- Leere Beschreibung. Bitte geben Sie eine gültige Beschreibung an
- Leere Metataten. Bitte geben Sie gültige Metadaten an
- Ungültiger Geltungsbereich. Bitte geben Sie einen gültigen Umfang an
- Ungültiger Geltungsbereich. Bitte geben Sie einen gültigen Umfang an
- Ungültiges Gespräch mit. Bitte geben Sie einen gültigen Wert für die Konversation mit an
- Ungültiger Konversationstyp. Bitte geben Sie einen gültigen Wert für die Konversation mit an
- Ungültige Mediennachricht. Bitte geben Sie ein gültiges Dateiobjekt oder Anhangsdetails an.
- Anhang darf nicht null sein. Bitte geben Sie gültige Anhangsdaten an
- Ungültiger Dateiname. Bitte geben Sie einen gültigen Dateinamen an
- Ungültige Dateiendung. Bitte geben Sie eine gültige Dateierweiterung an
- Ungültiger MIME-Dateityp. Bitte geben Sie einen gültigen MIME-Dateityp an
- Ungültige Datei-URL. Bitte geben Sie eine gültige Datei-URL an
- Gespräch nicht gefunden
- Einstellungen nicht gefunden.
- Die bereitgestellte Funktion darf nicht null oder leer sein. Bitte geben Sie eine gültige Funktion an
- Die angegebene Erweiterung darf nicht null oder leer sein.
- Bereitgestellte Funktion nicht gefunden.Die bereitgestellte Erweiterung konnte nicht gefunden werden.verließ diewird heruntergeladenGruppe erstellen
- Nachricht privat senden
- Profil anzeigen
- Konversation löschen
+ Nachricht privat senden
+ Profil ansehenMöchten Sie diese Konversation löschen?Gespräch löschen
+ offline
+ Neue Nachrichten
+ Neue Nachricht
+ Ausgeliefert
+ Gesehen
+ Abstimmung
+ Wahlen
+ Rückgang
+ Akzeptieren
+ Antwort
+ Antworten
+ Privat antworten
+ Ausgehender Audioanruf
+ Ausgehender Videoanruf
+ Anruf abgelehnt
+ Anruf abgelehnt
+ Keine verbotenen Mitglieder gefunden
+ Wähle den Benutzer
+ Wähle die Gruppe
+ Benutzer suchen
+ Gruppen suchen
\ 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 82e6247..8da7d95 100644
--- a/uikit/src/main/res/values-es/strings.xml
+++ b/uikit/src/main/res/values-es/strings.xml
@@ -4,15 +4,13 @@
LlamadasGruposMás
- Enviando...⚠️ Este mensaje fue eliminado
- ⚠️ Has eliminado este mensaje
- 📷 Foto
+ 📷 Imagen📹 Vídeo🎵 Audio📁 ArchivoTienes un mensaje
- Llamada de voz perdida»
+ Llamada de voz perdida Videollamada perdida📍 Ubicación📊 Encuesta
@@ -20,9 +18,8 @@
📝 Pizarra blanca📃 DocumentoEn línea
- OfflineUsted
- Admin
+ AdministradorModeradorParticipante
@@ -31,94 +28,59 @@
Protegido con contraseñaPrivacidad y Seguridad
- PrivacidadUsuarios bloqueados
- TodosPreferenciasHas bloqueadoMiembros
- EspaldaCancelarTexto copiado al PortapapelesHoyAyerFototeca y Videoteca
- escribiendo...está escribiendo...
- Cerrar
- Por favor, introduzca el nombre del grupo
- Refrescante...
+ Introducir nombre de grupoDesbloquearHacer administrador del grupoHacer moderador de grupoAdministradores
- Agregar administrador
- Añadir moderadorPropietarioAsignar como administrador de grupoQuitar como administrador de grupoAsignar como moderador de grupoEliminar como grupo Moderador
- se elimina como administrador del grupose elimina como moderador de grupoahora es Adminahora es Moderador⚠️ Quitar
- como administrador de
- como moderador de¿Grupo?✅ Añadir
- como administrador en
- como moderador enDE ACUERDO
- como moderador
- como administradorAgregar miembros
- ACCIONES
- PRIVACIDAD Y SOPORTE
- Enviar mensaje
+ AccionesAñadir enDesbloquear usuarioBloquear usuario
- agregado correctamentedesbloqueado correctamente
- bloqueado correctamente
- Eliminar y salirSalir del grupo
- desde
- eliminado correctamenteprohibido correctamenteno prohibido correctamente
- eliminado correctamente
- Te fuiste de
- Quitar miembroMiembro de prohibición
- Miembro de UnbanCrear grupo
- Te uniste
- AdelanteMedios compartidos
- No se puede reenviar el mensaje aPuede reenviar mensajes sólo a 5 participantes a la vez
- No hay fotos
- No hay vídeos
- Sin documentosHistoriaVideollamadaLlamada de audio
- Pizarra blanca
- Cargando...
- 1 respuesta
- respuestasLanzamientoUnirse
- ha compartido un jabalí blanco colaborativo
- Has creado un nuevo jabalí blanco colaborativo
- Has creado una nueva documen colaborativa
+ ha compartido una pizarra colaborativ
+ Has creado una nueva pizarra colaborativa
+ Ha creado un nuevo documento colaborativo
+ ha compartido un documento colaborativoTomar una fotoCompartir ubicación
@@ -126,73 +88,24 @@
Eliminar mensajeMensaje de respuestaReenviar mensaje
- Iniciar subproceso
+ Responder en hiloCompartir mensajeInformación del mensajeCopiar mensajeCrear una encuestaEnviar pegatina
- Enviando ubicación...
- Ubicación enviada correctamente
- No se han encontrado usuariosError
- No se han encontrado grupos
- No se encontraron chats
- Mensaje multimedia
- Declive
- Aceptar
- Llamada iniciada
- Llamada de audio saliente
- Videollamada saliente
- Llamada rechazada
- Llamada aceptadase unieron
- dejó la llamada
- Llamada de audio sin respuesta
- Videollamada sin respuestaLlamada finalizada
- Llamada cancelada
- Llamada ocupadaLlamando...
- No se encontraron miembros prohibidos
- Nombre
- Ámbito
- Desbancar
- Seleccionar tipo de grupo
- Crear
+ Levantar la prohibiciónCrear encuesta
- Opciones
- Agregar nueva opción
- Ver miembros
- Notificaciones
- Otro
- Ayudar
- Informar de un problema
- Miembros del grupoProhibición
- Patada
- Elige tu emoji
- Grupo protegidoVer en YoutubeVisitar
- Emoji
- No se han encontrado mensajes
- Rosca
- Documento colaborativo
- Pizarra colaborativa
- Añadir reacción
- No se encontraron pegatinas
- Responder en hilo
- DOMINGO
- LUNES
- MARTES
- MIÉRCOLES
- JUEVES
- VIERNES
- SÁBADOEscribir un mensajeError en la recuperación del usuario bloqueadoNo podrás enviar ni recibir mensajes
@@ -200,26 +113,22 @@
¿Desea desbloquear %1$sNo se puede bloquear %1$SPor favor, introduzca los detalles del grupo para continuar
- No se puede unir al grupo¿Te gusta hacer% 1$s como administrador⚠️ Quitar de %1$sAñadir %1$s a\» %2$s\»%1$s se agrega a\» %2$s\»%1$s se ha eliminado de\» %2$s\»
- Error al miembro del grupo
- ¿Te gustaría salir del grupo?
- Eliminar grupo
- Eliminar el grupo
- Error al eliminar el grupo
+ ¿Estás seguro de que quieres dejar el grupo?
+ Eliminar y salir
+ ¿Está seguro de que desea eliminar?No se puede eliminar %1$s
- No se puede abandonar el grupoCargar másCargar más %1$s miembros
- No se puede obtener la lista de gruposContraseñaUnirseIncorrectoMiembros prohibidos
+ No se encontraron miembros prohibidosMiembros prohibidos de %1$sNo se puede anular la bana %1$sIntroducir descripción del grupo
@@ -229,23 +138,19 @@
Introduzca la contraseña para unir %1$sNo hay miembros prohibidosModeradores
- No se puede recuperar la lista de moderadores.¿Te gusta hacer %1$s como moderadorSólo Admin puede eliminar moderadorActualizar grupoIntroducir URL del icono de grupoGrupo actualizado correctamente
- Grupo no actualizadoIntroducir contraseña antiguaIntroduce la nueva contraseñaAlerta de grupo
- Usted es propietario del grupo, Transfiera la propiedad del grupo a otra persona antes de abandonar el grupo.
+ Usted es el propietario del grupo, por favor transfiera la propiedad a un miembro antes de abandonar el grupo.Hacer propietario¿Te gusta hacer %1$s como propietario%1$s ahora es PropietarioNo es miembro de este grupo (%1$s)
- Alerta de propietario
- Transfiera la propiedad del grupo a otro miembro antes de abandonar el grupoGrupo PúblicoGrupo PrivadoGrupo protegido por contraseña
@@ -253,15 +158,10 @@
Sólo el propietario del grupo puede eliminar administrador.%1$s se ha quitado del privilegio de administradorNo se puede actualizar el miembro del grupo
- >Error en la recuperación de la lista de administradores
- No se puede crear un grupoError en la operación en %1$s
- Error: no se puede cargar la lista de miembros del grupo
- No se puede obtener la lista de miembros prohibidosConcede permiso de cámara desde la configuración de la aplicaciónConcede permiso de almacenamiento desde la configuración de la aplicaciónEl archivo no existe
- No se puede obtener la lista de llamadasNo has hecho ninguna llamadaNo se puede iniciar la llamada
@@ -281,9 +181,9 @@
ImágenesVídeosArchivos
- No tienes conversaciones.
- No hay usuarios disponibles
- No hay grupos disponibles
+ No se encontraron chats.
+ No se han encontrado usuarios
+ No se han encontrado gruposSin bloqueo de usuariosNo tienes llamadas perdidasSí
@@ -293,7 +193,6 @@
Privacidad y asistenciaUsuarioBuscar
- Mensaje personalizado no compatibleIntroducir URL para el avatarIntroducir nombre de usuarioActualizar usuario
@@ -312,8 +211,6 @@
Subproceso en %1$sEnviado a: %1$sConectarse a la llamada
- Leer en: %1$s
- Entregado en: %1$sNavegarPermita permiso de ubicación.Enviar archivos de audio
@@ -325,11 +222,10 @@
GPS habilitadoGPS deshabilitadoOpciones
- Envío de mensajes multimediaIntroduce tu opciónIntroduce tu preguntaPregunta
- Agregar una nueva opción
+ Agregar nueva opciónNo se puede obtener su ubicaciónTerminadoContinuo
@@ -337,12 +233,10 @@
Compartir una pizarraCompartir WriteBoardCompartir un WriteBoard
- Enviaste un %1$sRecibiste una %1$sIniciar una llamadaToca para iniciar una conversación%1$s bloqueado correctamente
- ha compartido una documen colaborativaNo hay mensajes de hiloadicionaliniciado
@@ -352,7 +246,6 @@
No hay traducción disponibleha compartido una llamada grupal.📹 Llamada grupal
- Iniciar una llamada grupalHa creado una llamada grupal.Votado con éxitosubiendo
@@ -362,9 +255,6 @@
Usuario actualizado correctamente "Usuario izquierdo" Usuario unido
- Se conectó correctamente
- Conexión en curso
- Estás desconectado. No hay Internet disponible Has sido bloqueado por
@@ -378,86 +268,42 @@
Falta la encuesta \ "id \" No eres el creador de la encuesta
- Llame al método CometChat.init () preferiblemente en el método onCreate () de la clase de aplicación antes de llamar a cualquier otro método relacionado con CometChatLa contraseña es obligatoria para un grupo protegido
- El límite superó el límite máximo de %s
- Inicie sesión en CometChat antes de llamar a este métodoProporcione un GUID válidoProporcione un UID válidoUID no puede estar en blanco. Proporcione un UID válidoUID no puede contener espacios. Proporcione un UID válido
- algo salió mal
- La llamada no se puede cancelar sin iniciar una llamada
- Algo salió mal al conectarse
- Discrepancia en la sesión de llamadas. Verifique el ID de la sesión
- Ambos UID y GUID no especificados Especifique el UID o el GUID para el que es necesario recuperar el mensaje
+ Algo salió mal, inténtalo de nuevoNo hay conexión a Internet. Vuelve a intentarlo más tarde.
- Solicitud ya en curso
- Se requiere Timestamp o MessageId o updatedAfter para usar el método fetchNext()
- Auth token No puede estar vacía. Por favor proporcione una válida auth tokenLa extensión está deshabilitada. Habilite la extensión desde CometChat Dashboard
- El ID de mensaje proporcionado no es válido Proporcione un ID de mensaje válido
- Solo se puede editar TextMessage o CustomMessage. Proporcione un mensaje válido
- La lista proporcionada está vacía. Proporcione una lista válida
- El método "updatesOnly()" no se puede utilizar sin el método "setUpdatedAfter()"
- Error al analizar JSON
- Error al cerrar la sesión
- AppID no puede estar vacío. Especifique un ID de aplicación válido
- El límite especificado debe ser un número positivo
- Región no especificada. Especifique la región en la clase AppSettingsBuilder usando el método `setRegion()`
- AppSettings no puede ser nulo
- ApiKey no puede ser nulo ni estar vacío. Proporcione una clave de API válida
- El tipo de mensaje que ingresó no es válido para la siguiente acción
- El texto del mensaje no puede estar vacío
- El objeto de archivo no puede ser nulo o la ruta de archivo no existe
- La URL del mensaje multimedia está configurada como nula o en blanco
- El campo de datos personalizado no puede ser nulo ni estar vacío
- El nombre del grupo no puede ser nulo ni estar vacío
- El tipo de grupo no puede ser nulo ni estar vacío
- Inicio de sesión en curso. Espere a que finalice la solicitud de inicio de sesión
- El mensaje no puede ser nulo. Pase un objeto `BaseMessage` válido
- El grupo no puede ser nulo. Por favor pase un objeto "Grupo" válido
- La llamada no puede ser nula. Pase un objeto "Call" válido
- Tipo de llamada no válido. Proporcione un tipo de llamada válido
- Tipo de receptor no válido. Proporcione un tipo de receptor válido
- Tipo de ID de sesión no válido. Proporcione una identificación de sesión válida
- La actividad proporcionada no puede ser nula.
- Proporcionado RelativeLayout no puede ser nula
- El token de FCM proporcionado no puede ser nulo ni estar vacío. Proporcione un token FCM válido
- El tipo de grupo proporcionado no puede ser nulo ni estar vacío
- La llamada está en curso. Finalice la llamada anterior para realizar esta operación
- No se puede cancelar la llamada iniciada por otra persona. Utilice el estado "rechazado" en su lugar
- Se proporcionó un nombre no válido para el usuario. Proporcione un nombre válido
- El objeto de usuario no puede ser nulo. Proporcione un objeto de usuario válido
- El nombre del grupo no puede estar vacío. Proporcione un nombre de grupo válido
- La marca de tiempo debe ser positiva. Proporcione una marca de tiempo válida
- Categoría no válida. Proporcione una categoría válida
- Icono vacío. Proporcione un icono válido
- Descripción vacía. Proporcione una descripción válida
- Metadatos vacíos. Proporciona metadatos válidos.
- Alcance no válido. Proporcione un alcance válido
- Alcance no válido. Proporcione un alcance válido
- Conversación no válida con. Proporcione un valor válido para la conversación con
- Tipo de conversación no válido. Proporcione un valor válido para la conversación con
- Mensaje de medios no válido. Proporcione un objeto de archivo válido o detalles del archivo adjunto.
- El adjunto no puede ser nulo. Proporcione detalles válidos del archivo adjunto.
- Nombre de archivo inválido. Proporcione un nombre de archivo válido
- Extensión de archivo inválida. Proporcione una extensión de archivo válida
- Tipo de Mime de archivo no válido. Proporcione un tipo de archivo mime válido
- URL de archivo no válida. Proporcione una URL de archivo válida
- No se encontró la conversación para
- Configuración no encontrada.
- La característica proporcionada no puede ser nula ni estar vacía. Proporcione una función válida
- La extensión proporcionada no puede ser nula ni estar vacía.
- Característica proporcionada no encontrada.
+ El nombre del grupo no puede estar en blancoNo se pudo encontrar la extensión proporcionada.dejó el grupodescargandocreando grupo
- Enviar mensaje de forma privada
+ Enviar mensaje en privadoVer perfil
- eliminar la conversación¿Quieres eliminar esta conversación?Eliminar conversación
+ Offline
+ mensajes nuevos
+ mensaje nuevo
+ Entregado
+ Visto
+ Votar
+ Votos
+ Rechazar
+ aceptar
+ respuesta
+ respuestas
+ Responder en privado
+ Llamada de audio saliente
+ Videollamada saliente
+ Seleccionar usuario
+ Selecciona grupo
+ Buscar usuarios
+ Grupos de búsqueda
+ Llamada de voz rechazada
+ Videollamada rechazada
\ 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 92cde4f..aaa6737 100644
--- a/uikit/src/main/res/values-fr/strings.xml
+++ b/uikit/src/main/res/values-fr/strings.xml
@@ -4,9 +4,7 @@
AppelsGroupesPlus
- Envoi...⚠️ Ce message a été supprimé
- ⚠️ Vous avez supprimé ce messageVoir sur Youtube📷 Photo📹 Vidéo
@@ -21,7 +19,6 @@
📝 Tableau blanc📃 DocumentEn ligne
- Hors ligneVousAdminModérateur
@@ -32,88 +29,52 @@
Mot de passeConfidentialité et sécurité
- Vie privéeUtilisateurs bloqués
- Tout le mondePréférencesVous avez bloquéMembres
- RetourAnnulerTexte copié dans le Presse-papiersAujourd\'huiHier
- dactylographie...est en train de taper...
- FermerVeuillez saisir le nom du groupe
- Rafraîchissant...DébloquerRendre administrateur de groupeFaire modérateur de groupeAdministrateurs
- Ajouter admin
- Ajouter un modérateurAffecter comme administrateur de groupeSupprimer en tant qu\'administrateur de groupeAffecter comme modérateur de groupeSupprimer en tant que groupe Modérateur
- est supprimé en tant qu\'administrateur de groupeest supprimé en tant que modérateur de groupeest maintenant Adminest maintenant modérateur⚠️ Supprimer
- en tant qu\'administrateur de
- en tant que modérateur deGroupe ?✅ Ajouter
- en tant qu\'administrateur dans
- en tant que modérateur dansOK.
- en tant que modérateur
- en tant qu\'administrateurAjouter des membresACTIONS
- CONFIDENTIALITÉ ET SOUTIEN
- Envoyer un messageAjouter dansDébloquer l\'utilisateurBloquer l\'utilisateur
- ajouté avec succèsdébloqué avec succès
- bloqué avec succès
- Supprimer et quitterGroupe de congé
- à partir de
- supprimé avec succèsbanni avec succèsnon banni avec succès
- supprimé avec succès
- Vous êtes parti de
- Supprimer un membreBan Membre
- Membre UnbanCréer un groupe
- Vous avez rejoint
- AvancerMédias partagés
- Impossible de transférer le message àVous ne pouvez transmettre le message qu\'à 5 participants à la fois
- Pas de photos
- Pas de vidéos
- Aucun documentHistoireAppel vidéoAppel audio
- Tableau blanc
- Chargement...
- 1 réponse
- réponsesLancementJoindrea partagé un sanglier
@@ -130,77 +91,28 @@
Copier le messageCréer un sondageEnvoyer Autocollant
- Emplacement d\'envoi...
- Emplacement envoyé avec succèsRechercher
- Aucun utilisateur trouvéErreur
- Aucun groupe trouvé
- Aucun chat trouvé
- Message pour les médiasAppel audio entrantAppel vidéo entrant
- Refuser
- Accepter
- Appel lancé
- Appel audio sortant
- Appel vidéo sortant
- Appel rejetéappel rejeté
- Appel acceptéjoint
- a quitté l\'appel
- Appel audio sans réponse
- Appel vidéo sans réponseAppel terminé
- Appel annulé
- Appeler occupéAppeler...
- Aucun membre interdit n\'a été trouvéMembres interdits
- Nom
- PortéeUnban
- Sélectionner le type de groupeSaisir le mot de passe
- CréerCréer un sondageQuestionSaisissez votre question
- OptionsSaisissez votre option
- Ajouter une nouvelle option
- Afficher les membresDétails
- Notifications
- Autres
- Aide
- Signaler un problème
- Membres du groupeInterdiction
- Coup de pied
- Choisissez vos emojiGroupe privé
- Groupe protégéVisitez
- Emoji
- Aucun message trouvé
- Fil
- Document collaboratif
- Tableau blanc collaboratif
- Ajouter une réaction
- Aucun autocollant trouvé
- Répondre dans le threadSupprimer un messageModifier le message
- DIMANCHE
- LUNDI
- MARDI
- MERCREDI
- JEUDI
- VENDREDI
- SAMEDIPropriétaireÉcrire un messageÉchec de la récupération de l\'utilisateur bloqué
@@ -209,22 +121,17 @@
Souhaitez-vous débloquer %1$sImpossible de bloquer %1$sVeuillez saisir les détails du groupe pour continuer
- Impossible de rejoindre le groupeAimez-vous faire de %1$s en tant qu\'administrateur⚠️ Supprimer de %1$sAjouter %1$s à \ » %2$s \ »%1$s est ajouté à \ » %2$s \ »%1$s est supprimé de \ » %2$s \ »
- Échec du membre du groupe KickedSouhaitez-vous quitter le groupe ?Supprimer un groupeSupprimer le groupe
- Échec de la suppression du groupeImpossible de supprimer %1$s
- Impossible de quitter le groupeCharger plusCharger plus %1$s membres
- Impossible d\'extraire la liste des groupesmot de passeRejoindreIncorrect
@@ -236,13 +143,11 @@
Saisissez le mot de passe pour joigne %1$sAucun membre interditModérateurs
- Impossible de récupérer la liste des modérateurs.Aimez-vous faire de %1$s en tant que modérateurSeul l\'administrateur peut supprimer le modérateurMettre à jour groupeEntrez l\'URL de l\'icône du groupeMise à jour du groupe
- Groupe non mis à jourEntrez l\'ancien mot de passeEntrez un nouveau mot de passeAlerte groupe
@@ -251,23 +156,16 @@
Aimez-vous faire de %1$s en tant que Propriétaire%1$s est maintenant propriétaireVous n\'êtes pas membre de ce groupe (%1$s)
- Alerte propriétaire
- Veuillez transférer la propriété du groupe à un autre membre avant de quitter le groupe.Groupe publicGroupe protégé par mot de passeVous ne pouvez pas effectuer d\'action sur vous-mêmeSeul le propriétaire du groupe peut supprimer admin.%1$s est supprimé du privilège adminImpossible de mettre à jour le membre du groupe
- >Échec de la récupération de la liste d\'administration
- Impossible de créer un groupeÉchec de l\'opération sur %1$s
- Erreur : impossible de charger la liste des membres du groupe
- Impossible d\'extraire la liste des membres interditsVeuillez accorder l\'autorisation de caméra à partir des paramètres de l\'applicationVeuillez accorder l\'autorisation de stockage à partir du paramètre de l\'applicationLe fichier n\'existe pas
- Impossible d\'extraire la liste d\'appelsVous n\'avez pas fait d\'appelsImpossible de lancer l\'appel
@@ -294,7 +192,6 @@
EnvoyerConfidentialité et supportUtilisateur
- Message personnalisé non pris en chargeEntrez l\'URL de l\'avatarSaisir le nom d\'utilisateurMettre à jour utilisateur
@@ -313,8 +210,6 @@
Thread dans %1$sEnvoyé à :%1$sConnexion à l\'appel
- Lire à :%1$s
- Livré à :%1$sNaviguerVeuillez autoriser l\'autorisation de localisation.Envoyer des fichiers audio
@@ -326,7 +221,6 @@
GPS activéGPS désactivéOptions
- Envoi d\'un message multimédiaAjouter une nouvelle optionImpossible d\'obtenir votre positionTerminé
@@ -335,7 +229,6 @@
Partagé un tableau blancPartager WriteBoardPartagé un WriteBoard
- Vous avez envoyé un %1$sVous avez reçu un %1$sLancer un appelAppuyez pour démarrer la conversation
@@ -349,7 +242,6 @@
Pas de traduction disponiblea partagé un appel de groupe.📹 Appel de groupe
- Lancer un appel de groupeVous avez créé un appel de groupe.Succès votéTéléchargement
@@ -359,9 +251,6 @@
Utilisateur mis à jour avec succès "User Left" Utilisateur joint
- Connexion réussie
- Connexion en cours
- Vous êtes déconnecté. Aucune connexion Internet disponible Vous avez été bloqué par
@@ -376,89 +265,46 @@
Le sondage \" id \" est manquant Vous n\'êtes pas le créateur du sondage
- Veuillez appeler la méthode CometChat.init () de préférence dans la méthode onCreate () de la classe d\'application avant d\'appeler toute autre méthode liée à CometChatLe mot de passe est obligatoire pour un groupe protégé
- La limite a dépassé la limite maximale de %s
- Veuillez vous connecter à CometChat avant d\'appeler cette méthodeVeuillez fournir un GUID valideVeuillez fournir un UID valideL\'UID ne peut pas être vide. Veuillez fournir un UID valideL\'UID ne peut pas contenir d\'espaces. Veuillez fournir un UID validequelque chose s\'est mal passé
- L\'appel ne peut pas être annulé sans lancer un appel
- Une erreur s\'est produite lors de la connexion
- Incompatibilité de session d\'appel. Veuillez vérifier l\'ID de session
- UID et GUID non spécifiés Veuillez spécifier UID ou le GUID pour lequel le message doit être récupéréPas de connexion Internet. Veuillez réessayer plus tard
- Demande déjà en cours
- L\'horodatage \'ou\' MessageId \'ou\' updatedAfter \'est requis pour utiliser la méthode\' fetchNext () \'
- Auth token ne peux pas être vide. Veuillez fournir un auth tokenL\'extension est désactivée. Veuillez activer l\'extension depuis CometChat Dashboard
- L\'ID de message fourni n\'est pas valide Veuillez fournir un identifiant de message valide
- Seuls TextMessage ou CustomMessage peuvent être modifiés. Veuillez fournir un message valide
- La liste fournie est vide. Veuillez fournir une liste valide
- La méthode `updatesOnly()` ne peut pas être utilisée sans la méthode `setUpdatedAfter()`
- Erreur lors de l\'analyse de JSON
- Erreur lors de la déconnexion
- AppID ne peut pas être vide. Veuillez spécifier un appID valide
- La limite spécifiée doit être un nombre positif
- Région non spécifiée. Veuillez spécifier la région dans la classe AppSettingsBuilder en utilisant la méthode `setRegion()`
- Les AppSettings ne peuvent pas être null
- ApiKey ne peut pas être nul ou vide. Veuillez fournir une clé API valide
- Le type de message que vous avez entré n\'est pas valide pour l\'action suivante
- Le texte du message ne peut pas être vide
- L\'objet fichier ne peut pas être nul ou le chemin d\'accès au fichier n\'existe pas
- L\'URL du message multimédia est définie comme nulle ou vide
- Le champ de données personnalisé ne peut pas être nul ou videLe nom du groupe ne peut pas être nul ou vide
- Le type de groupe ne peut pas être nul ou vide
- Connexion en cours. Veuillez attendre la fin de la demande de connexion
- Le message ne peut pas être nul. Veuillez passer un objet `BaseMessage` valide
- Le groupe ne peut pas être nul. Veuillez passer un objet `Groupe` valide
- L\'appel ne peut pas être nul. Veuillez passer un objet `Call` valide
- Type d\'appel non valide. Veuillez fournir un type d\'appel valide
- Type de récepteur non valide. Veuillez fournir un type de récepteur valide
- Type sessionId non valide. Veuillez fournir un identifiant de session valide
- L\'activité fournie ne peut pas être nulle.
- Fourni RelativeLayout ne peut pas être nul
- Le jeton FCM fourni ne peut être nul ou vide. Veuillez fournir un jeton FCM valide
- Le type de groupe fourni ne peut pas être nul ou vide
- L\'appel est en cours. Veuillez mettre fin à l\'appel précédent pour effectuer cette opération
- Impossible d\'annuler l\'appel lancé par quelqu\'un d\'autre. Veuillez utiliser le statut «rejeté» à la place
- Nom non valide fourni pour l\'utilisateur. Veuillez fournir un nom valide
- L\'objet utilisateur ne peut pas être nul. Veuillez fournir un objet utilisateur valide
- Le nom du groupe ne peut pas être vide. Veuillez fournir un nom de groupe valide
- L\'horodatage doit être positif. Veuillez fournir un horodatage valide
- Catégorie non valide. Veuillez fournir une catégorie valide
- Icône vide. Veuillez fournir une icône valide
- Description vide. Veuillez fournir une description valide
- Métadonnées vides. Veuillez fournir des métadonnées valides
- Portée non valide. Veuillez fournir une portée valide
- Portée non valide. Veuillez fournir une portée valide
- Conversation invalide avec. Veuillez fournir une valeur valide pour conversationWith
- Type de conversationType valide. Veuillez fournir une valeur valide pour conversationWith
- Message multimédia non valide. Veuillez fournir un objet Fichier ou des détails de pièce jointe valides
- La pièce jointe ne peut pas être nulle. Veuillez fournir des détails de pièce jointe valides
- Nom de fichier non valide. Veuillez fournir un nom de fichier valide
- Extension de fichier non valide. Veuillez fournir une extension de fichier valide
- Type de fichier Mime non valide. Veuillez fournir un type de fichier mime valide
- URL de fichier non valide. Veuillez fournir une URL de fichier valide
- Conversation introuvable pour conversationWith %s et conversationType %s
- Paramètres introuvables.
- La fonctionnalité fournie ne peut pas être nulle ou vide. Veuillez fournir une fonctionnalité valide
- L\'extension fournie ne peut pas être nulle ou vide.
- Fonction fournie introuvable.L\'extension fournie est introuvable.frappéla gaucheTéléchargementcréation d\'un groupe
- Envoyer un message en privé
+ Envoyer un message en privéVoir le profil
- supprimer la conversationSouhaitez-vous supprimer cette conversation?Suppression de la conversation
+ hors ligne
+ Nouveaux messages
+ Nouveau message
+ Livré
+ Lis
+ Vote
+ Votes
+ déclin
+ Répondre
+ Réponse
+ réponses
+ Répondre en privé
+ Sélectionnez l\'utilisateur
+ Sélectionner un groupe
+ Rechercher des utilisateurs
+ Groupes de recherche
+ Appel vocal rejeté
+ Appel vidéo rejeté
+ Appel vocal sortant
+ Appel vidéo sortant
+ Aucun membre banni trouvé
\ 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 05f10e2..036ec51 100644
--- a/uikit/src/main/res/values-hi/strings.xml
+++ b/uikit/src/main/res/values-hi/strings.xml
@@ -4,9 +4,7 @@
कॉलसमूहअधिक
- भेजा जा रहा है...⚠️ यह संदेश मिटाया गया था
- ⚠️ आपने यह संदेश हटा दिया है📷 फोटो📹 वीडियो🎵 ऑडियो
@@ -20,7 +18,6 @@
📝 व्हाइटबोर्ड📃 दस्तावेज़ऑनलाइन
- ऑफ़लाइनआपएडमिनमॉडरेटर
@@ -31,83 +28,47 @@
कूटशब्द सुरक्षितगोपनीयता और सुरक्षा
- निजताअवरोधित उपयोगकर्ता
- सबकोप्राथमिकताएंआपने अवरोधित किया हैसदस्य
- वापसरद्द करेंक्लिपबोर्ड में पाठ की नक़लआजकल
- टाइपिंग...टाइप कर रहा है...
- बंद करेंकृपया, समूह का नाम दर्ज करें
- ताज़ा किया जा रहा है...अनब्लॉकग्रुप एडमिन बनाएंसमूह मॉडरेटर बनाएंव्यवस्थापकों
- एडमिन जोड़ें
- मॉडरेटर जोड़ेंसमूह व्यवस्थापक के रूप में असाइन करेंसमूह व्यवस्थापक के रूप में हटाएँसमूह मॉडरेटर के रूप में असाइन करेंसमूह मॉडरेटर के रूप में हटाएँ
- को समूह व्यवस्थापक के रूप में हटा दिया जाता हैको समूह मॉडरेटर के रूप में हटा दिया जाता हैअब एडमिन हैअब मॉडरेटर है⚠️ निकालें
- से एक व्यवस्थापक के रूप में
- से एक मॉडरेटर के रूप मेंसमूह?✅ जोड़ें
- में एक व्यवस्थापक के रूप में
- में एक मॉडरेटर के रूप मेंठीक
- एक मॉडरेटर के रूप में
- एक व्यवस्थापक के रूप मेंसदस्य जोड़ेंकार्रवाई
- गोपनीयता और समर्थन
- संदेश भेजेंमें जोड़ेंउपयोगकर्ता अनवरोधित करेंअवरोधित उपयोक्ता
- सफलतापूर्वक जोड़ा गयासफलतापूर्वक अनब्लॉक किया गया
- सफलतापूर्वक अवरोधित
- मिटाएँ (E)समूह छोड़ें
- से
- सफलतापूर्वक हटा दियासफलतापूर्वक प्रतिबंधितअप्रतिबंधित सफलतापूर्वक
- सफलतापूर्वक मिटाया गया
- आप से छोड़ दिया
- सदस्य मिटाएँबान सदस्य
- अनबान सदस्यसमूह बनाएँ
- आप शामिल हो गए
- अग्रेषितसाझा मीडिया
- संदेश को अग्रेषित करने में अक्षमआप एक समय में केवल 5 प्रतिभागियों को संदेश अग्रेषित कर सकते हैं
- कोई तस्वीरें नहीं
- कोई वीडियो नहीं
- कोई दस्तावेज़ नहींवीडियो कॉलऑडियो कॉल
- व्हाइटबोर्ड
- लोड हो रहा है...
- 1 प्रत्युत्तर
- उत्तरलांचशामिल होनाने एक सहयोगी व्हाइटबोअर साझा किया है
@@ -124,72 +85,23 @@
संदेश नक़ल करेंएक सर्वेक्षण बनाएँस्टिकर भेजें
- स्थान भेजा जा रहा है...
- स्थान सफलतापूर्वक भेजा गया
- कोई उपयोक्ता नहीं मिलात्रुटि
- कोई समूह नहीं मिला
- कोई चैट नहीं मिला
- मीडिया संदेश
- अस्वीकार
- स्वीकार करें
- कॉल आरंभिक
- जावक ऑडियो कॉल
- जावक वीडियो कॉल
- कॉल अस्वीकृत
- कॉल स्वीकृतशामिल हो गए
- कॉल छोड़ दिया
- अनुत्तरित ऑडियो कॉल
- अनुत्तरित वीडियो कॉलकॉल समाप्त
- कॉल रद्द
- व्यस्त कॉल करेंकॉल कर रहा है...
- कोई प्रतिबंधित सदस्य नहीं मिलाप्रतिबंधित सदस्य
- नाम
- स्कोपअप्रतिबंधित करें
- समूह क़िस्म चुनेंसमूह कूटशब्द भरें
- बनाएँसर्वेक्षण बनाएँप्रश्नअपना प्रश्न दर्ज करें
- विकल्पअपना विकल्प दर्ज करें
- नया विकल्प जोड़ें
- सदस्य देखें
- सूचनाएँ
- अन्य
- मदद
- किसी समस्या की रिपोर्ट करें
- समूह के सदस्यबान
- लात
- अपने इमोजी उठाओ
- सुरक्षित समूहयूट्यूब पर देखेंविज़िट करें
- इमोजी
- कोई संदेश नहीं मिला
- धागा
- सहयोगी दस्तावेज़
- सहयोगी व्हाइटबोर्ड
- प्रतिक्रिया जोड़ें
- कोई स्टिकर नहीं मिला
- थ्रेड में जवाब देंसंदेश मिटाएँसंदेश संपादित करें
- रविवार
- सोमवार
- मंगलवार
- बुधवार
- गुरुवार
- शुक्रवार
- शनिवार
- मालिक
+ मालिकएक संदेश लिखेंअवरोधित उपयोक्ता पुनर्प्राप्ति असफलआप संदेश भेजने या प्राप्त करने में सक्षम नहीं होंगे
@@ -197,22 +109,17 @@
क्या आप%1$s को अनब्लॉक करना चाहेंगे%1$S को ब्लॉक करने में असमर्थकृपया, आगे बढ़ने के लिए समूह विवरण दर्ज करें
- समूह में शामिल होने में अक्षमक्या आप%1$s को व्यवस्थापक के रूप में बनाना पसंद करते हैं⚠️ %1$s से हटाएँ\"%2$s\" में %1$s जोड़ें%1$s\” %2$s\” में जोड़ा गया है%1$s\” %2$s\” से हटा दिया गया है
- समूह सदस्य लात मारी असफलक्या आप समूह से छोड़ना चाहेंगे?समूह मिटाएँसमूह मिटाएँ
- समूह मिटाना असफल%1$s को नहीं हटाया जा सकता
- समूह छोड़ने में अक्षमअधिक लोड करें%1$s सदस्यों को लोड करें
- समूह सूची लाने में अक्षमकूटशब्दजुड़नागलत
@@ -224,13 +131,11 @@
%1$s में शामिल होने के लिए कूटशब्द भरेंकोई प्रतिबंधित सदस्य नहींमध्यस्थों
- मॉडरेटर सूची प्राप्त करने में असमर्थ।क्या आप%1$s को मॉडरेटर के रूप में बनाना पसंद करते हैंकेवल व्यवस्थापक मॉडरेटर निकाल सकते हैंसमूह अद्यतन करेंसमूह चिह्न यूआरएल भरेंसमूह सफलतापूर्वक अद्यतन
- समूह अद्यतन नहींपुराना पासवर्ड दर्ज करेंनया पासवर्ड दर्ज करेंसमूह अलर्ट
@@ -239,8 +144,6 @@
क्या आप%1$s को मालिक के रूप में बनाना पसंद है%1$s अब मालिक हैआप इस समूह के सदस्य नहीं हैं (%1$s)
- मालिक अलर्ट
- समूह छोड़ने से पहले कृपया समूह के स्वामित्व को दूसरे सदस्य को स्थानांतरित करेंसार्वजनिक समूहनिजी समूहकूटशब्द सुरक्षित समूह
@@ -248,15 +151,10 @@
केवल समूह स्वामी व्यवस्थापक को हटा सकता है।%1$s व्यवस्थापक विशेषाधिकार से हटा दिया गया हैसमूह सदस्य अद्यतन करने में असमर्थ
- > व्यवस्थापक सूची पुनर्प्राप्ति विफल
- समूह बनाने में असमर्थऑपरेशन असफल को%1$s पर
- त्रुटि: समूह सदस्य सूची लोड करने में सक्षम नहीं
- प्रतिबंधित सदस्य सूची लाने में असमर्थकृपया ऐप सेटिंग से कैमरा अनुमति देंकृपया ऐप सेटिंग से स्टोरेज अनुमति देंफ़ाइल मौजूद नहीं है
- कॉल सूची लाने में अक्षमआपने कोई कॉल नहीं किया हैकॉल आरंभ करने में अक्षमआउटगोइंग
@@ -288,7 +186,6 @@
गोपनीयता और समर्थनउपयोक्ताखोज
- मनपसंद संदेश समर्थित नहींअवतार के लिए यूआरएल भरेंउपयोक्ता नाम भरेंउपयोक्ता अद्यतन करें
@@ -307,8 +204,6 @@
%1$s में धागापर भेजा गया: %1$sकॉल से कनेक्ट हो रहा है
- पर पढ़ें: %1$s
- पर डिलीवर किया गया: %1$sनेविगेटकृपया स्थान की अनुमति दें।ऑडियो फ़ाइलें भेजें
@@ -320,7 +215,6 @@
जीपीएस सक्षमजीपीएस अक्षमविकल्प
- मीडिया संदेश भेज रहा हैनया विकल्प जोड़ेंअपना स्थान प्राप्त करने में असमर्थसमाप्त
@@ -329,7 +223,6 @@
एक व्हाइटबोर्ड साझालेखनबोर्ड साझा करेंएक लेखबोर्ड साझा किया
- आपने एक %1$s भेजाआपने एक %1$s प्राप्त कियाकॉल आरंभ करेंबातचीत शुरू करने के लिए टैप करें
@@ -345,7 +238,6 @@
कोई अनुवाद उपलब्ध नहींने एक समूह कॉल साझा किया है।📹 ग्रुप कॉल
- एक समूह कॉल प्रारंभ करेंआपने एक समूह कॉल बनाया है।सफलतापूर्वक मतदान किया गयाअपलोडिंग
@@ -354,10 +246,8 @@
बात चिट अपडेट किया गया उपयोगकर्ता सफलतापूर्वक "User Left"
- उपयोगकर्ता में शामिल हो गया
- कनेक्टेड सक्सेसफुल
- प्रगति में कनेक्शन
- आप डिस्कनेक्ट हो गए हैं।
+ उपयोगकर्ता
+ में शामिल हो गया
कोई इंटरनेट उपलब्ध नहीं है आपको द्वारा अवरोधित कर दिया गया है
@@ -371,84 +261,41 @@
पोल \ "आईडी \" गायब हैआप चुनाव के निर्माता नहीं हैं
- CometChat से संबंधित किसी भी अन्य तरीके को कॉल करने से पहले कृपया आवेदन श्रेणी के CometChat.init () विधि को ऑनक्रीट () विधि में अधिमानतः कॉल करें।संरक्षित समूह के लिए पासवर्ड अनिवार्य है
- सीमा %s की अधिकतम सीमा से अधिक है
- कृपया इस Method को कॉल करने से पहले CometChat में लॉग इन करेंकृपया एक मान्य GUID प्रदान करेंकृपया एक मान्य UID प्रदान करेंUID खाली नहीं हो सकता। कृपया एक वैध UID प्रदान करेंUID में रिक्त स्थान नहीं हो सकते. कृपया एक मान्य UID प्रदान करेंकुछ गलत हो गया
- कॉल शुरू किए बिना कॉल को रद्द नहीं किया जा सकता है
- कनेक्ट करते समय कुछ गलत हो गया
- कॉल सेशन मिसमैच। कृपया सत्र आईडी की जाँच करें
- UID और GUID दोनों निर्दिष्ट नहीं हैं, कृपया UID या GUID निर्दिष्ट करें जिसके लिए संदेश को लाने की जरूरत हैकोई इंटरनेट कनेक्शन नहीं। कृपया बाद में पुनः प्रयास करें
- पहले से ही अनुरोध है
- Timestamp या MessageId या updatedAfter आदि fetchNext() method का उपयोग करने के लिए आवश्यक है
- Auth token खाली नहीं किया जा सकता. कृपया एक मान्य auth token प्रदान करेंएक्सटेंशन अक्षम है। कृपया CometChat डैशबोर्ड से एक्सटेंशन सक्षम करें
- प्रदान की गई संदेश आईडी अमान्य है. कृपया एक मान्य संदेश आईडी प्रदान करें
- केवल TextMessage या CustomMessage को संपादित किया जा सकता है। कृपया एक वैध संदेश प्रदान करें
- प्रदान की गई सूची रिक्त है। कृपया एक मान्य सूची प्रदान करें
- `updatesOnly()` विधि का उपयोग `setUpdatedAfter() किए गए विधि के बिना नहीं किया जा सकता है
- JSON को पार्स करते समय त्रुटि
- लॉग आउट करते समय त्रुटि
- AppID खाली नहीं हो सकता। कृपया एक मान्य AppID निर्दिष्ट करें
- निर्दिष्ट सीमा एक सकारात्मक संख्या होनी चाहिए
- क्षेत्र निर्दिष्ट नहीं है। कृपया setRegion() पद्धति का उपयोग करके AppSettingsBuilder वर्ग में क्षेत्र को निर्दिष्ट करें
- AppSettings शून्य नहीं हो सकता
- ApiKey शून्य या रिक्त नहीं हो सकती। कृपया एक मान्य Api Key प्रदान करें
- आपके द्वारा दर्ज किया गया संदेश प्रकार निम्नलिखित क्रिया के लिए अमान्य है
- संदेश पाठ खाली नहीं हो सकता
- फ़ाइल ऑब्जेक्ट शून्य या फ़ाइल पथ मौजूद नहीं हो सकता है
- मीडिया संदेश URL को शून्य या रिक्त के रूप में सेट किया गया है
- कस्टम डेटा फ़ील्ड शून्य या रिक्त नहीं हो सकतीसमूह नाम शून्य या रिक्त नहीं हो सकता
- समूह प्रकार शून्य या रिक्त नहीं हो सकता
- लॉग इन करें। कृपया लॉगिन अनुरोध समाप्त होने की प्रतीक्षा करें
- संदेश शून्य नहीं हो सकता। कृपया एक मान्य `BaseMessage` ऑब्जेक्ट पास करें
- समूह शून्य नहीं हो सकता। कृपया एक वैध `Group` ऑब्जेक्ट पास करें
- कॉल शून्य नहीं हो सकती। कृपया एक वैध `कॉल` ऑब्जेक्ट पास करें
- अमान्य कॉल प्रकार। कृपया एक मान्य कॉल प्रकार प्रदान करें
- अमान्य प्राप्तकर्ता प्रकार। कृपया एक मान्य रिसीवर प्रकार प्रदान करें
- अमान्य सत्रId प्रकार। कृपया एक मान्य सत्र आईडी प्रदान करें
- बशर्ते गतिविधि शून्य न हो।
- बशर्ते RelativeLayout अशक्त न हो
- उपलब्ध कराया गया FCM टोकन शून्य या खाली नहीं हो सकता। कृपया एक मान्य FCM टोकन प्रदान करें
- प्रदान किया गया समूह प्रकार रिक्त या रिक्त नहीं हो सकता है
- कॉल जारी है। कृपया इस ऑपरेशन को करने के लिए पिछली कॉल को समाप्त करें
- किसी अन्य व्यक्ति द्वारा शुरू किए गए कॉल को रद्द नहीं कर सकता। कृपया इसके बजाय स्थिति \'अस्वीकृत\' का उपयोग करें
- उपयोगकर्ता के लिए अमान्य नाम प्रदान किया गया। कृपया एक वैध नाम प्रदान करें
- उपयोगकर्ता ऑब्जेक्ट शून्य नहीं हो सकता। कृपया एक मान्य उपयोगकर्ता ऑब्जेक्ट प्रदान करें
- समूह नाम रिक्त नहीं हो सकता। कृपया एक मान्य समूह नाम प्रदान करें
- टाइमस्टैम्प को सकारात्मक होना चाहिए। कृपया एक वैध टाइमस्टैम्प प्रदान करें
- अमान्य श्रेणी। कृपया एक मान्य श्रेणी प्रदान करें
- खाली चिह्न। कृपया एक वैध आइकन प्रदान करें
- खाली विवरण। कृपया एक वैध विवरण प्रदान करें
- खाली मेटाडेटा। कृपया एक मान्य मेटाडेटा प्रदान करें
- अमान्य स्कोप। कृपया एक मान्य गुंजाइश प्रदान करें
- अमान्य स्कोप। कृपया एक मान्य गुंजाइश प्रदान करें
- अमान्य वार्तालाप कृपया वार्तालाप के लिए एक मान्य मान प्रदान करें
- अमान्य वार्तालाप। कृपया वार्तालाप के लिए एक मान्य मान प्रदान करें
- अमान्य मीडिया संदेश। कृपया एक मान्य फ़ाइल ऑब्जेक्ट या अनुलग्नक विवरण प्रदान करें।
- अनुलग्नक शून्य नहीं हो सकती। कृपया मान्य अनुलग्नक विवरण प्रदान करें
- अमान्य फ़ाइल नाम। कृपया एक मान्य फ़ाइल नाम प्रदान करें
- अमान्य फ़ाइल एक्सटेंशन। कृपया एक मान्य फ़ाइल एक्सटेंशन प्रदान करें
- अमान्य फ़ाइल माइम प्रकार। कृपया एक मान्य फ़ाइल माइम प्रकार प्रदान करें
- अमान्य फ़ाइल URL। कृपया एक मान्य फ़ाइल URL प्रदान करें
- वार्तालाप के लिए conversationWith %s और conversationType %s नहीं मिला
- सेटिंग्स नहीं मिलीं।
- बशर्ते सुविधा शून्य या रिक्त न हो। कृपया एक मान्य सुविधा प्रदान करें
- बशर्ते विस्तार शून्य या रिक्त न हो।
- बशर्ते सुविधा नहीं मिली।प्रदान किया गया एक्सटेंशन नहीं मिला।डाउनलोडसमूह बनाना
- निजी तौर पर संदेश भेजें
+ निजी तौर पर संदेश भेजेंप्रोफ़ाइल देखें
- बातचीत मिटा दोक्या आप इस वार्तालाप को हटाना चाहेंगे?वार्तालाप हटाना
+ ऑफ़लाइन
+ नए संदेश
+ नया संदेश
+ पहुंचा दिया
+ पढ़ें
+ वोट
+ वोट
+ पतन
+ उत्तर
+ जवाब
+ जवाब
+ निजी तौर पर उत्तर दें
+ उपयोगकर्ता का चयन करें
+ समूह का चयन करें
+ उपयोगकर्ता खोजें
+ समूह खोजें
+ अस्वीकृत वॉयस कॉल
+ अस्वीकृत वीडियो कॉल
+ आउटगोइंग वॉयस कॉल
+ आउटगोइंग वीडियो कॉल
+ कोई प्रतिबंधित सदस्य नहीं मिला
\ No newline at end of file
diff --git a/uikit/src/main/res/values-lt/strings.xml b/uikit/src/main/res/values-lt/strings.xml
index d348c2e..8aa6a51 100644
--- a/uikit/src/main/res/values-lt/strings.xml
+++ b/uikit/src/main/res/values-lt/strings.xml
@@ -49,22 +49,17 @@
Prašome įvesti išsamią grupės informaciją, kad galėtumėte tęsti
- Nepavyko prisijungti prie grupės Ar norite %1$s sukurti kaip administratorių ⚠️ Pašalinti iš %1$s Pridėkite %1$s prie \" %2$s \" %1$s pridėta prie \" %2$s \" %1$s pašalinta iš \" %2$s \"
- Nepavyko spustelėti grupės nario Ar norite išeiti iš grupės? Ištrinti grupę Ištrinti grupę
- Nepavyko ištrinti grupės Negalima pašalinti %1$s
- Nepavyko išeiti iš grupės Įkelti daugiau Įkelkite daugiau %1$s narių
- Nepavyko gauti grupių sąrašo Slaptažodis Prisijungimas Neteisinga
@@ -78,13 +73,11 @@
Įveskite slaptažodį, kad prisijungtumėte prie %1$s Nėra draudžiamų narių Moderatoriai
- Nepavyko gauti moderatorių sąrašo. Ar norite %1$s sukurti kaip moderatorių Tik administratorius gali pašalinti moderatorių Atnaujinti grupę Įveskite grupės piktogramos URL Grupė sėkmingai atnaujinta
- Grupė neatnaujinta Įveskite seną slaptažodį Įveskite naują slaptažodį Grupės įspėjimas
@@ -93,8 +86,6 @@
Ar norite %1$s tapti savininku %1$s dabar yra savininkas Jūs nesate šios grupės narys (%1$s)
- Įspėjimas apie savininką
- Prieš palikdami grupę, perduokite grupės nuosavybės teises kitam nariui viešoji grupė privati grupė
@@ -106,11 +97,7 @@
Tik grupės savininkas gali pašalinti administratorių. pašalinta iš administratoriaus privilegijos Nepavyko atnaujinti grupės nario
- Administratoriaus sąrašo paieška nepavyko
- Nepavyko sukurti grupės Nepavyko operuoti %1$s
- klaida: nepavyko įkelti grupės narių sąrašo
- Nepavyko gauti draudžiamų narių sąrašo Prašome suteikti kameros leidimą iš programos nustatymo
@@ -124,7 +111,6 @@
Praleistas vaizdo skambutis
- Nepavyko gauti skambučių sąrašo Jūs neatlikote jokių skambučių Skambinimas Nepavyko inicijuoti skambučio
@@ -169,14 +155,12 @@
Atšaukti Tekstas nukopijuotas į mainų sritį Ištrinti pranešimą
- Siųsti pranešimą Privatumas ir amp; Saugumas ✅ Pridėti Persiųsti pranešimą Veiksmai Nuostatos Prisijungęs
- Neprisijungus Atsakyti pranešimą Bendrinti pranešimą Kopijuoti pranešimą
@@ -221,8 +205,6 @@
Sriegis %1$s Išsiųsta:%1$s Prisijungiama prie skambučio
- Skaityti: %1$s
- Pristatyta: %1$s Naršyti Prašome leisti buvimo vietos leidimą. Siųsti garso failus
@@ -234,7 +216,6 @@
GPS įjungtas GPS išjungtas Parinktis
- Medijos pranešimo siuntimas Įveskite savo parinktį Įveskite savo klausimą Klausimas
@@ -246,60 +227,28 @@
Bendrino lentą Bendrinti rašymo lentą Bendrino rašymo lentą
- Išsiuntėte %1$s Gavote %1$s Pradėkite skambutį
- Priimti
- Pridėti administratorių
- Pridėti moderatorių
- Pridėti naują parinktį
- Pridėti reakciją
- sėkmingai pridėta
- ⚠️ Ištrynėte šį pranešimą Vakar
- atgal Uždrausti Sėkmingai uždrausta
- Sėkmingai užblokuota
- Sukurti
- %1$s pašalinta iš administratoriaus privilegijos
- Peržiūrėti narius
- Atmesti
- Sėkmingai ištrinta sėkmingai atblokuotas Negalite persiųsti pranešimo daugiau nei 5 nariams
- Siunčiama .. 🎵 Garsas 📷 Vaizdas 📹 Vaizdo įrašas 📁 Failas
- Skambutis priimtas
- Skambučio užimta
- Skambutis atšauktas Skambutis baigtas
- Skambučio pradžia
- Skambutis atmestas 📃 Dokumentas 📍 Vieta
- Tinkintas pranešimas nepalaikomas "📊 Apklausos" "💟 Lipdukas" 📝 Lenta
- Ištrinti & Išėjimas Slaptažodžiu apsaugota grupė Privati grupė Viešoji grupė
- Atsakyti gijoje
- Nerasta jokių lipdukų
- Bendradarbiavimo dokumentas
- Bendra lenta
- Sriegis
- Nerasta pranešimų
- jaustukas
- uždaryti klaida
- grupės nariai Nėra gijų pranešimų inicijuotas pridėta
@@ -314,7 +263,6 @@
bendrino grupės skambutį. Jūs sukūrėte grupės skambutį. "📹 Grupės skambutis"
- Pradėti grupės skambutį Bandyti dar kartą Įkėlimas Balsuota sėkmė
@@ -323,9 +271,6 @@
Sėkmingai atnaujintas vartotojas "Vartotojo kairė" Vartotojas prisijungė
- Prisijungta sėkmingai
- Vykdomas ryšys
- Jūs esate atjungtas. Nėra interneto Jus užblokavo "Užblokavote"
@@ -342,87 +287,46 @@
Apklausa neegzistuoja Trūksta apklausos \" id \" Jūs nesate apklausos kūrėjas
- Prieš iškviesdami bet kokius kitus metodus, susijusius su CometChat, prašome iškviesti metodą CometChat.init () pageidautina taikant programos onCreate () metodą Slaptažodis yra privalomas saugomai grupei
- Riba viršijo maksimalią ribą
- Prieš iškviesdami šį metodą, prisijunkite prie „CometChat“ Pateikite galiojantį GUID Pateikite galiojantį UID UID negali būti tuščias. Pateikite galiojantį UID UID negali būti tarpų. Pateikite galiojantį UID Kažkas ne taip
- Skambučio negalima atšaukti nepradėjus skambučio
- Prisijungiant kažkas nepavyko
- Skambučio sesijos neatitikimas. Patikrinkite seanso ID
- Nenurodytas ir UID, ir GUID. Nurodykite UID arba GUID, kuriam reikia gauti pranešimus Nėra interneto ryšio. Vėliau bandykite dar kartą
- Užklausa jau vykdoma
- Laiko žymė \' arba \' MessageId \' arba updatedAfter reikalinga norint naudoti metodą \' fetchNext() \'
- Autentinis prieigos raktas negali būti tuščias. Pateikite galiojantį prieigos raktą
- Pateiktas pranešimo ID yra neteisingas. Pateikite galiojantį pranešimo ID
- Redaguoti galima tik „TextMessage“ arba „CustomMessage“. Pateikite galiojantį pranešimą
- Pateiktas sąrašas tuščias. Pateikite galiojantį sąrašą
- Metodo „updatesOnly()“ negalima naudoti be metodo „setUpdatedAfter()“
- Klaida analizuojant JSON
- Atsijungiant įvyko klaida
- „AppID“ negali būti tuščias. Nurodykite galiojantį programos ID
- Nurodyta riba turi būti teigiamas skaičius
- Regionas nenurodytas. Nurodykite regioną „AppSettingsBuilder“ klasėje naudodami metodą „setRegion ()“
- „AppSettings“ negali būti niekinis
- ApiKey negali būti tuščias arba tuščias. Pateikite galiojantį „API“ raktą
- Vyksta prisijungimas. Palaukite, kol baigsis prisijungimo užklausa
- Įvestas pranešimo tipas netinkamas atliekant šį veiksmą
- Pranešimo tekstas negali būti tuščias
- Failo objektas negali būti nulinis arba failo kelias neegzistuoja
- Medijos pranešimo URL nustatytas kaip tuščias arba tuščias
- Tinkintų duomenų laukas negali būti tuščias arba tuščias Grupės pavadinimas negali būti tuščias arba tuščias
- Grupės tipas negali būti tuščias arba tuščias
- Pranešimas negali būti niekinis. Prašau perduoti galiojantį „BaseMessage“ objektą
- Grupė negali būti nulinė. Prašau perduoti galiojantį objektą „Grupė“
- Skambutis negali būti nulinis. Prašau perduoti galiojantį objektą „Skambutis“
- Netinkamas skambučio tipas. Pateikite galiojantį skambučio tipą
- Neteisingas imtuvo tipas. Pateikite galiojantį imtuvo tipą
- Netinkamas sessionId tipas. Pateikite galiojantį seanso ID
- Pateikta veikla negali būti nulinė.
- Pateiktas „RelativeLayout“ negali būti nulinis
- Pateiktas FCM prieigos raktas negali būti tuščias arba tuščias. Pateikite galiojantį FCM prieigos raktą
- Pateiktas grupės tipas negali būti tuščias arba tuščias
- Vyksta skambutis. Norėdami atlikti šią operaciją, užbaikite ankstesnį skambutį
- Negalima atšaukti kito asmens inicijuoto skambučio. Vietoj to naudokite būseną „atmesta“
- Vartotojui pateiktas neteisingas vardas. Pateikite galiojantį pavadinimą
- Vartotojo objektas negali būti nulinis. Pateikite galiojantį vartotojo objektą
- Grupės pavadinimas negali būti tuščias. Pateikite galiojantį grupės pavadinimą
- Laiko žymė turi būti teigiama. Pateikite tinkamą laiko žymą
- Netinkama kategorija. Pateikite galiojančią kategoriją
- Tuščia piktograma. Pateikite galiojančią piktogramą
- Tuščias aprašas. Pateikite galiojantį aprašymą
- Tušti metaduomenys. Pateikite galiojančius metaduomenis
- Netinkama sritis. Pateikite galiojančią taikymo sritį
- Netinkama sritis. Pateikite galiojančią taikymo sritį
- Neteisingas pokalbis su. Nurodykite tinkamą pokalbio su vertę
- Netinkamas pokalbio tipas. Nurodykite tinkamą pokalbio su vertę
- Neteisingas daugialypės terpės pranešimas. Pateikite galiojančią išsamią failo objekto arba priedo informaciją.
- Priedas negali būti niekinis. Pateikite galiojančią išsamią priedo informaciją
- Netinkamas failo pavadinimas. Pateikite galiojantį failo pavadinimą
- Netinkamas failo plėtinys. Pateikite galiojantį failo plėtinį
- Netinkamas failo MIME tipas. Pateikite galiojantį failo „mime“ tipą
- Netinkamas failo URL. Pateikite galiojantį failo URL
- Pokalbis nerastas
- Nustatymai nerasti.
- Funkcija netinkama.
- Šis plėtinys neteisingas. Patikrinkite informacijos suvestinėje.
- Funkcija nerasta.
+ vertę
+ vertę
gruppužblokuotas vartotojasatsisiųstikurianti grupė
- Siųsti pranešimą privačiai
+ Siųsti pranešimą privačiaiPeržiūrėti vartotojo profilį
- Ištrinti pokalbįšiandienAr norėtumėte ištrinti šį pokalbį?Ištrinamas pokalbisrašo ..
+ neprisijungęs
+ Nauji pranešimai
+ Nauja žinutė
+ Pristatyta
+ Perskaityk
+ Balsas
+ Balsai
+ nuosmukis
+ Atsakymas
+ Atsakyti
+ Atsakymai
+ Atsakykite privačiai
+ Pasirinkite Vartotojas
+ Pasirinkite Grupė
+ Ieškoti naudotojų
+ Ieškoti grupėse
+ Atmestas balso skambutis
+ Atmestas vaizdo skambutis
+ Išeinantis balso skambutis
+ Išeinantis vaizdo skambutis
+ Nerasta uždraustų narių
\ 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 6311554..0f36663 100644
--- a/uikit/src/main/res/values-ms/strings.xml
+++ b/uikit/src/main/res/values-ms/strings.xml
@@ -4,9 +4,7 @@
PanggilanKumpulanLagi
- Menghantar...⚠️ Mesej ini telah dipadamkan
- ⚠️ Anda memadam mesej ini📷 Foto📹 Video🎵 Audio
@@ -20,7 +18,6 @@
📝 Papan Putih📃 DokumenDalam Talian
- Luar TalianAndaAdminModerator
@@ -31,83 +28,47 @@
DilindungiPrivasi dan Keselamatan
- PrivasiPengguna Dihalang
- Semua orangKeutamaanAnda telah menyekatAhli-ahli
- BelakangBatalTeks disalin ke KlipbodHari iniSemalam
- menaip...sedang menaip...
- TutupSila masukkan nama kumpulan
- Menyegarkan...Buka sekatJadikan pentadbir kumpulanJadikan moderator kumpulanPentadbir
- Tambah pentadbir
- Tambah moderatorPeruntukkan sebagai pentadbir kumpulanBuang sebagai pentadbir grupUmpuk sebagai moderator grupBuang sebagai Moderator grup
- dialih keluar sebagai pentadbir grupdihapus sebagai moderator grupsekarang Adminkini Moderator⚠️ Keluarkan
- sebagai pentadbir dari
- sebagai moderator darikumpulan?✅ Tambah
- sebagai pentadbir dalam
- sebagai moderator diOK
- sebagai moderator
- sebagai pentadbirTambah ahliTINDAKAN
- PRIVASI & SOKONGAN
- Hantar MesejTambah dalamNyahsekat PenggunaSekat Pengguna
- berjaya ditambahberjaya menyahsekat
- berjaya disekat
- Padam & KeluarTinggalkan Kumpulan
- daripada
- berjaya dibuangdiharamkan berjayatidak diharamkan berjaya
- berjaya dipadam
- Anda meninggalkan dari
- Buang AhliBan Ahli
- Ahli UnbanCipta Kumpulan
- Anda menyertai
- MajuMedia Kongsi
- Tidak boleh majukan mesej keAnda boleh memajukan mesej hanya kepada 5 peserta pada satu masa
- Tiada Foto
- Tiada Video
- Tiada DokumenSejarahPanggilan VideoPanggilan Audio
- Papan Putih
- Memuatkan...
- 1 balasan
- balasannyaLancarkanSertailahtelah berkongsi whiteboar kolaboratif
@@ -124,71 +85,22 @@
Salin MesejBuat UndianHantar Pelekat
- Menghantar Lokasi...
- Lokasi berjaya dihantarCari
- Tiada pengguna ditemuiRalat
- Tiada kumpulan ditemui
- Tiada sembang ditemui
- Mesej media
- Tolak
- Terima
- Panggilan dimulakan
- Panggilan audio keluar
- Panggilan video keluar
- Panggilan ditolak
- Panggilan diterimamenyertai
- meninggalkan panggilan
- Panggilan audio tidak dijawab
- Panggilan video tidak dijawabPanggilan berakhir
- Panggilan dibatalkan
- Panggilan sibukMemanggil...
- Tiada ahli yang diharamkan ditemui
- Nama
- SkopUnban
- Pilih jenis kumpulan
- CiptaBuat UndianSoalanMasukkan soalan anda
- PilihanMasukkan pilihan anda
- Tambah opsyen baru
- Lihat AhliPerincian
- Pemberitahuan
- Lain-lain
- Bantuan
- Laporkan Masalah
- Ahli KumpulanBan
- Kick
- Pilih emoji anda
- Kumpulan TerlindungLihat di YoutubeLawati
- Emotikon
- Tiada mesej ditemui
- Thread
- Dokumen Kerjasama
- Papan Putih Kolaboratif
- Tambah reaksi
- Tiada pelekat ditemui
- Balas dalam bebenangPadam mesejSunting mesej
- AHAD
- ISNIN
- SELASA
- RABU
- KHAMIS
- JUMAAT
- SABTUPemilikTulis mesejPengambilan pengguna yang disekat gagal
@@ -197,22 +109,17 @@
Adakah anda ingin menyahblok %1$sTidak boleh sekat %1$sSila masukkan butiran kumpulan untuk teruskan
- Tidak boleh sertai kumpulanAdakah anda ingin membuat %1$s sebagai Pentadbir⚠️ Buang dari %1$sTambah %1$s ke\” %2$s\”%1$s ditambah ke\” %2$s\”%1$s dibuang dari\” %2$s\”
- Ahli Kumpulan ditendang GagalApakah Anda ingin meninggalkan grup?Hapuskan KumpulanHapuskan kumpulan
- Pemadaman Kumpulan GagalTidak dapat buang %1$s
- Tidak boleh tinggalkan kumpulanMuatkan LagiMuatkan lebih lagi %1$s ahli
- Tidak boleh dapatkan Senarai KumpulanKata LaluanSertaiTidak betul
@@ -226,13 +133,11 @@
Masukkan Kata Laluan untuk menyertai %1$sTiada Ahli DiharamkanModerator
- Tidak boleh dapatkan senarai moderator.Adakah anda ingin membuat %1$s sebagai ModeratorHanya Admin boleh membuang moderatorKemaskini KumpulanMasukkan URL Ikon KumpulanKumpulan berjaya Dikemaskini
- Kumpulan tidak dikemaskiniMasukkan Kata Laluan LamaMasukkan kata laluan baruAmaran Kumpulan
@@ -241,8 +146,6 @@
Adakah anda ingin membuat %1$s sebagai Pemilik%1$s kini PemilikAnda bukan ahli kumpulan ini (%1$s)
- Amaran Pemilik
- Sila pindahkan pemilikan kumpulan kepada ahli lain sebelum meninggalkan kumpulanKumpulan AwamKumpulan PersendirianKumpulan Perlindungan Kata Laluan
@@ -250,15 +153,10 @@
Hanya pemilik kumpulan boleh membuang pentadbir.%1$s dibuang dari keistimewaan pentadbirTidak dapat mengemas kini Ahli Kumpulan
- >Pengambilan daftar admin gagal
- Tidak boleh cipta kumpulanOperasi gagal pada %1$s
- Ralat: Tidak dapat memuatkan senarai ahli kumpulan
- Tidak dapat mengambil Senarai Ahli TerlarangSila berikan kebenaran kamera daripada tetapan aplikasiSila berikan kebenaran storan daripada tetapan aplikasiFail tidak wujud
- Tidak boleh dapatkan Senarai PanggilanAnda tidak membuat sebarang panggilanTidak boleh awalkan panggilan
@@ -288,7 +186,6 @@
HantarPrivasi & SokonganPengguna
- Mesej Suai tidak disokongMasukkan Url untuk avatarMasukkan nama penggunaKemaskini Pengguna
@@ -307,8 +204,6 @@
Bebenang dalam %1$sDihantar pada: %1$sMenyambung ke panggilan
- Baca Pada: %1$s
- Dihantar Pada: %1$sNavigasiSila benarkan kebenaran lokasi.Hantar Fail Audio
@@ -320,7 +215,6 @@
GPS dibenarkanGPS dilumpuhkanPilihan
- Menghantar Mesej MediaTambah Opsyen BaruTidak boleh dapatkan lokasi andaBerakhir
@@ -329,7 +223,6 @@
Dikongsi Papan PutihKongsi WriteBoardKongsi WriteBoard
- Anda menghantar %1$sAnda menerima %1$sAwalkan panggilanKetik untuk memulakan perbualan
@@ -344,7 +237,6 @@
Terjemahan Tidak Adatelah berkongsi panggilan kumpulan.📹 Panggilan Berkumpulan
- Manomboha antso anaty vondronaAnda telah membuat panggilan kumpulan.Berjaya Mengundimemuat naik
@@ -354,9 +246,6 @@
Pengguna yang Dikemas kini Berjaya "Kiri Pengguna" Pengguna Bergabung
- Berhasil Berhubung
- Sambungan Sedang Berlangsung
- Anda terputus. Tidak Terdapat Internet Anda telah disekat oleh
@@ -370,86 +259,43 @@
Jajak pendapat \"id \" tidak ada Anda bukan pencipta tinjauan pendapat
- Sila hubungi kaedah CometChat.init () lebih baik dalam kaedah onCreate () kelas aplikasi sebelum memanggil kaedah lain yang berkaitan dengan CometChatKata laluan adalah wajib bagi kumpulan yang dilindungi
- Had melebihi had maksimum %s
- Sila log masuk ke CometChat sebelum memanggil kaedah iniSila berikan GUID yang sahSila berikan UID yang sahUID tidak boleh kosong. Sila berikan UID yang sahUID tidak boleh mengandungi ruang Sila berikan UID yang sahada yang tidak kena
- Panggilan tidak dapat dibatalkan tanpa memulakan panggilan
- Kesalahan berlaku semasa menyambung
- Kesalahan sesi panggilan. Sila periksa ID sesi
- UID dan GUID tidak dinyatakan Sila nyatakan UID atau GUID yang mana mesejnya perlu diambilTiada sambungan internet. Sila cuba sebentar lagi
- Permintaan sudah dijalankan
- Cap waktu atau MessageId atau updatedAfter diperlukan untuk menggunakan kaedah fetchNext()
- Auth token tidak boleh kosong. Sila berikan yang sah auth tokenSambungan dilumpuhkan. Sila aktifkan sambungan dari CometChat Dashboard
- ID mesej yang diberikan tidak sah Sila berikan ID Mesej yang sah
- Hanya TextMessage atau CustomMessage yang dapat diedit. Sila berikan mesej yang sah
- Senarai yang disediakan kosong. Sila berikan senarai yang sah
- Kaedah updateOnly() tidak boleh digunakan tanpa kaedah setUpdatedAfter()
- Ralat semasa menghuraikan JSON
- Ralat semasa log keluar
- AppID no puede estar vacío. Especifique un ID de aplicación válido
- Had yang dinyatakan mestilah nombor positif
- Wilayah tidak ditentukan. Sila nyatakan wilayah di kelas AppSettingsBuilder menggunakan kaedah `setRegion ()`
- AppSettings tidak boleh kosong
- ApiKey tidak boleh kosong atau kosong. Sila berikan Kunci Api yang sah
- Jenis Mesej yang anda masukkan tidak sah untuk tindakan berikut
- Teks mesej tidak boleh kosong
- Objek fail tidak boleh kosong atau Laluan fail tidak wujud
- URL Mesej Media ditetapkan sebagai kosong atau kosong
- Medan data khusus tidak boleh kosong atau kosongNama Kumpulan tidak boleh kosong atau kosong
- Jenis Kumpulan tidak boleh kosong atau kosong
- Log masuk sedang dijalankan. Tunggu permintaan log masuk selesai
- Mesej tidak boleh dibatalkan. Sila lulus objek `BaseMessage` yang sah
- Kumpulan tidak boleh kosong. Sila lulus objek `Group` yang sah
- Panggilan tidak boleh dibatalkan. Sila lulus objek `Call` yang sah
- Jenis Panggilan Tidak Sah. Sila berikan jenis Panggilan yang sah
- Jenis Penerima Tidak Sah. Sila berikan jenis Penerima yang sah
- Jenis sesiId tidak sah. Sila berikan id sesi yang sah
- Aktiviti yang disediakan tidak boleh sia-sia.
- Dengan syarat RelativeLayout tidak boleh dibatalkan
- Token FCM yang diberikan tidak boleh kosong atau kosong. Sila berikan token FCM yang sah
- Jenis kumpulan yang disediakan tidak boleh kosong atau kosong
- Panggilan sedang dijalankan. Tamatkan panggilan sebelumnya untuk melakukan operasi ini
- Tidak dapat membatalkan panggilan yang dimulakan oleh orang lain. Sebagai gantinya, sila gunakan status `ditolak \'
- Nama tidak sah diberikan untuk pengguna. Sila berikan nama yang sah
- Objek pengguna tidak boleh kosong. Sila berikan objek pengguna yang sah
- Nama kumpulan tidak boleh kosong. Sila berikan nama kumpulan yang sah
- Cap waktu mesti positif. Sila berikan cap waktu yang sah
- Kategori Tidak Sah. Sila berikan kategori yang sah
- Ikon Kosong. Sila berikan ikon yang sah
- Huraian Kosong. Sila berikan keterangan yang sah
- Metatdata kosong. Sila berikan metadata yang sah
- Skop Tidak Sah. Sila berikan skop yang sah
- Skop Tidak Sah. Sila berikan skop yang sah
- Perbualan tidak sah dengan. Sila berikan nilai yang sah untuk perbualanDengan
- Jenis perbualan tidak sah. Sila berikan nilai yang sah untuk perbualanDengan
- Mesej Media Tidak Sah. Sila berikan objek Fail atau butiran Lampiran yang sah.
- Lampiran tidak boleh dibatalkan. Sila berikan butiran lampiran yang sah
- Nombre de archivo inválido. Proporcione un nombre de archivo válido
- Sambungan Fail Tidak Sah. Sila berikan peluasan fail yang sah
- Jenis Mime Fail Tidak Sah. Sila berikan jenis mime fail yang sah
- URL Fail Tidak Sah. Sila berikan URL fail yang sah
- Perbualan tidak dijumpai
- Tetapan tidak dijumpai.
- Ciri yang disediakan tidak boleh kosong atau kosong. Sila berikan ciri yang sah
- Sambungan yang disediakan tidak boleh kosong atau kosong.
- Ciri yang disediakan tidak dijumpai.Sambungan yang disediakan tidak dapat dijumpai.meninggalkan kumpulanmemuat turunmewujudkan kumpulan
- Hantar Mesej secara tertutup
+ Hantar Mesej secara tertutupLihat profil
- padamkan perbualanAdakah anda mahu memadamkan perbualan ini?Memadamkan Perbualan
+ di luar talian
+ Mesej Baru
+ Mesej baru
+ Dihantar
+ Baca
+ Undi
+ Undi
+ merosot
+ Jawapan
+ Balas
+ Balasan
+ Balas secara tertutup
+ Pilih Pengguna
+ Pilih Kumpulan
+ Cari Pengguna
+ Cari Kumpulan
+ Panggilan suara ditolak
+ Panggilan video ditolak
+ Panggilan suara keluar
+ Panggilan video keluar
+ Tiada Ahli Larangan Ditemui
\ 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 a0fd27b..132974b 100644
--- a/uikit/src/main/res/values-pt/strings.xml
+++ b/uikit/src/main/res/values-pt/strings.xml
@@ -4,9 +4,7 @@
ChamadasGruposMais
- Enviando...⚠️ Esta mensagem foi excluída
- ⚠️ Você excluiu esta mensagem📷 Foto📹 Vídeo🎵 Áudio
@@ -20,7 +18,6 @@
📝 quadro branco📃 DocumentoOn-line
- OfflineVocêAdministradorModerador
@@ -31,83 +28,47 @@
Protegido por senhaPrivacidade e Segurança
- PrivacidadeUsuários bloqueados
- Todo mundoPreferênciasVocê bloqueouMembros
- VoltarCancelarTexto copiado para a área de transferênciaHojeOntem
- digitando...está digitando...
- FecharPor favor, digite o nome do grupo
- Refrescante...DesbloquearTornar administrador do grupoTornar moderador de grupoAdministradores
- Adicionar administrador
- Adicionar moderadorAtribuir como administrador do grupoRemover como administrador do grupoAtribuir como moderador de grupoRemover como grupo Moderador
- é removido como administrador do grupoé removido como moderador de grupoagora é Adminagora é Moderador⚠️ Remover
- como um administrador de
- como moderador degrupo?✅ Adicionar
- como administrador em
- como moderador emOK
- como moderador
- como administradorAdicionar membrosAÇÕES
- PRIVACIDADE E SUPORTE
- Enviar MensagemAdicionar emDesbloquear UsuárioBloquear usuário
- adicionado com sucessodesbloqueado com sucesso
- bloqueado com sucesso
- Excluir & SairSair do grupo
- desde
- removido com sucessobanido com sucessonão banido com sucesso
- excluído com sucesso
- Você saiu de
- Remover MembroMembro da proibição
- Membro UnbanCriar grupo
- Você se juntou
- AvançarMídia compartilhada
- Não é possível encaminhar a mensagem paraVocê pode encaminhar mensagem apenas para 5 participantes de cada vez
- Sem Fotos
- Sem vídeos
- Sem DocumentosHistóriaChamada de vídeoChamada de áudio
- Quadro branco
- Carregando...
- 1 resposta
- respostasLançamentoJunte-secompartilhou um whiteboar colaborativo
@@ -124,76 +85,27 @@
Copiar MensagemCriar uma EnqueteEnviar Adesivo
- Enviando Localização...
- Localização enviada com sucessoPesquisar
- Nenhum usuário encontradoErro
- Nenhum grupo encontrado
- Não foram encontrados chats
- Mensagem de mídiaChamada de áudio recebidaChamada de vídeo recebida
- Declínio
- Aceitar
- Chamada iniciada
- Chamada de áudio de saída
- Chamada de vídeo de saída
- Chamada rejeitadachamada rejeitada
- Chamada aceitaingressou
- deixou a chamada
- Chamada de áudio sem resposta
- Chamada de vídeo sem respostaChamada encerrada
- Chamada cancelada
- Ligue ocupadoChamando...
- Não foram encontrados membros proibidosMembros Banidos
- Nome
- ÂmbitoUnban
- Selecionar tipo de grupoDigite a senha do grupo
- CriarCriar enquetePerguntaInsira sua pergunta
- OpçõesIntroduza a sua opção
- Adicionar nova opção
- Ver MembrosDetalhes
- Notificações
- Outros
- Ajuda
- Denunciar um problema
- Membros do GrupoProibição
- Chute
- Escolha o seu emoji
- Grupo protegidoVer no YoutubeVisitar
- Emoji
- Nenhuma mensagem encontrada
- Rosca
- Documento Colaborativo
- Quadro Colaborativo
- Adicionar reação
- Não foram encontrados adesivos
- Responder no tópicoExcluir mensagemEditar mensagem
- DOMINGO
- SEGUNDA-FEIRA
- TERÇA-FEIRA
- QUARTA-FEIRA
- QUINTA-FEIRA
- SEXTA-FEIRA
- SÁBADOProprietárioEscrever uma mensagemFalha na recuperação do usuário bloqueada
@@ -202,22 +114,17 @@
Gostaria de desbloquear %1$sNão foi possível bloquear %1$sPor favor, insira os detalhes do grupo para prosseguir
- Não é possível ingressar no grupoVocê gosta de fazer %1$s como administrador⚠️ Remover de %1$sAdicionar %1$s a\” %2$s\”%1$s é adicionado a\” %2$s\”%1$s é removido de\” %2$s\”
- Falha no membro do grupo com chuteGostaria de sair do grupo?Excluir grupoExcluir o grupo
- Falha na exclusão do grupoNão é possível remover %1$s
- Não é possível sair do grupoCarregar maisCarregar mais membros %1$s
- Não é possível buscar a lista de gruposSenhaJuntando-seIncorreto
@@ -229,13 +136,11 @@
Digite a senha para juntar-se a %1$sNão há membros proibidosModerators
- Não é possível recuperar a lista de moderadores.Você gosta de fazer %1$s como moderadorSomente o administrador pode remover o moderadorAtualizar GrupoInserir URL do ícone do grupoGrupo atualizado com sucesso
- Grupo não atualizadoDigite senha antigaDigite nova senhaAlerta de grupo
@@ -244,8 +149,6 @@
Você gosta de fazer %1$s como proprietário%1$s agora é ProprietárioVocê não é um membro deste grupo (%1$s)
- Alerta do proprietário
- Transfira a propriedade do grupo para outro membro antes de sair do grupoGrupo PúblicoGrupo PrivadoGrupo protegido por senha
@@ -253,15 +156,10 @@
Somente o proprietário do grupo pode remover admin.%1$s é removido do privilégio de administradorNão é possível atualizar o membro do grupo
- >Recuperação da lista de administrador falhou
- Não é possível criar um grupoFalha na operação em %1$s
- Erro: Não é possível carregar a lista de membros do grupo
- Não é possível buscar Lista de Membros BanidosConceda permissão da câmera a partir da configuração do aplicativoConceda permissão de armazenamento a partir da configuração do aplicativoO arquivo não existe
- Não é possível buscar a lista de chamadasVocê não fez nenhuma chamadaNão é possível iniciar a chamada
@@ -288,7 +186,6 @@
EnviarPrivacidade e SuporteUsuário
- Mensagem personalizada não suportadaInserir URL para avatarDigite o nome de usuárioAtualizar usuário
@@ -307,8 +204,6 @@
Tópico em %1$sEnviado em: %1$sConectando à chamada
- Leitura em: %1$s
- Entregue em: %1$sNavegarPor favor, permita permissão de localização.Enviar arquivos de áudio
@@ -320,7 +215,6 @@
GPS habilitadoGPS desativadoOpções
- Enviando Mensagem de MídiaAdicionar uma nova opçãoNão é possível obter sua localização
@@ -330,7 +224,6 @@
Compartilhado um quadro brancoCompartilhar WriteBoardCompartilhado um WriteBoard
- Você enviou um %1$sVocê recebeu um %1$sIniciar uma chamadaToque para iniciar a conversa
@@ -345,7 +238,6 @@
Nenhuma tradução disponívelcompartilhou uma chamada em grupo.📹 Chamada em Grupo
- Iniciar uma chamada em grupoVocê criou uma chamada em grupo.Votado com SucessoEnviando
@@ -355,9 +247,6 @@
Usuário atualizado com sucesso "Usuário deixou" Usuário ingressado
- Conectado com sucesso
- Conexão em andamento
- Você está desconectado. Sem Internet disponível Você foi bloqueado por
@@ -371,86 +260,43 @@
A enquete \"id \" está faltando Você não é o criador da enquete
- Chame o método CometChat.init () de preferência no método onCreate () da classe do aplicativo antes de chamar qualquer outro método relacionado a CometChatA senha é obrigatória para um grupo protegido
- Limite excedido limite máximo de %s
- Faça login no CometChat antes de chamar este métodoForneça um GUID válidoForneça um UID válidoUID não pode ficar em branco. Forneça um UID válidoUID não pode conter espaços Forneça um UID válidoalgo deu errado
- A chamada não pode ser cancelada sem iniciar uma chamada
- Algo deu errado ao conectar
- Sessão de chamada incompatível. Por favor, verifique o ID da sessão
- UID e GUID não especificados Especifique o UID ou o GUID para o qual a mensagem precisa ser buscadaSem ligação à Internet. Tente novamente mais tarde
- Solicitação já em andamento
- Timestamp ou MessageId ou updatedAfter é necessário para usar o método fetchNext()
- Auth token não pode estar vazio. Por favor, forneça um válido auth tokenA extensão está desativada. Habilite a extensão do Painel CometChat
- O ID da mensagem fornecido é inválido Forneça um ID de mensagem válido
- Apenas TextMessage ou CustomMessage podem ser editados. Forneça uma mensagem válida
- A lista fornecida está vazia. Forneça uma lista válida
- O método `updatesOnly()` não pode ser usado sem o método `setUpdatedAfter()`
- Erro ao analisar JSON
- Erro ao sair
- AppID não pode estar vazio. Especifique um appID válido
- O limite especificado deve ser um número positivo
- Região não especificada. Especifique a região na classe AppSettingsBuilder usando o método `setRegion()`
- O AppSettings não pode ser nulo
- ApiKey não pode ser nula ou vazia. Forneça uma chave de API válida
- O tipo de mensagem que você inseriu é inválido para a ação a seguir
- O texto da mensagem não pode estar vazio
- O objeto do arquivo não pode ser nulo ou o caminho do arquivo não existe
- URL da mensagem de mídia está definido como nulo ou em branco
- O campo de dados personalizados não pode ser nulo ou vazioO nome do grupo não pode ser nulo ou vazio
- O tipo de grupo não pode ser nulo ou vazio
- Login em andamento. Por favor, aguarde a conclusão da solicitação de login
- A mensagem não pode ser nula. Passe um objeto `BaseMessage` válido
- O grupo não pode ser nulo. Por favor, passe um objeto `Grupo` válido
- A chamada não pode ser nula. Passe um objeto `Call` válido
- Tipo de chamada inválido. Forneça um tipo de chamada válido
- Tipo de receptor inválido. Forneça um tipo de receptor válido
- Tipo de sessionId inválido. Por favor, forneça um id de sessão válido
- A atividade fornecida não pode ser nula.
- O RelativeLayout fornecido não pode ser nulo
- O token FCM fornecido não pode ser nulo ou vazio. Forneça um token válido do FCM
- O tipo de grupo fornecido não pode ser nulo ou vazio
- Chamada em andamento. Encerre a chamada anterior para realizar esta operação
- Não é possível cancelar a chamada iniciada por outra pessoa. Em vez disso, use o status `rejeitado`
- Nome inválido fornecido para o usuário. Forneça um nome válido
- O objeto do usuário não pode ser nulo. Forneça um objeto de usuário válido
- O nome do grupo não pode estar vazio. Forneça um nome de grupo válido
- O carimbo de data / hora deve ser positivo. Forneça um carimbo de data / hora válido
- Categoria inválida. Forneça uma categoria válida
- Ícone vazio. Forneça um ícone válido
- Descrição vazia. Forneça uma descrição válida
- Metatdados vazios. Forneça metadados válidos
- Escopo inválido. Forneça um escopo válido
- Escopo inválido. Forneça um escopo válido
- Conversação inválida com. Forneça um valor válido para chatWith
- ConversationType inválido. Forneça um valor válido para chatWith
- Mensagem de mídia inválida. Forneça um objeto de arquivo válido ou detalhes de anexo.
- O anexo não pode ser nulo. Forneça detalhes de anexo válidos
- Nome de arquivo inválido. Forneça um nome de arquivo válido
- Extensão de arquivo inválida. Forneça uma extensão de arquivo válida
- Tipo de arquivo Mime inválido. Forneça um tipo MIME de arquivo válido
- URL de arquivo inválido. Forneça um URL de arquivo válido
- conversa não encontrada
- Configurações não encontradas.
- O recurso fornecido não pode ser nulo ou vazio. Forneça um recurso válido
- A extensão fornecida não pode ser nula ou vazia.
- Recurso fornecido não encontrado.A extensão fornecida não foi encontrada.deixou o grupobaixandocriando grupo
- Enviar mensagem em particular
+ Enviar mensagem em particularVer perfil
- apagar conversaVocê gostaria de excluir esta conversa?Excluindo a conversa
+ desligado
+ Novas mensagens
+ Nova mensagem
+ Entregue
+ Leitura
+ Voto
+ Votos
+ declínio
+ Responder
+ Responder
+ Respostas
+ Responder em particular
+ Selecione o usuário
+ Selecione o Grupo
+ Usuários de busca
+ Grupos de Pesquisa
+ Chamada de voz rejeitada
+ Vídeo chamada rejeitada
+ Chamada de voz de saída
+ Chamada de vídeo realizada
+ Nenhum membro banido encontrado
\ 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 d49a30f..72a5c25 100644
--- a/uikit/src/main/res/values-ru/strings.xml
+++ b/uikit/src/main/res/values-ru/strings.xml
@@ -3,25 +3,22 @@
ПользователиЗвонкиГруппы
- Больше
- Отправка...
- ⚠️ Это сообщение было удалено
- ⚠️ Вы удалили это сообщение
- 📷 Фото
+ Еще
+ ⚠️ Это сообщение удалено
+ 📷 Изображение📹 Видео🎵 Аудио📁 ФайлУ вас есть сообщение
- Пропущенный голосовой вызов»
- Пропущенный видеозвонок
- 📍 Расположение
+ Пропущенный голосовой вызов
+ Пропущенный видеовызов
+ 📍 Местоположение📊 Опрос
- 💟 наклейка
- 📝 Белая доска
- 📃 Документ
- Онлайн
- Оффлайн
- Ты
+ 💟 Стикер
+ 📝 Документ
+ 📃 Доска
+ В сети
+ ВыАдминистраторМодераторУчастник
@@ -31,192 +28,103 @@
Защищен паролемКонфиденциальность и безопасность
- PrivacyЗаблокированные пользователи
- ВсемПредпочтенияВы заблокировали
- Члены
- Назад
+ УчастникиОтменитьТекст скопирован в буфер обменаСегодняВчера
- набрав...набирает...
- Закрыть
- Пожалуйста, введите название группы
- Освежающий...
+ введите название группыРазблокироватьуспешно разблокированСделать администратором группыСделать модератором группыАдминистраторы
- Добавить администратора
- Добавить модератораНазначить администратором группыУдалить как администратор группыНазначить модератором группыУдалить как модератор группы
- удаляется как администратор группыудаляется как модератор группытеперь является администраторомтеперь модератор⚠️ Удалить
- в качестве администратора из
- в качестве модератора изгруппа?✅ Добавить
- в качестве администратора в
- в качестве модератора вОК
- в качестве модератора
- в качестве администратораДобавить участниковПОСТУПКИ
- КОНФИДЕНЦИАЛЬНОСТЬ И ПОДДЕРЖКА
- Отправить сообщениеДобавить вРазблокировать пользователя
- Блокировать пользователя
- успешно добавлен
- успешно заблокирован
- Удалить & Выход
- Выйти из группы
- из
- успешно удалено
+ Заблокировать пользователя
+ Покинуть группууспешно заблокировануспешно разблокирован
- успешно удалено
- Вы ушли от
- Удалить участникаЗапретить член
- Unban ЧленСоздать группу
- Вы присоединились
- Вперед
- Общий носитель
- Не удается переслать сообщение на
+ Общие медиафайлыВы можете пересылать сообщение только 5 участникам одновременно
- Нет фотографий
- Нет видео
- Нет документовИсторияВидеозвонок
- Аудио вызов
- Доска
- Загрузка...
- 1 ответ
- ответы
+ АудиовызовЗапускПрисоединиться
- поделился совместным whiteboar
- Вы создали новый совместный whiteboar
- Вы создали новый документ для совместной работы
+ предоставил доступ к совместной доске
+ Вы создали новую интерактивную доску
+ Вы создали новый совместный документ
+ предоставил совместный доступ к документуФото и видео текаСфотографироватьМестоположение общего доступаОтветить сообщениеПереслать сообщение
- Начать поток
+ Начать ВеткаПоделиться сообщениемСведения о сообщенииКопировать сообщениеСоздание опросаОтправить наклейку
- Отправка местоположения...
- Местоположение успешно отправленоПоиск
- Пользователи не найденыОшибка
- Группы не найдены
- Чаты не найдены
- Сообщение мультимедиаВходящий аудиовызовВходящий видеозвонок
- Отклонить
- Принять
- Вызов инициирован
- Исходящий аудиовызов
- Исходящий видеозвонок
- Вызов отклоненотклоненный вызов
- Звонок принят
- совместный
- оставил вызов
- Звуковой звонок без ответа
- Видеозвонок без ответа
+ присоединилсяВызов завершен
- Звонок отменен
- Звонок занят
- Звоню...
- Запрещенные участники не найдены
- Запрещенные участники
- Имя
- Область применения
- Unban
- Выберите тип группы
- Создать
+ Звонок...
+ Заблокированные участники
+ РазблокироватьСоздать опросВопросВведите свой вопрос
- ОпцииВведите свой вариант
- Добавить новую опцию
- Просмотр участниковПодробности
- Уведомления
- Прочее
- Помощь
- Сообщить о проблеме
- Члены группыЗапрет
- Удар
- Выберите свой эмодзи
- Защищенная группаПосмотреть на Youtube
- Посетить
- смайлик
- Сообщения не найдены
- Нить
- Совместный документ
- Совместная доска
- Добавить реакцию
- Стикеры не найдены
- Ответ в потоке
+ ПосещениеУдалить сообщениеРедактировать сообщение
- ВОСКРЕСЕНЬЕ
- ПОНЕДЕЛЬНИК
- ВТОРНИК
- СРЕДА
- ЧЕТВЕРГ
- ПЯТНИЦА
- СУББОТАВладелец
- Написать сообщение
+ Напиши сообщениеНе удалось получить заблокированный пользовательВы не сможете отправлять или получать сообщенияНе удалось разблокировать пользователяВы хотите разблокируть %1$sНе удалось заблокироть %1$sПожалуйста, введите данные группы, чтобы продолжить
- Не удается присоединиться к группеВы хотите сделать %1$s в качестве администратора⚠️ Удалить из %1$sДобавить %1$s в\» %2$s\»%1$s добавлено в\» %2$s\»%1$s удален из\» %2$s\»
- Не удалось запустить участника группыХотите уехать из группы?Удалить группуУдалить группу
- Не удалось удалить группуНе удается удалить %1$s
- Не удается покинуть группуЗагрузить большеЗагрузить больше %1$s членов
- Не удается получить список группПарольПрисоединениеНеверный
@@ -227,15 +135,13 @@
Подтвердить парольПароль не совпадаетВведите пароль для соединения %1$s
- Нет запрещенных участников
+ Заблокированных участников не найденоМодераторы
- Не удается получить список модераторов.Вы хотите сделать %1$s в качестве модератораТолько администратор может удалить модератораОбновить группуВведите URL-адрес значка группыГруппа успешно обновлена
- Группа не обновленаВведите старый парольВведите новый парольГрупповое оповещение
@@ -244,8 +150,6 @@
Вы хотите сделать %1$s в качестве владельца%1$s теперь является владельцемВы не являетесь членом этой группы (%1$s)
- Оповещение владельца
- Пожалуйста, передайте право собственности на группу другому участнику перед выходом из группыПубличная группаЧастная группаГруппа, защищенная паролем
@@ -253,19 +157,14 @@
Только владелец группы может удалить администратора.%1$s удален из прав администратораНе удается обновить члена группы
- >Не удалось получить список администраторов
- Не удается создать группуНе удалось выполнить операцию на %1$s
- Ошибка: не удается загрузить список участников группы
- Не удается получить список заблокированных участниковПожалуйста, предоставьте разрешение камеры из настройки приложенияПредоставьте разрешение на хранение из настроек приложенияФайл не существует
- Не удается получить список вызововВы не совершали никаких звонковНе удается инициировать вызов
- Исходящие
+ ИсходящийВходящиеВсеПропустил
@@ -279,9 +178,9 @@
ИзображенияВидеоФайлы
- У тебя нет разговоров.
- Нет доступных пользователей
- Нет доступных групп
+ Чатов не найдено
+ Пользователи не найдены
+ Группы не найденыНет блокирующих пользователейУ вас нет пропущенных звонковДа
@@ -291,15 +190,14 @@
Конфиденциальность и поддержкаПользователь
- Настраиваемое сообщение не поддерживаетсяВведите URL-адрес для аватараВведите имя пользователяОбновить пользователя
- Общий доступ к изображению
- Общий доступ к аудиофайлу %1$s
- Общий доступ к видео
- Общий доступ к файлу %1$s
- Общий доступ к стикеру
+ Поделился изображением
+ Отправил аудио %1$s
+ Поделился видео
+ Поделился файлом %1$s
+ Поделился стикеромОбщий доступ к опросу: \n %1$sПоделитьсяНебезопасное содержимое.
@@ -307,11 +205,9 @@
ПосмотретьОповещение о настроенияхВы хотите просмотреть это сообщение, оно может содержать конфиденциальное содержимое.
- Поток в %1$s
- Отправлено по адресу: %1$s
+ Ветка в %1$s
+ Отправлено: %1$sПодключение к вызову
- Чтение: %1$s
- Доставлено в: %1$sНавигацияПожалуйста, разрешите разрешение на местоположение.Отправка аудиофайлов
@@ -323,7 +219,6 @@
GPS включенGPS отключенОпции
- Отправка сообщения мультимедиаДобавить новый параметрНе удается получить ваше местоположениеЗакончил
@@ -332,22 +227,19 @@
Общий доступ к доскеПоделиться WriteBoardОбщий доступ к WriteBoard
- Вы отправили %1$sВы получили %1$sИнициировать вызовНажмите, чтобы начать разговор%1$s успешно заблокирован
- поделился совместными документамиНет сообщения темыдобавлено
- инициированный
+ инициированпнулсделанныйПеревести сообщениеПеревод недоступенподелился групповым вызовом.📹 Групповой вызов
- Начать групповой вызовВы создали групповой вызов.Проголосовали успешнозагрузка
@@ -355,11 +247,8 @@
обновлениеРазговоры Пользователь успешно обновлен
- "Пользователь слева"
+ Пользователь покинул вызов Пользователь присоединился
- Подключено успешно
- Соединение в процессе
- Вы отключены. Интернет недоступен Вы были заблокированы
@@ -373,86 +262,42 @@
Опрос \"id \" отсутствует Вы не являетесь создателем опроса
- Пожалуйста, вызовите метод CometChat.init () предпочтительно в методе onCreate () класса приложения перед вызовом любых других методов, связанных с CometChat.Пароль обязателен для защищенной группы
- Предел превышен макс. Предел %s
- Пожалуйста, войдите в CometChat перед вызовом этого методаПожалуйста, предоставьте действительный GUIDПожалуйста, предоставьте действительный UIDUID не может быть пустым. Пожалуйста, предоставьте действительный UIDUID не может содержать пробелов Пожалуйста, предоставьте действительный UIDчто-то пошло не так
- Вызов нельзя отменить, не начав звонок
- Что-то пошло не так при подключении
- Несоответствие сеанса вызова. Пожалуйста, проверьте идентификатор сеанса
- И UID, и GUID не указаны Укажите UID или GUID для которого нужно получить сообщениеНет подключения к Интернету. Повторите попытку позже.
- Запрос уже выполняется
- Timestamp, MessageId или updatedAfter требуется для использования метода fetchNext ().
- Auth token не может быть пустым. Пожалуйста, предоставьте действительный auth tokenРасширение отключено. Пожалуйста, включите расширение из CometChat Dashboard
- Указанный идентификатор сообщения недействителен. Укажите действительный идентификатор сообщения
- Редактировать можно только TextMessage или CustomMessage. Укажите действительное сообщение.
- Представленный список пуст. Пожалуйста, предоставьте действительный список
- Метод updateOnly() нельзя использовать без метода setUpdatedAfter()
- Ошибка при разборе JSON
- Ошибка при выходе
- AppID не может быть пустым. Укажите действительный идентификатор приложения
- Указанный предел должен быть положительным числом.
- Регион не указан. Укажите регион в классе AppSettingsBuilder с помощью метода setRegion ().
- AppSettings не может быть нулевым
- ApiKey не может быть нулевым или пустым. Пожалуйста, предоставьте действующий ключ API
- Введенный вами тип сообщения недействителен для следующего действия
- Текст сообщения не может быть пустым
- Файловый объект не может быть пустым или путь к файлу не существует
- URL-адрес мультимедийного сообщения задан как пустой или пустой
- Поле настраиваемых данных не может быть пустым или пустым.Имя группы не может быть пустым или пустым.
- Тип группы не может быть нулевым или пустым.
- Идет вход в систему. Подождите, пока завершится запрос на вход
- Сообщение не может быть нулевым. Пожалуйста, передайте действительный объект BaseMessage
- Группа не может быть нулевой. Пожалуйста, передайте действительный объект `Group`
- Вызов не может быть нулевым. Пожалуйста, передайте действительный объект Call
- Неверный тип звонка. Укажите действительный тип звонка
- Неверный тип получателя. Укажите действительный тип получателя
- Недопустимый тип sessionId. Укажите действительный идентификатор сеанса
- Предоставленное действие не может быть нулевым.
- При условии, что RelativeLayout не может быть нулевым
- Предоставленный токен FCM не может быть нулевым или пустым. Пожалуйста, предоставьте действующий токен FCM
- Указанный тип группы не может быть пустым или пустым.
- Звонок идет. Завершите предыдущий вызов, чтобы выполнить эту операцию
- Невозможно отменить вызов, инициированный кем-то другим. Вместо этого используйте статус "отклонено"
- Для пользователя указано недопустимое имя. Пожалуйста, укажите действительное имя
- Пользовательский объект не может быть нулевым. Укажите действительный объект пользователя
- Имя группы не может быть пустым. Укажите действительное название группы
- Отметка времени должна быть положительной. Пожалуйста, укажите действительную метку времени
- Недействительная категория. Укажите действительную категорию
- Пустой значок. Укажите действующий значок
- Пустое описание. Пожалуйста, предоставьте действительное описание
- Пустые метатданные. Пожалуйста, предоставьте действительные метаданные
- Неверный объем. Укажите действительный объем
- Неверный объем. Укажите действительный объем
- Неверный диалог с. Укажите допустимое значение для разговора с
- Недействительный тип разговора. Укажите допустимое значение для разговора с
- Недействительное мультимедийное сообщение. Укажите действительный объект File или вложение.
- Вложение не может быть нулевым. Пожалуйста, предоставьте действительные данные вложения
- Неверное имя файла. Укажите действительное имя файла
- Неверное расширение файла. Укажите допустимое расширение файла
- Неверный тип Mime файла. Укажите действительный MIME-тип файла
- Неверный URL-адрес файла. Укажите действительный URL-адрес файла
- Цепочка не найдена для% s и типа беседы% s
- Настройки не найдены.
- Предоставленная функция не может быть нулевой или пустой. Укажите действительную функцию
- Предоставленное расширение не может быть пустым или пустым.
- Предоставленная функция не найдена.Предоставленное расширение не может быть найдено.покинул группускачивание
- создание группы
- Отправить сообщение в частном порядке
+ Создание группы
+ Отправить сообщение в частном порядкеПросмотреть профиль
- удалить беседуВы хотите удалить этот разговор?Удаление разговора
-
+ ответить
+ ответы
+ Отклонить
+ Принять
+ голоса
+ проголосовать
+ Доставлено
+ Просмотрено
+ Новые сообщения
+ Новое сообщение
+ Не в сети
+ Ответить лично
+ Выбрать пользователя
+ Выбрать группу
+ Поиск пользователей
+ Поисковые группы
+ Отклоненный голосовой вызов
+ Отклоненный видеовызов
+ Исходящий голосовой вызов
+ Исходящий видеозвонок
+ Забаненные участники не найдены
\ No newline at end of file
diff --git a/uikit/src/main/res/values-sv/strings.xml b/uikit/src/main/res/values-sv/strings.xml
index 40c6882..81cc9c9 100644
--- a/uikit/src/main/res/values-sv/strings.xml
+++ b/uikit/src/main/res/values-sv/strings.xml
@@ -16,13 +16,13 @@
Avblockera användare Blockera användare Blockerade användare
- % 1 $ s har blockerats framgångsrikt
+ %1$s har blockerats framgångsrikt Avblockera Blockerad användarhämtning misslyckades Du kan inte skicka eller ta emot meddelanden Avblockera användare misslyckades
- Vill du avblockera% 1 $ s
- Det gick inte att blockera% 1 $ s
+ Vill du avblockera %1$s
+ Det gick inte att blockera %1$s Skapa grupp
@@ -51,22 +51,17 @@
Vänligen ange gruppinformation för att fortsätta
- Det gick inte att gå med i gruppen Vill du göra %1$s som administratör ⚠️ Ta bort från %1$s
- Lägg till% 1 $ s till \" %2$s \"
+ Lägg till %1$s till \" %2$s \" %1$s läggs till i \" %2$s \" %1$s tas bort från \" %2$s \"
- Gruppmedlem sparkad misslyckades Vill du lämna gruppen? Radera grupp Ta bort gruppen
- Radering av grupp misslyckades Kan inte ta bort %1$s
- Det gick inte att lämna gruppen Ladda mer Ladda mer %1$s medlemmar
- Det gick inte att hämta grupplistan Lösenord Anslutning Felaktigt
@@ -80,13 +75,11 @@
Ange lösenord för att gå med i %1$s Inga förbjudna medlemmar Moderatorer
- Det gick inte att hämta moderatorlistan. Vill du göra %1$s som moderator Endast Admin kan ta bort moderator Uppdatera grupp Ange webbikon för gruppikon Grupp har uppdaterats
- Gruppen har inte uppdaterats Ange gammalt lösenord Ange nytt lösenord Gruppvarning
@@ -95,8 +88,6 @@
Vill du göra %1$s som ägare %1$s är nu ägare Du är inte medlem i den här gruppen (%1$s)
- Ägarvarning
- Överför gruppägarskapet till en annan medlem innan du lämnar gruppen Offentlig grupp Privat grupp
@@ -109,11 +100,7 @@
Endast gruppägare kan ta bort admin. har tagits bort från administratörsbehörighet Det går inte att uppdatera gruppmedlem
- Hämtningen av administratörslistan misslyckades
- Det gick inte att skapa en grupp
- Åtgärden misslyckades på% 1 $ s
- Fel: Det går inte att ladda gruppmedlemslistan
- Det går inte att hämta förbjudna medlemslistor
+ Åtgärden misslyckades på %1$s Ge kamera tillåtelse från appinställning
@@ -127,7 +114,6 @@
Missat videosamtal
- Det går inte att hämta samtalslistan Du har inte ringt något Ringer Det går inte att starta samtalet
@@ -172,14 +158,12 @@
Avbryt Text kopieras till urklipp Radera meddelande
- Skicka meddelande Sekretess & Säkerhet Lägg till Vidarebefordra meddelande Åtgärder Inställningar Online
- Offline Svarsmeddelande Dela meddelande Kopiera meddelande
@@ -224,8 +208,6 @@
Tråd i %1$s Skickat vid: %1$s Ansluter till samtal
- Läs vid: %1$s
- Levereras vid: %1$s Navigera Tillåt platsbehörighet. Skicka ljudfiler
@@ -237,7 +219,6 @@
GPS aktiverad GPS inaktiverad Alternativ
- Skickar mediemeddelande Ange ditt alternativ Ange din fråga Fråga
@@ -249,59 +230,27 @@
Delade ett WhiteBoard Dela WriteBoard Delade ett WriteBoard
- Du skickade en %1$s Du fick %1$s Inled ett samtal
- Acceptera
- Lägg till administratör
- Lägg till moderator
- Lägg till nytt alternativ
- Lägg till reaktion
- har lagts till
- ⚠ Du har tagit bort detta meddelande Igår
- tillbaka Förbud Bannat framgångsrikt
- Blockerad framgångsrikt
- Skapa
- %1$s har tagits bort från administratörsbehörighet
- Visa medlemmar
- Avvisa
- Borttaget lyckades avblockerat framgångsrikt Du kan inte vidarebefordra meddelande till fler än fem medlemmar
- Skickar .. Ljud Bild Video Fil
- Samtal accepterat
- Samtal upptaget
- Samtal avbröts Samtal avslutat
- Samtal initierat
- Samtal avvisat 📃 Dokument 📍 Plats
- Anpassat meddelande stöds inte "📊 Polls" "💟 Sticker" 📝 Whiteboard
- Radera & Avsluta Lösenordsskyddad grupp Privat grupp Offentlig grupp
- Svara i tråd
- Inga klistermärken hittades
- Samarbetsdokument
- Whiteboard för samarbete
- Tråd
- Inga meddelanden hittades
- emoji
- stäng Fel
- Gruppmedlemmar Inga trådmeddelanden initierad lagt till
@@ -316,7 +265,6 @@
har delat ett gruppsamtal. Du har skapat ett gruppsamtal. "📹 Gruppsamtal"
- Starta ett gruppsamtal Försök igen Uppladdning Röstade framgång
@@ -325,9 +273,6 @@
Uppdaterad användare lyckades "User Left" Användare ansluten
- Ansluten lyckades
- Anslutning pågår
- Du är bortkopplad. Inget internet tillgängligt "Du har blockerat" Du har blockerats av
@@ -343,86 +288,43 @@
Omröstning finns inte Undersökningen \" id \" saknas Du är inte skaparen av omröstningen
- Vänligen ring metoden CometChat.init () helst i metoden onCreate () i applikationsklassen innan du ringer till andra metoder relaterade till CometChat Lösenord är obligatoriskt för en skyddad grupp
- Gräns överskridit maxgräns
- Logga in på CometChat innan du ringer till den här metoden Ange en giltig GUID Ange ett giltigt UID UID kan inte vara tomt. Ange ett giltigt UID UID kan inte innehålla mellanslag. Ange ett giltigt UID Något gick fel
- Samtal kan inte avbrytas utan att ett samtal initieras
- Något gick fel när du anslöt
- Samstämningssessionens obalans. Kontrollera sessions-ID
- Både UID och GUID har inte specificerats. Ange UID eller GUID som meddelandena måste hämtas till Ingen internetanslutning. Försök igen senare
- Begäran pågår redan
- Tidsstämpel \'eller \' MessageId \'eller `updatedAfter` krävs för att använda metoden \' fetchNext() \'
- Auth-token kan inte vara tom. Ange en giltig autent-token
- Meddelande-ID som anges är ogiltigt. Ange ett giltigt meddelande-ID
- Endast TextMessage eller CustomMessage kan redigeras. Ange ett giltigt meddelande
- Listan som tillhandahålls är tom. Ange en giltig lista
- Metoden `updatesOnly ()` kan inte användas utan metoden `setUpdatedAfter ()`
- Fel vid analys av JSON
- Fel vid utloggning
- AppID kan inte vara tomt. Ange ett giltigt appID
- Den angivna gränsen måste vara ett positivt tal
- Region har inte specificerats. Vänligen ange regionen i AppSettingsBuilder-klassen med metoden `setRegion ()`
- AppSettings kan inte vara noll
- ApiKey får inte vara noll eller tom. Ange en giltig Api-nyckel
- Inloggning pågår. Vänta tills inloggningsförfrågan är klar
- Meddelandetypen du har angett är ogiltig för följande åtgärd
- Meddelandetexten får inte vara tom
- Filobjektet kan inte vara null eller filsökvägen existerar inte
- Mediemeddelandets URL är inställd som noll eller tom
- Anpassat datafält får inte vara null eller tomt Gruppnamn får inte vara null eller tomt
- Grupptyp kan inte vara noll eller tom
- Meddelandet kan inte vara null. Vänligen skicka ett giltigt "BaseMessage" -objekt
- Gruppen kan inte vara noll. Vänligen skicka ett giltigt "grupp" -objekt
- Samtalet kan inte vara noll. Vänligen skicka ett giltigt `Call`-objekt
- Ogiltig samtalstyp. Ange en giltig samtalstyp
- Ogiltig mottagartyp. Ange en giltig mottagartyp
- Ogiltig sessionId-typ. Ange ett giltigt session-ID
- Tillhandahållen aktivitet kan inte vara noll.
- Tillhandahållet RelativeLayout kan inte vara noll
- Den angivna FCM-token får inte vara noll eller tom. Ange en giltig FCM-token
- Den angivna grupptypen får inte vara noll eller tom
- Samtal pågår. Avsluta föregående samtal för att utföra den här åtgärden
- Det går inte att avbryta samtal som initierats av någon annan. Använd status "avvisad" istället
- Ogiltigt namn för användaren. Ange ett giltigt namn
- Användarobjekt kan inte vara null. Ange ett giltigt användarobjekt
- Gruppnamn får inte vara tomt. Ange ett giltigt gruppnamn
- Tidsstämpel måste vara positiv. Ange en giltig tidsstämpel
- Ogiltig kategori. Ange en giltig kategori
- Tom ikon. Ange en giltig ikon
- Tom beskrivning. Vänligen ange en giltig beskrivning
- Tom metatdata. Ange en giltig metadata
- Ogiltigt omfång. Ange ett giltigt omfång
- Ogiltigt omfång. Ange ett giltigt omfång
- Ogiltig konversation med. Ange ett giltigt värde för konversationMed
- Ogiltig konversationstyp. Ange ett giltigt värde för konversationMed
- Ogiltigt mediemeddelande. Ange ett giltigt filobjekt eller bifogad information.
- Bilaga kan inte vara noll. Vänligen ange giltiga bifogningsuppgifter
- Ogiltigt filnamn. Ange ett giltigt filnamn
- Ogiltigt filtillägg. Ange ett giltigt filtillägg
- Ogiltig fil-mime-typ. Ange en giltig fil-mime-typ
- Ogiltig fil-URL. Ange en giltig fil-URL
- Konversation hittades inte
- Inställningar hittades inte.
- Funktionen är inte giltig.
- Detta tillägg är ogiltigt. Kontrollera från instrumentpanelen.
- Funktionen hittades inte. gruppladdar nerskapa grupp
- Skicka meddelande privat
+ Skicka meddelande privatVisa profil
- radera konversationi dagVill du radera den här konversationen?Tar bort konversationskriver..
+ off-line
+ Nya meddelanden
+ Nytt meddelande
+ Levereras
+ Läsa
+ Rösta
+ Röster
+ nedgång
+ acceptera
+ Svar
+ Svar
+ Svara privat
+ Välj Användare
+ Välj Grupp
+ Sök användare
+ Sök grupper
+ Avvisat röstsamtal
+ Avvisat videosamtal
+ Utgående röstsamtal
+ Utgående videosamtal
+ Inga förbjudna medlemmar hittades
\ 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 a0fcfa6..21e3f68 100644
--- a/uikit/src/main/res/values-zh-rTW/strings.xml
+++ b/uikit/src/main/res/values-zh-rTW/strings.xml
@@ -4,9 +4,7 @@
呼叫群組更多
- 正在傳送中...⚠️ 此訊息已被刪除
- ⚠️ 您刪除了此訊息📷 照片📹 影片🎵 音訊
@@ -20,7 +18,6 @@
📝 白板📃 文件線上
- 離線你管理員主持人
@@ -31,84 +28,48 @@
密碼保護隱私權與安全性
- 隱私封鎖的使用者
- 每個人偏好設定您已封鎖成員
- 返回取消文字複製到剪貼簿今天昨天
- 輸入...正在輸入...
- 關閉請輸入群組名稱
- 正在刷新...解除封鎖讓群組管理員成為群組仲裁者管理員
- 新增管理員
- 新增仲裁者擁有者指派為群組管理員以群組管理員身分移除指派為群組仲裁者移除為群組仲裁者
- 會以群組管理員身分移除會以群組仲裁者身分移除現在是管理員現在是版主⚠️ 移除
- 以管理員身分
- 作為版主團體?✅ 新增
- 以管理員身分
- 作為主持人確定
- 作為主持人
- 以管理員身分新增成員動作
- 隱私權與支援
- 傳送訊息加入解除封鎖使用者封鎖使用者
- 已成功加入已成功解除封鎖
- 已成功封鎖
- 刪除 (退出)離開群組
- 從
- 已成功移除已成功禁止成功取消禁用
- 已成功刪除
- 你離開了
- 移除成員禁止成員
- 取消禁止成員建立群組
- 你加入了
- 向前共用媒體
- 無法將訊息轉寄至您一次只能將訊息轉寄給 5 位參與者
- 沒有相片
- 沒有視訊
- 沒有文件歷史視訊通話音訊通話
- 白板
- 正在載入中...
- 1 個回覆
- 回覆啟動喬伊共享了一個合作的白豬
@@ -125,77 +86,28 @@
複製訊息建立投票傳送貼紙
- 正在傳送位置...
- 已成功傳送位置搜尋
- 找不到使用者錯誤
- 找不到群組
- 找不到對話
- 媒體訊息來電音訊通話來電視訊通話
- 拒絕
- 接受
- 呼叫已啟動
- 撥出音訊通話
- 撥出視訊通話
- 電話拒絕拒絕的呼叫
- 已接聽電話加入
- 留下電話
- 未接聽的音訊通話
- 未接聽視訊通話呼叫結束
- 來電已取消
- 呼叫忙碌呼叫...
- 找不到被禁用的會員禁止的會員
- 名稱
- 範圍取消禁止
- 選取群組類型輸入群組密碼
- 建立建立投票問題輸入您的問題
- 選項輸入您的選項
- 新增選項
- 檢視成員詳細資料
- 通知
- 其他
- 說明
- 報告問題
- 群組成員禁令
- 踢
- 挑選您的表情符號私人群組
- 受保護群組在 YouTube 上觀看造訪
- 表情符號
- 找不到訊息
- 螺紋
- 協同合作文件
- 協同合作白板
- 加入反應
- 找不到貼圖
- 在執行緒中回覆刪除訊息編輯訊息
- 星期日
- 星期一
- 星期二
- 星期三
- 星期四
- 星期五
- 星期六撰寫訊息封鎖的使用者擷取失敗
@@ -204,22 +116,17 @@
您是否要解除封鎖 %1$s無法封鎖 %1$S請輸入團體詳細資料以繼續
- 無法加入群組您是否喜歡將 %1$s 作為管理員⚠️ 從 %1$s 移除將 %1$s 新增至\」%2$s\」%1$s 已新增至\」%2$s\」%1$s 已從\」%2$s\」中移除
- 群組成員已啟動失敗你想離開團體嗎?刪除群組刪除群組
- 群組刪除失敗無法移除 %1$s
- 無法離開群組載入更多載入更多 %1$s 成員
- 無法擷取群組清單密碼加入不正確
@@ -232,13 +139,11 @@
輸入密碼以加入 %1$s沒有被禁止的會員仲裁者
- 無法擷取仲裁者清單。您是否喜歡將 %1$s 設為主持人只有管理員可以移除仲裁者更新群組輸入群組圖示網址群組更新成功
- 群組未更新輸入舊密碼輸入新密碼群組警示
@@ -247,23 +152,16 @@
您是否喜歡將 %1$s 成為擁有者%1$s 現在是擁有者您不是此群組的成員 (%1$s)
- 擁有者警示
- 請在離開群組前將群組所有權轉移給其他會員公用群組密碼保護群組您無法對自己執行動作只有群組擁有者可以移除管理員。%1$s 已從管理員權限中移除無法更新群組成員
- > 管理員清單擷取失敗
- 無法建立群組在 %1$s 上作業失敗
- 錯誤:無法載入群組成員清單
- 無法取得禁用的成員清單請從應用程式設定授與相機權限請從應用程序設置授予存儲權限檔案不存在
- 無法擷取通話清單您尚未撥打任何電話無法啟動呼叫
@@ -292,7 +190,6 @@
隱私權與支援使用者
- 不支援自訂訊息輸入虛擬人偶的網址輸入使用者名稱更新使用者
@@ -311,8 +208,6 @@
%1$s 中的執行緒傳送位置:%1$s連線至呼叫
- 讀取位置:%1$s
- 遞送地點:%1$s導覽請允許位置權限。傳送音訊檔案
@@ -324,7 +219,6 @@
GPS 已啟用GPS 已停用選項
- 傳送媒體訊息新增選項無法取得您的位置已結束
@@ -333,7 +227,6 @@
共用白板分享寫板共用寫板
- 您已傳送 %1$s您收到 %1$s啟動呼叫點按即可開始對話
@@ -347,16 +240,12 @@
沒有可用的翻譯分享了一个群组通话。"📹 群组通话 "
- 发起群组通话您已建立群组通话。投票成功上載重試更新中對話內容
- 成功連接
- 進行中的連接
- 您已斷開連接。沒有可用的互聯網你被封鎖
@@ -370,86 +259,43 @@
民意測驗 “ id” 丟失您不是民意測驗的創建者
- 請在調用與CometChat相關的任何其他方法之前,最好在應用程序類的onCreate()方法中調用CometChat.init()方法。密碼是受保護組的必填項
- 上限超過 %s 的上限
- 調用此方法之前,請先登錄CometChat請提供有效的GUID請提供有效的 UIDUID不能為空。請提供有效的UIDUID不能包含空格。請提供有效的UID出了些問題
- 不發起呼叫就無法取消呼叫
- 連接時出了點問題
- 呼叫會話不匹配。請檢查會話ID
- UID和GUID均未指定。請指定需要為其獲取消息的UID或GUID沒有互聯網連接。請稍後重試
- 請求已在進行中
- 要使用“ fetchNext()”方法,需要使用“時間戳”或“ MessageId”或“ updatedAfter”
- 身份驗證令牌不能為空。請提供有效的身份驗證令牌該擴展名被禁用。請從CometChat儀表板啟用擴展
- 提供的消息ID無效 請提供有效的消息ID
- 只能編輯TextMessage或CustomMessage。請提供有效的消息
- 提供的列表為空。請提供有效清單
- 沒有`setUpdatedAfter()`方法,不能使用`updatesOnly()`方法。
- 解析JSON時出錯
- 註銷時出錯
- AppID不能為空。請指定一個有效的appID
- 指定的限制必須為正數
- 未指定地區。請使用setRegion()方法在AppSettingsBuilder類中指定區域。
- AppSettings不能為null
- ApiKey不能為null或為空。請提供有效的Api密鑰
- 您輸入的消息類型對於以下操作無效
- 訊息文字不能為空
- 文件對像不能為null或文件路徑不存在
- 媒體消息URL設置為null或空白
- 自定義數據字段不能為null或為空組名不能為null或為空
- 群組類型不能為null或為空
- 正在登錄。請等待登錄請求完成
- 消息不能為空。請傳遞有效的`BaseMessage`對象
- 組不能為空。請傳遞一個有效的`Group`對象
- 通話不能為空。請傳遞有效的`Call`對象
- 無效的通話類型。請提供有效的通話類型
- 無效的接收者類型。請提供有效的接收者類型
- 無效的sessionId類型。請提供有效的會話ID
- 提供的活動不能為空。
- 提供的RelativeLayout不能為null
- 提供的FCM令牌不能為null或為空。請提供有效的FCM令牌
- 提供的組類型不能為null或為空
- 通話正在進行中。請結束上一個通話以執行此操作
- 無法取消其他人發起的呼叫。請改為使用狀態“已拒絕”
- 為用戶提供的名稱無效。請提供一個有效的名字
- 用戶對像不能為空。請提供有效的用戶對象
- 組名不能為空。請提供有效的群組名稱
- 時間戳記必須為正數。請提供有效的時間戳記
- 無效的類別。請提供有效的類別
- 空的圖標。請提供有效的圖標
- 空說明。請提供有效的說明
- 空元數據。請提供有效的元數據
- 無效的範圍。請提供有效範圍
- 無效的範圍。請提供有效範圍
- 無效的對話方式。請提供一個有效的對話值
- 無效的conversationType。請提供一個有效的對話值
- 無效的媒體消息。請提供有效的文件對像或附件詳細信息。
- 附件不能為空。請提供有效的附件詳細信息
- 無效的文件名。請提供有效的文件名
- 無效的文件擴展名。請提供有效的文件擴展名
- 無效的文件Mime類型。請提供有效的文件啞劇類型
- 無效的文件URL。請提供有效的文件網址
- 找不到與%s和對話類型%s的對話
- 找不到設置。
- 提供的功能不能為null或為空。請提供有效的功能
- 提供的擴展名不能為null或為空。
- 找不到提供的功能。找不到提供的擴展名。踢剩下正在下載建立小组
- 私下发送消息
+ 私下发送消息查看資料
- 刪除對話您要删除此对话吗?删除对话
+ 離線
+ 新消息
+ 新消息
+ 發表
+ 讀
+ 投票
+ 投票
+ 衰退
+ 回答
+ 回复
+ 回复
+ 私下回复
+ 選擇用戶
+ 選擇組
+ 搜索用戶
+ 搜索組
+ 被拒絕的語音電話
+ 拒絕視頻通話
+ 撥出語音電話
+ 傳出視頻通話
+ 沒有發現被禁止的成員
\ 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 660b7ca..1f70bc7 100644
--- a/uikit/src/main/res/values-zh/strings.xml
+++ b/uikit/src/main/res/values-zh/strings.xml
@@ -4,9 +4,7 @@
来电团体更多
- 正在发送...⚠️ 此消息已删除
- ⚠️ 你删除了此消息📷 照片📹 视频🎵 音频
@@ -20,7 +18,6 @@
📝 白板📃 文档在线
- 离线你管理员主持人
@@ -31,82 +28,46 @@
密码保护隐私和安全
- 隐私封锁的用户
- 每个人偏好你已经封锁了会员
- 返回取消复制到剪贴板的文本今天昨天
- 打字...正在打字...
- 关闭请输入组名
- 清爽...解锁成为群组管理员让小组主持人管理员
- 添加管理员
- 添加版主分配为群组管理员作为群组管理员删除分配为小组主持人作为群组主持人删除
- 作为群组管理员被删除作为小组主持人被删除现在是管理员现在是主持人⚠️ 删除
- 作为管理员来自
- 作为主持人组?✅ 添加
- 作为管理员
- 作为主持人好吧
- 作为主持人
- 作为管理员添加成员行动
- 隐私和支持
- 发送消息添加解锁用户阻止用户
- 已成功添加成功解锁
- 成功阻止
- 删除并退出离开小组
- 从
- 已成功删除成功禁止成功解禁
- 已成功删除
- 你离开
- 删除成员Ban 会员
- Unban 会员创建群组
- 你加入了
- 向前共享媒体
- 无法将消息转发给一次只能将消息转发给 5 位参与者
- 没有照片
- 没有视频
- 没有文档视频通话音频通话
- 白板
- 正在加载...
- 1 个回复
- 回复发射加入已经分享了一个合作的白猪
@@ -123,73 +84,24 @@
复制消息创建民意调查发送贴纸
- 发送位置...
- 位置已成功发送搜索
- 找不到用户错误
- 没有找到团体
- 没有找到聊天
- 媒体消息
- 拒绝
- 接受
- 呼叫已启动
- 传出音频通话
- 外出的视频通话
- 来电已拒绝
- 电话已接受已加入
- 离开了电话
- 未应答的音频通话
- 未应答的视频通话呼叫已结束
- 电话已取消
- 呼叫忙打电话...
- 没有找到被禁的成员被禁的会员
- 姓名
- 范围Unban
- 选择群组类型输入群组密码
- 创建创建投票问题输入你的问题
- 选项输入你的选项
- 添加新选项
- 查看会员详情
- 通知
- 其他
- 帮助
- 报告问题
- 集团成员禁
- 踢
- 选择你的表情符号
- 受保护的组在 Youtube 上查看访问
- 表情符号
- 没有找到消息
- 线程
- 协作文档
- 协作白板
- 添加反应
- 找不到贴纸
- 在线程中回复删除留言编辑消息
- 周日
- 周一
- 周二
- 周三
- 周四
- 周五
- 周六所有者写信息阻止的用户检索失败
@@ -198,22 +110,17 @@
你想解除封锁 %1$s 吗无法阻止 %1$s请输入群组详细信息以继续
- 无法加入群组你想把 %1$s 作为管理员吗⚠️ 从 %1$s 中删除将 %1$s 添加到\” %2$s\”%1$s 已添加到\” %2$s\”%1$s 已从\” %2$s 中删除\”
- 组成员被踢失败你想从团体中离开吗?删除群组删除群组
- 组删除失败无法删除 %1$s
- 无法离开群组加载更多加载更多 %1$s 成员
- 无法获取组列表密码加入不正确
@@ -225,13 +132,11 @@
输入密码以加入 %1$s没有被禁的会员版主
- 无法检索版主列表。你喜欢使 %1$s 成为主持人吗只有管理员才能删除版主更新组输入群组图标 URL组成功更新
- 组未更新输入旧密码输入新密码群组警报
@@ -240,8 +145,6 @@
你想把 %1$s 作为所有者吗%1$s 现在是所有者你不是该组的成员 (%1$s)
- 所有者警报
- 在离开群组之前,请将团体所有权转移给其他成员公共组私人团体密码保护组
@@ -249,15 +152,10 @@
只有组所有者才能删除管理员。%1$s 已从管理员权限中删除无法更新群组成员
- > 管理员列表检索失败
- 无法创建群组%1$s 上的操作失败
- 错误:无法加载组成员列表
- 无法获取禁止的会员名单请从应用程序设置授予相机权限请从应用程序设置授予存储权限文件不存在
- 无法获取通话清单你没打过任何电话无法发起电话
@@ -288,7 +186,6 @@
发送隐私与支持用户
- 不支持自定义消息输入头像的 Url输入用户名更新用户
@@ -307,8 +204,6 @@
在 %1$s 中线程发送地点:%1$s正在连接来电
- 阅读地点:%1$s
- 交货地点:%1$s导航请允许位置权限。发送音频文件
@@ -320,7 +215,6 @@
已启用 GPSGPS 已禁用选项
- 发送媒体消息添加新选项无法获得你的位置已结束
@@ -329,7 +223,6 @@
共享白板分享 WriteBoard共享了 WriteBoard
- 你发送了 %1$s你收到了 %1$s发起电话点按即可开始对话
@@ -343,7 +236,6 @@
没有可用的翻译分享了一个群组通话。"📹 群组通话 "
- 发起群组通话您已建立群组通话。投票成功上载
@@ -353,9 +245,6 @@
成功更新用户“剩余的用户” 已加入用户
- 成功连接
- 进行中的连接
- 您已断开连接。没有可用的互联网您已被封锁
@@ -369,86 +258,43 @@
民意测验“ id”缺失您不是民意测验的创建者
- 请在调用与CometChat相关的任何其他方法之前,最好在应用程序类的onCreate()方法中调用CometChat.init()方法。密码是受保护组的必填项
- 上限超过 %s 的上限
- 调用此方法之前,请先登录CometChat请提供有效的GUID请提供有效的 UIDUID不能为空。请提供有效的UIDUID 不能包含空格 请提供有效的 UID出了些问题
- 不发起呼叫就无法取消呼叫
- 连接时出了点问题
- 呼叫会话不匹配。请检查会话ID
- UID和GUID均未指定 请指定UID或GUID 需要为其获取消息的没有互联网连接。请稍后重试
- 请求已在进行中
- 要使用“ fetchNext()”方法,需要使用“时间戳”或“ MessageId”或“ updatedAfter”
- 身份验证令牌不能为空。请提供有效的身份验证令牌该扩展名被禁用。请从CometChat仪表板启用扩展
- 提供的消息ID无效 请提供有效的消息ID
- 只能编辑TextMessage或CustomMessage。请提供有效的消息
- 提供的列表为空。请提供有效清单
- 没有`setUpdatedAfter()`方法,不能使用`updatesOnly()`方法。
- 解析JSON时出错
- 注销时出错
- AppID不能为空。请指定一个有效的appID
- 指定的限制必须为正数
- 未指定地区。请使用setRegion()方法在AppSettingsBuilder类中指定区域。
- AppSettings不能为null
- ApiKey不能为null或为空。请提供有效的Api密钥
- 您输入的消息类型对于以下操作无效
- 讯息文字不能为空
- 文件对象不能为null或文件路径不存在
- 媒体消息URL设置为null或空白
- 自定义数据字段不能为null或为空组名不能为null或为空
- 群组类型不能为null或为空
- 正在登录。请等待登录请求完成
- 消息不能为空。请传递有效的`BaseMessage`对象
- 组不能为空。请传递一个有效的`Group`对象
- 通话不能为空。请传递有效的`Call`对象
- 无效的通话类型。请提供有效的通话类型
- 无效的接收者类型。请提供有效的接收者类型
- 无效的sessionId类型。请提供有效的会话ID
- 提供的活动不能为空。
- 提供的RelativeLayout不能为null
- 提供的FCM令牌不能为null或为空。请提供有效的FCM令牌
- 提供的组类型不能为null或为空
- 通话正在进行中。请结束上一个通话以执行此操作
- 无法取消其他人发起的呼叫。请改为使用状态“已拒绝”
- 为用户提供的名称无效。请提供一个有效的名字
- 用户对象不能为null。请提供有效的用户对象
- 组名不能为空。请提供有效的群组名称
- 时间戳记必须为正数。请提供有效的时间戳记
- 无效的类别。请提供有效的类别
- 空的图标。请提供有效的图标
- 空说明。请提供有效的说明
- 空元数据。请提供有效的元数据
- 无效的范围。请提供有效范围
- 无效的范围。请提供有效范围
- 无效的对话方式。请提供一个有效的对话值
- 无效的 conversationType。请提供一个有效的对话值
- 无效的媒体消息。请提供有效的文件对象或附件详细信息。
- 附件不能为空。请提供有效的附件详细信息
- 无效的文件名。请提供有效的文件名
- 无效的文件扩展名。请提供有效的文件扩展名
- 无效的文件Mime类型。请提供有效的文件哑剧类型
- 无效的文件URL。请提供有效的文件网址
- 找不到%s和对话类型%s的对话
- 找不到设置。
- 提供的功能不能为null或为空。请提供有效的功能
- 提供的扩展名不能为null或为空。
- 找不到提供的功能。找不到提供的扩展名。踢剩下正在下载建立小组
- 私下发送消息
+ 私下发送消息查看资料
- 删除对话您要删除此对话吗?删除对话
+ 离线
+ 新消息
+ 新消息
+ 发表
+ 读
+ 投票
+ 投票
+ 衰退
+ 回答
+ 回复
+ 回复
+ 私下回复
+ 选择用户
+ 选择组
+ 搜索用户
+ 搜索组
+ 被拒绝的语音电话
+ 拒绝视频通话
+ 拨出语音电话
+ 传出视频通话
+ 没有发现被禁止的成员
\ No newline at end of file
diff --git a/uikit/src/main/res/values/attr.xml b/uikit/src/main/res/values/attr.xml
index 7e46333..6cc34e7 100644
--- a/uikit/src/main/res/values/attr.xml
+++ b/uikit/src/main/res/values/attr.xml
@@ -7,10 +7,12 @@
-
-
+
+
+
+
diff --git a/uikit/src/main/res/values/color.xml b/uikit/src/main/res/values/color.xml
index bb40063..32b3005 100644
--- a/uikit/src/main/res/values/color.xml
+++ b/uikit/src/main/res/values/color.xml
@@ -1,7 +1,7 @@
- #03A9F4
- #169CD8
+ #3399FF
+ #808080#2196F3#000000
@@ -13,17 +13,12 @@
#40bdbdbd#E64CAF50#eecc0000
- #B1AEAE
- #979797#ECECEC
- #00BCD4#FF9800#8867C5#0020F5#43A047
- #C8E6C9
- #FFCDD2#E53935#B96B6B6B#C4C4C4
diff --git a/uikit/src/main/res/values/colors.xml b/uikit/src/main/res/values/colors.xml
new file mode 100644
index 0000000..df40388
--- /dev/null
+++ b/uikit/src/main/res/values/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #C4C4C4
+
\ No newline at end of file
diff --git a/uikit/src/main/res/values/dimen.xml b/uikit/src/main/res/values/dimen.xml
index a2041c3..71c0d47 100644
--- a/uikit/src/main/res/values/dimen.xml
+++ b/uikit/src/main/res/values/dimen.xml
@@ -1,6 +1,6 @@
- 24dp
+ 12dp16sp14sp12sp
diff --git a/uikit/src/main/res/values/dimens.xml b/uikit/src/main/res/values/dimens.xml
index acc236f..a6b3dae 100644
--- a/uikit/src/main/res/values/dimens.xml
+++ b/uikit/src/main/res/values/dimens.xml
@@ -1,5 +1,2 @@
-
- 12
- 250dp
-
\ No newline at end of file
+
\ 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 b6aad7c..5924819 100644
--- a/uikit/src/main/res/values/strings.xml
+++ b/uikit/src/main/res/values/strings.xml
@@ -64,22 +64,17 @@
Kindly, enter group details to proceed
- Unable to join groupDo you like to make %1$s as a Admin⚠️ Remove from %1$sAdd %1$s to \" %2$s \"%1$s is added to \" %2$s \"%1$s is removed from \" %2$s \"
- Group Member Kicked FailedWould you like to leave from group ?Delete GroupDelete the group
- Group Deletion FailedCan\'t remove %1$s
- Unable to leave groupLoad MoreLoad more %1$s members
- Unable to fetch Group ListPasswordJoiningIncorrect
@@ -93,13 +88,11 @@
Enter Password to join %1$sNo Banned MembersModerators
- Unable to retrieve moderator list.Do you like to make %1$s as a ModeratorOnly Admin can remove moderatorUpdate GroupEnter Group Icon UrlGroup Successfully Updated
- Group not updatedEnter Old PasswordEnter new passwordGroup Alert
@@ -108,8 +101,6 @@
Do you like to make %1$s as a Owner%1$s is now OwnerYou are not a member of this group (%1$s)
- Owner Alert
- Please transfer group ownership to another member before leaving the groupPublic GroupPrivate Group
@@ -123,11 +114,7 @@
Only group owner can remove admin.is removed from admin privilegeUnable to update Group Member
- Admin list retrieval failed
- Unable to create a groupOperation failed on %1$s
- Error : Not able to load group member list
- Unable to fetch Banned Members ListPlease grant camera permission from app setting
@@ -139,9 +126,14 @@
Audio CallMissed voice callMissed video call
+ Rejected voice call
+ Rejected video call
+ Outgoing voice call
+ Outgoing video call
+ Incoming Audio Call
+ Incoming Video Call
- Unable to fetch Call ListYou have not made any callsCallingUnable to initiate call
@@ -151,8 +143,6 @@
AllMissedNew Call
- Incoming Audio Call
- Incoming Video CallMissedRejectedCall is Ongoing
@@ -186,14 +176,12 @@
CancelText Copied to clipboardDelete Message
- Send MessagePrivacy & SecurityAddForward MessageActionsPreferencesOnline
- OfflineReply MessageShare messageCopy Message
@@ -238,8 +226,6 @@
Thread in %1$sSent at : %1$sConnecting to call
- Read At : %1$s
- Delivered At : %1$sNavigatePlease allow location permission.Send Audio Files
@@ -251,7 +237,6 @@
GPS enabledGPS disabledOption
- Sending Media MessageEnter your optionEnter your QuestionQuestion
@@ -263,59 +248,28 @@
Shared a WhiteboardShare DocumentShared a Document
- You sent a %1$s You received a %1$sInitiate a call
- Accept
- Add Admin
- Add Moderator
- Add new option
- Add Reaction
- added successfully
- ⚠️ You deleted this messageYesterday
- backBanBanned Successfully
- Blocked Successfully
- Create
- %1$s is removed from admin privilege
- View Members
- Decline
- Deleted Successfully
+ No Banned Members Foundunblocked successfullyYou cannot forward message to more than 5 members
- Sending..
- Audio
- Image
- Video
- File
- Call Accepted
- Call Busy
- Call Cancelled
+ 🎵 Audio
+ 📷 Photo
+ 📹 Video
+ 📁 FileCall Ended
- Call Initiated
- Call Rejected📃 Document📍 Location
- Custom Message not supported"📊 Polls ""💟 Sticker "📝 Whiteboard
- Delete & ExitPassword Protected GroupPrivate GroupPublic Group
- Reply in Thread
- No stickers found
- Collaborative Document
- Collaborative Whiteboard
- Thread
- No messages found
- emoji
- closeError
- Group MembersNo Thread Messagesinitiatedadded
@@ -324,13 +278,12 @@
joinedUnbanmade
- participant
+ ParticipantTranslate MessageNo translation available
- has shared a group call.
- You\'ve created a group call.
+ has initiated a group call.
+ You\'ve initiated a group call."📹 Group Call "
- Start a Group CallRetryUploadingVoted Success
@@ -339,9 +292,6 @@
Updated User Successfully"User Left "User Joined
- Connected Successfully
- Connection in Progress
- You are disconnected.No Internet AvailableYou have been blocked by "You've blocked "
@@ -357,31 +307,39 @@
Poll does not existThe poll \"id\" is missingYou are not the creator of poll
- Please call the CometChat.init() method preferably in the onCreate() method of the application class before calling any other methods related to CometChatPassword is mandatory for a protected group
- Limit exceeded max limit
- Please log in to CometChat before calling this methodPlease provide a valid GUIDPlease provide a valid UIDUID cannot be blank. Please provide a valid UIDUID cannot contain spaces. Please provide a valid UIDSomething went wrong, please try again
- Message text cannot be emptyGroup Name cannot be null or empty
- Message cannot be null. Please pass a valid `BaseMessage` object
- Invalid name provided for the user. Please provide a valid name
- Group name cannot be empty. Please provide a valid group nameDownloadingCreating Group
- Send Message Privately
+ Send Message PrivatelyView Profile
- Delete this conversationTodayIn a threadWould you like to delete this conversation?Deleting Conversationis typing..
-
-
+ Reply Privately
+ Replies
+ Reply
+ Answer
+ Decline
+ Votes
+ Vote
+ Read
+ Delivered
+ New Message
+ " New Messages"
+ offline
+ No Internet Available
+ Select User
+ Select Group
+ Search Users
+ Search Groups
+ Allow Background Location Permisssion
diff --git a/uikit/src/main/res/values/styles.xml b/uikit/src/main/res/values/styles.xml
index 201eb9f..f0566e6 100644
--- a/uikit/src/main/res/values/styles.xml
+++ b/uikit/src/main/res/values/styles.xml
@@ -12,11 +12,6 @@
@style/AppBottomSheetDialogTheme
-
-