// startapp_sdk pins AGP 8.4.0 in its own buildscript; align with the app (settings.gradle.kts → 8.7.0).
def agpVersion = '8.7.0'

def alignPluginAgp = { project ->
    project.buildscript {
        configurations.matching { it.name == 'classpath' }.configureEach { classpath ->
            classpath.resolutionStrategy {
                force "com.android.tools.build:gradle:${agpVersion}"
                eachDependency { details ->
                    if (details.requested.group == 'com.android.tools.build' &&
                            details.requested.name == 'gradle') {
                        details.useVersion agpVersion
                        details.because 'Align plugin AGP with app'
                    }
                }
            }
        }
    }
}

gradle.beforeProject(alignPluginAgp)

gradle.projectsLoaded {
    rootProject.subprojects(alignPluginAgp)
}

// FAN plugin pins compileSdk 28; Audience Network SDK 6.x needs API 31+ (android:attr/lStar).
subprojects { subproject ->
    subproject.afterEvaluate {
        if (!subproject.plugins.hasPlugin("com.android.library") &&
                !subproject.plugins.hasPlugin("com.android.application")) {
            return
        }
        subproject.android {
            compileSdk 34
        }
        // So :facebook_audience_network_plus compiles against Infer stubs (avoids Nullsafe$Mode javac noise).
        if (subproject.name == "facebook_audience_network_plus") {
            subproject.dependencies.add(
                    "implementation",
                    "com.facebook.infer.annotation:infer-annotation:0.18.0")
        }
    }
}
