Merge pull request #4695 from nextcloud/accessCurrentUserOnlyByCurrentUserprovider

replace userManager.currentUser usage by currentUserProvider usage
This commit is contained in:
Sowjanya Kota 2025-02-07 13:26:14 +01:00 committed by GitHub
commit 40bcf7444a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 134 additions and 73 deletions

View File

@ -126,7 +126,7 @@ public class LoginIT {
activityScenario.onActivity(activity -> { activityScenario.onActivity(activity -> {
assertEquals(loginName, assertEquals(loginName,
Objects.requireNonNull(activity.userManager.getCurrentUser().blockingGet()).getUserId()); Objects.requireNonNull(activity.currentUserProvider.getCurrentUser().blockingGet()).getUserId());
}); });
} }
} }

View File

@ -416,7 +416,7 @@ class AccountVerificationActivity : BaseActivity() {
cookieManager.cookieStore.removeAll() cookieManager.cookieStore.removeAll()
if (userManager.users.blockingGet().size == 1 || if (userManager.users.blockingGet().size == 1 ||
userManager.currentUser.blockingGet().id != internalAccountId currentUserProvider.currentUser.blockingGet().id != internalAccountId
) { ) {
val userToSetAsActive = userManager.getUserWithId(internalAccountId).blockingGet() val userToSetAsActive = userManager.getUserWithId(internalAccountId).blockingGet()
Log.d(TAG, "userToSetAsActive: " + userToSetAsActive.username) Log.d(TAG, "userToSetAsActive: " + userToSetAsActive.username)

View File

@ -224,7 +224,7 @@ class WebViewLoginActivity : BaseActivity() {
if (!reauthorizeAccount) { if (!reauthorizeAccount) {
alias = appPreferences.temporaryClientCertAlias alias = appPreferences.temporaryClientCertAlias
} }
val user = userManager.currentUser.blockingGet() val user = currentUserProvider.currentUser.blockingGet()
if (TextUtils.isEmpty(alias) && user != null) { if (TextUtils.isEmpty(alias) && user != null) {
alias = user.clientCertificate alias = user.clientCertificate
} }
@ -373,7 +373,7 @@ class WebViewLoginActivity : BaseActivity() {
} }
private fun updateUserAndRestartApp(loginData: LoginData) { private fun updateUserAndRestartApp(loginData: LoginData) {
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
if (currentUser != null) { if (currentUser != null) {
currentUser.clientCertificate = appPreferences.temporaryClientCertAlias currentUser.clientCertificate = appPreferences.temporaryClientCertAlias
currentUser.token = loginData.token currentUser.token = loginData.token

View File

@ -164,7 +164,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
val user = userId.substringBeforeLast("@") val user = userId.substringBeforeLast("@")
val baseUrl = userId.substringAfterLast("@") val baseUrl = userId.substringAfterLast("@")
if (userManager.currentUser.blockingGet()?.baseUrl!!.endsWith(baseUrl) == true) { if (currentUserProvider.currentUser.blockingGet()?.baseUrl!!.endsWith(baseUrl) == true) {
startConversation(user) startConversation(user)
} else { } else {
Snackbar.make( Snackbar.make(
@ -181,7 +181,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
private fun startConversation(userId: String) { private fun startConversation(userId: String) {
val roomType = "1" val roomType = "1"
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, 1)) val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, 1))
val credentials = ApiUtils.getCredentials(currentUser?.username, currentUser?.token) val credentials = ApiUtils.getCredentials(currentUser?.username, currentUser?.token)

View File

@ -75,6 +75,7 @@ import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.CharPolicy import com.nextcloud.talk.utils.CharPolicy
import com.nextcloud.talk.utils.ImageEmojiEditText import com.nextcloud.talk.utils.ImageEmojiEditText
import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.text.Spans import com.nextcloud.talk.utils.text.Spans
import com.otaliastudios.autocomplete.Autocomplete import com.otaliastudios.autocomplete.Autocomplete
import com.stfalcon.chatkit.commons.models.IMessage import com.stfalcon.chatkit.commons.models.IMessage
@ -116,6 +117,9 @@ class MessageInputFragment : Fragment() {
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var networkMonitor: NetworkMonitor lateinit var networkMonitor: NetworkMonitor
@ -217,7 +221,7 @@ class MessageInputFragment : Fragment() {
if (show) { if (show) {
binding.fragmentCallStarted.callAuthorChip.text = message.actorDisplayName binding.fragmentCallStarted.callAuthorChip.text = message.actorDisplayName
binding.fragmentCallStarted.callAuthorChipSecondary.text = message.actorDisplayName binding.fragmentCallStarted.callAuthorChipSecondary.text = message.actorDisplayName
val user = userManager.currentUser.blockingGet() val user = currentUserProvider.currentUser.blockingGet()
val url: String = if (message.actorType == "guests" || message.actorType == "guest") { val url: String = if (message.actorType == "guests" || message.actorType == "guest") {
ApiUtils.getUrlForGuestAvatar(user!!.baseUrl!!, message.actorDisplayName, true) ApiUtils.getUrlForGuestAvatar(user!!.baseUrl!!, message.actorDisplayName, true)
} else { } else {

View File

@ -158,7 +158,7 @@ class ContactsActivity :
} }
} }
currentUser = userManager.currentUser.blockingGet() currentUser = currentUserProvider.currentUser.blockingGet()
if (currentUser != null) { if (currentUser != null) {
credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token) credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token)
} }

View File

@ -12,15 +12,17 @@ import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.models.RetrofitBucket import com.nextcloud.talk.models.RetrofitBucket
import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall
import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.conversations.RoomOverall
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.ContactUtils import com.nextcloud.talk.utils.ContactUtils
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import javax.inject.Inject
class ContactsRepositoryImpl( class ContactsRepositoryImpl @Inject constructor(
private val ncApiCoroutines: NcApiCoroutines, private val ncApiCoroutines: NcApiCoroutines,
private val userManager: UserManager currentUserProvider: CurrentUserProviderNew
) : ContactsRepository { ) : ContactsRepository {
private val _currentUser = userManager.currentUser.blockingGet()
private val _currentUser = currentUserProvider.currentUser.blockingGet()
val currentUser: User = _currentUser val currentUser: User = _currentUser
val credentials = ApiUtils.getCredentials(_currentUser.username, _currentUser.token) val credentials = ApiUtils.getCredentials(_currentUser.username, _currentUser.token)
val apiVersion = ApiUtils.getConversationApiVersion(_currentUser, intArrayOf(ApiUtils.API_V4, 1)) val apiVersion = ApiUtils.getConversationApiVersion(_currentUser, intArrayOf(ApiUtils.API_V4, 1))

View File

@ -14,21 +14,22 @@ import com.nextcloud.talk.models.domain.ConversationModel
import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.conversations.RoomOverall
import com.nextcloud.talk.models.json.generic.GenericOverall import com.nextcloud.talk.models.json.generic.GenericOverall
import com.nextcloud.talk.models.json.participants.AddParticipantOverall import com.nextcloud.talk.models.json.participants.AddParticipantOverall
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.ApiUtils.getRetrofitBucketForAddParticipant import com.nextcloud.talk.utils.ApiUtils.getRetrofitBucketForAddParticipant
import com.nextcloud.talk.utils.ApiUtils.getRetrofitBucketForAddParticipantWithSource import com.nextcloud.talk.utils.ApiUtils.getRetrofitBucketForAddParticipantWithSource
import com.nextcloud.talk.utils.Mimetype import com.nextcloud.talk.utils.Mimetype
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody import okhttp3.MultipartBody
import okhttp3.RequestBody.Companion.asRequestBody import okhttp3.RequestBody.Companion.asRequestBody
import java.io.File import java.io.File
import javax.inject.Inject
class ConversationCreationRepositoryImpl( class ConversationCreationRepositoryImpl @Inject constructor(
private val ncApiCoroutines: NcApiCoroutines, private val ncApiCoroutines: NcApiCoroutines,
private val userManager: UserManager currentUserProvider: CurrentUserProviderNew
) : ConversationCreationRepository { ) : ConversationCreationRepository {
private val _currentUser = userManager.currentUser.blockingGet() private val _currentUser = currentUserProvider.currentUser.blockingGet()
val currentUser: User = _currentUser val currentUser: User = _currentUser
val credentials = ApiUtils.getCredentials(_currentUser.username, _currentUser.token) val credentials = ApiUtils.getCredentials(_currentUser.username, _currentUser.token)
val apiVersion = ApiUtils.getConversationApiVersion(_currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1)) val apiVersion = ApiUtils.getConversationApiVersion(_currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1))

View File

@ -18,7 +18,7 @@ import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.conversations.Conversation
import com.nextcloud.talk.models.json.generic.GenericMeta import com.nextcloud.talk.models.json.generic.GenericMeta
import com.nextcloud.talk.repositories.conversations.ConversationsRepositoryImpl.Companion.STATUS_CODE_OK import com.nextcloud.talk.repositories.conversations.ConversationsRepositoryImpl.Companion.STATUS_CODE_OK
import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -26,7 +26,7 @@ import javax.inject.Inject
class ConversationCreationViewModel @Inject constructor( class ConversationCreationViewModel @Inject constructor(
private val repository: ConversationCreationRepository, private val repository: ConversationCreationRepository,
private val userManager: UserManager private val currentUserProvider: CurrentUserProviderNew
) : ViewModel() { ) : ViewModel() {
private val _selectedParticipants = MutableStateFlow<List<AutocompleteUser>>(emptyList()) private val _selectedParticipants = MutableStateFlow<List<AutocompleteUser>>(emptyList())
val selectedParticipants: StateFlow<List<AutocompleteUser>> = _selectedParticipants val selectedParticipants: StateFlow<List<AutocompleteUser>> = _selectedParticipants
@ -35,7 +35,7 @@ class ConversationCreationViewModel @Inject constructor(
private val _selectedImageUri = MutableStateFlow<Uri?>(null) private val _selectedImageUri = MutableStateFlow<Uri?>(null)
val selectedImageUri: StateFlow<Uri?> = _selectedImageUri val selectedImageUri: StateFlow<Uri?> = _selectedImageUri
private val _currentUser = userManager.currentUser.blockingGet() private val _currentUser = currentUserProvider.currentUser.blockingGet()
val currentUser: User = _currentUser val currentUser: User = _currentUser
private val _isPasswordEnabled = mutableStateOf(false) private val _isPasswordEnabled = mutableStateOf(false)

View File

@ -14,6 +14,7 @@ import com.nextcloud.talk.conversationlist.data.OfflineConversationsRepository
import com.nextcloud.talk.invitation.data.InvitationsModel import com.nextcloud.talk.invitation.data.InvitationsModel
import com.nextcloud.talk.invitation.data.InvitationsRepository import com.nextcloud.talk.invitation.data.InvitationsRepository
import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -31,6 +32,9 @@ class ConversationsListViewModel @Inject constructor(
@Inject @Inject
lateinit var invitationsRepository: InvitationsRepository lateinit var invitationsRepository: InvitationsRepository
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
sealed interface ViewState sealed interface ViewState
object GetRoomsStartState : ViewState object GetRoomsStartState : ViewState
@ -90,7 +94,7 @@ class ConversationsListViewModel @Inject constructor(
} }
override fun onNext(invitationsModel: InvitationsModel) { override fun onNext(invitationsModel: InvitationsModel) {
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
if (invitationsModel.user.userId?.equals(currentUser.userId) == true && if (invitationsModel.user.userId?.equals(currentUser.userId) == true &&
invitationsModel.user.baseUrl?.equals(currentUser.baseUrl) == true invitationsModel.user.baseUrl?.equals(currentUser.baseUrl) == true

View File

@ -58,7 +58,6 @@ import com.nextcloud.talk.shareditems.repositories.SharedItemsRepository
import com.nextcloud.talk.shareditems.repositories.SharedItemsRepositoryImpl import com.nextcloud.talk.shareditems.repositories.SharedItemsRepositoryImpl
import com.nextcloud.talk.translate.repositories.TranslateRepository import com.nextcloud.talk.translate.repositories.TranslateRepository
import com.nextcloud.talk.translate.repositories.TranslateRepositoryImpl import com.nextcloud.talk.translate.repositories.TranslateRepositoryImpl
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import dagger.Module import dagger.Module
@ -183,12 +182,14 @@ class RepositoryModule {
) )
@Provides @Provides
fun provideContactsRepository(ncApiCoroutines: NcApiCoroutines, userManager: UserManager): ContactsRepository = fun provideContactsRepository(
ContactsRepositoryImpl(ncApiCoroutines, userManager) ncApiCoroutines: NcApiCoroutines,
currentUserProviderNew: CurrentUserProviderNew
): ContactsRepository = ContactsRepositoryImpl(ncApiCoroutines, currentUserProviderNew)
@Provides @Provides
fun provideConversationCreationRepository( fun provideConversationCreationRepository(
ncApiCoroutines: NcApiCoroutines, ncApiCoroutines: NcApiCoroutines,
userManager: UserManager currentUserProviderNew: CurrentUserProviderNew
): ConversationCreationRepository = ConversationCreationRepositoryImpl(ncApiCoroutines, userManager) ): ConversationCreationRepository = ConversationCreationRepositoryImpl(ncApiCoroutines, currentUserProviderNew)
} }

View File

@ -306,26 +306,26 @@ class DiagnoseActivity : BaseActivity() {
} }
private fun setupAccountValues() { private fun setupAccountValues() {
val currentUser = currentUserProvider.currentUser.blockingGet()
addHeadline(context.resources.getString(R.string.nc_diagnose_account_category_title)) addHeadline(context.resources.getString(R.string.nc_diagnose_account_category_title))
addKey(context.resources.getString(R.string.nc_diagnose_account_server)) addKey(context.resources.getString(R.string.nc_diagnose_account_server))
addValue(userManager.currentUser.blockingGet().baseUrl!!) addValue(currentUser.baseUrl!!)
addKey(context.resources.getString(R.string.nc_diagnose_account_user_name)) addKey(context.resources.getString(R.string.nc_diagnose_account_user_name))
addValue(userManager.currentUser.blockingGet().displayName!!) addValue(currentUser.displayName!!)
addKey(context.resources.getString(R.string.nc_diagnose_account_user_status_enabled)) addKey(context.resources.getString(R.string.nc_diagnose_account_user_status_enabled))
addValue( addValue(
translateBoolean( translateBoolean(
(userManager.currentUser.blockingGet().capabilities?.userStatusCapability?.enabled) (currentUser.capabilities?.userStatusCapability?.enabled)
) )
) )
addKey(context.resources.getString(R.string.nc_diagnose_account_server_notification_app)) addKey(context.resources.getString(R.string.nc_diagnose_account_server_notification_app))
addValue( addValue(
translateBoolean( translateBoolean(currentUser.capabilities?.notificationsCapability?.features?.isNotEmpty())
userManager.currentUser.blockingGet().capabilities?.notificationsCapability?.features?.isNotEmpty()
)
) )
if (isGooglePlayServicesAvailable) { if (isGooglePlayServicesAvailable) {
@ -333,16 +333,14 @@ class DiagnoseActivity : BaseActivity() {
} }
addKey(context.resources.getString(R.string.nc_diagnose_server_version)) addKey(context.resources.getString(R.string.nc_diagnose_server_version))
addValue(userManager.currentUser.blockingGet().serverVersion?.versionString!!) addValue(currentUser.serverVersion?.versionString!!)
addKey(context.resources.getString(R.string.nc_diagnose_server_talk_version)) addKey(context.resources.getString(R.string.nc_diagnose_server_talk_version))
addValue(userManager.currentUser.blockingGet().capabilities?.spreedCapability?.version!!) addValue(currentUser.capabilities?.spreedCapability?.version!!)
addKey(context.resources.getString(R.string.nc_diagnose_signaling_mode_title)) addKey(context.resources.getString(R.string.nc_diagnose_signaling_mode_title))
if (userManager.currentUser.blockingGet().externalSignalingServer?.externalSignalingServer?.isNotEmpty() if (currentUser.externalSignalingServer?.externalSignalingServer?.isNotEmpty() == true) {
== true
) {
addValue(context.resources.getString(R.string.nc_diagnose_signaling_mode_extern)) addValue(context.resources.getString(R.string.nc_diagnose_signaling_mode_extern))
} else { } else {
addValue(context.resources.getString(R.string.nc_diagnose_signaling_mode_intern)) addValue(context.resources.getString(R.string.nc_diagnose_signaling_mode_intern))
@ -350,7 +348,7 @@ class DiagnoseActivity : BaseActivity() {
} }
private fun setupPushRegistrationDiagnose() { private fun setupPushRegistrationDiagnose() {
val accountId = UserIdUtils.getIdForUser(userManager.currentUser.blockingGet()) val accountId = UserIdUtils.getIdForUser(currentUserProvider.currentUser.blockingGet())
val latestPushRegistrationAtServer = arbitraryStorageManager.getStorageSetting( val latestPushRegistrationAtServer = arbitraryStorageManager.getStorageSetting(
accountId, accountId,

View File

@ -38,6 +38,7 @@ import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.ContactUtils import com.nextcloud.talk.utils.ContactUtils
import com.nextcloud.talk.utils.DateConstants import com.nextcloud.talk.utils.DateConstants
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.preferences.AppPreferences import com.nextcloud.talk.utils.preferences.AppPreferences
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
@ -57,6 +58,9 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var appPreferences: AppPreferences lateinit var appPreferences: AppPreferences
@ -66,7 +70,7 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
override fun doWork(): Result { override fun doWork(): Result {
sharedApplication!!.componentApplication.inject(this) sharedApplication!!.componentApplication.inject(this)
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
accountName = context.getString(R.string.nc_app_product_name) accountName = context.getString(R.string.nc_app_product_name)
accountType = BuildConfig.APPLICATION_ID accountType = BuildConfig.APPLICATION_ID

View File

@ -18,6 +18,7 @@ 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.users.UserManager import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.preferences.AppPreferences import com.nextcloud.talk.utils.preferences.AppPreferences
import okhttp3.ResponseBody import okhttp3.ResponseBody
import java.io.BufferedInputStream import java.io.BufferedInputStream
@ -39,6 +40,9 @@ class DownloadFileToCacheWorker(val context: Context, workerParameters: WorkerPa
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var appPreferences: AppPreferences lateinit var appPreferences: AppPreferences
@ -50,7 +54,7 @@ class DownloadFileToCacheWorker(val context: Context, workerParameters: WorkerPa
} }
try { try {
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
val baseUrl = inputData.getString(KEY_BASE_URL) val baseUrl = inputData.getString(KEY_BASE_URL)
val userId = inputData.getString(KEY_USER_ID) val userId = inputData.getString(KEY_USER_ID)
val attachmentFolder = inputData.getString(KEY_ATTACHMENT_FOLDER) val attachmentFolder = inputData.getString(KEY_ATTACHMENT_FOLDER)

View File

@ -25,6 +25,7 @@ import com.nextcloud.talk.utils.ApiUtils.getConversationApiVersion
import com.nextcloud.talk.utils.ApiUtils.getCredentials import com.nextcloud.talk.utils.ApiUtils.getCredentials
import com.nextcloud.talk.utils.ApiUtils.getUrlForParticipantsSelf import com.nextcloud.talk.utils.ApiUtils.getUrlForParticipantsSelf
import com.nextcloud.talk.utils.bundle.BundleKeys import com.nextcloud.talk.utils.bundle.BundleKeys
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -43,12 +44,15 @@ class LeaveConversationWorker(context: Context, workerParams: WorkerParameters)
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
private val result = SettableFuture.create<Result>() private val result = SettableFuture.create<Result>()
override fun startWork(): ListenableFuture<Result> { override fun startWork(): ListenableFuture<Result> {
NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this) NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
val conversationToken = inputData.getString(BundleKeys.KEY_ROOM_TOKEN) val conversationToken = inputData.getString(BundleKeys.KEY_ROOM_TOKEN)
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
if (currentUser != null && conversationToken != null) { if (currentUser != null && conversationToken != null) {
val credentials = getCredentials(currentUser.username, currentUser.token) val credentials = getCredentials(currentUser.username, currentUser.token)

View File

@ -41,6 +41,7 @@ import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.RemoteFileUtils import com.nextcloud.talk.utils.RemoteFileUtils
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil
import com.nextcloud.talk.utils.preferences.AppPreferences import com.nextcloud.talk.utils.preferences.AppPreferences
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
@ -58,6 +59,9 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var appPreferences: AppPreferences lateinit var appPreferences: AppPreferences
@ -95,7 +99,7 @@ class UploadAndShareFilesWorker(val context: Context, workerParameters: WorkerPa
} }
return try { return try {
currentUser = userManager.currentUser.blockingGet() currentUser = currentUserProvider.currentUser.blockingGet()
val sourceFile = inputData.getString(DEVICE_SOURCE_FILE) val sourceFile = inputData.getString(DEVICE_SOURCE_FILE)
roomToken = inputData.getString(ROOM_TOKEN)!! roomToken = inputData.getString(ROOM_TOKEN)!!
conversationName = inputData.getString(CONVERSATION_NAME)!! conversationName = inputData.getString(CONVERSATION_NAME)!!

View File

@ -452,7 +452,7 @@ class LocationPickerActivity :
"{\"type\":\"geo-location\",\"id\":\"geo:$selectedLat,$selectedLon\",\"latitude\":\"$selectedLat\"," + "{\"type\":\"geo-location\",\"id\":\"geo:$selectedLat,$selectedLon\",\"latitude\":\"$selectedLat\"," +
"\"longitude\":\"$selectedLon\",\"name\":\"$locationNameToShare\"}" "\"longitude\":\"$selectedLon\",\"name\":\"$locationNameToShare\"}"
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
ncApi.sendLocation( ncApi.sendLocation(
ApiUtils.getCredentials(currentUser.username, currentUser.token), ApiUtils.getCredentials(currentUser.username, currentUser.token),

View File

@ -14,6 +14,7 @@ import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.polls.model.Poll import com.nextcloud.talk.polls.model.Poll
import com.nextcloud.talk.polls.repositories.PollRepository import com.nextcloud.talk.polls.repositories.PollRepository
import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -25,6 +26,9 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
lateinit var user: User lateinit var user: User
lateinit var roomToken: String lateinit var roomToken: String
private var isOwnerOrModerator: Boolean = false private var isOwnerOrModerator: Boolean = false
@ -161,11 +165,7 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito
} }
private fun isPollCreatedByCurrentUser(poll: Poll): Boolean { private fun isPollCreatedByCurrentUser(poll: Poll): Boolean {
if (userManager.currentUser.isEmpty.blockingGet()) { return currentUserProvider.currentUser.blockingGet().userId == poll.actorId
return false
} else {
return userManager.currentUser.blockingGet().userId == poll.actorId
}
} }
fun dismissDialog() { fun dismissDialog() {

View File

@ -23,6 +23,7 @@ import com.nextcloud.talk.models.json.mention.MentionOverall;
import com.nextcloud.talk.ui.theme.ViewThemeUtils; import com.nextcloud.talk.ui.theme.ViewThemeUtils;
import com.nextcloud.talk.users.UserManager; import com.nextcloud.talk.users.UserManager;
import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew;
import com.otaliastudios.autocomplete.RecyclerViewPresenter; import com.otaliastudios.autocomplete.RecyclerViewPresenter;
import java.util.ArrayList; import java.util.ArrayList;
@ -53,6 +54,9 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter<Mention>
@Inject @Inject
UserManager userManager; UserManager userManager;
@Inject
CurrentUserProviderNew currentUserProvider;
@Inject @Inject
ViewThemeUtils viewThemeUtils; ViewThemeUtils viewThemeUtils;
@ -69,7 +73,7 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter<Mention>
super(context); super(context);
this.context = context; this.context = context;
NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this);
currentUser = userManager.getCurrentUser().blockingGet(); currentUser = currentUserProvider.getCurrentUser().blockingGet();
} }
public MentionAutocompletePresenter(Context context, String roomToken, int chatApiVersion) { public MentionAutocompletePresenter(Context context, String roomToken, int chatApiVersion) {
@ -78,7 +82,7 @@ public class MentionAutocompletePresenter extends RecyclerViewPresenter<Mention>
this.context = context; this.context = context;
this.chatApiVersion = chatApiVersion; this.chatApiVersion = chatApiVersion;
NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this); NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this);
currentUser = userManager.getCurrentUser().blockingGet(); currentUser = currentUserProvider.getCurrentUser().blockingGet();
} }
@Override @Override

View File

@ -128,7 +128,7 @@ class ProfileActivity : BaseActivity() {
adapter = UserInfoAdapter(null, viewThemeUtils, this) adapter = UserInfoAdapter(null, viewThemeUtils, this)
binding.userinfoList.adapter = adapter binding.userinfoList.adapter = adapter
binding.userinfoList.setItemViewCacheSize(DEFAULT_CACHE_SIZE) binding.userinfoList.setItemViewCacheSize(DEFAULT_CACHE_SIZE)
currentUser = userManager.currentUser.blockingGet() currentUser = currentUserProvider.currentUser.blockingGet()
val credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token) val credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token)
pickImage = PickImage(this, currentUser) pickImage = PickImage(this, currentUser)

View File

@ -30,6 +30,7 @@ import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.message.SendMessageUtils import com.nextcloud.talk.utils.message.SendMessageUtils
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.Single import io.reactivex.Single
@ -44,6 +45,9 @@ class DirectReplyReceiver : BroadcastReceiver() {
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var ncApi: NcApi lateinit var ncApi: NcApi
@ -65,7 +69,7 @@ class DirectReplyReceiver : BroadcastReceiver() {
systemNotificationId = intent!!.getIntExtra(KEY_SYSTEM_NOTIFICATION_ID, 0) systemNotificationId = intent!!.getIntExtra(KEY_SYSTEM_NOTIFICATION_ID, 0)
roomToken = intent.getStringExtra(KEY_ROOM_TOKEN) roomToken = intent.getStringExtra(KEY_ROOM_TOKEN)
val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, userManager.currentUser.blockingGet().id!!) val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, currentUserProvider.currentUser.blockingGet().id!!)
currentUser = userManager.getUserWithId(id).blockingGet() currentUser = userManager.getUserWithId(id).blockingGet()
replyMessage = getMessageText(intent) replyMessage = getMessageText(intent)

View File

@ -21,6 +21,7 @@ import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.bundle.BundleKeys import com.nextcloud.talk.utils.bundle.BundleKeys
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -33,6 +34,9 @@ class DismissRecordingAvailableReceiver : BroadcastReceiver() {
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var ncApi: NcApi lateinit var ncApi: NcApi
@ -53,7 +57,7 @@ class DismissRecordingAvailableReceiver : BroadcastReceiver() {
systemNotificationId = intent!!.getIntExtra(KEY_SYSTEM_NOTIFICATION_ID, 0) systemNotificationId = intent!!.getIntExtra(KEY_SYSTEM_NOTIFICATION_ID, 0)
link = intent.getStringExtra(BundleKeys.KEY_DISMISS_RECORDING_URL) link = intent.getStringExtra(BundleKeys.KEY_DISMISS_RECORDING_URL)
val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, userManager.currentUser.blockingGet().id!!) val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, currentUserProvider.currentUser.blockingGet().id!!)
currentUser = userManager.getUserWithId(id).blockingGet() currentUser = userManager.getUserWithId(id).blockingGet()
dismissNcRecordingAvailableNotification() dismissNcRecordingAvailableNotification()

View File

@ -23,6 +23,7 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_MESSAGE_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_MESSAGE_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -35,6 +36,9 @@ class MarkAsReadReceiver : BroadcastReceiver() {
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var ncApi: NcApi lateinit var ncApi: NcApi
@ -57,7 +61,7 @@ class MarkAsReadReceiver : BroadcastReceiver() {
roomToken = intent.getStringExtra(KEY_ROOM_TOKEN) roomToken = intent.getStringExtra(KEY_ROOM_TOKEN)
messageId = intent.getIntExtra(KEY_MESSAGE_ID, 0) messageId = intent.getIntExtra(KEY_MESSAGE_ID, 0)
val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, userManager.currentUser.blockingGet().id!!) val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, currentUserProvider.currentUser.blockingGet().id!!)
currentUser = userManager.getUserWithId(id).blockingGet() currentUser = userManager.getUserWithId(id).blockingGet()
markAsRead() markAsRead()

View File

@ -24,6 +24,7 @@ import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.bundle.BundleKeys import com.nextcloud.talk.utils.bundle.BundleKeys
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SYSTEM_NOTIFICATION_ID
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -36,6 +37,9 @@ class ShareRecordingToChatReceiver : BroadcastReceiver() {
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var ncApi: NcApi lateinit var ncApi: NcApi
@ -53,7 +57,7 @@ class ShareRecordingToChatReceiver : BroadcastReceiver() {
systemNotificationId = intent!!.getIntExtra(KEY_SYSTEM_NOTIFICATION_ID, 0) systemNotificationId = intent!!.getIntExtra(KEY_SYSTEM_NOTIFICATION_ID, 0)
link = intent.getStringExtra(BundleKeys.KEY_SHARE_RECORDING_TO_CHAT_URL) link = intent.getStringExtra(BundleKeys.KEY_SHARE_RECORDING_TO_CHAT_URL)
val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, userManager.currentUser.blockingGet().id!!) val id = intent.getLongExtra(KEY_INTERNAL_USER_ID, currentUserProvider.currentUser.blockingGet().id!!)
currentUser = userManager.getUserWithId(id).blockingGet() currentUser = userManager.getUserWithId(id).blockingGet()
shareRecordingToChat() shareRecordingToChat()

View File

@ -480,12 +480,13 @@ class SettingsActivity :
private fun setupServerNotificationAppCheck() { private fun setupServerNotificationAppCheck() {
val serverNotificationAppInstalled = val serverNotificationAppInstalled =
userManager.currentUser.blockingGet().capabilities?.notificationsCapability?.features?.isNotEmpty() ?: false currentUserProvider.currentUser.blockingGet().capabilities?.notificationsCapability?.features?.isNotEmpty()
?: false
if (!serverNotificationAppInstalled) { if (!serverNotificationAppInstalled) {
binding.settingsServerNotificationAppWrapper.visibility = View.VISIBLE binding.settingsServerNotificationAppWrapper.visibility = View.VISIBLE
val description = context.getString(R.string.nc_settings_contact_admin_of) + LINEBREAK + val description = context.getString(R.string.nc_settings_contact_admin_of) + LINEBREAK +
userManager.currentUser.blockingGet().baseUrl!! currentUserProvider.currentUser.blockingGet().baseUrl!!
binding.settingsServerNotificationAppDescription.text = description binding.settingsServerNotificationAppDescription.text = description
if (openedByNotificationWarning) { if (openedByNotificationWarning) {

View File

@ -15,8 +15,8 @@ import androidx.lifecycle.ViewModel
import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.translate.repositories.TranslateRepository import com.nextcloud.talk.translate.repositories.TranslateRepository
import com.nextcloud.talk.translate.repositories.model.Language import com.nextcloud.talk.translate.repositories.model.Language
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -25,7 +25,7 @@ import javax.inject.Inject
class TranslateViewModel @Inject constructor( class TranslateViewModel @Inject constructor(
private val repository: TranslateRepository, private val repository: TranslateRepository,
private val userManager: UserManager private val currentUserProvider: CurrentUserProviderNew
) : ViewModel() { ) : ViewModel() {
sealed interface ViewState sealed interface ViewState
@ -44,7 +44,7 @@ class TranslateViewModel @Inject constructor(
get() = _viewState get() = _viewState
fun translateMessage(toLanguage: String, fromLanguage: String?, text: String) { fun translateMessage(toLanguage: String, fromLanguage: String?, text: String) {
val currentUser: User = userManager.currentUser.blockingGet() val currentUser: User = currentUserProvider.currentUser.blockingGet()
val authorization: String = ApiUtils.getCredentials(currentUser.username, currentUser.token)!! val authorization: String = ApiUtils.getCredentials(currentUser.username, currentUser.token)!!
val url: String = ApiUtils.getUrlForTranslation(currentUser.baseUrl!!) val url: String = ApiUtils.getUrlForTranslation(currentUser.baseUrl!!)
val calculatedFromLanguage = val calculatedFromLanguage =
@ -67,7 +67,7 @@ class TranslateViewModel @Inject constructor(
} }
fun getLanguages() { fun getLanguages() {
val currentUser: User = userManager.currentUser.blockingGet() val currentUser: User = currentUserProvider.currentUser.blockingGet()
val authorization: String = ApiUtils.getCredentials(currentUser.username, currentUser.token)!! val authorization: String = ApiUtils.getCredentials(currentUser.username, currentUser.token)!!
val url: String = ApiUtils.getUrlForLanguages(currentUser.baseUrl!!) val url: String = ApiUtils.getUrlForLanguages(currentUser.baseUrl!!)
Log.d(TAG, "URL is: $url") Log.d(TAG, "URL is: $url")

View File

@ -40,6 +40,7 @@ import com.nextcloud.talk.users.UserManager;
import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.CapabilitiesUtil; import com.nextcloud.talk.utils.CapabilitiesUtil;
import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew;
import java.net.CookieManager; import java.net.CookieManager;
import java.util.ArrayList; import java.util.ArrayList;
@ -72,6 +73,9 @@ public class ChooseAccountDialogFragment extends DialogFragment {
@Inject @Inject
UserManager userManager; UserManager userManager;
@Inject
CurrentUserProviderNew currentUserProvider;
@Inject @Inject
CookieManager cookieManager; CookieManager cookieManager;
@ -109,7 +113,7 @@ public class ChooseAccountDialogFragment extends DialogFragment {
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
Objects.requireNonNull(NextcloudTalkApplication.Companion.getSharedApplication()).getComponentApplication().inject(this); Objects.requireNonNull(NextcloudTalkApplication.Companion.getSharedApplication()).getComponentApplication().inject(this);
User user = userManager.getCurrentUser().blockingGet(); User user = currentUserProvider.getCurrentUser().blockingGet();
themeViews(); themeViews();
setupCurrentUser(user); setupCurrentUser(user);
@ -268,7 +272,7 @@ public class ChooseAccountDialogFragment extends DialogFragment {
private void loadCurrentStatus(User user) { private void loadCurrentStatus(User user) {
String credentials = ApiUtils.getCredentials(user.getUsername(), user.getToken()); String credentials = ApiUtils.getCredentials(user.getUsername(), user.getToken());
if (CapabilitiesUtil.isUserStatusAvailable(userManager.getCurrentUser().blockingGet())) { if (CapabilitiesUtil.isUserStatusAvailable(currentUserProvider.getCurrentUser().blockingGet())) {
binding.statusView.setVisibility(View.VISIBLE); binding.statusView.setVisibility(View.VISIBLE);
ncApi.status(credentials, ApiUtils.getUrlForStatus(user.getBaseUrl())). ncApi.status(credentials, ApiUtils.getUrlForStatus(user.getBaseUrl())).

View File

@ -29,6 +29,7 @@ import com.nextcloud.talk.extensions.loadUserAvatar
import com.nextcloud.talk.models.json.participants.Participant import com.nextcloud.talk.models.json.participants.Participant
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
import java.net.CookieManager import java.net.CookieManager
@ -40,6 +41,9 @@ class ChooseAccountShareToDialogFragment : DialogFragment() {
@Inject @Inject
var userManager: UserManager? = null var userManager: UserManager? = null
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
@JvmField @JvmField
@Inject @Inject
var cookieManager: CookieManager? = null var cookieManager: CookieManager? = null
@ -61,7 +65,7 @@ class ChooseAccountShareToDialogFragment : DialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
sharedApplication!!.componentApplication.inject(this) sharedApplication!!.componentApplication.inject(this)
val user = userManager!!.currentUser.blockingGet() val user = currentUserProvider.currentUser.blockingGet()
themeViews() themeViews()
setupCurrentUser(user) setupCurrentUser(user)
setupListeners(user) setupListeners(user)

View File

@ -42,6 +42,7 @@ import com.nextcloud.talk.utils.ShareUtils
import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
@ -75,6 +76,9 @@ class ConversationsListBottomDialog(
@Inject @Inject
lateinit var userManager: UserManager lateinit var userManager: UserManager
@Inject
lateinit var currentUserProvider: CurrentUserProviderNew
lateinit var credentials: String lateinit var credentials: String
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -217,7 +221,7 @@ class ConversationsListBottomDialog(
} }
private fun handleArchiving() { private fun handleArchiving() {
val currentUser = userManager.currentUser.blockingGet() val currentUser = currentUserProvider.currentUser.blockingGet()
val token = conversation.token val token = conversation.token
lifecycleScope.launch { lifecycleScope.launch {
if (conversation.hasArchived) { if (conversation.hasArchived) {

View File

@ -54,8 +54,8 @@ import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.viewmodels.ChatViewModel import com.nextcloud.talk.chat.viewmodels.ChatViewModel
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.bundle.BundleKeys import com.nextcloud.talk.utils.bundle.BundleKeys
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import java.time.DayOfWeek import java.time.DayOfWeek
import java.time.Instant import java.time.Instant
import java.time.LocalDate import java.time.LocalDate
@ -72,7 +72,7 @@ class DateTimeCompose(val bundle: Bundle) {
init { init {
NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this) NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
val user = userManager.currentUser.blockingGet() val user = currentUserProvider.currentUser.blockingGet()
val roomToken = bundle.getString(BundleKeys.KEY_ROOM_TOKEN)!! val roomToken = bundle.getString(BundleKeys.KEY_ROOM_TOKEN)!!
val messageId = bundle.getString(BundleKeys.KEY_MESSAGE_ID)!! val messageId = bundle.getString(BundleKeys.KEY_MESSAGE_ID)!!
val apiVersion = bundle.getInt(BundleKeys.KEY_CHAT_API_VERSION) val apiVersion = bundle.getInt(BundleKeys.KEY_CHAT_API_VERSION)
@ -83,7 +83,7 @@ class DateTimeCompose(val bundle: Bundle) {
lateinit var chatViewModel: ChatViewModel lateinit var chatViewModel: ChatViewModel
@Inject @Inject
lateinit var userManager: UserManager lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var viewThemeUtils: ViewThemeUtils lateinit var viewThemeUtils: ViewThemeUtils
@ -133,7 +133,7 @@ class DateTimeCompose(val bundle: Bundle) {
) { ) {
TextButton( TextButton(
onClick = { onClick = {
val user = userManager.currentUser.blockingGet() val user = currentUserProvider.currentUser.blockingGet()
val roomToken = bundle.getString(BundleKeys.KEY_ROOM_TOKEN)!! val roomToken = bundle.getString(BundleKeys.KEY_ROOM_TOKEN)!!
val messageId = bundle.getString(BundleKeys.KEY_MESSAGE_ID)!! val messageId = bundle.getString(BundleKeys.KEY_MESSAGE_ID)!!
val apiVersion = bundle.getInt(BundleKeys.KEY_CHAT_API_VERSION) val apiVersion = bundle.getInt(BundleKeys.KEY_CHAT_API_VERSION)
@ -161,7 +161,7 @@ class DateTimeCompose(val bundle: Bundle) {
TextButton( TextButton(
onClick = { onClick = {
val user = userManager.currentUser.blockingGet() val user = currentUserProvider.currentUser.blockingGet()
val roomToken = bundle.getString(BundleKeys.KEY_ROOM_TOKEN)!! val roomToken = bundle.getString(BundleKeys.KEY_ROOM_TOKEN)!!
val messageId = bundle.getString(BundleKeys.KEY_MESSAGE_ID)!! val messageId = bundle.getString(BundleKeys.KEY_MESSAGE_ID)!!
val apiVersion = bundle.getInt(BundleKeys.KEY_CHAT_API_VERSION) val apiVersion = bundle.getInt(BundleKeys.KEY_CHAT_API_VERSION)

View File

@ -21,10 +21,10 @@ import com.nextcloud.talk.arbitrarystorage.ArbitraryStorageManager
import com.nextcloud.talk.conversationlist.ConversationsListActivity import com.nextcloud.talk.conversationlist.ConversationsListActivity
import com.nextcloud.talk.databinding.DialogFilterConversationBinding import com.nextcloud.talk.databinding.DialogFilterConversationBinding
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability
import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.UserIdUtils import com.nextcloud.talk.utils.UserIdUtils
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import javax.inject.Inject import javax.inject.Inject
@AutoInjector(NextcloudTalkApplication::class) @AutoInjector(NextcloudTalkApplication::class)
@ -34,7 +34,7 @@ class FilterConversationFragment : DialogFragment() {
private lateinit var filterState: HashMap<String, Boolean> private lateinit var filterState: HashMap<String, Boolean>
@Inject @Inject
lateinit var userManager: UserManager lateinit var currentUserProvider: CurrentUserProviderNew
@Inject @Inject
lateinit var viewThemeUtils: ViewThemeUtils lateinit var viewThemeUtils: ViewThemeUtils
@ -108,7 +108,7 @@ class FilterConversationFragment : DialogFragment() {
binding.mentionedFilterChip.isChecked = filterState[MENTION]!! binding.mentionedFilterChip.isChecked = filterState[MENTION]!!
binding.archivedFilterChip.visibility = View.GONE binding.archivedFilterChip.visibility = View.GONE
userManager.currentUser.blockingGet().capabilities?.spreedCapability?.let { currentUserProvider.currentUser.blockingGet().capabilities?.spreedCapability?.let {
if (hasSpreedFeatureCapability(it, SpreedFeatures.ARCHIVE_CONVERSATIONS)) { if (hasSpreedFeatureCapability(it, SpreedFeatures.ARCHIVE_CONVERSATIONS)) {
binding.archivedFilterChip.visibility = View.VISIBLE binding.archivedFilterChip.visibility = View.VISIBLE
binding.archivedFilterChip.isChecked = filterState[ARCHIVE]!! binding.archivedFilterChip.isChecked = filterState[ARCHIVE]!!
@ -118,7 +118,7 @@ class FilterConversationFragment : DialogFragment() {
private fun processSubmit() { private fun processSubmit() {
// store // store
val accountId = UserIdUtils.getIdForUser(userManager.currentUser.blockingGet()) val accountId = UserIdUtils.getIdForUser(currentUserProvider.currentUser.blockingGet())
val mentionValue = filterState[MENTION] == true val mentionValue = filterState[MENTION] == true
val unreadValue = filterState[UNREAD] == true val unreadValue = filterState[UNREAD] == true
val archivedValue = filterState[ARCHIVE] == true val archivedValue = filterState[ARCHIVE] == true

View File

@ -12,10 +12,12 @@ import com.nextcloud.talk.users.UserManager
import io.reactivex.Maybe import io.reactivex.Maybe
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton
/** /**
* Listens to changes in the database and provides the current user without needing to query the database everytime. * Listens to changes in the database and provides the current user without needing to query the database everytime.
*/ */
@Singleton
class CurrentUserProviderImpl @Inject constructor(private val userManager: UserManager) : CurrentUserProviderNew { class CurrentUserProviderImpl @Inject constructor(private val userManager: UserManager) : CurrentUserProviderNew {
private var _currentUser: User? = null private var _currentUser: User? = null