buildscript {
    repositories {
//        maven { url 'https://maven.fabric.io/public' }
        google()
    }

//    dependencies {
//        classpath 'io.fabric.tools:gradle:1.+'
//    }
}
apply plugin: 'com.android.application'
//apply plugin: 'io.fabric'

//repositories {
//    maven { url 'https://maven.fabric.io/public' }
//}

android {
    namespace "ru.visionlab.femdemo"

    compileSdkVersion 33
    buildToolsVersion '33.0.1'
    ndkVersion "21.0.6113669"

//    dexOptions {
//        javaMaxHeapSize "4g"
//    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "ru.visionlab.femdemo"
        minSdkVersion 24
        targetSdkVersion 31
        versionCode 1
        versionName "2.4.2"

        externalNativeBuild {
            cmake {
//                version = "3.10.2.4988404"
                version = "3.6.4111459" //originally

                cppFlags "-std=c++11"
                abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'

                arguments "-DANDROID_STL=c++_shared",
                        "-DFSDK_ROOT=./../../../..",
                        "-DTSDK_ROOT=./../../../.."
            }
        }

        sourceSets.main {
            jniLibs.srcDir "./../../../../lib/clang"
        }
    }

    externalNativeBuild {
        cmake {
            path "src/main/jni/CMakeLists.txt"
        }
    }

    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    flavorDimensions "version"

    splits {
        abi {
            enable true
            reset()
            include 'x86', 'armeabi-v7a', 'arm64-v8a'
            universalApk false
        }
    }

    productFlavors {
        offline {
            dimension "version"
            applicationIdSuffix ".offline"
            buildConfigField 'boolean', 'IS_OFFLINE_VERSION', "true"
            resValue "string", "app_name", "LUNA Mobile Offline"
            externalNativeBuild.cmake {
                cppFlags '-DRUNNING_OFFLINE_VERSION'
            }
        }

        online {
            dimension "version"
            applicationIdSuffix ".online"
            buildConfigField 'boolean', 'IS_OFFLINE_VERSION', "false"
            resValue "string", "app_name", "LUNA Mobile Online"
        }
    }

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
}

//Copy plans from data folder to assets dir
copy {
    from('../../../../data') {
        include 'license.conf'
        include 'runtime.conf'
        include 'faceengine.conf'
        include 'trackengine.conf'
        include 'bestshotmobile.conf'
        include 'cnndescriptor_59.conf'
        include 'cnn59m_*.plan'
        include 'FaceDet_v2_*.plan'
        include 'eyes_estimation_flwr8_*.plan'
        include 'eye_status_estimation_flwr_*.plan'
        include 'ags_angle_estimation_flwr_*.plan'
        include 'oslm_v3_model_1_*.plan'
        include 'oslm_v3_model_2_*.plan'
        include 'oslm_v3_model_3_*.plan'
        include 'oslm_v3_model_4_*.plan'
        include 'oslm_v3_model_5_*.plan'
        include 'oslm_v3_model_6_*.plan'
    }
    into 'src/main/assets/data'
}

dependencies {
    implementation 'javax.annotation:jsr250-api:1.0'

    implementation 'com.google.dagger:dagger:2.36'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.36'

    implementation 'com.jakewharton:butterknife:9.0.0-rc1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'

//    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    implementation 'com.google.code.gson:gson:2.8.6'
    implementation 'com.squareup.okhttp3:okhttp:4.9.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
    implementation 'info.android15.proxypref:proxypref:0.2.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.jakewharton:butterknife:8.4.0'
    implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.8.0@aar'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'io.reactivex:rxjava:1.2.1'
    implementation 'com.makeramen:roundedimageview:2.2.1'
    implementation 'com.trello:rxlifecycle:1.0'
    implementation 'com.trello:rxlifecycle-android:1.0'
    implementation 'com.trello:rxlifecycle-components:1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'com.github.f0ris.sweetalert:library:1.5.1'





//    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
    implementation 'io.github.inflationx:calligraphy3:3.1.1'
    implementation 'io.github.inflationx:viewpump:2.0.3'

//    implementation('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
//        transitive = true;
//    }
}