@@ -70,6 +70,8 @@ val selectableVariants = listOf(
7070 " playStagingInstrumentation" ,
7171 " playStagingRelease" ,
7272 " websiteProdSpinner" ,
73+ " websiteFossProdRelease" ,
74+ " websiteGmsProdRelease" ,
7375 " websiteProdRelease" ,
7476 " githubProdSpinner" ,
7577 " githubProdRelease"
@@ -102,7 +104,7 @@ android {
102104 compileSdkVersion = libs.versions.compileSdk.get()
103105 ndkVersion = libs.versions.ndk.get()
104106
105- flavorDimensions + = listOf (" distribution" , " environment" )
107+ flavorDimensions + = listOf (" distribution" , " gms " , " environment" )
106108 testBuildType = " instrumentation"
107109
108110 android.bundle.language.enableSplit = false
@@ -377,8 +379,10 @@ android {
377379 }
378380
379381 create(" website" ) {
382+ val MAU = if (gradle.startParameter.taskRequests.toString().contains(" Foss" )) " false" else " true"
383+
380384 dimension = " distribution"
381- buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " true " )
385+ buildConfigField(" boolean" , " MANAGES_APP_UPDATES" , " ${ MAU } " )
382386 buildConfigField(" String" , " APK_UPDATE_MANIFEST_URL" , " \" https://updates.signal.org/android/latest.json\" " )
383387 buildConfigField(" String" , " BUILD_DISTRIBUTION_TYPE" , " \" website\" " )
384388 }
@@ -399,6 +403,17 @@ android {
399403 buildConfigField(" boolean" , " LINK_DEVICE_UX_ENABLED" , " true" )
400404 }
401405
406+ create(" gms" ) {
407+ dimension = " gms"
408+ isDefault = true
409+ buildConfigField(" boolean" , " USE_OSM" , " false" )
410+ }
411+
412+ create(" foss" ) {
413+ dimension = " gms"
414+ buildConfigField(" boolean" , " USE_OSM" , " true" )
415+ }
416+
402417 create(" prod" ) {
403418 dimension = " environment"
404419
@@ -583,14 +598,16 @@ dependencies {
583598 implementation(libs.androidx.asynclayoutinflater)
584599 implementation(libs.androidx.asynclayoutinflater.appcompat)
585600 implementation(libs.androidx.emoji2)
586- implementation (libs.firebase.messaging) {
601+ " gmsImplementation " (libs.firebase.messaging) {
587602 exclude(group = " com.google.firebase" , module = " firebase-core" )
588603 exclude(group = " com.google.firebase" , module = " firebase-analytics" )
589604 exclude(group = " com.google.firebase" , module = " firebase-measurement-connector" )
590605 }
591- implementation(libs.google.play.services.maps)
592- implementation(libs.google.play.services.auth)
593- implementation(libs.google.signin)
606+ " gmsImplementation" (libs.google.play.services.maps)
607+ " gmsImplementation" (libs.google.play.services.auth)
608+ " gmsImplementation" (libs.google.signin)
609+ " fossImplementation" (project(" :lib:fakegms" ))
610+ " fossImplementation" (libs.osmdroid)
594611 implementation(libs.bundles.media3)
595612 implementation(libs.conscrypt.android)
596613 implementation(libs.signal.aesgcmprovider)
@@ -628,17 +645,17 @@ dependencies {
628645 implementation(libs.accompanist.drawablepainter)
629646 implementation(libs.kotlin.stdlib.jdk8)
630647 implementation(libs.kotlin.reflect)
631- implementation (libs.kotlinx.coroutines.play.services)
648+ " gmsImplementation " (libs.kotlinx.coroutines.play.services)
632649 implementation(libs.kotlinx.coroutines.rx3)
633650 implementation(libs.jackson.module.kotlin)
634651 implementation(libs.rxjava3.rxandroid)
635652 implementation(libs.rxjava3.rxkotlin)
636653 implementation(libs.rxdogtag)
637654 implementation(libs.androidx.credentials)
638- implementation (libs.androidx.credentials.compat)
655+ " gmsImplementation " (libs.androidx.credentials.compat)
639656 implementation(libs.kotlinx.serialization.json)
640657
641- implementation (project(" :lib:billing" ))
658+ " gmsImplementation " (project(" :lib:billing" ))
642659 implementation(project(" :feature:media-send" ))
643660
644661 " spinnerImplementation" (project(" :lib:spinner" ))
0 commit comments