Skip to content

Commit 58ce545

Browse files
authored
Merge pull request #5160 from element-hq/feature/bma/cleanupFeatureFlags
Remove old feature flags
2 parents 516c3cf + de73412 commit 58ce545

File tree

77 files changed

+308
-1241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+308
-1241
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,6 @@
147147
<data android:host="user" />
148148
<data android:host="room" />
149149
</intent-filter>
150-
</activity>
151-
152-
<!-- Using an activity-alias for incoming share intent, in order
153-
to be able to disable the feature programmatically -->
154-
<activity-alias
155-
android:name=".ShareActivity"
156-
android:exported="true"
157-
android:targetActivity=".MainActivity">
158150
<!-- Incoming share simple -->
159151
<intent-filter>
160152
<action android:name="android.intent.action.SEND" />
@@ -171,7 +163,7 @@
171163
<category android:name="android.intent.category.DEFAULT" />
172164
<category android:name="android.intent.category.OPENABLE" />
173165
</intent-filter>
174-
</activity-alias>
166+
</activity>
175167

176168
<provider
177169
android:name="androidx.core.content.FileProvider"

appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
package io.element.android.appconfig
99

1010
object OnBoardingConfig {
11-
/** Whether the user can use QR code login. */
12-
const val CAN_LOGIN_WITH_QR_CODE = true
13-
1411
/** Whether the user can create an account using the app. */
1512
const val CAN_CREATE_ACCOUNT = true
1613
}

