@@ -77,6 +77,8 @@ val selectableVariants = listOf(
7777 " playProdQuickstart" ,
7878 " playStagingQuickstart" ,
7979 " websiteProdSpinner" ,
80+ " websiteFossProdRelease" ,
81+ " websiteGmsProdRelease" ,
8082 " websiteProdRelease" ,
8183 " githubProdSpinner" ,
8284 " githubProdRelease"
@@ -109,7 +111,7 @@ android {
109111 compileSdkVersion = libs.versions.compileSdk.get()
110112 ndkVersion = libs.versions.ndk.get()
111113
112- flavorDimensions + = listOf (" distribution" , " environment" )
114+ flavorDimensions + = listOf (" distribution" , " gms " , " environment" )
113115 testBuildType = " instrumentation"
114116
115117 android.bundle.language.enableSplit = false
@@ -410,8 +412,10 @@ android {
410412 }
411413
412414 create(" website" ) {
415+ val MAU = if (gradle.startParameter.taskRequests.toString().contains(" Foss" )) " false" else " true"
416+
413417 dimension = " distribution"
414- buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " true " )
418+ buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " ${ MAU } " )
415419 buildConfigField(" String" , " APK_UPDATE_MANIFEST_URL" , " \" https://updates.signal.org/android/latest.json\" " )
416420 buildConfigField(" String" , " BUILD_DISTRIBUTION_TYPE" , " \" website\" " )
417421 }
@@ -432,6 +436,17 @@ android {
432436 buildConfigField(" boolean" , " LINK_DEVICE_UX_ENABLED" , " true" )
433437 }
434438
439+ create(" gms" ) {
440+ dimension = " gms"
441+ isDefault = true
442+ buildConfigField(" boolean" , " USE_OSM" , " false" )
443+ }
444+
445+ create(" foss" ) {
446+ dimension = " gms"
447+ buildConfigField(" boolean" , " USE_OSM" , " true" )
448+ }
449+
435450 create(" prod" ) {
436451 dimension = " environment"
437452
@@ -662,14 +677,16 @@ dependencies {
662677 implementation(libs.androidx.asynclayoutinflater)
663678 implementation(libs.androidx.asynclayoutinflater.appcompat)
664679 implementation(libs.androidx.emoji2)
665- implementation (libs.firebase.messaging) {
680+ " gmsImplementation " (libs.firebase.messaging) {
666681 exclude(group = " com.google.firebase" , module = " firebase-core" )
667682 exclude(group = " com.google.firebase" , module = " firebase-analytics" )
668683 exclude(group = " com.google.firebase" , module = " firebase-measurement-connector" )
669684 }
670- implementation(libs.google.play.services.maps)
671- implementation(libs.google.play.services.auth)
672- implementation(libs.google.signin)
685+ " gmsImplementation" (libs.google.play.services.maps)
686+ " gmsImplementation" (libs.google.play.services.auth)
687+ " gmsImplementation" (libs.google.signin)
688+ " fossImplementation" (project(" :lib:fakegms" ))
689+ " fossImplementation" (libs.osmdroid)
673690 implementation(libs.bundles.media3)
674691 implementation(libs.conscrypt.android)
675692 implementation(libs.signal.aesgcmprovider)
@@ -707,17 +724,17 @@ dependencies {
707724 implementation(libs.accompanist.drawablepainter)
708725 implementation(libs.kotlin.stdlib.jdk8)
709726 implementation(libs.kotlin.reflect)
710- implementation (libs.kotlinx.coroutines.play.services)
727+ " gmsImplementation " (libs.kotlinx.coroutines.play.services)
711728 implementation(libs.kotlinx.coroutines.rx3)
712729 implementation(libs.jackson.module.kotlin)
713730 implementation(libs.rxjava3.rxandroid)
714731 implementation(libs.rxjava3.rxkotlin)
715732 implementation(libs.rxdogtag)
716733 implementation(libs.androidx.credentials)
717- implementation (libs.androidx.credentials.compat)
734+ " gmsImplementation " (libs.androidx.credentials.compat)
718735 implementation(libs.kotlinx.serialization.json)
719736
720- implementation (project(" :lib:billing" ))
737+ " gmsImplementation " (project(" :lib:billing" ))
721738 implementation(project(" :feature:media-send" ))
722739
723740 " spinnerImplementation" (project(" :lib:spinner" ))
0 commit comments