plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' id 'org.jlleitschuh.gradle.ktlint' version '11.3.1' id 'org.jetbrains.kotlin.android' id 'com.google.gms.google-services' id 'androidx.navigation.safeargs.kotlin' } def packageName = "org.linphone" configurations { customImplementation.extendsFrom implementation } task linphoneSdkSource() { doLast { configurations.customImplementation.getIncoming().each { it.getResolutionResult().allComponents.each { if (it.id.getDisplayName().contains("linphone-sdk-android")) { println 'Linphone SDK used is ' + it.moduleVersion.version + ' from ' + it.properties["repositoryName"] } } } } } project.tasks['preBuild'].dependsOn 'linphoneSdkSource' android { namespace 'org.linphone' compileSdk 34 compileSdkPreview 'UpsideDownCake' defaultConfig { applicationId packageName minSdk 28 targetSdk 34 versionCode 60000 versionName "6.0.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { debug { resValue "string", "file_provider", packageName + ".fileprovider" } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' resValue "string", "file_provider", packageName + ".fileprovider" } } compileOptions { sourceCompatibility = 17 targetCompatibility = 17 } kotlinOptions { jvmTarget = '17' } buildFeatures { dataBinding true } namespace 'org.linphone' } dependencies { implementation "androidx.activity:activity-ktx:1.8.0" implementation "androidx.annotation:annotation:1.7.0" implementation "androidx.appcompat:appcompat:1.7.0-alpha03" implementation "androidx.constraintlayout:constraintlayout:2.1.4" implementation "androidx.core:core-ktx:1.12.0" implementation 'androidx.core:core-splashscreen:1.0.1' implementation "androidx.core:core-telecom:1.0.0-alpha02" implementation "androidx.media:media:1.6.0" implementation "androidx.fragment:fragment-ktx:1.6.2" implementation "androidx.recyclerview:recyclerview:1.3.2" implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0" implementation "androidx.window:window:1.1.0" def nav_version = "2.7.5" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" def emoji_version = "1.4.0" implementation "androidx.emoji2:emoji2:$emoji_version" implementation "androidx.emoji2:emoji2-emojipicker:$emoji_version" // https://github.com/google/flexbox-layout/blob/main/LICENSE Apache v2.0 implementation 'com.google.android.flexbox:flexbox:3.0.0' // https://github.com/material-components/material-components-android/blob/master/LICENSE Apache v2.0 implementation 'com.google.android.material:material:1.10.0' // https://github.com/coil-kt/coil/blob/main/LICENSE.txt Apache v2.0 def coil_version = "2.4.0" implementation("io.coil-kt:coil:$coil_version") implementation("io.coil-kt:coil-gif:$coil_version") implementation("io.coil-kt:coil-svg:$coil_version") implementation("io.coil-kt:coil-video:$coil_version") // https://github.com/tommybuonomo/dotsindicator/blob/master/LICENSE Apache v2.0 implementation("com.tbuonomo:dotsindicator:5.0") // https://github.com/Baseflow/PhotoView/blob/master/LICENSE Apache v2.0 implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation platform('com.google.firebase:firebase-bom:32.3.1') implementation 'com.google.firebase:firebase-messaging' implementation 'net.openid:appauth:0.11.1' android.defaultConfig.manifestPlaceholders = [appAuthRedirectScheme: 'org.linphone.sso'] //noinspection GradleDynamicVersion implementation 'org.linphone:linphone-sdk-android:5.3+' } ktlint { android = true ignoreFailures = true } project.tasks['preBuild'].dependsOn 'ktlintFormat'