appnav/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ dependencies {
6363
testImplementation(projects.features.networkmonitor.test)
6464
testImplementation(projects.tests.testutils)
6565
testImplementation(projects.features.rageshake.test)
66-
testImplementation(projects.features.share.test)
6766
testImplementation(projects.services.appnavstate.test)
6867
testImplementation(projects.services.analytics.test)
6968
testImplementation(libs.test.appyx.junit)

appnav/src/main/kotlin/io/element/android/appnav/root/RootPresenter.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import androidx.compose.runtime.getValue
1414
import im.vector.app.features.analytics.plan.SuperProperties
1515
import io.element.android.features.rageshake.api.crash.CrashDetectionState
1616
import io.element.android.features.rageshake.api.detection.RageshakeDetectionState
17-
import io.element.android.features.share.api.ShareService
1817
import io.element.android.libraries.architecture.Presenter
1918
import io.element.android.libraries.matrix.api.SdkMetadata
2019
import io.element.android.services.analytics.api.AnalyticsService
@@ -26,7 +25,6 @@ class RootPresenter @Inject constructor(
2625
private val rageshakeDetectionPresenter: Presenter<RageshakeDetectionState>,
2726
private val appErrorStateService: AppErrorStateService,
2827
private val analyticsService: AnalyticsService,
29-
private val shareService: ShareService,
3028
private val sdkMetadata: SdkMetadata,
3129
) : Presenter<RootState> {
3230
@Composable
@@ -45,10 +43,6 @@ class RootPresenter @Inject constructor(
4543
)
4644
}
4745

48-
LaunchedEffect(Unit) {
49-
shareService.observeFeatureFlag(this)
50-
}
51-
5246
return RootState(
5347
rageshakeDetectionState = rageshakeDetectionState,
5448
crashDetectionState = crashDetectionState,

appnav/src/test/kotlin/io/element/android/appnav/RootPresenterTest.kt

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,12 @@ import com.google.common.truth.Truth.assertThat
1414
import io.element.android.appnav.root.RootPresenter
1515
import io.element.android.features.rageshake.api.crash.aCrashDetectionState
1616
import io.element.android.features.rageshake.api.detection.aRageshakeDetectionState
17-
import io.element.android.features.share.api.ShareService
18-
import io.element.android.features.share.test.FakeShareService
1917
import io.element.android.libraries.matrix.test.FakeSdkMetadata
2018
import io.element.android.services.analytics.test.FakeAnalyticsService
2119
import io.element.android.services.apperror.api.AppErrorState
2220
import io.element.android.services.apperror.api.AppErrorStateService
2321
import io.element.android.services.apperror.impl.DefaultAppErrorStateService
2422
import io.element.android.tests.testutils.WarmUpRule
25-
import io.element.android.tests.testutils.lambda.lambdaRecorder
26-
import kotlinx.coroutines.CoroutineScope
2723
import kotlinx.coroutines.test.runTest
2824
import org.junit.Rule
2925
import org.junit.Test
@@ -43,22 +39,6 @@ class RootPresenterTest {
4339
}
4440
}
4541

46-
@Test
47-
fun `present - check that share service is invoked`() = runTest {
48-
val lambda = lambdaRecorder<CoroutineScope, Unit> { _ -> }
49-
val presenter = createRootPresenter(
50-
shareService = FakeShareService {
51-
lambda(it)
52-
}
53-
)
54-
moleculeFlow(RecompositionMode.Immediate) {
55-
presenter.present()
56-
}.test {
57-
skipItems(1)
58-
lambda.assertions().isCalledOnce()
59-
}
60-
}
61-
6242
@Test
6343
fun `present - passes app error state`() = runTest {
6444
val presenter = createRootPresenter(
@@ -82,14 +62,12 @@ class RootPresenterTest {
8262

8363
private fun createRootPresenter(
8464
appErrorService: AppErrorStateService = DefaultAppErrorStateService(),
85-
shareService: ShareService = FakeShareService {},
8665
): RootPresenter {
8766
return RootPresenter(
8867
crashDetectionPresenter = { aCrashDetectionState() },
8968
rageshakeDetectionPresenter = { aRageshakeDetectionState() },
9069
appErrorStateService = appErrorService,
9170
analyticsService = FakeAnalyticsService(),
92-
shareService = shareService,
9371
sdkMetadata = FakeSdkMetadata("sha")
9472
)
9573
}

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

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -101,36 +101,34 @@ private fun RoomListModalBottomSheetContent(
101101
)
102102
}
103103
)
104-
if (contextMenu.markAsUnreadFeatureFlagEnabled) {
105-
if (contextMenu.hasNewContent) {
106-
ListItem(
107-
headlineContent = {
108-
Text(
109-
text = stringResource(id = R.string.screen_roomlist_mark_as_read),
110-
style = MaterialTheme.typography.bodyLarge,
111-
)
112-
},
113-
onClick = onRoomMarkReadClick,
114-
leadingContent = ListItemContent.Icon(
115-
iconSource = IconSource.Vector(CompoundIcons.MarkAsRead())
116-
),
117-
style = ListItemStyle.Primary,
118-
)
119-
} else {
120-
ListItem(
121-
headlineContent = {
122-
Text(
123-
text = stringResource(id = R.string.screen_roomlist_mark_as_unread),
124-
style = MaterialTheme.typography.bodyLarge,
125-
)
126-
},
127-
onClick = onRoomMarkUnreadClick,
128-
leadingContent = ListItemContent.Icon(
129-
iconSource = IconSource.Vector(CompoundIcons.MarkAsUnread())
130-
),
131-
style = ListItemStyle.Primary,
132-
)
133-
}
104+
if (contextMenu.hasNewContent) {
105+
ListItem(
106+
headlineContent = {
107+
Text(
108+
text = stringResource(id = R.string.screen_roomlist_mark_as_read),
109+
style = MaterialTheme.typography.bodyLarge,
110+
)
111+
},
112+
onClick = onRoomMarkReadClick,
113+
leadingContent = ListItemContent.Icon(
114+
iconSource = IconSource.Vector(CompoundIcons.MarkAsRead())
115+
),
116+
style = ListItemStyle.Primary,
117+
)
118+
} else {
119+
ListItem(
120+
headlineContent = {
121+
Text(
122+
text = stringResource(id = R.string.screen_roomlist_mark_as_unread),
123+
style = MaterialTheme.typography.bodyLarge,
124+
)
125+
},
126+
onClick = onRoomMarkUnreadClick,
127+
leadingContent = ListItemContent.Icon(
128+
iconSource = IconSource.Vector(CompoundIcons.MarkAsUnread())
129+
),
130+
style = ListItemStyle.Primary,
131+
)
134132
}
135133
ListItem(
136134
headlineContent = {

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ import io.element.android.features.leaveroom.api.LeaveRoomState
3636
import io.element.android.libraries.architecture.AsyncData
3737
import io.element.android.libraries.architecture.Presenter
3838
import io.element.android.libraries.core.coroutine.mapState
39-
import io.element.android.libraries.featureflag.api.FeatureFlagService
40-
import io.element.android.libraries.featureflag.api.FeatureFlags
4139
import io.element.android.libraries.fullscreenintent.api.FullScreenIntentPermissionsState
4240
import io.element.android.libraries.matrix.api.MatrixClient
4341
import io.element.android.libraries.matrix.api.core.RoomId
@@ -74,7 +72,6 @@ class RoomListPresenter @Inject constructor(
7472
private val client: MatrixClient,
7573
private val leaveRoomPresenter: Presenter<LeaveRoomState>,
7674
private val roomListDataSource: RoomListDataSource,
77-
private val featureFlagService: FeatureFlagService,
7875
private val filtersPresenter: Presenter<RoomListFiltersState>,
7976
private val searchPresenter: Presenter<RoomListSearchState>,
8077
private val sessionPreferencesStore: SessionPreferencesStore,
@@ -244,7 +241,6 @@ class RoomListPresenter @Inject constructor(
244241
roomName = event.roomSummary.name,
245242
isDm = event.roomSummary.isDm,
246243
isFavorite = event.roomSummary.isFavorite,
247-
markAsUnreadFeatureFlagEnabled = featureFlagService.isFeatureEnabled(FeatureFlags.MarkAsUnread),
248244
hasNewContent = event.roomSummary.hasNewContent,
249245
displayClearRoomCacheAction = appPreferencesStore.isDeveloperModeEnabledFlow().first(),
250246
)

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ data class RoomListState(
4141
val roomName: String?,
4242
val isDm: Boolean,
4343
val isFavorite: Boolean,
44-
val markAsUnreadFeatureFlagEnabled: Boolean,
4544
val hasNewContent: Boolean,
4645
val displayClearRoomCacheAction: Boolean,
4746
) : ContextMenu

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ internal fun aContextMenuShown(
2828
roomId = RoomId("!aRoom:aDomain"),
2929
roomName = roomName,
3030
isDm = isDm,
31-
markAsUnreadFeatureFlagEnabled = true,
3231
hasNewContent = hasNewContent,
3332
isFavorite = isFavorite,
3433
displayClearRoomCacheAction = false,

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ import io.element.android.libraries.dateformatter.api.DateFormatter
3232
import io.element.android.libraries.dateformatter.test.FakeDateFormatter
3333
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
3434
import io.element.android.libraries.eventformatter.test.FakeRoomLastMessageFormatter
35-
import io.element.android.libraries.featureflag.api.FeatureFlagService
36-
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
3735
import io.element.android.libraries.fullscreenintent.api.aFullScreenIntentPermissionsState
3836
import io.element.android.libraries.matrix.api.MatrixClient
3937
import io.element.android.libraries.matrix.api.core.RoomId
@@ -217,7 +215,6 @@ class RoomListPresenterTest {
217215
roomName = summary.name,
218216
isDm = false,
219217
isFavorite = false,
220-
markAsUnreadFeatureFlagEnabled = true,
221218
hasNewContent = false,
222219
displayClearRoomCacheAction = false,
223220
)
@@ -235,7 +232,6 @@ class RoomListPresenterTest {
235232
roomName = summary.name,
236233
isDm = false,
237234
isFavorite = true,
238-
markAsUnreadFeatureFlagEnabled = true,
239235
hasNewContent = false,
240236
displayClearRoomCacheAction = false,
241237
)
@@ -263,7 +259,6 @@ class RoomListPresenterTest {
263259
roomName = summary.name,
264260
isDm = false,
265261
isFavorite = false,
266-
markAsUnreadFeatureFlagEnabled = true,
267262
// true here.
268263
hasNewContent = false,
269264
displayClearRoomCacheAction = true,
@@ -295,7 +290,6 @@ class RoomListPresenterTest {
295290
roomName = summary.name,
296291
isDm = false,
297292
isFavorite = false,
298-
markAsUnreadFeatureFlagEnabled = true,
299293
hasNewContent = false,
300294
displayClearRoomCacheAction = false,
301295
)
@@ -604,7 +598,6 @@ class RoomListPresenterTest {
604598
dateFormatter: DateFormatter = FakeDateFormatter(),
605599
roomLastMessageFormatter: RoomLastMessageFormatter = FakeRoomLastMessageFormatter(),
606600
sessionPreferencesStore: SessionPreferencesStore = InMemorySessionPreferencesStore(),
607-
featureFlagService: FeatureFlagService = FakeFeatureFlagService(),
608601
analyticsService: AnalyticsService = FakeAnalyticsService(),
609602
filtersPresenter: Presenter<RoomListFiltersState> = Presenter { aRoomListFiltersState() },
610603
searchPresenter: Presenter<RoomListSearchState> = Presenter { aRoomListSearchState() },
@@ -626,7 +619,6 @@ class RoomListPresenterTest {
626619
sessionCoroutineScope = backgroundScope,
627620
dateTimeObserver = FakeDateTimeObserver(),
628621
),
629-
featureFlagService = featureFlagService,
630622
searchPresenter = searchPresenter,
631623
sessionPreferencesStore = sessionPreferencesStore,
632624
filtersPresenter = filtersPresenter,

0 commit comments

Comments
 (0)