plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'com.google.dagger.hilt.android' id 'kotlin-kapt' } Properties properties = new Properties() boolean propertiesFileExists = project.rootProject.file('local.properties').canRead() if (propertiesFileExists) properties.load(project.rootProject.file('local.properties').newDataInputStream()) def keystoreFile = project.rootProject.file("app/keystore.jks") android { compileSdk = Integer.parseInt(TARGET_SDK_VERSION) namespace "com.appttude.h_mal.easycc" defaultConfig { applicationId "com.appttude.h_mal.easycc" minSdkVersion MIN_SDK_VERSION targetSdkVersion TARGET_SDK_VERSION versionCode 5 versionName "4.1" testInstrumentationRunner "com.appttude.h_mal.easycc.application.TestRunner" } signingConfigs { release { storePassword System.getProperty("RELEASE_STORE_PASSWORD") ?: properties.getProperty('RELEASE_STORE_PASSWORD') keyPassword System.getProperty("RELEASE_KEY_PASSWORD") ?: properties.getProperty('RELEASE_KEY_PASSWORD') keyAlias System.getProperty("RELEASE_KEY_ALIAS") ?: properties.getProperty('RELEASE_KEY_ALIAS') storeFile keystoreFile.exists() ? keystoreFile : null } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } staging { initWith debug manifestPlaceholders = [hostName:"internal.example.com"] applicationIdSuffix ".debugStaging" } } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } buildFeatures { viewBinding true } // java { // toolchain { // languageVersion.set(JavaLanguageVersion.of(21)) // } // } } dependencies { implementation "androidx.core:core-ktx:$ANDROID_CORE_VERSION" implementation "androidx.appcompat:appcompat:$APP_COMPAT" implementation "androidx.annotation:annotation:$ANNOTATION_VERSION" implementation "androidx.constraintlayout:constraintlayout:$CONSTR_LAYOUT_VERSION" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$ANDROID_LIFECYCLE" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$ANDROID_LIFECYCLE" implementation "androidx.activity:activity-ktx:$ACTIVITY_VERSION" testImplementation "junit:junit:$JUNIT_VERSION" androidTestImplementation "androidx.test.ext:junit:$TEST_JUNIT_VERSION" androidTestImplementation "androidx.test.espresso:espresso-core:$ESPRESSO_VERSION" androidTestImplementation "androidx.test:rules:$TEST_RULE" implementation "androidx.tracing:tracing:1.1.0" implementation "org.jetbrains.kotlin:kotlin-test:$KOTLIN_VERSION" // Coroutines testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$KOTLINX_COROUTINES" //Retrofit and GSON implementation "com.squareup.retrofit2:retrofit:$RETROFIT_VERSION" implementation "com.squareup.retrofit2:converter-gson:$RETROFIT_VERSION" implementation "com.squareup.okhttp3:logging-interceptor:$OKHTTP_VERSION" // ViewModel and LiveData implementation "androidx.lifecycle:lifecycle-extensions:$LIFECYCLE_EXTENSION" //New Material Design implementation "com.google.android.material:material:$MATERIAL_VERSION" // Hilt dependency injection implementation "com.google.dagger:hilt-android:$HILT_VERSION" kapt "com.google.dagger:hilt-compiler:$HILT_VERSION" androidTestImplementation "com.google.dagger:hilt-android-testing:$HILT_VERSION" kaptAndroidTest "com.google.dagger:hilt-android-compiler:$HILT_VERSION" //mockito and livedata testing testImplementation "org.mockito:mockito-core:$MOKITO_CORE_VERSION" testImplementation "androidx.arch.core:core-testing:$CORE_TEST_VERSION" implementation "androidx.preference:preference-ktx:$PREFERENCES_VERSION" //mock websever for testing retrofit responses testImplementation "com.squareup.okhttp3:mockwebserver:4.9.0" testImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0" implementation "org.jetbrains.kotlin:kotlin-test:1.9.20" }