@@ -76,6 +76,8 @@ val selectableVariants = listOf(
7676 " playProdQuickstart" ,
7777 " playStagingQuickstart" ,
7878 " websiteProdSpinner" ,
79+ " websiteFossProdRelease" ,
80+ " websiteGmsProdRelease" ,
7981 " websiteProdRelease" ,
8082 " githubProdSpinner" ,
8183 " githubProdRelease"
@@ -108,7 +110,7 @@ android {
108110 compileSdkVersion = libs.versions.compileSdk.get()
109111 ndkVersion = libs.versions.ndk.get()
110112
111- flavorDimensions + = listOf (" distribution" , " environment" )
113+ flavorDimensions + = listOf (" distribution" , " gms " , " environment" )
112114 testBuildType = " instrumentation"
113115
114116 android.bundle.language.enableSplit = false
@@ -409,8 +411,10 @@ android {
409411 }
410412
411413 create(" website" ) {
414+ val MAU = if (gradle.startParameter.taskRequests.toString().contains(" Foss" )) " false" else " true"
415+
412416 dimension = " distribution"
413- buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " true " )
417+ buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " ${ MAU } " )
414418 buildConfigField(" String" , " APK_UPDATE_MANIFEST_URL" , " \" https://updates.signal.org/android/latest.json\" " )
415419 buildConfigField(" String" , " BUILD_DISTRIBUTION_TYPE" , " \" website\" " )
416420 }
@@ -431,6 +435,17 @@ android {
431435 buildConfigField(" boolean" , " LINK_DEVICE_UX_ENABLED" , " true" )
432436 }
433437
438+ create(" gms" ) {
439+ dimension = " gms"
440+ isDefault = true
441+ buildConfigField(" boolean" , " USE_OSM" , " false" )
442+ }
443+
444+ create(" foss" ) {
445+ dimension = " gms"
446+ buildConfigField(" boolean" , " USE_OSM" , " true" )
447+ }
448+
434449 create(" prod" ) {
435450 dimension = " environment"
436451
@@ -659,14 +674,16 @@ dependencies {
659674 implementation(libs.androidx.asynclayoutinflater)
660675 implementation(libs.androidx.asynclayoutinflater.appcompat)
661676 implementation(libs.androidx.emoji2)
662- implementation (libs.firebase.messaging) {
677+ " gmsImplementation " (libs.firebase.messaging) {
663678 exclude(group = " com.google.firebase" , module = " firebase-core" )
664679 exclude(group = " com.google.firebase" , module = " firebase-analytics" )
665680 exclude(group = " com.google.firebase" , module = " firebase-measurement-connector" )
666681 }
667- implementation(libs.google.play.services.maps)
668- implementation(libs.google.play.services.auth)
669- implementation(libs.google.signin)
682+ " gmsImplementation" (libs.google.play.services.maps)
683+ " gmsImplementation" (libs.google.play.services.auth)
684+ " gmsImplementation" (libs.google.signin)
685+ " fossImplementation" (project(" :lib:fakegms" ))
686+ " fossImplementation" (libs.osmdroid)
670687 implementation(libs.bundles.media3)
671688 implementation(libs.conscrypt.android)
672689 implementation(libs.signal.aesgcmprovider)
@@ -704,17 +721,17 @@ dependencies {
704721 implementation(libs.accompanist.drawablepainter)
705722 implementation(libs.kotlin.stdlib.jdk8)
706723 implementation(libs.kotlin.reflect)
707- implementation (libs.kotlinx.coroutines.play.services)
724+ " gmsImplementation " (libs.kotlinx.coroutines.play.services)
708725 implementation(libs.kotlinx.coroutines.rx3)
709726 implementation(libs.jackson.module.kotlin)
710727 implementation(libs.rxjava3.rxandroid)
711728 implementation(libs.rxjava3.rxkotlin)
712729 implementation(libs.rxdogtag)
713730 implementation(libs.androidx.credentials)
714- implementation (libs.androidx.credentials.compat)
731+ " gmsImplementation " (libs.androidx.credentials.compat)
715732 implementation(libs.kotlinx.serialization.json)
716733
717- implementation (project(" :lib:billing" ))
734+ " gmsImplementation " (project(" :lib:billing" ))
718735 implementation(project(" :feature:media-send" ))
719736
720737 " spinnerImplementation" (project(" :lib:spinner" ))
0 commit comments