diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/components/RoomSummaryRow.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/components/RoomSummaryRow.kt
index a48b4b7469..286576e344 100644
--- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/components/RoomSummaryRow.kt
+++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/components/RoomSummaryRow.kt
@@ -64,8 +64,8 @@ import io.element.android.libraries.designsystem.theme.unreadIndicator
import io.element.android.libraries.matrix.api.notification.CallIntent
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.api.user.DisplayedStatus
-import io.element.android.libraries.matrix.ui.components.InviteSenderView
import io.element.android.libraries.matrix.ui.components.DisplayNameWithStatus
+import io.element.android.libraries.matrix.ui.components.InviteSenderView
import io.element.android.libraries.matrix.ui.model.InviteSender
import io.element.android.libraries.matrix.ui.model.toEmojiText
import io.element.android.libraries.ui.strings.CommonStrings
diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemContentScannerPreviews.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemContentScannerPreviews.kt
index a59a1c0ae0..7ef6b2dffe 100644
--- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemContentScannerPreviews.kt
+++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/components/TimelineItemContentScannerPreviews.kt
@@ -315,7 +315,12 @@ private fun inReplyToInvalidContent(): InReplyToDetails.Ready = InReplyToDetails
)
),
textContent = "A text content",
- senderProfile = ProfileDetails.Ready(displayName = "Sender", displayNameAmbiguous = false, avatarUrl = null)
+ senderProfile = ProfileDetails.Ready(
+ displayName = "Sender",
+ displayNameAmbiguous = false,
+ avatarUrl = null,
+ displayedStatus = null
+ )
)
private fun inReplyToTextContent(): InReplyToDetails.Ready = InReplyToDetails.Ready(
@@ -332,5 +337,10 @@ private fun inReplyToTextContent(): InReplyToDetails.Ready = InReplyToDetails.Re
)
),
textContent = "A text content",
- senderProfile = ProfileDetails.Ready(displayName = "Sender", displayNameAmbiguous = false, avatarUrl = null)
+ senderProfile = ProfileDetails.Ready(
+ displayName = "Sender",
+ displayNameAmbiguous = false,
+ avatarUrl = null,
+ displayedStatus = null
+ )
)
diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusState.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusState.kt
index fa61089144..8d6493b030 100644
--- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusState.kt
+++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusState.kt
@@ -32,9 +32,9 @@ sealed interface UserStatusPickerState {
}
enum class PredefinedUserStatus(val emoji: String, @StringRes val labelRes: Int) {
- IN_A_MEETING("💬", R.string.common_user_status_in_a_meeting),
- FOCUS_TIME("💡", R.string.common_user_status_focus_time),
- ON_THE_ROAD("🚙", R.string.common_user_status_on_the_road),
- BE_RIGHT_BACK("☕", R.string.common_user_status_be_right_back),
- AWAY("🌴", R.string.common_user_status_away),
+ IN_A_MEETING("💬", R.string.screen_settings_user_status_in_a_meeting),
+ FOCUS_TIME("💡", R.string.screen_settings_user_status_focus_time),
+ ON_THE_ROAD("🚙", R.string.screen_settings_user_status_on_the_road),
+ BE_RIGHT_BACK("☕", R.string.screen_settings_user_status_be_right_back),
+ AWAY("🌴", R.string.screen_settings_user_status_away),
}
diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusView.kt
index acd2b0676d..0172071db1 100644
--- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusView.kt
+++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/userstatus/UserStatusView.kt
@@ -117,7 +117,7 @@ private fun EmptyStatusRow(
ListItem(
headlineContent = {
Text(
- text = stringResource(R.string.screen_preferences_user_status_placeholder),
+ text = stringResource(R.string.screen_settings_user_status_placeholder),
modifier = Modifier.padding(vertical = 16.dp),
)
},
@@ -135,7 +135,7 @@ private fun CurrentStatusRow(
) {
val (emoji, text) = when (displayedStatus) {
is DisplayedStatus.UserSet -> displayedStatus.status.emoji to displayedStatus.status.text
- is DisplayedStatus.InCall -> "🎧" to stringResource(R.string.common_user_status_on_a_call)
+ is DisplayedStatus.InCall -> "🎧" to stringResource(CommonStrings.common_on_a_call)
}
ListItem(
headlineContent = { Text(text = text, modifier = Modifier.padding(vertical = 16.dp)) },
@@ -210,7 +210,7 @@ private fun UserStatusPickerBottomSheet(
}
ListItem(
headlineContent = {
- Text(text = stringResource(R.string.common_user_status_custom))
+ Text(text = stringResource(R.string.screen_settings_user_status_custom))
},
leadingContent = ListItemContent.Custom { EmojiText("✏️") },
onClick = {
@@ -249,7 +249,7 @@ private fun CustomStatusInputRow(
TextField(
modifier = Modifier.focusRequester(focusRequester),
state = textFieldState,
- placeholder = stringResource(R.string.screen_preferences_user_status_custom_hint),
+ placeholder = stringResource(R.string.screen_settings_user_status_custom_hint),
inputTransformation = InputTransformation.maxLength(CUSTOM_STATUS_TEXT_MAX_LENGTH),
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
onKeyboardAction = { if (hasChanges) onConfirm() },
diff --git a/features/preferences/impl/src/main/res/values/localazy.xml b/features/preferences/impl/src/main/res/values/localazy.xml
index 7a02bbc839..b4b97375b5 100644
--- a/features/preferences/impl/src/main/res/values/localazy.xml
+++ b/features/preferences/impl/src/main/res/values/localazy.xml
@@ -101,6 +101,14 @@ If you proceed, some of your settings may change."
"system settings"
"System notifications turned off"
"Notifications"
+ "Away"
+ "Be right back"
+ "Custom…"
+ "Custom status…"
+ "Focus time"
+ "In a meeting"
+ "On the road"
+ "What\'s your status?"
"Black"
"Dark"
"Light"
diff --git a/features/preferences/impl/src/main/res/values/temporary.xml b/features/preferences/impl/src/main/res/values/temporary.xml
deleted file mode 100644
index b22f265891..0000000000
--- a/features/preferences/impl/src/main/res/values/temporary.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- In a meeting
- Focus time
- On the road
- Be right back
- Away
- On a call
- Custom…
- What\'s your status?
- Custom status…
-
diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt
index 0b47464a22..e55144985a 100644
--- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt
+++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsView.kt
@@ -552,7 +552,7 @@ private fun DmHeaderSection(
textAlign = TextAlign.Center,
)
val userStatus = otherMember.displayedStatus?.toText()
- if(userStatus != null){
+ if (userStatus != null) {
Spacer(modifier = Modifier.height(12.dp))
Text(
text = userStatus,
diff --git a/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt b/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt
index 508d5e5da7..9b0686a64f 100644
--- a/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt
+++ b/features/roommembermoderation/impl/src/main/kotlin/io/element/android/features/roommembermoderation/impl/RoomMemberModerationView.kt
@@ -269,7 +269,7 @@ private fun RoomMemberActionsBottomSheet(
.fillMaxWidth()
)
val userStatus = user.displayedStatus?.toText()
- if(userStatus != null){
+ if (userStatus != null) {
Text(
text = userStatus,
style = ElementTheme.typography.fontBodyLgMedium,
diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/member/RoomMemberMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/member/RoomMemberMapper.kt
index 2a4ecf3fdc..b2a530f806 100644
--- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/member/RoomMemberMapper.kt
+++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/member/RoomMemberMapper.kt
@@ -30,7 +30,7 @@ object RoomMemberMapper {
role = mapRole(roomMember.suggestedRoleForPowerLevel, powerLevel),
membershipChangeReason = roomMember.membershipChangeReason,
isServiceMember = roomMember.isServiceMember,
- //TODO map this value when available
+ // TODO map this value when available
displayedStatus = null,
)
}
diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt
index ccb88038d4..801d5fd146 100644
--- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt
+++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt
@@ -75,7 +75,7 @@ fun RustProfileDetails.map(): ProfileDetails {
displayName = displayName,
displayNameAmbiguous = displayNameAmbiguous,
avatarUrl = avatarUrl,
- //TODO map this value when available
+ // TODO map this value when available
displayedStatus = null,
)
}
diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/DisplayNameWithStatus.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/DisplayNameWithStatus.kt
index 29ff5763ea..7c6e5854da 100644
--- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/DisplayNameWithStatus.kt
+++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/DisplayNameWithStatus.kt
@@ -17,7 +17,6 @@ import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontStyle
-import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt
index c064b60a35..3132fe1140 100644
--- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt
+++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserHeader.kt
@@ -18,7 +18,6 @@ import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt
index c4af70e51d..7bc7d00f09 100644
--- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt
+++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserProvider.kt
@@ -29,7 +29,7 @@ open class MatrixUserProvider : PreviewParameterProvider {
get() = sequenceOf(
aMatrixUser(),
aMatrixUser(displayName = null),
- aMatrixUser(displayedStatus = DisplayedStatus.InCall(0L) ),
+ aMatrixUser(displayedStatus = DisplayedStatus.InCall(0L)),
)
}
diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt
index 7cd76ef5ee..7fa4fe4557 100644
--- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt
+++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/components/MatrixUserRow.kt
@@ -10,10 +10,10 @@ package io.element.android.libraries.matrix.ui.components
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import io.element.android.compound.theme.ElementTheme
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
+import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt
index 2d924ea3e2..9e131d5621 100644
--- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt
+++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/messages/RoomMemberProfilesCache.kt
@@ -36,5 +36,4 @@ class RoomMemberProfilesCache {
fun getDisplayedStatus(userId: UserId): DisplayedStatus? {
return cache.value[userId]?.displayedStatus
}
-
}
diff --git a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/DisplayedStatusExtention.kt b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/DisplayedStatusExtention.kt
index 4d11599356..31d4a57b32 100644
--- a/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/DisplayedStatusExtention.kt
+++ b/libraries/matrixui/src/main/kotlin/io/element/android/libraries/matrix/ui/model/DisplayedStatusExtention.kt
@@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.ui.model
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import io.element.android.libraries.matrix.api.user.DisplayedStatus
-import io.element.android.libraries.matrix.ui.R
+import io.element.android.libraries.ui.strings.CommonStrings
fun DisplayedStatus.toEmojiText(): String = when (this) {
is DisplayedStatus.UserSet -> status.emoji
@@ -20,5 +20,5 @@ fun DisplayedStatus.toEmojiText(): String = when (this) {
@Composable
fun DisplayedStatus.toText(): String = when (this) {
is DisplayedStatus.UserSet -> "${status.emoji} ${status.text}"
- is DisplayedStatus.InCall -> "🎧 ${stringResource(R.string.common_user_status_on_a_call)}"
+ is DisplayedStatus.InCall -> "🎧 ${stringResource(CommonStrings.common_on_a_call)}"
}
diff --git a/libraries/matrixui/src/main/res/values/temporary.xml b/libraries/matrixui/src/main/res/values/temporary.xml
deleted file mode 100644
index d31b5025fd..0000000000
--- a/libraries/matrixui/src/main/res/values/temporary.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- On a call
-
diff --git a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt
index 5c7615fde4..6442b70a42 100644
--- a/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt
+++ b/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/mentions/MentionSpan.kt
@@ -86,7 +86,7 @@ class MentionSpan(
displayText = formatter.formatDisplayText(type)
}
- fun updateTrailingText(trailingText: String?){
+ fun updateTrailingText(trailingText: String?) {
this.trailingText = trailingText
}
diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml
index 485b9b9d59..0f7ae438bb 100644
--- a/libraries/ui-strings/src/main/res/values/localazy.xml
+++ b/libraries/ui-strings/src/main/res/values/localazy.xml
@@ -23,6 +23,7 @@
"Join call"
"Jump to bottom"
"Jump to unread"
+ "Jump to first unread message"
"Move the map to my location"
"Mentions only"
"Muted"
@@ -143,6 +144,7 @@
"Manage account & devices"
"Manage devices"
"Manage rooms"
+ "Mark as read"
"Message"
"Minimise"
"Next"
@@ -516,6 +518,8 @@ Are you sure you want to continue?"
- "%1$d people"
"On the map"
+ "Your homeserver is on your local network. To connect, Element needs permission to reach devices on this network."
+ "Allow access to local network"
"Failed selecting media, please try again."
"Press on a message and choose “%1$s” to include here."
"Pin important messages so that they can be easily discovered"
diff --git a/tools/localazy/config.json b/tools/localazy/config.json
index 5753fe5f47..02b9205ef6 100644
--- a/tools/localazy/config.json
+++ b/tools/localazy/config.json
@@ -330,6 +330,7 @@
"includeRegex" : [
"screen_advanced_settings_.*",
"screen\\.advanced_settings\\..*",
+ "screen\\.settings\\..*",
"screen_edit_profile_.*",
"screen_notification_settings_.*",
"screen\\.notification_settings\\..*",