plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' id 'dagger.hilt.android.plugin' id 'org.jetbrains.kotlin.android' } android { compileSdk 33 buildToolsVersion "33.0.0" defaultConfig { applicationId "com.pixelized.biblib" minSdk 26 targetSdk 33 versionCode generateVersionCode() versionName "0.1.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation" : "$projectDir/schemas".toString(), "room.incremental" : "true", "room.expandProjection": "true" ] } } } signingConfigs { pixelized { storeFile file(project.properties["PIXELIZED_RELEASE_STORE_FILE"]) storePassword project.properties["PIXELIZED_RELEASE_STORE_PASSWORD"] keyAlias project.properties["PIXELIZED_RELEASE_KEY_ALIAS"] keyPassword project.properties["PIXELIZED_RELEASE_KEY_PASSWORD"] } } buildTypes { debug { applicationIdSuffix ".debug" signingConfig signingConfigs.pixelized minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { signingConfig signingConfigs.pixelized minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion '1.3.0' } packagingOptions { resources { excludes += '/META-INF/{AL2.0,LGPL2.1}' } } lint { disable 'MissingTranslation' } namespace 'com.pixelized.biblib' } dependencies { // Android core implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.0-beta01' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1' implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1" debugImplementation "androidx.activity:activity-ktx:1.6.0-rc01" implementation 'androidx.activity:activity-compose:1.5.1' // Android Compose implementation "androidx.compose.ui:ui:1.2.1" implementation "androidx.compose.ui:ui-util:1.2.1" implementation "androidx.compose.foundation:foundation:1.2.1" implementation "androidx.compose.material:material:1.2.1" implementation "androidx.constraintlayout:constraintlayout-compose:1.0.1" implementation "androidx.compose.runtime:runtime-livedata:1.2.1" implementation "androidx.compose.ui:ui-tooling-preview:1.2.1" debugImplementation "androidx.compose.ui:ui-tooling:1.2.1" // Paging implementation "androidx.paging:paging-compose:1.0.0-alpha16" // Material design icons implementation "androidx.compose.material:material-icons-core:1.2.1" implementation "androidx.compose.material:material-icons-extended:1.2.1" // Injection implementation 'androidx.hilt:hilt-navigation-compose:1.0.0' implementation "com.google.dagger:hilt-android:2.43.2" kapt "com.google.dagger:hilt-compiler:2.43.2" // Accompanist implementation "com.google.accompanist:accompanist-navigation-material:0.26.5-rc" implementation "com.google.accompanist:accompanist-systemuicontroller:0.26.5-rc" implementation "com.google.accompanist:accompanist-pager-indicators:0.26.5-rc" implementation "com.google.accompanist:accompanist-drawablepainter:0.26.5-rc" implementation "com.google.accompanist:accompanist-insets:0.26.5-rc" implementation "com.google.accompanist:accompanist-pager:0.26.5-rc" implementation "com.google.accompanist:accompanist-placeholder-material:0.26.5-rc" implementation "com.google.accompanist:accompanist-swiperefresh:0.26.5-rc" // Landscapist implementation "com.github.skydoves:landscapist-glide:1.5.2" kapt 'com.github.bumptech.glide:compiler:4.13.2' // this have to be align with landscapist-glide // Navigation implementation "androidx.navigation:navigation-compose:2.5.2" // Splash Screen support prior to Android 12 implementation "androidx.core:core-splashscreen:1.0.0" // Google sign in. implementation "com.google.android.gms:play-services-auth:20.3.0" // RetroFit & Gson for webservice call implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.google.code.gson:gson:2.8.9' // Logging Network Calls implementation "com.squareup.okhttp3:logging-interceptor:4.8.1" // Room implementation "androidx.room:room-runtime:2.4.3" implementation "androidx.room:room-ktx:2.4.3" kapt "androidx.room:room-compiler:2.4.3" } static def generateVersionCode() { def result = "git rev-list HEAD --count".execute().text.trim() //unix if (result.empty) result = "PowerShell -Command git rev-list HEAD --count".execute().text.trim() //windows if (result.empty) throw new RuntimeException("Could not generate versioncode on this platform? Cmd output: ${result.text}") return result.toInteger() }