Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ fun getUrlForAvatar(participant: ParticipantUiState, displayName: String): Strin
var url = ApiUtils.getUrlForAvatar(
participant.baseUrl,
participant.actorId,
true
true,
darkMode = isDarkModeOn(LocalContext.current)
)
if (Participant.ActorType.GUESTS == participant.actorType ||
Participant.ActorType.EMAILS == participant.actorType
Expand Down
26 changes: 7 additions & 19 deletions app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1358,21 +1358,12 @@ class ChatActivity :
}

if (uiState.userAbsence.replacementUserDisplayName != null) {
var imageUri = ApiUtils.getUrlForAvatar(
val imageUri = ApiUtils.getUrlForAvatar(
conversationUser?.baseUrl,
uiState.userAbsence
.replacementUserId,
false
uiState.userAbsence.replacementUserId,
false,
darkMode = DisplayUtils.isDarkModeOn(context)
).toUri()
if (DisplayUtils.isDarkModeOn(context)) {
imageUri = ApiUtils.getUrlForAvatarDarkTheme(
conversationUser?.baseUrl,
uiState
.userAbsence
.replacementUserId,
false
).toUri()
}
binding.outOfOfficeContainer.findViewById<TextView>(R.id.absenceReplacement).text =
context.resources.getString(R.string.user_absence_replacement)
binding.outOfOfficeContainer.findViewById<ImageView>(R.id.replacement_user_avatar)
Expand Down Expand Up @@ -1944,16 +1935,13 @@ class ChatActivity :
}

if (isOneToOneConversation()) {
var url = ApiUtils.getUrlForAvatar(
val url = ApiUtils.getUrlForAvatar(
conversationUser!!.baseUrl!!,
currentConversation!!.name,
true
true,
darkMode = DisplayUtils.isDarkModeOn(supportActionBar?.themedContext!!)
)

if (DisplayUtils.isDarkModeOn(supportActionBar?.themedContext!!)) {
url = "$url/dark"
}

val target = object : Target {

private fun setIcon(drawable: Drawable?) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ import com.nextcloud.talk.ui.dialog.AttachmentDialog
import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.CharPolicy
import com.nextcloud.talk.utils.ConversationUtils
Expand Down Expand Up @@ -297,7 +298,12 @@ class MessageInputFragment : Fragment() {
val url: String = if (message.actorType == "guests" || message.actorType == "guest") {
ApiUtils.getUrlForGuestAvatar(user!!.baseUrl!!, message.actorDisplayName, true)
} else {
ApiUtils.getUrlForAvatar(user!!.baseUrl!!, message.actorId, false)
ApiUtils.getUrlForAvatar(
user!!.baseUrl!!,
message.actorId,
false,
darkMode = DisplayUtils.isDarkModeOn(requireContext())
)
}

val imageRequest: ImageRequest = ImageRequest.Builder(requireContext())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ interface ContactsRepository {
conversationName: String?
): RoomOverall

fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean): String
fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean, isDarkMode: Boolean): String

fun getContactsFlow(user: User, searchQuery: String?): Flow<List<AutocompleteUser>>
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,8 @@ class ContactsRepositoryImpl @Inject constructor(private val ncApiCoroutines: Nc
return response
}

override fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean): String =
ApiUtils.getUrlForAvatar(
user.baseUrl,
avatarId,
requestBigSize
)
override fun getImageUri(user: User, avatarId: String, requestBigSize: Boolean, isDarkMode: Boolean): String =
ApiUtils.getUrlForAvatar(user.baseUrl, avatarId, requestBigSize, darkMode = isDarkMode)

override fun getContactsFlow(user: User, searchQuery: String?): Flow<List<AutocompleteUser>> =
flow {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,12 @@ class ContactsViewModel @Inject constructor(
}
}

fun getImageUri(avatarId: String, requestBigSize: Boolean): String =
fun getImageUri(avatarId: String, requestBigSize: Boolean, isDarkMode: Boolean): String =
repository.getImageUri(
currentUser,
avatarId,
requestBigSize
requestBigSize,
isDarkMode
)

sealed class ContactsUiState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import com.nextcloud.talk.contacts.CompanionClass
import com.nextcloud.talk.contacts.ContactsViewModel
import com.nextcloud.talk.contacts.loadImage
import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.bundle.BundleKeys

@Suppress("LongMethod")
Expand Down Expand Up @@ -75,7 +76,7 @@ fun ContactItemRow(contact: AutocompleteUser, contactsViewModel: ContactsViewMod
),
verticalAlignment = Alignment.CenterVertically
) {
val imageUri = contact.id?.let { contactsViewModel.getImageUri(it, true) }
val imageUri = contact.id?.let { contactsViewModel.getImageUri(it, true, DisplayUtils.isDarkModeOn(context)) }
val errorPlaceholderImage: Int = R.drawable.account_circle_96dp
val loadedImage = loadImage(imageUri, context, errorPlaceholderImage)
AsyncImage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import com.nextcloud.talk.utils.DisplayUtils
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
Expand Down Expand Up @@ -405,7 +406,9 @@ fun AddParticipants(
}
participants.toSet().forEach { participant ->
Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) {
val imageUri = participant.id?.let { conversationCreationViewModel.getImageUri(it, true) }
val imageUri = participant.id?.let {
conversationCreationViewModel.getImageUri(it, true, DisplayUtils.isDarkModeOn(LocalContext.current))
}
val errorPlaceholderImage: Int = R.drawable.account_circle_96dp
val loadedImage = loadImage(imageUri, context, errorPlaceholderImage)
AsyncImage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,12 +232,8 @@ class ConversationCreationViewModel @Inject constructor(
}
}

fun getImageUri(avatarId: String, requestBigSize: Boolean): String =
ApiUtils.getUrlForAvatar(
_currentUser.baseUrl,
avatarId,
requestBigSize
)
fun getImageUri(avatarId: String, requestBigSize: Boolean, isDarkMode: Boolean): String =
ApiUtils.getUrlForAvatar(_currentUser.baseUrl, avatarId, requestBigSize, darkMode = isDarkMode)
}

sealed class AllowGuestsUiState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.ARCHIVE
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.MENTION
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.UNREAD
import com.nextcloud.talk.users.UserManager
import androidx.compose.ui.platform.LocalContext
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.BrandingUtils
import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability
import com.nextcloud.talk.utils.CapabilitiesUtil.isServerEOL
Expand Down Expand Up @@ -500,7 +502,8 @@ class ConversationsListActivity :
val imageURI = ApiUtils.getUrlForAvatar(
currentUser?.baseUrl,
msg.actorId,
true
true,
darkMode = DisplayUtils.isDarkModeOn(LocalContext.current)
)
val conversationImageURI = ApiUtils.getUrlForConversationAvatar(
ApiUtils.API_V1,
Expand Down Expand Up @@ -734,7 +737,8 @@ class ConversationsListActivity :
val url = ApiUtils.getUrlForAvatar(
currentUser!!.baseUrl!!,
currentUser!!.userId,
true
true,
darkMode = DisplayUtils.isDarkModeOn(this)
)

val credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ fun ImageView.loadUserAvatar(
val imageRequestUri = ApiUtils.getUrlForAvatar(
user.baseUrl!!,
avatarId,
requestBigSize
requestBigSize,
darkMode = DisplayUtils.isDarkModeOn(this.context)
)

return loadAvatarInternal(user, imageRequestUri, ignoreCache, null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ import com.nextcloud.talk.receivers.MarkAsReadReceiver
import com.nextcloud.talk.receivers.ShareRecordingToChatReceiver
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.NotificationUtils.cancelAllNotificationsForAccount
Expand Down Expand Up @@ -735,7 +736,8 @@ class NotificationWorker(context: Context, workerParams: WorkerParameters) : Wor
ApiUtils.getUrlForAvatar(
baseUrl!!,
notificationUser.id,
false
false,
darkMode = DisplayUtils.isDarkModeOn(context!!)
)
} else {
ApiUtils.getUrlForGuestAvatar(baseUrl!!, notificationUser.name, false)
Expand Down
25 changes: 16 additions & 9 deletions app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,14 @@ class ProfileActivity : BaseActivity() {
}

private fun showUserProfile() {
updateProfileHeader()
isProfileEnabled = "1" == userInfo?.profileEnabled
adapter!!.setData(createUserInfoDetails(userInfo))
updateProfileContentVisibility()
updateAvatarButtonsVisibility()
}

private fun updateProfileHeader() {
if (currentUser!!.baseUrl != null) {
binding.userinfoBaseurl.text = currentUser!!.baseUrl!!.toUri().host
}
Expand All @@ -376,10 +384,10 @@ class ProfileActivity : BaseActivity() {
binding.userinfoFullName.text = userInfo?.displayName
}
binding.loadingContent.visibility = View.VISIBLE
}

isProfileEnabled = "1" == userInfo?.profileEnabled

adapter!!.setData(createUserInfoDetails(userInfo))
private fun updateProfileContentVisibility() {
val profileEnabledVisibility = if (edit) View.VISIBLE else View.GONE
if (
isAllEmpty(
arrayOf(
Expand All @@ -400,7 +408,7 @@ class ProfileActivity : BaseActivity() {
)
) {
binding.userinfoList.visibility = View.GONE
binding.profileSettingEnabledProfile.visibility = if (edit) View.VISIBLE else View.GONE
binding.profileSettingEnabledProfile.visibility = profileEnabledVisibility
binding.loadingContent.visibility = View.GONE
binding.emptyList.root.visibility = View.VISIBLE
setErrorMessageForMultiList(
Expand All @@ -411,13 +419,12 @@ class ProfileActivity : BaseActivity() {
} else {
binding.emptyList.root.visibility = View.GONE
binding.loadingContent.visibility = View.GONE
binding.profileSettingEnabledProfile.visibility = if (edit) {
View.VISIBLE
} else {
View.GONE
}
binding.profileSettingEnabledProfile.visibility = profileEnabledVisibility
binding.userinfoList.visibility = View.VISIBLE
}
}

private fun updateAvatarButtonsVisibility() {
binding.avatarButtons.visibility = if (edit &&
CapabilitiesUtil.hasSpreedFeatureCapability(
currentUser?.capabilities?.spreedCapability,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.models.json.chat.ChatOverallSingleMessage
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils
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_ROOM_TOKEN
Expand Down Expand Up @@ -154,7 +155,12 @@ class DirectReplyReceiver : BroadcastReceiver() {

// Add reply
Single.fromCallable {
val avatarUrl = ApiUtils.getUrlForAvatar(currentUser.baseUrl!!, currentUser.userId, false)
val avatarUrl = ApiUtils.getUrlForAvatar(
currentUser.baseUrl!!,
currentUser.userId,
false,
darkMode = DisplayUtils.isDarkModeOn(context)
)
val me = Person.Builder()
.setName(currentUser.displayName)
.setIcon(NotificationUtils.loadAvatarSync(avatarUrl, context))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,9 @@ class ComposeChatAdapter(
horizontalArrangement = if (incoming) Arrangement.Start else Arrangement.End
) {
if (incoming) {
val imageUri = message.actorId?.let { viewModel.contactsViewModel.getImageUri(it, true) }
val imageUri = message.actorId?.let {
viewModel.contactsViewModel.getImageUri(it, true, DisplayUtils.isDarkModeOn(LocalContext.current))
}
val errorPlaceholderImage: Int = R.drawable.account_circle_96dp
val loadedImage = loadImage(imageUri, LocalContext.current, errorPlaceholderImage)
AsyncImage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import com.nextcloud.talk.R
import com.nextcloud.talk.contacts.loadImage
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils

@Composable
fun ChooseAccountShareToContent(
Expand Down Expand Up @@ -80,7 +81,12 @@ private fun CurrentAccountRow(user: User, onClick: () -> Unit) {
) {
AsyncImage(
model = loadImage(
ApiUtils.getUrlForAvatar(user.baseUrl, user.userId, true),
ApiUtils.getUrlForAvatar(
user.baseUrl,
user.userId,
true,
darkMode = DisplayUtils.isDarkModeOn(context)
),
context,
R.drawable.account_circle_48dp
),
Expand Down Expand Up @@ -132,7 +138,12 @@ private fun OtherAccountRow(user: User, onClick: () -> Unit) {
) {
AsyncImage(
model = loadImage(
ApiUtils.getUrlForAvatar(user.baseUrl, user.userId, true),
ApiUtils.getUrlForAvatar(
user.baseUrl,
user.userId,
true,
darkMode = DisplayUtils.isDarkModeOn(context)
),
context,
R.drawable.account_circle_48dp
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,8 @@ class ChooseAccountDialogCompose {
model = ApiUtils.getUrlForAvatar(
userItem.user.baseUrl,
userItem.user.userId,
true
true,
darkMode = DisplayUtils.isDarkModeOn(LocalContext.current)
),
contentDescription = null,
contentScale = ContentScale.Crop,
Expand Down Expand Up @@ -457,7 +458,12 @@ private fun CurrentUserSection(
verticalAlignment = Alignment.CenterVertically
) {
Box {
val avatarUrl = ApiUtils.getUrlForAvatar(currentUser.baseUrl, currentUser.userId, true)
val avatarUrl = ApiUtils.getUrlForAvatar(
currentUser.baseUrl,
currentUser.userId,
true,
darkMode = DisplayUtils.isDarkModeOn(context)
)
val request = loadImage(
avatarUrl,
context,
Expand Down
Loading
Loading