This is an Android library which can be used to add chat functionality to your android application with just a few lines of code.
Add this to your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Then add dependency
dependencies {
implementation 'com.github.fasilthottathil:SimpleChatView:1.0.0'
}
Drop the ChatView in your XML layout as is shown below:
<com.fasilthottathil.simplechatview.widget.SimpleChatView
android:id="@+id/simpleChatView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
don't forget to add this attribute to your root layout.
xmlns:app="http://schemas.android.com/apk/res-auto"
And then in your Activity or Fragment
val simpleChatView = findViewById<SimpleChatView>(R.id.simpleChatView)
Sample code
val simpleChatView = findViewById<SimpleChatView>(R.id.simpleChatView)
//sending text message
simpleChatView.addMessage(
ChatMessage(
UUID.randomUUID().toString(),//message id
"Hello world",//message
"John Doe",//username
"http://www.maxspring.ch/images/cartoons/4.jpg",//profile url
true,//for setting left or right position of the chat
System.currentTimeMillis(),//timestamp
SimpleChatView.TYPE_TEXT//message type
)
)
//sending image message
simpleChatView.addMessage(
ChatMessage(
UUID.randomUUID().toString(),//message id
"http://www.maxspring.ch/images/cartoons/c71.png",//image url
"John Doe",//username
"http://www.maxspring.ch/images/cartoons/4.jpg",//profile url
true,//for setting left or right position of the chat
System.currentTimeMillis(),//timestamp
SimpleChatView.TYPE_IMAGE//message type
)
)
//sending video message
simpleChatView.addMessage(
ChatMessage(
UUID.randomUUID().toString(),//message id
"http://www.maxspring.ch/images/cartoons/Kultursponsoring.jpg",//video url
"John Doe",//username
"http://www.maxspring.ch/images/cartoons/4.jpg",//profile url
true,//for setting left or right position of the chat
System.currentTimeMillis(),//timestamp
SimpleChatView.TYPE_VIDEO//message type
)
)
//adding list of messages
simpleChatView.addMessage(chatMessageList)
//removing message
simpleChatView.remove(position)
simpleChatView.remove(ChatMessage())
simpleChatView.clearMessages()//clears all the added messages
simpleChatView.setOnMessageSendListener { message ->
//user clicked on send message button
}
simpleChatView.setOnMessageClickListener { chatMessage ->
//user clicked on the Text Message
}
simpleChatView.setOnChatImageClickListener { chatMessage ->
//user clicked on the image message
}
simpleChatView.setOnChatVideoClickListener { chatMessage ->
//user clicked on the video message
}
simpleChatView.setOnChatUserImageClickListener { chatMessage ->
//user clicked on the profile pic
}
simpleChatView.setOnChatUsernameClickListener { chatMessage ->
//user clicked on the username
}
simpleChatView.setOnSelectImageClickListener {
//user clicked on the image selection button
}
simpleChatView.setOnSelectVideoClickListener {
//user clicked on the video selection button
}
simpleChatView.setOnSelectCameraClickListener {
//user clicked on the camera button
}
customize using xml code
<com.fasilthottathil.simplechatview.widget.SimpleChatView
android:id="@+id/simpleChatView"
app:hint="Type message"
app:hintTextColor="@android:color/darker_gray"
app:chatInputBackgroundColor="@color/white"
app:chatInputBackground="@drawable/chat_input_shape"
app:chatViewBackgroundColor="@color/white"
app:showAddButton="true or false"
app:showCameraButton="true or false"
app:showImageButton="true or false"
app:showVideoButton="true or false"
app:showSenderLayout="true or false"
app:addButtonColor="@color/teal_200"
app:sendButtonColor="@color/purple_700"
app:textColor="@color/black"
android:layout_width="match_parent"
android:layout_height="match_parent" />
customize using kotlin code
simpleChatView.setChatViewBackground(Color.WHITE)
simpleChatView.setSendButtonColor(Color.BLUE)
simpleChatView.setAddButtonColor(Color.RED)
simpleChatView.setChatInputBackgroundColor(Color.LTGRAY)
simpleChatView.setChatInputBackground(R.drawable.chat_input_shape)
simpleChatView.setShowAddButton(true or false)
simpleChatView.setShowSenderLayout(true or false)
simpleChatView.setShowImageButton(true or false)
simpleChatView.setShowVideoButton(true or false)
simpleChatView.setShowCameraButton(true or false)
simpleChatView.setHint("Type message...")
simpleChatView.setHintTextColor(Color.parseColor("#929292"))
simpleChatView.setTextColor(Color.BLACK)