plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    namespace 'com.vitorpamplona.amethyst'
    compileSdk 33

    defaultConfig {
        applicationId "com.vitorpamplona.amethyst"
        minSdk 26
        targetSdk 33
        versionCode 35
        versionName "0.12.1"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            //minifyEnabled false
            //proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = '11'
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion '1.4.0'
    }
    packagingOptions {
        resources {
            excludes += '/META-INF/{AL2.0,LGPL2.1}'
        }
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'
    implementation 'androidx.activity:activity-compose:1.6.1'
    implementation "androidx.compose.ui:ui:$compose_ui_version"
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version"

    // Navigation
    implementation("androidx.navigation:navigation-compose:$nav_version")

    // Observe Live data as State
    implementation 'androidx.compose.runtime:runtime-livedata:1.4.0-alpha04'

    implementation 'androidx.compose.material:material:1.4.0-alpha05'
    implementation "androidx.compose.material:material-icons-extended:1.4.0-alpha05"

    // Lifecycle
    implementation 'androidx.lifecycle:lifecycle-runtime-compose:2.6.0-alpha05'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.6.0-alpha05'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.0-alpha05'
    implementation 'androidx.lifecycle:lifecycle-livedata:2.6.0-alpha05'

    // Swipe Refresh
    implementation 'com.google.accompanist:accompanist-swiperefresh:0.29.0-alpha'

    // Bitcoin secp256k1 bindings to Android
    implementation 'fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.1'

    // Nostr Base Protocol
    implementation('com.github.vitorpamplona.NostrPostr:nostrpostrlib:master-SNAPSHOT') {
        exclude group:'fr.acinq.secp256k1'
        exclude module: 'guava'
        exclude module: 'guava-testlib'
    }

    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    // Websockets API
    implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.11'

    // Json Serialization
    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.14.1'

    // link preview
    implementation 'tw.com.oneup.www:Baha-UrlPreview:1.0.1'
    implementation 'androidx.security:security-crypto-ktx:1.1.0-alpha04'

    // view videos
    implementation 'com.google.android.exoplayer:exoplayer:2.18.2'

    // Load images from the web.
    implementation "io.coil-kt:coil-compose:2.2.2"
    // view gifs
    implementation "io.coil-kt:coil-gif:2.2.2"
    // view svgs
    implementation("io.coil-kt:coil-svg:2.2.2")

    // Rendering clickable text
    implementation "com.google.accompanist:accompanist-flowlayout:$accompanist_version"
    // Permission to upload pictures:
    implementation "com.google.accompanist:accompanist-permissions:$accompanist_version"

    // tabs for user profiles
    implementation "com.google.accompanist:accompanist-pager:$accompanist_version" // Pager
    implementation "com.google.accompanist:accompanist-pager-indicators:$accompanist_version"

    // For QR generation
    implementation "com.google.zxing:core:3.5.0"
    implementation "androidx.camera:camera-camera2:1.2.1"
    implementation 'androidx.camera:camera-lifecycle:1.2.1'
    implementation 'androidx.camera:camera-view:1.2.1'
    implementation 'com.google.mlkit:vision-common:17.3.0'
    implementation 'com.google.android.gms:play-services-mlkit-barcode-scanning:18.1.0'

    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version"
    debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version"
    debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version"
}