mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-08 23:19:55 +00:00
ensure that getAnyUserAndSetAsActive will set other users to current=false
Before, getAnyUserAndSetAsActive did only set a random first user to current=true without to check if there is any other current user. So it was up to the calling function of getAnyUserAndSetAsActive to check this. I did not identify a scenario where the getAnyUserAndSetAsActive could cause to set multiple users to current, but anyway the new implementation might fix some scenario that i could not reproduce. Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
c58df32c87
commit
307ebd384d
@ -8,6 +8,7 @@
|
|||||||
package com.nextcloud.talk.users
|
package com.nextcloud.talk.users
|
||||||
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
|
import android.util.Log
|
||||||
import com.bluelinelabs.logansquare.LoganSquare
|
import com.bluelinelabs.logansquare.LoganSquare
|
||||||
import com.nextcloud.talk.data.user.UsersRepository
|
import com.nextcloud.talk.data.user.UsersRepository
|
||||||
import com.nextcloud.talk.data.user.model.User
|
import com.nextcloud.talk.data.user.model.User
|
||||||
@ -88,12 +89,11 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
.flatMapMaybe {
|
.flatMapMaybe {
|
||||||
if (it.isNotEmpty()) {
|
if (it.isNotEmpty()) {
|
||||||
val user = it.first()
|
val user = it.first()
|
||||||
user.apply {
|
if (setUserAsActive(user).blockingGet()) {
|
||||||
current = true
|
userRepository.getActiveUser()
|
||||||
}.also { currentUser ->
|
} else {
|
||||||
userRepository.updateUser(currentUser)
|
Maybe.empty()
|
||||||
}
|
}
|
||||||
Maybe.just(user)
|
|
||||||
} else {
|
} else {
|
||||||
Maybe.empty()
|
Maybe.empty()
|
||||||
}
|
}
|
||||||
@ -123,6 +123,7 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun setUserAsActive(user: User): Single<Boolean> {
|
fun setUserAsActive(user: User): Single<Boolean> {
|
||||||
|
Log.d(TAG, "setUserAsActive:" + user.id!!)
|
||||||
return userRepository.setUserAsActiveWithId(user.id!!)
|
return userRepository.setUserAsActiveWithId(user.id!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user