apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlinx-serialization'

android {
    compileSdk 34
    buildToolsVersion = '34.0.0'

    defaultConfig {
        applicationId "helium314.keyboard"
        minSdkVersion 21
        targetSdkVersion 34
        versionCode 1000
        versionName '1.0-alpha1'
    }

    buildTypes {
        release {
            minifyEnabled true
            //shrinkResources true todo: test before enabling, a lot of resources are accessed via getIdentifier and possibly not all have been marked with "keep"
            debuggable false
            jniDebuggable false
            renderscriptDebuggable false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'src/main/proguard.flags'
        }
        debug {
            minifyEnabled true
            jniDebuggable false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'src/main/proguard.flags'
            applicationIdSuffix ".debug"
        }
        archivesBaseName = "openboard_" + defaultConfig.versionName
    }

    buildFeatures {
        viewBinding true
        buildConfig true
    }

    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }

    lintOptions {
        abortOnError false
    }

    ndkVersion '26.1.10909125'

    packagingOptions {
        jniLibs {
            // shrinks APK by 3 MB, zipped size unchanged
            useLegacyPackaging true
        }
    }

    testOptions {
        unitTests {
            includeAndroidResources = true
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
    }

    namespace "helium314.keyboard.latin"
}

dependencies {
    implementation 'androidx.core:core-ktx:1.12.0'
    implementation 'androidx.preference:preference:1.2.1' // includes appcompat
    implementation 'androidx.recyclerview:recyclerview:1.3.2'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.1"
    implementation 'com.github.martin-stone:hsv-alpha-color-picker-android:3.1.0'
    implementation 'androidx.autofill:autofill:1.1.0'

    testImplementation 'junit:junit:4.13.2'
    testImplementation 'org.mockito:mockito-core:5.7.0'
    testImplementation 'org.mockito:mockito-inline:5.2.0'
    testImplementation 'org.robolectric:robolectric:4.11.1'
    testImplementation 'androidx.test:runner:1.5.2'
    testImplementation 'androidx.test:core:1.5.0'
}
