apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion COMPILE_SDK_VERSION

    defaultConfig {
        applicationId "aculix.channelify.app"
        minSdkVersion 21
        targetSdkVersion TARGET_SDK_VERSION
        versionCode 7
        versionName "1.32"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        debug {
            resValue "string", "youtube_api_key", YT_API_KEY
        }

        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            resValue "string", "youtube_api_key", YT_API_KEY
        }
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

    viewBinding {
        enabled = true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    packagingOptions {
        exclude 'META-INF/core_release.kotlin_module'
    }
}

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

    // Kotlin
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"

    // Kotlin Coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$coroutinesVersion"

    // Koin
    implementation "org.koin:koin-android:$koinVersion"
    implementation "org.koin:koin-androidx-viewmodel:$koinVersion"

    // AndroidX
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.core:core-ktx:1.3.0-rc01'
    implementation "androidx.constraintlayout:constraintlayout:$clVersion"
    implementation "androidx.recyclerview:recyclerview:1.1.0"

    // Architecture Components
    implementation "androidx.lifecycle:lifecycle-extensions:$archVersion"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$archVersion"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$archVersion"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:$archVersion"

    // Room
    implementation "androidx.room:room-runtime:$roomVersion"
    implementation "androidx.room:room-ktx:$roomVersion"
    kapt "androidx.room:room-compiler:$roomVersion"

    // Material theme
    implementation "com.google.android.material:material:$materialThemeVersion"

    // Navigation
    implementation "androidx.navigation:navigation-fragment-ktx:$navVersion"
    implementation "androidx.navigation:navigation-ui-ktx:$navVersion"

    // Retrofit, OkHttp & Gson
    implementation "com.squareup.retrofit2:retrofit:2.8.1"
    implementation 'com.squareup.retrofit2:converter-gson:2.8.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:4.2.2'

    // Timber
    implementation "com.jakewharton.timber:timber:$timberVersion"

    // Fast Adapter
    implementation "com.mikepenz:fastadapter:$fastAdapterVersion"
    implementation "com.mikepenz:fastadapter-extensions-diff:$fastAdapterVersion"
    implementation "com.mikepenz:fastadapter-extensions-utils:$fastAdapterVersion"
    implementation "com.mikepenz:fastadapter-extensions-ui:$fastAdapterVersion"
    implementation "com.mikepenz:fastadapter-extensions-paged:$fastAdapterVersion"
    implementation "com.mikepenz:itemanimators:1.1.0"

    // Coil
    implementation "io.coil-kt:coil:0.10.0"

    // Paging
    implementation "androidx.paging:paging-runtime:2.1.2"

    // TimeAgo
    implementation 'com.github.marlonlom:timeago:4.0.1'

    // YouTube Player
    implementation 'com.pierfrancescosoffritti.androidyoutubeplayer:core:10.0.5'

    // Circle ImageView
    implementation 'de.hdodenhof:circleimageview:3.1.0'

    // Material Dialog
    implementation "com.afollestad.material-dialogs:core:$materialDialogVersion"
    implementation "com.afollestad.material-dialogs:bottomsheets:$materialDialogVersion"

    // Kotpref
    implementation 'com.chibatching.kotpref:kotpref:2.10.0'

    // Firebase
    implementation 'com.google.firebase:firebase-analytics:17.4.0'
    implementation 'com.google.firebase:firebase-messaging:20.1.6'
    implementation 'com.google.android.gms:play-services-ads:19.1.0'

    // Custom Tabs
    implementation "saschpe.android:customtabs:$saschpeCustomTabs"
    implementation "androidx.browser:browser:$browserVersion"

    // Modules
    implementation project(':core')
}
