Skip to content
This repository was archived by the owner on Dec 16, 2023. It is now read-only.

Commit 2421dbc

Browse files
committed
Update profile design
1 parent e5f27fe commit 2421dbc

5 files changed

Lines changed: 221 additions & 185 deletions

File tree

app/src/main/java/com/marknkamau/justjava/ui/profile/ProfileActivity.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,37 +46,40 @@ class ProfileActivity : BaseActivity(), ProfileView {
4646
val database = (application as JustJavaApp).databaseService
4747
presenter = ProfilePresenter(this, preferencesRepository, auth, database)
4848

49-
btnSave.setOnClickListener { saveChanges() }
49+
btnUpdateProfile.setOnClickListener { saveChanges() }
5050
}
5151

52-
override fun showProgressBar() {
52+
override fun showOrdersProgressBar() {
5353
pbLoadingOrders.visibility = View.VISIBLE
5454
}
5555

56-
override fun hideProgressBar() {
57-
pbLoadingOrders.visibility = View.INVISIBLE
56+
override fun hideOrdersProgressBar() {
57+
pbLoadingOrders.visibility = View.GONE
58+
}
59+
60+
override fun showProfileProgressBar() {
61+
pbUpdatingProject.visibility = View.VISIBLE
62+
}
63+
64+
override fun hideProfileProgressBar() {
65+
pbUpdatingProject.visibility = View.GONE
5866
}
5967

6068
override fun displayNoPreviousOrders() {
61-
pbLoadingOrders.visibility = View.GONE
6269
tvNoOrders.visibility = View.VISIBLE
6370
rvPreviousOrders.visibility = View.GONE
64-
// Toast.makeText(this, "No previous orders", Toast.LENGTH_SHORT).show()
6571
}
6672

6773
override fun displayPreviousOrders(orderList: MutableList<Order>) {
68-
pbLoadingOrders.visibility = View.GONE
6974
adapter.setItems(orderList)
7075
}
7176

7277
override fun displayMessage(message: String?) {
73-
pbLoadingOrders.visibility = View.GONE
7478
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
7579
}
7680

7781
private fun saveChanges() {
7882
if (fieldsOk()) {
79-
pbLoadingOrders.visibility = View.VISIBLE
8083
presenter.updateUserDetails(name!!, phone!!, address!!)
8184
}
8285
}

app/src/main/java/com/marknkamau/justjava/ui/profile/ProfilePresenter.kt

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import com.marknkamau.justjava.data.local.PreferencesRepository
55
import com.marknkamau.justjava.data.network.db.DatabaseService
66
import com.marknkamau.justjava.data.models.Order
77
import com.marknkamau.justjava.data.models.UserDetails
8+
import timber.log.Timber
89

9-
internal class ProfilePresenter(private val activityView: ProfileView,
10+
internal class ProfilePresenter(private val view: ProfileView,
1011
private val preferencesRepository: PreferencesRepository,
1112
private val authenticationService: AuthenticationService,
1213
private val databaseService: DatabaseService) {
@@ -20,48 +21,52 @@ internal class ProfilePresenter(private val activityView: ProfileView,
2021

2122
private fun getUserDetails() {
2223
userDetails = preferencesRepository.getUserDetails()
23-
activityView.displayUserDetails(userDetails)
24+
view.displayUserDetails(userDetails)
2425
}
2526

2627
private fun getPreviousOrders() {
28+
view.showOrdersProgressBar()
2729
databaseService.getPreviousOrders(authenticationService.getUserId()!!, object : DatabaseService.PreviousOrdersListener {
2830
override fun onSuccess(previousOrders: MutableList<Order>) {
31+
view.hideOrdersProgressBar()
2932
if (previousOrders.isEmpty()) {
30-
activityView.displayNoPreviousOrders()
33+
view.displayNoPreviousOrders()
3134
} else {
3235
val sorted = previousOrders.sortedBy { it.date }.reversed().toMutableList()
33-
activityView.displayPreviousOrders(sorted)
36+
view.displayPreviousOrders(sorted)
3437
}
3538
}
3639

3740
override fun onError(reason: String) {
38-
activityView.displayMessage(reason)
41+
view.hideOrdersProgressBar()
42+
view.displayMessage(reason)
3943
}
4044
})
4145
}
4246

4347
fun updateUserDetails(name: String, phone: String, address: String) {
44-
activityView.showProgressBar()
45-
48+
view.showProfileProgressBar()
4649
authenticationService.setUserDisplayName(name, object : AuthenticationService.AuthActionListener {
4750
override fun actionSuccessful(response: String) {
4851
databaseService.updateUserDetails(userDetails.id, name, phone, address, object : DatabaseService.WriteListener {
4952
override fun onSuccess() {
5053
val newUserDetails = UserDetails(userDetails.id, userDetails.email, name, phone, address)
5154

5255
preferencesRepository.saveUserDetails(newUserDetails)
53-
activityView.hideProgressBar()
54-
activityView.displayMessage("Default values updated")
56+
view.hideProfileProgressBar()
57+
view.displayMessage("Profile updated")
5558
}
5659

5760
override fun onError(reason: String) {
58-
61+
Timber.e(reason)
62+
view.hideProfileProgressBar()
63+
view.displayMessage(reason)
5964
}
6065
})
6166
}
6267

6368
override fun actionFailed(response: String?) {
64-
activityView.displayMessage(response)
69+
view.displayMessage(response)
6570
}
6671
})
6772
}

app/src/main/java/com/marknkamau/justjava/ui/profile/ProfileView.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ import com.marknkamau.justjava.data.models.UserDetails
55

66
internal interface ProfileView {
77
fun displayUserDetails(userDetails: UserDetails)
8-
fun showProgressBar()
9-
fun hideProgressBar()
8+
fun showOrdersProgressBar()
9+
fun hideOrdersProgressBar()
10+
fun showProfileProgressBar()
11+
fun hideProfileProgressBar()
1012
fun displayNoPreviousOrders()
1113
fun displayPreviousOrders(orderList: MutableList<Order>)
1214
fun displayMessage(message: String?)

0 commit comments

Comments
 (0)