@@ -50,6 +50,8 @@ val selectableVariants = listOf(
5050 " playStagingInstrumentation" ,
5151 " playStagingRelease" ,
5252 " websiteProdSpinner" ,
53+ " websiteFossProdRelease" ,
54+ " websiteGmsProdRelease" ,
5355 " websiteProdRelease"
5456)
5557
@@ -88,7 +90,7 @@ android {
8890 compileSdkVersion = signalCompileSdkVersion
8991 ndkVersion = signalNdkVersion
9092
91- flavorDimensions + = listOf (" distribution" , " environment" )
93+ flavorDimensions + = listOf (" distribution" , " gms " , " environment" )
9294 testBuildType = " instrumentation"
9395
9496 android.bundle.language.enableSplit = false
@@ -359,8 +361,10 @@ android {
359361 }
360362
361363 create(" website" ) {
364+ val MAU = if (gradle.startParameter.taskRequests.toString().contains(" Foss" )) " false" else " true"
365+
362366 dimension = " distribution"
363- buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " true " )
367+ buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " ${ MAU } " )
364368 buildConfigField(" String" , " APK_UPDATE_MANIFEST_URL" , " \" https://updates.signal.org/android/latest.json\" " )
365369 buildConfigField(" String" , " BUILD_DISTRIBUTION_TYPE" , " \" website\" " )
366370 }
@@ -380,6 +384,17 @@ android {
380384 buildConfigField(" boolean" , " LINK_DEVICE_UX_ENABLED" , " true" )
381385 }
382386
387+ create(" gms" ) {
388+ dimension = " gms"
389+ isDefault = true
390+ buildConfigField(" boolean" , " USE_OSM" , " false" )
391+ }
392+
393+ create(" foss" ) {
394+ dimension = " gms"
395+ buildConfigField(" boolean" , " USE_OSM" , " true" )
396+ }
397+
383398 create(" prod" ) {
384399 dimension = " environment"
385400
@@ -549,14 +564,16 @@ dependencies {
549564 implementation(libs.androidx.asynclayoutinflater)
550565 implementation(libs.androidx.asynclayoutinflater.appcompat)
551566 implementation(libs.androidx.emoji2)
552- implementation (libs.firebase.messaging) {
567+ " gmsImplementation " (libs.firebase.messaging) {
553568 exclude(group = " com.google.firebase" , module = " firebase-core" )
554569 exclude(group = " com.google.firebase" , module = " firebase-analytics" )
555570 exclude(group = " com.google.firebase" , module = " firebase-measurement-connector" )
556571 }
557- implementation(libs.google.play.services.maps)
558- implementation(libs.google.play.services.auth)
559- implementation(libs.google.signin)
572+ " gmsImplementation" (libs.google.play.services.maps)
573+ " gmsImplementation" (libs.google.play.services.auth)
574+ " gmsImplementation" (libs.google.signin)
575+ " fossImplementation" (project(" :libfakegms" ))
576+ " fossImplementation" (libs.osmdroid)
560577 implementation(libs.bundles.media3)
561578 implementation(libs.conscrypt.android)
562579 implementation(libs.signal.aesgcmprovider)
@@ -594,17 +611,17 @@ dependencies {
594611 implementation(libs.accompanist.drawablepainter)
595612 implementation(libs.kotlin.stdlib.jdk8)
596613 implementation(libs.kotlin.reflect)
597- implementation (libs.kotlinx.coroutines.play.services)
614+ " gmsImplementation " (libs.kotlinx.coroutines.play.services)
598615 implementation(libs.kotlinx.coroutines.rx3)
599616 implementation(libs.jackson.module.kotlin)
600617 implementation(libs.rxjava3.rxandroid)
601618 implementation(libs.rxjava3.rxkotlin)
602619 implementation(libs.rxdogtag)
603620 implementation(libs.androidx.credentials)
604- implementation (libs.androidx.credentials.compat)
621+ " gmsImplementation " (libs.androidx.credentials.compat)
605622 implementation(libs.kotlinx.serialization.json)
606623
607- implementation (project(" :billing" ))
624+ " gmsImplementation " (project(" :billing" ))
608625
609626 " spinnerImplementation" (project(" :spinner" ))
610627
0 commit comments