Skip to content

Instantly share code, notes, and snippets.

View wajahatkarim3's full-sized avatar
:octocat:
Subscribe to my newsletter: remotekaro.substack.com

Wajahat Karim wajahatkarim3

:octocat:
Subscribe to my newsletter: remotekaro.substack.com
View GitHub Profile
@wajahatkarim3
wajahatkarim3 / SignupActivity.kt
Created February 4, 2021 08:23
Creating CometUser from Firebase User
var auth = FirebaseAuth.getInstance()
auth.createUserWithEmailAndPassword(bi.txtEmail.text.toString(), bi.txtPassword.text.toString())
.addOnCompleteListener { task ->
if (task.isSuccessful) {
var firebaseUser = auth.currentUser
createAndLoginCometUser(firebaseUser!!.uid, bi.txtName.text.toString(), bi.radioDoctor.isChecked)
} else {
Snackbar.make(bi.root, "Authentication failed!", Snackbar.LENGTH_SHORT).show()
@wajahatkarim3
wajahatkarim3 / ConversationsFragment.kt
Created January 31, 2021 19:21
Loading conversations list
fun setLoggedInUI() {
if (CometChat.getLoggedInUser() != null) {
var conversationsRequest = ConversationsRequest.ConversationsRequestBuilder()
.setLimit(50)
.setConversationType(CometChatConstants.CONVERSATION_TYPE_USER)
.build()
conversationsRequest.fetchNext(object :
CometChat.CallbackListener<List<Conversation>>() {
override fun onSuccess(conversations: List<Conversation>?) {
@wajahatkarim3
wajahatkarim3 / ChatActivity.kt
Created January 31, 2021 19:00
Adding Chat for patient
fun initChat() {
initEmoji()
if (doctor != null) {
CometChat.getLoggedInUser()?.let {
CometChat.getUser(doctor!!.doctorId, object : CometChat.CallbackListener<User>() {
override fun onSuccess(doctorUser: User?) {
var bundle = Bundle()
var chatFragment: Fragment = CometChatMessageScreen()
@wajahatkarim3
wajahatkarim3 / ProfileFragment.kt
Created January 31, 2021 18:30
Signout functionality
bi.txtSignout.setOnClickListener {
CometChat.logout(object : CometChat.CallbackListener<String>() {
override fun onSuccess(p0: String?) {
val i = Intent(activity, MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(i)
activity?.finish()
}
@wajahatkarim3
wajahatkarim3 / LoginActivity.kt
Created January 31, 2021 18:07
Login Firebase and CometChat user
var auth = FirebaseAuth.getInstance()
auth.signInWithEmailAndPassword(bi.txtEmail.text.toString(), bi.txtPassword.text.toString())
.addOnCompleteListener { task ->
if (task.isSuccessful) {
var firebaseUser = auth.currentUser
CometChat.login(firebaseUser!!.uid, getString(R.string.auth_key), object : CometChat.CallbackListener<User>() {
override fun onSuccess(u: User?) {
if (u?.metadata?.has("isDoctor") == true && u.metadata?.getBoolean("isDoctor") == true) {
val i = Intent(applicationContext, DoctorMainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
@wajahatkarim3
wajahatkarim3 / SignupActivity.kt
Last active February 4, 2021 08:21
CometChat Authentication
fun createAndLoginCometUser(uid: String, name: String, isDoctor: Boolean) {
var cometUser = User()
cometUser.uid = uid
cometUser.name = name
var meta = JSONObject()
meta.put("isDoctor", isDoctor)
cometUser.metadata = meta
CometChat.createUser(cometUser, getString(R.string.auth_key), object : CometChat.CallbackListener<User>() {
@wajahatkarim3
wajahatkarim3 / SignupActivity.kt
Created January 31, 2021 17:48
Firebase Authentication
var auth = FirebaseAuth.getInstance()
auth.createUserWithEmailAndPassword(bi.txtEmail.text.toString(), bi.txtPassword.text.toString())
.addOnCompleteListener { task ->
if (task.isSuccessful) {
var firebaseUser = auth.currentUser
// CometChat Auth will be here.
} else {
Snackbar.make(bi.root, "Authentication failed!", Snackbar.LENGTH_SHORT).show()
@wajahatkarim3
wajahatkarim3 / SignupActivity.kt
Created January 31, 2021 17:40
Signup click listener before CometChat
// Signup
bi.btnSignup.setOnClickListener {
// Form Validation
// ..................................
// The random code for dummy signup flow
var isDoctor = bi.radioDoctor.isChecked
if (isDoctor) {
val i = Intent(applicationContext, DoctorMainActivity::class.java)
@wajahatkarim3
wajahatkarim3 / Zocdoc.kt
Last active January 31, 2021 17:17
The ZocDoc App class
class ZocdocApp : Application() {
override fun onCreate() {
super.onCreate()
initEmoji()
initCometChat()
}
fun initCometChat() {
@wajahatkarim3
wajahatkarim3 / build.gradle
Created January 31, 2021 16:04
The app's build.gradle file
dependencies {
// ........ Your other dependencies
// CometChat
implementation 'com.cometchat:pro-android-chat-sdk:2.1.6'
implementation(project(":uikit"))
implementation "androidx.emoji:emoji-appcompat:1.0.0"
// Firebase