From 4548a0a0f2ed7f0d05acac73d6dbbe77e818a98f Mon Sep 17 00:00:00 2001 From: dev-ritik Date: Sun, 17 Feb 2019 02:41:13 +0530 Subject: [PATCH 1/3] Fixes username name caching issue --- .../chat/rocket/android/helper/UserHelper.kt | 5 +++ .../profile/presentation/ProfilePresenter.kt | 35 ++++++++++++++++--- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/helper/UserHelper.kt b/app/src/main/java/chat/rocket/android/helper/UserHelper.kt index 90e9ede0e2..3d258c5a7e 100644 --- a/app/src/main/java/chat/rocket/android/helper/UserHelper.kt +++ b/app/src/main/java/chat/rocket/android/helper/UserHelper.kt @@ -19,6 +19,11 @@ class UserHelper @Inject constructor( */ fun user(): User? = getCurrentServerInteractor.get()?.let { localRepository.getCurrentUser(it) } + /** + * Saves current User data. + */ + fun updateUser(url: String, user: User) = localRepository.saveCurrentUser(url, user) + /** * Return the username for the current logged [User]. */ diff --git a/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt b/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt index dfde3bb661..b689659149 100644 --- a/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt +++ b/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt @@ -21,14 +21,14 @@ import chat.rocket.android.util.extension.toHex import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.retryIO import chat.rocket.common.RocketChatException +import chat.rocket.common.model.Email +import chat.rocket.common.model.User import chat.rocket.common.util.ifNull import chat.rocket.core.RocketChatClient -import chat.rocket.core.internal.rest.deleteOwnAccount -import chat.rocket.core.internal.rest.resetAvatar -import chat.rocket.core.internal.rest.setAvatar -import chat.rocket.core.internal.rest.updateProfile +import chat.rocket.core.internal.rest.* import kotlinx.coroutines.experimental.DefaultDispatcher import kotlinx.coroutines.experimental.withContext +import timber.log.Timber import java.util.* import javax.inject.Inject @@ -73,6 +73,7 @@ class ProfilePresenter @Inject constructor( view.showMessage(exception) } finally { view.hideLoading() + updateLocal() } } } @@ -176,6 +177,32 @@ class ProfilePresenter @Inject constructor( } } + fun updateLocal() { + launchUI(strategy) { + try { + val myself = retryIO { client.me() } + val user = User( + id = myself.id, + username = myself.username, + name = myself.name, + status = myself.status, + utcOffset = myself.utcOffset, + emails = myself.emails?.map { Email(it.address ?: "", it.verified) }, + roles = myself.roles + ) + userHelper.updateUser(serverUrl, user) + view.showProfile( + serverUrl.avatarUrl(user.username ?: ""), + user.name ?: "", + user.username ?: "", + user.emails?.getOrNull(0)?.address ?: "" + ) + } catch (exception: Exception) { + Timber.e(exception) + } + } + } + fun deleteAccount(password: String) { launchUI(strategy) { view.showLoading() From 6085940a255f3c1a590cae16a67e565cd7a69996 Mon Sep 17 00:00:00 2001 From: dev-ritik Date: Tue, 26 Feb 2019 16:18:55 +0530 Subject: [PATCH 2/3] Removes wildcard Imports --- .../rocket/android/profile/presentation/ProfilePresenter.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt b/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt index b689659149..8d465678cb 100644 --- a/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt +++ b/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt @@ -25,7 +25,11 @@ import chat.rocket.common.model.Email import chat.rocket.common.model.User import chat.rocket.common.util.ifNull import chat.rocket.core.RocketChatClient -import chat.rocket.core.internal.rest.* +import chat.rocket.core.internal.rest.deleteOwnAccount +import chat.rocket.core.internal.rest.me +import chat.rocket.core.internal.rest.resetAvatar +import chat.rocket.core.internal.rest.setAvatar +import chat.rocket.core.internal.rest.updateProfile import kotlinx.coroutines.experimental.DefaultDispatcher import kotlinx.coroutines.experimental.withContext import timber.log.Timber From 00fc33944121a4017d0df9edb5a60e57002a812d Mon Sep 17 00:00:00 2001 From: dev-ritik Date: Sat, 9 Mar 2019 21:25:15 +0530 Subject: [PATCH 3/3] Code Formatting --- .../profile/presentation/ProfilePresenter.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt b/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt index e1fa6e0742..26f49ee7f8 100644 --- a/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt +++ b/app/src/main/java/chat/rocket/android/profile/presentation/ProfilePresenter.kt @@ -186,13 +186,13 @@ class ProfilePresenter @Inject constructor( try { val myself = retryIO { client.me() } val user = User( - id = myself.id, - username = myself.username, - name = myself.name, - status = myself.status, - utcOffset = myself.utcOffset, - emails = myself.emails?.map { Email(it.address ?: "", it.verified) }, - roles = myself.roles + id = myself.id, + username = myself.username, + name = myself.name, + status = myself.status, + utcOffset = myself.utcOffset, + emails = myself.emails?.map { Email(it.address ?: "", it.verified) }, + roles = myself.roles ) userHelper.updateUser(serverUrl, user) view.showProfile(