Mark as unread: add a feature flag, disabled on release build.
This commit is contained in:
parent
f6e4f073a3
commit
dc65e60e66
7 changed files with 48 additions and 30 deletions
|
|
@ -88,36 +88,38 @@ private fun RoomListModalBottomSheetContent(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
ListItem(
|
if (contextMenu.markAsUnreadFeatureFlagEnabled) {
|
||||||
headlineContent = {
|
ListItem(
|
||||||
Text(
|
headlineContent = {
|
||||||
text = stringResource(
|
Text(
|
||||||
id = if (contextMenu.hasNewContent) {
|
text = stringResource(
|
||||||
R.string.screen_roomlist_mark_as_read
|
id = if (contextMenu.hasNewContent) {
|
||||||
} else {
|
R.string.screen_roomlist_mark_as_read
|
||||||
R.string.screen_roomlist_mark_as_unread
|
} else {
|
||||||
}
|
R.string.screen_roomlist_mark_as_unread
|
||||||
),
|
}
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
),
|
||||||
)
|
style = MaterialTheme.typography.bodyLarge,
|
||||||
},
|
)
|
||||||
modifier = Modifier.clickable {
|
},
|
||||||
if (contextMenu.hasNewContent) {
|
modifier = Modifier.clickable {
|
||||||
onRoomMarkReadClicked()
|
if (contextMenu.hasNewContent) {
|
||||||
} else {
|
onRoomMarkReadClicked()
|
||||||
onRoomMarkUnreadClicked()
|
} else {
|
||||||
}
|
onRoomMarkUnreadClicked()
|
||||||
},
|
}
|
||||||
/* TODO Design
|
},
|
||||||
leadingContent = ListItemContent.Icon(
|
/* TODO Design
|
||||||
iconSource = IconSource.Vector(
|
leadingContent = ListItemContent.Icon(
|
||||||
CompoundIcons.Settings,
|
iconSource = IconSource.Vector(
|
||||||
contentDescription = stringResource(id = CommonStrings.common_settings)
|
CompoundIcons.Settings,
|
||||||
)
|
contentDescription = stringResource(id = CommonStrings.common_settings)
|
||||||
),
|
)
|
||||||
*/
|
),
|
||||||
style = ListItemStyle.Primary,
|
*/
|
||||||
)
|
style = ListItemStyle.Primary,
|
||||||
|
)
|
||||||
|
}
|
||||||
ListItem(
|
ListItem(
|
||||||
headlineContent = {
|
headlineContent = {
|
||||||
Text(
|
Text(
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,9 @@ class RoomListPresenter @Inject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val markAsUnreadFeatureFlagEnabled by featureFlagService.isFeatureEnabledFlow(FeatureFlags.MarkAsUnread)
|
||||||
|
.collectAsState(initial = null)
|
||||||
|
|
||||||
// Avatar indicator
|
// Avatar indicator
|
||||||
val showAvatarIndicator by indicatorService.showRoomListTopBarIndicator()
|
val showAvatarIndicator by indicatorService.showRoomListTopBarIndicator()
|
||||||
|
|
||||||
|
|
@ -135,6 +138,7 @@ class RoomListPresenter @Inject constructor(
|
||||||
roomId = event.roomListRoomSummary.roomId,
|
roomId = event.roomListRoomSummary.roomId,
|
||||||
roomName = event.roomListRoomSummary.name,
|
roomName = event.roomListRoomSummary.name,
|
||||||
isDm = event.roomListRoomSummary.isDm,
|
isDm = event.roomListRoomSummary.isDm,
|
||||||
|
markAsUnreadFeatureFlagEnabled = markAsUnreadFeatureFlagEnabled == true,
|
||||||
hasNewContent = event.roomListRoomSummary.hasNewContent
|
hasNewContent = event.roomListRoomSummary.hasNewContent
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ data class RoomListState(
|
||||||
val roomId: RoomId,
|
val roomId: RoomId,
|
||||||
val roomName: String,
|
val roomName: String,
|
||||||
val isDm: Boolean,
|
val isDm: Boolean,
|
||||||
|
val markAsUnreadFeatureFlagEnabled: Boolean,
|
||||||
val hasNewContent: Boolean,
|
val hasNewContent: Boolean,
|
||||||
) : ContextMenu
|
) : ContextMenu
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -106,5 +106,6 @@ internal fun aContextMenuShown(
|
||||||
roomId = RoomId("!aRoom:aDomain"),
|
roomId = RoomId("!aRoom:aDomain"),
|
||||||
roomName = roomName,
|
roomName = roomName,
|
||||||
isDm = isDm,
|
isDm = isDm,
|
||||||
|
markAsUnreadFeatureFlagEnabled = true,
|
||||||
hasNewContent = hasNewContent,
|
hasNewContent = hasNewContent,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -356,6 +356,7 @@ class RoomListPresenterTests {
|
||||||
roomId = summary.roomId,
|
roomId = summary.roomId,
|
||||||
roomName = summary.name,
|
roomName = summary.name,
|
||||||
isDm = false,
|
isDm = false,
|
||||||
|
markAsUnreadFeatureFlagEnabled = true,
|
||||||
hasNewContent = false,
|
hasNewContent = false,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -382,6 +383,7 @@ class RoomListPresenterTests {
|
||||||
roomId = summary.roomId,
|
roomId = summary.roomId,
|
||||||
roomName = summary.name,
|
roomName = summary.name,
|
||||||
isDm = false,
|
isDm = false,
|
||||||
|
markAsUnreadFeatureFlagEnabled = true,
|
||||||
hasNewContent = false,
|
hasNewContent = false,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -75,4 +75,11 @@ enum class FeatureFlags(
|
||||||
defaultValue = true,
|
defaultValue = true,
|
||||||
isFinished = false,
|
isFinished = false,
|
||||||
),
|
),
|
||||||
|
MarkAsUnread(
|
||||||
|
key = "feature.markAsUnread",
|
||||||
|
title = "Mark as unread",
|
||||||
|
description = "Allow user to mark a room as unread",
|
||||||
|
defaultValue = true,
|
||||||
|
isFinished = false,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ class StaticFeatureFlagProvider @Inject constructor() :
|
||||||
FeatureFlags.PinUnlock -> true
|
FeatureFlags.PinUnlock -> true
|
||||||
FeatureFlags.Mentions -> true
|
FeatureFlags.Mentions -> true
|
||||||
FeatureFlags.SecureStorage -> true
|
FeatureFlags.SecureStorage -> true
|
||||||
|
FeatureFlags.MarkAsUnread -> false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue