change (report room) : use client.isReportRoomApiSupported instead of hardcoded value
This commit is contained in:
parent
3cf8b04a07
commit
405cd8e82d
7 changed files with 25 additions and 9 deletions
|
|
@ -10,7 +10,4 @@ package io.element.android.appconfig
|
||||||
object MatrixConfiguration {
|
object MatrixConfiguration {
|
||||||
const val MATRIX_TO_PERMALINK_BASE_URL: String = "https://matrix.to/#/"
|
const val MATRIX_TO_PERMALINK_BASE_URL: String = "https://matrix.to/#/"
|
||||||
val clientPermalinkBaseUrl: String? = null
|
val clientPermalinkBaseUrl: String? = null
|
||||||
|
|
||||||
// TODO remove this when report is fixed
|
|
||||||
const val CAN_REPORT_ROOM = false
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import androidx.compose.runtime.setValue
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import im.vector.app.features.analytics.plan.JoinedRoom
|
import im.vector.app.features.analytics.plan.JoinedRoom
|
||||||
import io.element.android.appconfig.MatrixConfiguration
|
|
||||||
import io.element.android.features.invite.api.SeenInvitesStore
|
import io.element.android.features.invite.api.SeenInvitesStore
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
|
||||||
|
|
@ -100,6 +99,8 @@ class JoinRoomPresenter @AssistedInject constructor(
|
||||||
val hideInviteAvatars by remember {
|
val hideInviteAvatars by remember {
|
||||||
appPreferencesStore.getHideInviteAvatarsFlow()
|
appPreferencesStore.getHideInviteAvatarsFlow()
|
||||||
}.collectAsState(initial = false)
|
}.collectAsState(initial = false)
|
||||||
|
val canReportRoom by produceState(false) { value = matrixClient.canReportRoom() }
|
||||||
|
|
||||||
val contentState by produceState<ContentState>(
|
val contentState by produceState<ContentState>(
|
||||||
initialValue = ContentState.Loading,
|
initialValue = ContentState.Loading,
|
||||||
key1 = roomInfo,
|
key1 = roomInfo,
|
||||||
|
|
@ -212,7 +213,7 @@ class JoinRoomPresenter @AssistedInject constructor(
|
||||||
applicationName = buildMeta.applicationName,
|
applicationName = buildMeta.applicationName,
|
||||||
knockMessage = knockMessage,
|
knockMessage = knockMessage,
|
||||||
hideInviteAvatars = hideInviteAvatars,
|
hideInviteAvatars = hideInviteAvatars,
|
||||||
canReportRoom = MatrixConfiguration.CAN_REPORT_ROOM,
|
canReportRoom = canReportRoom,
|
||||||
eventSink = ::handleEvents
|
eventSink = ::handleEvents
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ import androidx.compose.runtime.produceState
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import im.vector.app.features.analytics.plan.Interaction
|
import im.vector.app.features.analytics.plan.Interaction
|
||||||
import io.element.android.appconfig.MatrixConfiguration
|
|
||||||
import io.element.android.features.leaveroom.api.LeaveRoomEvent
|
import io.element.android.features.leaveroom.api.LeaveRoomEvent
|
||||||
import io.element.android.features.leaveroom.api.LeaveRoomState
|
import io.element.android.features.leaveroom.api.LeaveRoomState
|
||||||
import io.element.android.features.messages.api.pinned.IsPinnedMessagesFeatureEnabled
|
import io.element.android.features.messages.api.pinned.IsPinnedMessagesFeatureEnabled
|
||||||
|
|
@ -180,6 +179,8 @@ class RoomDetailsPresenter @Inject constructor(
|
||||||
.launchIn(this)
|
.launchIn(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val canReportRoom by produceState(false) { value = client.canReportRoom() }
|
||||||
|
|
||||||
return RoomDetailsState(
|
return RoomDetailsState(
|
||||||
roomId = room.roomId,
|
roomId = room.roomId,
|
||||||
roomName = roomName,
|
roomName = roomName,
|
||||||
|
|
@ -208,7 +209,7 @@ class RoomDetailsPresenter @Inject constructor(
|
||||||
knockRequestsCount = knockRequestsCount,
|
knockRequestsCount = knockRequestsCount,
|
||||||
canShowSecurityAndPrivacy = canShowSecurityAndPrivacy,
|
canShowSecurityAndPrivacy = canShowSecurityAndPrivacy,
|
||||||
hasMemberVerificationViolations = hasMemberVerificationViolations,
|
hasMemberVerificationViolations = hasMemberVerificationViolations,
|
||||||
canReportRoom = MatrixConfiguration.CAN_REPORT_ROOM,
|
canReportRoom = canReportRoom,
|
||||||
eventSink = ::handleEvents,
|
eventSink = ::handleEvents,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.runtime.snapshotFlow
|
import androidx.compose.runtime.snapshotFlow
|
||||||
import im.vector.app.features.analytics.plan.Interaction
|
import im.vector.app.features.analytics.plan.Interaction
|
||||||
import io.element.android.appconfig.MatrixConfiguration
|
|
||||||
import io.element.android.features.invite.api.SeenInvitesStore
|
import io.element.android.features.invite.api.SeenInvitesStore
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents.AcceptInvite
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents.AcceptInvite
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents.DeclineInvite
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents.DeclineInvite
|
||||||
|
|
@ -165,6 +164,8 @@ class RoomListPresenter @Inject constructor(
|
||||||
|
|
||||||
val contentState = roomListContentState(securityBannerDismissed)
|
val contentState = roomListContentState(securityBannerDismissed)
|
||||||
|
|
||||||
|
val canReportRoom by produceState(false) { value = client.canReportRoom() }
|
||||||
|
|
||||||
return RoomListState(
|
return RoomListState(
|
||||||
matrixUser = matrixUser.value,
|
matrixUser = matrixUser.value,
|
||||||
showAvatarIndicator = showAvatarIndicator,
|
showAvatarIndicator = showAvatarIndicator,
|
||||||
|
|
@ -180,7 +181,7 @@ class RoomListPresenter @Inject constructor(
|
||||||
acceptDeclineInviteState = acceptDeclineInviteState,
|
acceptDeclineInviteState = acceptDeclineInviteState,
|
||||||
directLogoutState = directLogoutState,
|
directLogoutState = directLogoutState,
|
||||||
hideInvitesAvatars = hideInvitesAvatar,
|
hideInvitesAvatars = hideInvitesAvatar,
|
||||||
canReportRoom = MatrixConfiguration.CAN_REPORT_ROOM,
|
canReportRoom = canReportRoom,
|
||||||
eventSink = ::handleEvents,
|
eventSink = ::handleEvents,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,11 @@ interface MatrixClient {
|
||||||
|
|
||||||
fun canDeactivateAccount(): Boolean
|
fun canDeactivateAccount(): Boolean
|
||||||
suspend fun deactivateAccount(password: String, eraseData: Boolean): Result<Unit>
|
suspend fun deactivateAccount(password: String, eraseData: Boolean): Result<Unit>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the user can report a room.
|
||||||
|
*/
|
||||||
|
suspend fun canReportRoom(): Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -666,6 +666,12 @@ class RustMatrixClient(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun canReportRoom(): Boolean = withContext(sessionDispatcher) {
|
||||||
|
runCatching {
|
||||||
|
innerClient.isReportRoomApiSupported()
|
||||||
|
}.getOrDefault(false)
|
||||||
|
}
|
||||||
|
|
||||||
private suspend fun File.getCacheSize(
|
private suspend fun File.getCacheSize(
|
||||||
includeCryptoDb: Boolean = false,
|
includeCryptoDb: Boolean = false,
|
||||||
): Long = withContext(sessionDispatcher) {
|
): Long = withContext(sessionDispatcher) {
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@ class FakeMatrixClient(
|
||||||
private val availableSlidingSyncVersionsLambda: () -> Result<List<SlidingSyncVersion>> = { lambdaError() },
|
private val availableSlidingSyncVersionsLambda: () -> Result<List<SlidingSyncVersion>> = { lambdaError() },
|
||||||
private val ignoreUserResult: (UserId) -> Result<Unit> = { lambdaError() },
|
private val ignoreUserResult: (UserId) -> Result<Unit> = { lambdaError() },
|
||||||
private var unIgnoreUserResult: (UserId) -> Result<Unit> = { Result.success(Unit) },
|
private var unIgnoreUserResult: (UserId) -> Result<Unit> = { Result.success(Unit) },
|
||||||
|
private val canReportRoomLambda: () -> Boolean = { false },
|
||||||
override val ignoredUsersFlow: StateFlow<ImmutableList<UserId>> = MutableStateFlow(persistentListOf()),
|
override val ignoredUsersFlow: StateFlow<ImmutableList<UserId>> = MutableStateFlow(persistentListOf()),
|
||||||
) : MatrixClient {
|
) : MatrixClient {
|
||||||
var setDisplayNameCalled: Boolean = false
|
var setDisplayNameCalled: Boolean = false
|
||||||
|
|
@ -329,4 +330,8 @@ class FakeMatrixClient(
|
||||||
override suspend fun availableSlidingSyncVersions(): Result<List<SlidingSyncVersion>> {
|
override suspend fun availableSlidingSyncVersions(): Result<List<SlidingSyncVersion>> {
|
||||||
return availableSlidingSyncVersionsLambda()
|
return availableSlidingSyncVersionsLambda()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun canReportRoom(): Boolean {
|
||||||
|
return canReportRoomLambda()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue