Skip to content
Snippets Groups Projects
build.gradle 3.38 KiB
apply plugin: 'com.android.application'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'

android {
    compileSdk rootProject.ext.sdk_version

    defaultConfig {
        applicationId "org.futo.circles"
        minSdk rootProject.ext.min_sdk_version
        targetSdk rootProject.ext.sdk_version
        versionCode 31
        versionName "1.0.21"
        archivesBaseName = "circles-v${versionName}"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildFeatures {
        viewBinding true
        buildConfig true
    }

    signingConfigs {
        release {
            Properties properties = new Properties()
            if (rootProject.file("signing.properties").exists()) {
                properties.load(rootProject.file("signing.properties").newDataInputStream())
            }
            storeFile file(properties.getProperty("KEY_PATH"))
            storePassword properties.getProperty("KEY_PASSWORD")
            keyAlias properties.getProperty("ALIAS_NAME")
            keyPassword properties.getProperty("KEY_PASSWORD")
        }
    }

    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    def flavor_dimension_name = "store"
    flavorDimensions.add(flavor_dimension_name)
    productFlavors {
        gplay {
            dimension flavor_dimension_name
        }
        fdroid {
            dimension flavor_dimension_name
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
        freeCompilerArgs += [
                "-opt-in=kotlinx.coroutines.FlowPreview",
                "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
        ]
    }
    namespace 'org.futo.circles'
}

dependencies {
    implementation project(path: ':core')
    implementation project(path: ':auth')
    implementation project(path: ':gallery')

    //Firebase
    gplayImplementation platform('com.google.firebase:firebase-bom:32.7.0')
    gplayImplementation 'com.google.firebase:firebase-crashlytics-ktx'
    gplayImplementation 'com.google.firebase:firebase-analytics-ktx'
    gplayImplementation 'com.google.firebase:firebase-messaging-ktx'

    // UnifiedPush
    implementation 'com.github.UnifiedPush:android-connector:2.1.1'

    //Emoji
    implementation 'com.vanniktech:emoji-google:0.18.0'

    //Log
    implementation 'com.jakewharton.timber:timber:5.0.1'

    //Hilt
    implementation "com.google.dagger:hilt-android:$rootProject.ext.hilt_version"
    kapt "com.google.dagger:hilt-compiler:$rootProject.ext.hilt_version"

    //test
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

kapt {
    correctErrorTypes = true
}

if (getGradle().getStartParameter().getTaskRequests().toString().toLowerCase().contains("gplay")) {
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'
}