class AIAssistantChatHistoryActivity : AppCompatActivity() {
private lateinit var binding: ActivityAiAssistantChatHistoryBinding
private var user: User? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityAiAssistantChatHistoryBinding.inflate(layoutInflater)
setContentView(binding.root)
val userJson = intent.getStringExtra(getString(R.string.app_user))
if (userJson != null && !userJson.isEmpty()) {
user = User.fromJson(userJson)
// Set user to fetch chat history
binding.cometchatAiAssistantChatHistory.setUser(user)
}
// Use setStyle() method of the component to apply custom styles if needed
// binding.cometchatAiAssistantChatHistory.setStyle(R.style.CustomCometChatAIAssistantChatHistoryStyle)
// See docs of CometChatAIAssistantChatHistory for available style attributes
// init click listeners
initClickListeners()
}
private fun initClickListeners() {
// History item click
binding.cometchatAiAssistantChatHistory.setOnItemClickListener { view, position, message ->
val appEntity = message.getReceiver()
if (appEntity is User) {
user = appEntity
val intent = Intent(this@AIAssistantChatHistoryActivity, AIAssistantChatActivity::class.java)
intent.putExtra(getString(R.string.app_user), appEntity.toJson().toString())
intent.putExtra(
getString(R.string.app_base_message),
message.getRawMessage().toString()
)
startActivity(intent)
finish()
}
}
// New chat creation from history screen
binding.cometchatAiAssistantChatHistory.setNewChatButtonClick {
val intent = Intent(this@AIAssistantChatHistoryActivity, AIAssistantChatActivity::class.java)
intent.putExtra(getString(R.string.app_user), user!!.toJson().toString()) // Pass user to create new chat
startActivity(intent)
finish()
}
// Close history screen
binding.cometchatAiAssistantChatHistory.setCloseButtonClick {
// finish the activity
}
}
}