/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

android {
    namespace 'com.facebook.flipper.sample'
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion
    ndkVersion rootProject.ndkVersion

    defaultConfig {
        minSdkVersion 21
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
        applicationId 'com.facebook.flipper.sample'
        targetSdkVersion rootProject.targetSdkVersion
    }

    lintOptions {
        abortOnError false
    }

    sourceSets {
        main {
            manifest.srcFile './AndroidManifest.xml'
        }

        test {
            java {
                exclude 'com/facebook/flipper/plugins/facebook/**'
            }
        }
    }

    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "$COMPOSE_COMPILER_VERSION"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

    packagingOptions {
        pickFirst "**/libcrypto.so"
        pickFirst "**/libevent-2.1.so"
        pickFirst "**/libevent_core-2.1.so"
        pickFirst "**/libevent_extra-2.1.so"
        pickFirst "**/libflipper.so"
        pickFirst "**/libssl.so"
    }
}


dependencies {
    // Android Support Library
    implementation deps.supportAppCompat

    // Litho
    implementation deps.lithoCore
    implementation deps.lithoWidget
    implementation deps.lithoAnnotations
    implementation deps.lithoFresco
    annotationProcessor deps.lithoProcessor

    // Compose
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation "androidx.activity:activity-ktx:$ANDROIDX_ACTIVITY_VERSION"
    implementation "androidx.activity:activity-compose:$ANDROIDX_ACTIVITY_VERSION"
    implementation "androidx.compose.runtime:runtime:$COMPOSE_VERSION"
    implementation "androidx.compose.ui:ui:$COMPOSE_VERSION"
    implementation "androidx.compose.material3:material3:$COMPOSE_MATERIAL3_VERSION"
    implementation "androidx.compose.ui:ui-tooling:$COMPOSE_VERSION"
    implementation "androidx.compose.ui:ui-tooling-preview:$COMPOSE_VERSION"

    // Third-party
    implementation deps.soloader
    implementation deps.okhttp3
    implementation deps.fresco
    implementation deps.frescoUiCommon
    implementation deps.frescoVito
    implementation deps.frescoVitoLitho
    implementation deps.inferAnnotations
    debugImplementation deps.flipperFrescoPlugin

    // Integration test
    androidTestImplementation deps.testCore
    androidTestImplementation deps.testRules

    // Unit tests
    testImplementation deps.mockito
    testImplementation deps.robolectric
    testImplementation deps.hamcrest
    testImplementation deps.junit

    debugImplementation project(':android')
    debugImplementation project(':network-plugin')
    debugImplementation project(':litho-plugin')
    debugImplementation project(':jetpack-compose-plugin')
    releaseImplementation project(':noop')
}
