Start DM on first message when selecting "direct message" from the room member details

This commit is contained in:
Florian Renaud 2022-08-17 18:00:02 +02:00
parent 0dcab56e34
commit 519855445e
3 changed files with 11 additions and 4 deletions

1
changelog.d/5525.wip Normal file
View file

@ -0,0 +1 @@
Create DM room only on first message - Trigger the flow when the "Direct Message" action is selected from the room member details screen

View file

@ -132,10 +132,10 @@ class CreateDirectRoomViewModel @AssistedInject constructor(
if (vectorFeatures.shouldStartDmOnFirstMessage()) { if (vectorFeatures.shouldStartDmOnFirstMessage()) {
session.roomService().createLocalRoom(roomParams) session.roomService().createLocalRoom(roomParams)
} else { } else {
analyticsTracker.capture(CreatedRoom(isDM = roomParams.isDirect.orFalse()))
session.roomService().createRoom(roomParams) session.roomService().createRoom(roomParams)
} }
} }
analyticsTracker.capture(CreatedRoom(isDM = roomParams.isDirect.orFalse()))
setState { setState {
copy( copy(

View file

@ -16,6 +16,7 @@
package im.vector.app.features.createdirect package im.vector.app.features.createdirect
import im.vector.app.features.VectorFeatures
import im.vector.app.features.analytics.AnalyticsTracker import im.vector.app.features.analytics.AnalyticsTracker
import im.vector.app.features.analytics.plan.CreatedRoom import im.vector.app.features.analytics.plan.CreatedRoom
import im.vector.app.features.raw.wellknown.getElementWellknown import im.vector.app.features.raw.wellknown.getElementWellknown
@ -30,7 +31,8 @@ import javax.inject.Inject
class DirectRoomHelper @Inject constructor( class DirectRoomHelper @Inject constructor(
private val rawService: RawService, private val rawService: RawService,
private val session: Session, private val session: Session,
private val analyticsTracker: AnalyticsTracker private val analyticsTracker: AnalyticsTracker,
private val vectorFeatures: VectorFeatures,
) { ) {
suspend fun ensureDMExists(userId: String): String { suspend fun ensureDMExists(userId: String): String {
@ -48,8 +50,12 @@ class DirectRoomHelper @Inject constructor(
setDirectMessage() setDirectMessage()
enableEncryptionIfInvitedUsersSupportIt = adminE2EByDefault enableEncryptionIfInvitedUsersSupportIt = adminE2EByDefault
} }
roomId = session.roomService().createRoom(roomParams) roomId = if (vectorFeatures.shouldStartDmOnFirstMessage()) {
analyticsTracker.capture(CreatedRoom(isDM = roomParams.isDirect.orFalse())) session.roomService().createLocalRoom(roomParams)
} else {
analyticsTracker.capture(CreatedRoom(isDM = roomParams.isDirect.orFalse()))
session.roomService().createRoom(roomParams)
}
} }
return roomId return roomId
} }