summaryrefslogtreecommitdiff
path: root/app/build.gradle
blob: dbbfa4788b37644753e99b123a3fe3a977af5578 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
}

android {
    compileSdkVersion buildConfig.compileSdk

    defaultConfig {
        applicationId "foundation.e.privacycentralapp"
        minSdkVersion buildConfig.minSdk
        targetSdkVersion buildConfig.targetSdk
        versionCode buildConfig.version.code
        versionName buildConfig.version.fullName

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        manifestPlaceholders = [ persistent: "false" ]

        resValue("string", "mapbox_key", MAPBOX_KEY)
    }

    signingConfigs {
        debug {
            storeFile rootProject.file(".sign/debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }

        // We use test platform keys to sign /e/OS specific debug flavour.
        eDebug {
            storeFile rootProject.file(".sign/platform.jks")
            storePassword "android"
            keyAlias "platform"
            keyPassword "android"
        }
    }

    // We define here  the OS flavor e, specific for the /e/ OS version, and google, for any
    // android device. The e or google prefix is then used in resources, dependencies, ... as
    // expected by the android gradle plugin.
    flavorDimensions 'os'
    productFlavors {
        e29 {
            applicationIdSuffix '.e'
            dimension 'os'
            minSdkVersion 26
            targetSdkVersion 29
        }
        e30 {
            applicationIdSuffix '.e'
            dimension 'os'
            minSdkVersion 30
            targetSdkVersion 30
        }
//        google {
//            applicationIdSuffix '.google'
//            dimension 'os'
//        }
    }

    buildTypes {
        debug {
            signingConfig null  // Set signing config to null as we use signingConfig per variant.
        }
        release {
            manifestPlaceholders = [ persistent: "true" ]

            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    /**
     * Sets the output name of the variant outputs and also it setup signingConfig based on the product flavor.
     */
    applicationVariants.all { variant ->
        if (variant.buildType.name == "debug") {
            variant.outputs.all { output ->
                outputFileName = "PrivacyCentral-${output.name}-${variant.versionName}.apk"
            }
            if (variant.getFlavorName() == "e29" || variant.getFlavorName() == "e30") {
                variant.mergedFlavor.signingConfig = signingConfigs.eDebug
            } else {
                variant.mergedFlavor.signingConfig = signingConfigs.debug
            }
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    aaptOptions {
        additionalParameters '-I', 'app/libs/e-ui-sdk-1.0.1-q.jar'
    }

    buildFeatures {
        dataBinding true
        viewBinding true
    }
}

dependencies {
    implementation 'androidx.work:work-runtime-ktx:2.5.0'
    compileOnly files('libs/e-ui-sdk-1.0.1-q.jar')
    implementation files('libs/lineage-sdk.jar')
    // include the google specific version of the modules, just for the google flavor
    //googleImplementation project(":privacymodulesgoogle")
    // include the e specific version of the modules, just for the e flavor

    implementation 'foundation.e:privacymodule.trackerfilter:0.6.0'
    implementation 'foundation.e:privacymodule.api:1.0.0'
    e29Implementation 'foundation.e:privacymodule.e-29:0.4.2'
    e30Implementation 'foundation.e:privacymodule.e-30:0.4.2'
    implementation 'foundation.e:privacymodule.tor:0.2.2'

    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

    implementation project(":flow-mvi")
    implementation Libs.Kotlin.stdlib
    implementation Libs.AndroidX.coreKtx
    implementation Libs.AndroidX.Fragment.fragmentKtx
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation Libs.AndroidX.Lifecycle.runtime
    implementation Libs.AndroidX.Lifecycle.viewmodel

    implementation Libs.MapBox.sdk
    implementation 'com.google.android.material:material:1.4.0-beta01'

    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

static def log(Object val) {
    println("[GradleRepository]: " + val)
}