Use the right video preset when sharing videos (#5892)

This commit is contained in:
Jorge Martin Espinosa 2025-12-16 16:40:44 +01:00 committed by GitHub
parent 028741d81c
commit d298200934
6 changed files with 30 additions and 17 deletions

View file

@ -10,17 +10,28 @@ package io.element.android.libraries.mediaupload.impl
import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.featureflag.api.FeatureFlagService
import io.element.android.libraries.featureflag.api.FeatureFlags
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfig
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfigProvider
import io.element.android.libraries.preferences.api.store.SessionPreferencesStore
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
import kotlinx.coroutines.flow.first
@ContributesBinding(SessionScope::class)
class DefaultMediaOptimizationConfigProvider(
private val sessionPreferencesStore: SessionPreferencesStore,
private val featureFlagsService: FeatureFlagService,
) : MediaOptimizationConfigProvider {
override suspend fun get(): MediaOptimizationConfig = MediaOptimizationConfig(
compressImages = sessionPreferencesStore.doesOptimizeImages().first(),
videoCompressionPreset = sessionPreferencesStore.getVideoCompressionPreset().first(),
)
override suspend fun get(): MediaOptimizationConfig {
val compressImages = sessionPreferencesStore.doesOptimizeImages().first()
return MediaOptimizationConfig(
compressImages = compressImages,
videoCompressionPreset = if (featureFlagsService.isFeatureEnabled(FeatureFlags.SelectableMediaQuality)) {
sessionPreferencesStore.getVideoCompressionPreset().first()
} else {
if (compressImages) VideoCompressionPreset.STANDARD else VideoCompressionPreset.HIGH
},
)
}
}