Skip to content

Commit

Permalink
user profile fix
Browse files Browse the repository at this point in the history
  • Loading branch information
MuindiStephen committed Mar 11, 2024
1 parent 5fcc996 commit acdd14b
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ import com.google.firebase.auth.AuthResult
import com.steve_md.smartmkulima.utils.Resource

interface AuthRepository {
suspend fun register(email: String, userName: String, password: String, confirmPassword: String) : Resource<AuthResult>
suspend fun register(username: String, email: String, password: String, confirmPassword: String) : Resource<AuthResult>
suspend fun login(email: String, password: String) : Resource<AuthResult>
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ class AuthRepositoryImpl : AuthRepository{
private val firebaseAuth: FirebaseAuth = FirebaseAuth.getInstance()

override suspend fun register(
username: String,
email: String,
userName: String,
password: String,
confirmPassword: String
): Resource<AuthResult> {
return withContext(Dispatchers.IO) {
safeCall{
val result = firebaseAuth.createUserWithEmailAndPassword(email, password).await()
val uid = result.user?.uid!!
val user = User(uid,email,userName,password,confirmPassword)
val user = User(uid,email,username,password,confirmPassword)
databaseReference.child(uid).setValue(user).await()
Resource.Success(result)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ class SignUpDetailsWithEmailFragment : Fragment() {
) {
binding.progressBarSignUp.isVisible = false
displaySnackBar("Account created successfully")
navigateToLogin()
})
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class HomeDashboardFragment : Fragment() {

databaseReference = FirebaseDatabase.getInstance().getReference("users").child(userId!!)

databaseReference.child("username")
databaseReference.child("email")
.addListenerForSingleValueEvent(object : ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
val username = snapshot.getValue(String::class.java)
Expand All @@ -61,7 +61,7 @@ class HomeDashboardFragment : Fragment() {
val pascalCaseUsername = username.substring(0, 1)
.uppercase(Locale.getDefault()) + username.substring(1)
.lowercase(Locale.getDefault())
binding.includeToolBar.userNameTextView.text = pascalCaseUsername
binding.includeToolBar.userNameTextView.text = username
}
Timber.tag("$this@HomeDashboardFragment").d("$username is loggedIn" )
}
Expand Down
9 changes: 6 additions & 3 deletions app/src/main/java/com/steve_md/smartmkulima/utils/Event.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ package com.steve_md.smartmkulima.utils
import androidx.lifecycle.Observer


/**
* Handle events that are happening in the observer
*/
class Event<out T>(private val content: T) {
private var hasBeenHandled = false

Expand All @@ -21,13 +24,13 @@ class EventObserver<T>(
private inline val onLoading: (() -> Unit)? = null,
private inline val onSuccess: (T) -> Unit
) : Observer<Event<Resource<T>>> {
override fun onChanged(t: Event<Resource<T>>) {
when (val content = t.peekContent()) {
override fun onChanged(value: Event<Resource<T>>) {
when (val content = value.peekContent()) {
is Resource.Success -> {
content.data?.let(onSuccess)
}
is Resource.Error -> {
t.getContentIfNotHandled().let {
value.getContentIfNotHandled().let {
onError?.let { error ->
error(it?.message!!)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ class AuthViewModel @Inject constructor(


fun registerUser(
email: String,
username: String,
email: String,
confirmPassword: String,
password: String,
) {
Expand All @@ -54,7 +54,7 @@ class AuthViewModel @Inject constructor(
_registerStatus.postValue(Event(Resource.Loading()))

viewModelScope.launch(dispatcher) {
val result = authRepository.register(email, username, password, confirmPassword)
val result = authRepository.register(username, email,password, confirmPassword)
_registerStatus.postValue(Event(result))
}
}
Expand Down

0 comments on commit acdd14b

Please sign in to comment.