Skip to content

Commit 7c9c725

Browse files
committed
Show the clear cache for room only when "View source" is enabled (this is our "developer mode")
1 parent d591ff4 commit 7c9c725

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import io.element.android.libraries.matrix.api.roomlist.RoomList
5151
import io.element.android.libraries.matrix.api.sync.SyncService
5252
import io.element.android.libraries.matrix.api.sync.isOnline
5353
import io.element.android.libraries.matrix.api.timeline.ReceiptType
54+
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
5455
import io.element.android.libraries.preferences.api.store.SessionPreferencesStore
5556
import io.element.android.libraries.push.api.notifications.NotificationCleaner
5657
import io.element.android.services.analytics.api.AnalyticsService
@@ -89,6 +90,7 @@ class RoomListPresenter @Inject constructor(
8990
private val fullScreenIntentPermissionsPresenter: Presenter<FullScreenIntentPermissionsState>,
9091
private val notificationCleaner: NotificationCleaner,
9192
private val logoutPresenter: Presenter<DirectLogoutState>,
93+
private val appPreferencesStore: AppPreferencesStore,
9294
) : Presenter<RoomListState> {
9395
private val encryptionService: EncryptionService = client.encryptionService()
9496

@@ -245,7 +247,8 @@ class RoomListPresenter @Inject constructor(
245247
isFavorite = event.roomListRoomSummary.isFavorite,
246248
markAsUnreadFeatureFlagEnabled = featureFlagService.isFeatureEnabled(FeatureFlags.MarkAsUnread),
247249
hasNewContent = event.roomListRoomSummary.hasNewContent,
248-
eventCacheFeatureFlagEnabled = featureFlagService.isFeatureEnabled(FeatureFlags.EventCache),
250+
eventCacheFeatureFlagEnabled = appPreferencesStore.isDeveloperModeEnabledFlow().first() &&
251+
featureFlagService.isFeatureEnabled(FeatureFlags.EventCache),
249252
)
250253
contextMenuState.value = initialState
251254

features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTest.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ import io.element.android.libraries.matrix.test.room.aRoomSummary
6767
import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService
6868
import io.element.android.libraries.matrix.test.sync.FakeSyncService
6969
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
70+
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
7071
import io.element.android.libraries.preferences.api.store.SessionPreferencesStore
72+
import io.element.android.libraries.preferences.test.InMemoryAppPreferencesStore
7173
import io.element.android.libraries.preferences.test.InMemorySessionPreferencesStore
7274
import io.element.android.libraries.push.api.notifications.NotificationCleaner
7375
import io.element.android.libraries.push.test.notifications.FakeNotificationCleaner
@@ -312,6 +314,35 @@ class RoomListPresenterTest {
312314
}
313315
}
314316

317+
@Test
318+
fun `present - show context menu with view source on`() = runTest {
319+
val presenter = createRoomListPresenter(
320+
appPreferencesStore = InMemoryAppPreferencesStore(
321+
isDeveloperModeEnabled = true,
322+
)
323+
)
324+
presenter.test {
325+
val initialState = awaitItem()
326+
val summary = createRoomListRoomSummary()
327+
initialState.eventSink(RoomListEvents.ShowContextMenu(summary))
328+
awaitItem().also { state ->
329+
assertThat(state.contextMenu)
330+
.isEqualTo(
331+
RoomListState.ContextMenu.Shown(
332+
roomId = summary.roomId,
333+
roomName = summary.name,
334+
isDm = false,
335+
isFavorite = false,
336+
markAsUnreadFeatureFlagEnabled = true,
337+
// true here.
338+
eventCacheFeatureFlagEnabled = true,
339+
hasNewContent = false,
340+
)
341+
)
342+
}
343+
}
344+
}
345+
315346
@Test
316347
fun `present - hide context menu`() = runTest {
317348
val room = FakeMatrixRoom()
@@ -643,6 +674,7 @@ class RoomListPresenterTest {
643674
searchPresenter: Presenter<RoomListSearchState> = Presenter { aRoomListSearchState() },
644675
acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState> = Presenter { anAcceptDeclineInviteState() },
645676
notificationCleaner: NotificationCleaner = FakeNotificationCleaner(),
677+
appPreferencesStore: AppPreferencesStore = InMemoryAppPreferencesStore(),
646678
) = RoomListPresenter(
647679
client = client,
648680
syncService = syncService,
@@ -672,6 +704,7 @@ class RoomListPresenterTest {
672704
fullScreenIntentPermissionsPresenter = { aFullScreenIntentPermissionsState() },
673705
notificationCleaner = notificationCleaner,
674706
logoutPresenter = { aDirectLogoutState() },
707+
appPreferencesStore = appPreferencesStore,
675708
)
676709
}
677710

0 commit comments

Comments
 (0)