|
|
@ -24,6 +24,9 @@ import com.squareup.anvil.annotations.ContributesBinding |
|
|
|
import io.element.android.libraries.core.bool.orFalse |
|
|
|
import io.element.android.libraries.core.bool.orFalse |
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
|
import io.element.android.libraries.di.ApplicationContext |
|
|
|
import io.element.android.libraries.di.ApplicationContext |
|
|
|
|
|
|
|
import io.element.android.libraries.featureflag.api.FeatureFlagService |
|
|
|
|
|
|
|
import io.element.android.libraries.featureflag.api.FeatureFlags |
|
|
|
|
|
|
|
import kotlinx.coroutines.runBlocking |
|
|
|
import javax.inject.Inject |
|
|
|
import javax.inject.Inject |
|
|
|
|
|
|
|
|
|
|
|
interface PipSupportProvider { |
|
|
|
interface PipSupportProvider { |
|
|
@ -34,9 +37,15 @@ interface PipSupportProvider { |
|
|
|
@ContributesBinding(AppScope::class) |
|
|
|
@ContributesBinding(AppScope::class) |
|
|
|
class DefaultPipSupportProvider @Inject constructor( |
|
|
|
class DefaultPipSupportProvider @Inject constructor( |
|
|
|
@ApplicationContext private val context: Context, |
|
|
|
@ApplicationContext private val context: Context, |
|
|
|
|
|
|
|
private val featureFlagService: FeatureFlagService, |
|
|
|
) : PipSupportProvider { |
|
|
|
) : PipSupportProvider { |
|
|
|
override fun isPipSupported(): Boolean { |
|
|
|
override fun isPipSupported(): Boolean { |
|
|
|
val hasSystemFeaturePip = context.packageManager?.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE).orFalse() |
|
|
|
val isSupportedByTheOs = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && |
|
|
|
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && hasSystemFeaturePip |
|
|
|
context.packageManager?.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE).orFalse() |
|
|
|
|
|
|
|
return if (isSupportedByTheOs) { |
|
|
|
|
|
|
|
runBlocking { featureFlagService.isFeatureEnabled(FeatureFlags.PictureInPicture) } |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|