diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index 55535f91f..1690aaac2 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -72,6 +72,7 @@ import androidx.work.WorkInfo import androidx.work.WorkManager import autodagger.AutoInjector import coil.imageLoader +import coil.load import coil.request.CachePolicy import coil.request.ImageRequest import coil.target.Target @@ -1125,10 +1126,24 @@ class ChatActivity : } if (uiState.userAbsence.replacementUserDisplayName != null) { - binding.outOfOfficeContainer.findViewById(R.id.absenceReplacement).text = String.format( - context.resources.getString(R.string.user_absence_replacement), + var imageUri = Uri.parse(ApiUtils.getUrlForAvatar(conversationUser?.baseUrl, uiState.userAbsence + .replacementUserId, false)) + if (DisplayUtils.isDarkModeOn(context)) { + imageUri = Uri.parse(ApiUtils.getUrlForAvatarDarkTheme(conversationUser?.baseUrl, uiState + .userAbsence + .replacementUserId, false)) + } + binding.outOfOfficeContainer.findViewById(R.id.absenceReplacement).text = context.resources.getString(R.string.user_absence_replacement) + binding.outOfOfficeContainer.findViewById(R.id.replacement_user_avatar) + .load(imageUri){ + transformations(CircleCropTransformation()) + placeholder(R.drawable.account_circle_96dp) + error(R.drawable.account_circle_96dp) + crossfade(true) + } + binding.outOfOfficeContainer.findViewById(R.id.replacement_user_name).text = uiState.userAbsence.replacementUserDisplayName - ) + } else { binding.outOfOfficeContainer.findViewById(R.id.absenceReplacement).visibility = View.GONE } diff --git a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt index f46c6ea0e..b192c881a 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ApiUtils.kt @@ -372,6 +372,12 @@ object ApiUtils { return baseUrl + "/index.php/avatar/" + Uri.encode(name) + "/" + avatarSize } + @JvmStatic + fun getUrlForAvatarDarkTheme(baseUrl: String?, name: String?, requestBigSize: Boolean): String { + val avatarSize = if (requestBigSize) AVATAR_SIZE_BIG else AVATAR_SIZE_SMALL + return baseUrl + "/index.php/avatar/" + Uri.encode(name) + "/" + avatarSize + "/dark" + } + @JvmStatic fun getUrlForFederatedAvatar( baseUrl: String, diff --git a/app/src/main/res/layout/out_of_office_view.xml b/app/src/main/res/layout/out_of_office_view.xml index 1037b627b..cfdc30ea5 100644 --- a/app/src/main/res/layout/out_of_office_view.xml +++ b/app/src/main/res/layout/out_of_office_view.xml @@ -7,8 +7,8 @@ --> @@ -44,13 +44,53 @@ android:textSize="14sp" tools:text="Dec 5, 2024 - Dec 15, 2024"/> - + android:orientation="horizontal" + android:layout_marginTop ="8dp" + android:gravity="center_vertical"> + + + + + + + + + + + + %1$s is out of office and might not respond %1$s is out of office today - Replacement: %1$s + Replacement