mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-10 14:24:05 +01:00
Merge pull request #2251 from nextcloud/chore/noid/roomCleanup
Persistence cleanup
This commit is contained in:
commit
441c321e6a
@ -344,12 +344,17 @@ task installGitHooks(type: Copy, group: "development") {
|
|||||||
into '../.git/hooks'
|
into '../.git/hooks'
|
||||||
}
|
}
|
||||||
|
|
||||||
detekt {
|
tasks.named("detekt").configure {
|
||||||
reports {
|
reports {
|
||||||
xml {
|
html.required.set(true)
|
||||||
enabled = false
|
txt.required.set(true)
|
||||||
}
|
xml.required.set(false)
|
||||||
|
sarif.required.set(false)
|
||||||
|
md.required.set(false)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
detekt {
|
||||||
config = files("../detekt.yml")
|
config = files("../detekt.yml")
|
||||||
input = files("src/")
|
input = files("src/")
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class MainActivityTest {
|
|||||||
fun login() {
|
fun login() {
|
||||||
val sut = activityRule.launchActivity(null)
|
val sut = activityRule.launchActivity(null)
|
||||||
|
|
||||||
val user = sut.userManager.createOrUpdateUser(
|
val user = sut.userManager.storeProfile(
|
||||||
"test",
|
"test",
|
||||||
UserManager.UserAttributes(
|
UserManager.UserAttributes(
|
||||||
null,
|
null,
|
||||||
|
@ -33,8 +33,6 @@ import androidx.room.Update
|
|||||||
import com.nextcloud.talk.data.user.model.UserEntity
|
import com.nextcloud.talk.data.user.model.UserEntity
|
||||||
import io.reactivex.Maybe
|
import io.reactivex.Maybe
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
import java.lang.Boolean.FALSE
|
|
||||||
import java.lang.Boolean.TRUE
|
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
@Suppress("TooManyFunctions")
|
@Suppress("TooManyFunctions")
|
||||||
@ -98,29 +96,6 @@ abstract class UsersDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transaction
|
|
||||||
open fun markUserForDeletion(id: Long): Boolean {
|
|
||||||
getUserWithId(id).blockingGet()?.let { user ->
|
|
||||||
user.current = FALSE
|
|
||||||
updateUser(user)
|
|
||||||
}
|
|
||||||
|
|
||||||
return setAnyUserAsActive()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transaction
|
|
||||||
open fun setAnyUserAsActive(): Boolean {
|
|
||||||
val users = getUsers().blockingGet()
|
|
||||||
|
|
||||||
val result = users.firstOrNull()?.let { user ->
|
|
||||||
user.current = TRUE
|
|
||||||
updateUser(user)
|
|
||||||
TRUE
|
|
||||||
} ?: FALSE
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val TAG = "UsersDao"
|
const val TAG = "UsersDao"
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,4 @@ interface UsersRepository {
|
|||||||
fun insertUser(user: User): Long
|
fun insertUser(user: User): Long
|
||||||
fun setUserAsActiveWithId(id: Long): Single<Boolean>
|
fun setUserAsActiveWithId(id: Long): Single<Boolean>
|
||||||
fun deleteUser(user: User): Int
|
fun deleteUser(user: User): Int
|
||||||
fun setAnyUserAsActive(): Boolean
|
|
||||||
fun markUserForDeletion(id: Long): Boolean
|
|
||||||
}
|
}
|
||||||
|
@ -80,12 +80,4 @@ class UsersRepositoryImpl(private val usersDao: UsersDao) : UsersRepository {
|
|||||||
override fun deleteUser(user: User): Int {
|
override fun deleteUser(user: User): Int {
|
||||||
return usersDao.deleteUser(UserMapper.toEntity(user))
|
return usersDao.deleteUser(UserMapper.toEntity(user))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setAnyUserAsActive(): Boolean {
|
|
||||||
return usersDao.setAnyUserAsActive()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun markUserForDeletion(id: Long): Boolean {
|
|
||||||
return usersDao.markUserForDeletion(id)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,6 @@ import android.text.TextUtils;
|
|||||||
|
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||||
import com.nextcloud.talk.data.user.model.User;
|
import com.nextcloud.talk.data.user.model.User;
|
||||||
import com.nextcloud.talk.models.ExternalSignalingServer;
|
|
||||||
import com.nextcloud.talk.users.UserManager;
|
import com.nextcloud.talk.users.UserManager;
|
||||||
import com.nextcloud.talk.webrtc.WebSocketConnectionHelper;
|
import com.nextcloud.talk.webrtc.WebSocketConnectionHelper;
|
||||||
|
|
||||||
|
@ -49,10 +49,6 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
return userRepository.deleteUser(userRepository.getUserWithId(internalId).blockingGet())
|
return userRepository.deleteUser(userRepository.getUserWithId(internalId).blockingGet())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getUserById(userId: String): Maybe<User> {
|
|
||||||
return userRepository.getUserWithUserId(userId)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getUserWithId(id: Long): Maybe<User> {
|
fun getUserWithId(id: Long): Maybe<User> {
|
||||||
return userRepository.getUserWithId(id)
|
return userRepository.getUserWithId(id)
|
||||||
}
|
}
|
||||||
@ -154,9 +150,7 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun storeProfile(username: String?, userAttributes: UserAttributes): Maybe<User> {
|
fun storeProfile(username: String?, userAttributes: UserAttributes): Maybe<User> {
|
||||||
val userMaybe: Maybe<User> = findUser(null, userAttributes)
|
return findUser(userAttributes)
|
||||||
|
|
||||||
return userMaybe
|
|
||||||
.map { user: User? ->
|
.map { user: User? ->
|
||||||
when (user) {
|
when (user) {
|
||||||
null -> createUser(
|
null -> createUser(
|
||||||
@ -190,52 +184,14 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Only available for migration, use updateExternalSignalingServer or create new methods")
|
private fun findUser(userAttributes: UserAttributes): Maybe<User> {
|
||||||
fun createOrUpdateUser(
|
|
||||||
username: String?,
|
|
||||||
userAttributes: UserAttributes
|
|
||||||
): Maybe<User> {
|
|
||||||
val userMaybe: Maybe<User> = findUser(username, userAttributes)
|
|
||||||
|
|
||||||
return userMaybe
|
|
||||||
.map { user: User? ->
|
|
||||||
when (user) {
|
|
||||||
null -> createUser(
|
|
||||||
username,
|
|
||||||
userAttributes
|
|
||||||
)
|
|
||||||
else -> {
|
|
||||||
updateUserData(
|
|
||||||
user,
|
|
||||||
userAttributes
|
|
||||||
)
|
|
||||||
user
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.switchIfEmpty(Maybe.just(createUser(username, userAttributes)))
|
|
||||||
.map { user ->
|
|
||||||
userRepository.insertUser(user)
|
|
||||||
}
|
|
||||||
.flatMap { id ->
|
|
||||||
userRepository.getUserWithId(id)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun findUser(username: String?, userAttributes: UserAttributes): Maybe<User> {
|
|
||||||
return if (userAttributes.id != null) {
|
return if (userAttributes.id != null) {
|
||||||
userRepository.getUserWithId(userAttributes.id)
|
userRepository.getUserWithId(userAttributes.id)
|
||||||
} else if (username != null && userAttributes.serverUrl != null) {
|
|
||||||
userRepository.getUserWithUsernameAndServer(username, userAttributes.serverUrl)
|
|
||||||
} else {
|
} else {
|
||||||
Maybe.empty()
|
Maybe.empty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getUserWithUsernameAndServer(username: String, server: String): Maybe<User> {
|
|
||||||
return userRepository.getUserWithUsernameAndServer(username, server)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun updateUserData(user: User, userAttributes: UserAttributes) {
|
private fun updateUserData(user: User, userAttributes: UserAttributes) {
|
||||||
user.userId = userAttributes.userId
|
user.userId = userAttributes.userId
|
||||||
user.token = userAttributes.token
|
user.token = userAttributes.token
|
||||||
|
@ -36,8 +36,8 @@ import android.hardware.Sensor;
|
|||||||
import android.hardware.SensorEvent;
|
import android.hardware.SensorEvent;
|
||||||
import android.hardware.SensorEventListener;
|
import android.hardware.SensorEventListener;
|
||||||
import android.hardware.SensorManager;
|
import android.hardware.SensorManager;
|
||||||
import android.os.Build;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.webrtc.ThreadUtils;
|
import org.webrtc.ThreadUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user