@@ -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
@@ -660,14 +675,16 @@ dependencies {
660675 implementation(libs.androidx.asynclayoutinflater)
661676 implementation(libs.androidx.asynclayoutinflater.appcompat)
662677 implementation(libs.androidx.emoji2)
663- implementation (libs.firebase.messaging) {
678+ " gmsImplementation " (libs.firebase.messaging) {
664679 exclude(group = " com.google.firebase" , module = " firebase-core" )
665680 exclude(group = " com.google.firebase" , module = " firebase-analytics" )
666681 exclude(group = " com.google.firebase" , module = " firebase-measurement-connector" )
667682 }
668- implementation(libs.google.play.services.maps)
669- implementation(libs.google.play.services.auth)
670- implementation(libs.google.signin)
683+ " gmsImplementation" (libs.google.play.services.maps)
684+ " gmsImplementation" (libs.google.play.services.auth)
685+ " gmsImplementation" (libs.google.signin)
686+ " fossImplementation" (project(" :lib:fakegms" ))
687+ " fossImplementation" (libs.osmdroid)
671688 implementation(libs.bundles.media3)
672689 implementation(libs.conscrypt.android)
673690 implementation(libs.signal.aesgcmprovider)
@@ -705,17 +722,17 @@ dependencies {
705722 implementation(libs.accompanist.drawablepainter)
706723 implementation(libs.kotlin.stdlib.jdk8)
707724 implementation(libs.kotlin.reflect)
708- implementation (libs.kotlinx.coroutines.play.services)
725+ " gmsImplementation " (libs.kotlinx.coroutines.play.services)
709726 implementation(libs.kotlinx.coroutines.rx3)
710727 implementation(libs.jackson.module.kotlin)
711728 implementation(libs.rxjava3.rxandroid)
712729 implementation(libs.rxjava3.rxkotlin)
713730 implementation(libs.rxdogtag)
714731 implementation(libs.androidx.credentials)
715- implementation (libs.androidx.credentials.compat)
732+ " gmsImplementation " (libs.androidx.credentials.compat)
716733 implementation(libs.kotlinx.serialization.json)
717734
718- implementation (project(" :lib:billing" ))
735+ " gmsImplementation " (project(" :lib:billing" ))
719736 implementation(project(" :feature:media-send" ))
720737
721738 " spinnerImplementation" (project(" :lib:spinner" ))
0 commit comments