@@ -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
@@ -360,8 +362,10 @@ android {
360362 }
361363
362364 create(" website" ) {
365+ val MAU = if (gradle.startParameter.taskRequests.toString().contains(" Foss" )) " false" else " true"
366+
363367 dimension = " distribution"
364- buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " true " )
368+ buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " ${ MAU } " )
365369 buildConfigField(" String" , " APK_UPDATE_MANIFEST_URL" , " \" https://updates.signal.org/android/latest.json\" " )
366370 buildConfigField(" String" , " BUILD_DISTRIBUTION_TYPE" , " \" website\" " )
367371 }
@@ -381,6 +385,17 @@ android {
381385 buildConfigField(" boolean" , " LINK_DEVICE_UX_ENABLED" , " true" )
382386 }
383387
388+ create(" gms" ) {
389+ dimension = " gms"
390+ isDefault = true
391+ buildConfigField(" boolean" , " USE_OSM" , " false" )
392+ }
393+
394+ create(" foss" ) {
395+ dimension = " gms"
396+ buildConfigField(" boolean" , " USE_OSM" , " true" )
397+ }
398+
384399 create(" prod" ) {
385400 dimension = " environment"
386401
@@ -552,14 +567,16 @@ dependencies {
552567 implementation(libs.androidx.asynclayoutinflater)
553568 implementation(libs.androidx.asynclayoutinflater.appcompat)
554569 implementation(libs.androidx.emoji2)
555- implementation (libs.firebase.messaging) {
570+ " gmsImplementation " (libs.firebase.messaging) {
556571 exclude(group = " com.google.firebase" , module = " firebase-core" )
557572 exclude(group = " com.google.firebase" , module = " firebase-analytics" )
558573 exclude(group = " com.google.firebase" , module = " firebase-measurement-connector" )
559574 }
560- implementation(libs.google.play.services.maps)
561- implementation(libs.google.play.services.auth)
562- implementation(libs.google.signin)
575+ " gmsImplementation" (libs.google.play.services.maps)
576+ " gmsImplementation" (libs.google.play.services.auth)
577+ " gmsImplementation" (libs.google.signin)
578+ " fossImplementation" (project(" :libfakegms" ))
579+ " fossImplementation" (libs.osmdroid)
563580 implementation(libs.bundles.media3)
564581 implementation(libs.conscrypt.android)
565582 implementation(libs.signal.aesgcmprovider)
@@ -597,17 +614,17 @@ dependencies {
597614 implementation(libs.accompanist.drawablepainter)
598615 implementation(libs.kotlin.stdlib.jdk8)
599616 implementation(libs.kotlin.reflect)
600- implementation (libs.kotlinx.coroutines.play.services)
617+ " gmsImplementation " (libs.kotlinx.coroutines.play.services)
601618 implementation(libs.kotlinx.coroutines.rx3)
602619 implementation(libs.jackson.module.kotlin)
603620 implementation(libs.rxjava3.rxandroid)
604621 implementation(libs.rxjava3.rxkotlin)
605622 implementation(libs.rxdogtag)
606623 implementation(libs.androidx.credentials)
607- implementation (libs.androidx.credentials.compat)
624+ " gmsImplementation " (libs.androidx.credentials.compat)
608625 implementation(libs.kotlinx.serialization.json)
609626
610- implementation (project(" :billing" ))
627+ " gmsImplementation " (project(" :billing" ))
611628
612629 " spinnerImplementation" (project(" :spinner" ))
613630
0 commit comments