diff --git a/app/src/main/java/com/nextcloud/talk/data/user/UsersDao.kt b/app/src/main/java/com/nextcloud/talk/data/user/UsersDao.kt index 67402f053..e1826f5ce 100644 --- a/app/src/main/java/com/nextcloud/talk/data/user/UsersDao.kt +++ b/app/src/main/java/com/nextcloud/talk/data/user/UsersDao.kt @@ -83,19 +83,18 @@ abstract class UsersDao { abstract fun getUserWithUsernameAndServer(username: String, server: String): Maybe @Transaction - open fun setUserAsActiveWithId(id: Long): Single { - return getUsers() - .map { users -> - users.forEach { user -> - user.current = user.id == id - updateUser(user) - } - true - } - .onErrorReturn { e -> - Log.e(TAG, "Error setting user active", e) - false + @Suppress("Detekt.TooGenericExceptionCaught") // blockingGet() only throws RuntimeExceptions per rx docs + open fun setUserAsActiveWithId(id: Long): Boolean { + return try { + getUsers().blockingGet().forEach { user -> + user.current = user.id == id + updateUser(user) } + true + } catch (e: RuntimeException) { + Log.e(TAG, "Error setting user active", e) + false + } } @Transaction diff --git a/app/src/main/java/com/nextcloud/talk/data/user/UsersRepositoryImpl.kt b/app/src/main/java/com/nextcloud/talk/data/user/UsersRepositoryImpl.kt index 95b1465ab..07957cda2 100644 --- a/app/src/main/java/com/nextcloud/talk/data/user/UsersRepositoryImpl.kt +++ b/app/src/main/java/com/nextcloud/talk/data/user/UsersRepositoryImpl.kt @@ -74,7 +74,7 @@ class UsersRepositoryImpl(private val usersDao: UsersDao) : UsersRepository { } override fun setUserAsActiveWithId(id: Long): Single { - return usersDao.setUserAsActiveWithId(id) + return Single.just(usersDao.setUserAsActiveWithId(id)) } override fun deleteUserWithId(id: Long) {