mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 03:18:06 +00:00
Reworked Groovy gradle files to Kotlin
This commit is contained in:
parent
31580e6291
commit
f6545f5641
9 changed files with 339 additions and 269 deletions
|
|
@ -7,8 +7,8 @@ job-android:
|
||||||
before_script:
|
before_script:
|
||||||
- if ! [ -z ${SCP_PRIVATE_KEY+x} ]; then eval $(ssh-agent -s); fi
|
- if ! [ -z ${SCP_PRIVATE_KEY+x} ]; then eval $(ssh-agent -s); fi
|
||||||
- if ! [ -z ${SCP_PRIVATE_KEY+x} ]; then echo "$SCP_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null; fi
|
- if ! [ -z ${SCP_PRIVATE_KEY+x} ]; then echo "$SCP_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null; fi
|
||||||
- if ! [ -z ${ANDROID_SETTINGS_GRADLE+x} ]; then echo "$ANDROID_SETTINGS_GRADLE" > settings.gradle; fi
|
- if ! [ -z ${ANDROID_SETTINGS_GRADLE+x} ]; then echo "$ANDROID_SETTINGS_GRADLE" > settings.gradle.kts; fi
|
||||||
- git config --global --add safe.directory /builds/BC/public/linphone-android
|
- git config --global --add safe.directory /builds/BC/private/linphone-android-6.0
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ./gradlew app:dependencies | grep org.linphone
|
- ./gradlew app:dependencies | grep org.linphone
|
||||||
|
|
|
||||||
211
app/build.gradle
211
app/build.gradle
|
|
@ -1,211 +0,0 @@
|
||||||
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'
|
|
||||||
id 'com.google.firebase.crashlytics'
|
|
||||||
}
|
|
||||||
|
|
||||||
def packageName = "org.linphone"
|
|
||||||
def useDifferentPackageNameForDebugBuild = false
|
|
||||||
|
|
||||||
def crashlyticsAvailable = new File(projectDir.absolutePath +'/google-services.json').exists() && new File(LinphoneSdkBuildDir + '/libs/').exists() && new File(LinphoneSdkBuildDir + '/libs-debug/').exists()
|
|
||||||
|
|
||||||
configurations {
|
|
||||||
customImplementation.extendsFrom implementation
|
|
||||||
}
|
|
||||||
|
|
||||||
def gitBranch = new ByteArrayOutputStream()
|
|
||||||
def gitVersion = new ByteArrayOutputStream()
|
|
||||||
task getGitVersion() {
|
|
||||||
def gitVersionStream = new ByteArrayOutputStream()
|
|
||||||
def gitCommitsCount = new ByteArrayOutputStream()
|
|
||||||
def gitCommitHash = new ByteArrayOutputStream()
|
|
||||||
|
|
||||||
try {
|
|
||||||
exec {
|
|
||||||
executable "git" args "describe", "--abbrev=0"
|
|
||||||
standardOutput = gitVersionStream
|
|
||||||
}
|
|
||||||
exec {
|
|
||||||
executable "git" args "rev-list", gitVersionStream.toString().trim() + "..HEAD", "--count"
|
|
||||||
standardOutput = gitCommitsCount
|
|
||||||
}
|
|
||||||
exec {
|
|
||||||
executable "git" args "rev-parse", "--short", "HEAD"
|
|
||||||
standardOutput = gitCommitHash
|
|
||||||
}
|
|
||||||
exec {
|
|
||||||
executable "git" args "name-rev", "--name-only", "HEAD"
|
|
||||||
standardOutput = gitBranch
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gitCommitsCount.toString().toInteger() == 0) {
|
|
||||||
gitVersion = gitVersionStream.toString().trim()
|
|
||||||
} else {
|
|
||||||
gitVersion = gitVersionStream.toString().trim() + "." + gitCommitsCount.toString().trim() + "+" + gitCommitHash.toString().trim()
|
|
||||||
}
|
|
||||||
println("Git version: " + gitVersion)
|
|
||||||
} catch (ignored) {
|
|
||||||
println("Git not found [" + ignored + "], using " + gitVersion)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register('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 'getGitVersion'
|
|
||||||
project.tasks.preBuild.dependsOn 'linphoneSdkSource'
|
|
||||||
|
|
||||||
android {
|
|
||||||
namespace 'org.linphone'
|
|
||||||
compileSdk 34
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
applicationId packageName
|
|
||||||
minSdk 28
|
|
||||||
targetSdk 34
|
|
||||||
versionCode 60000
|
|
||||||
versionName "6.0.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
applicationVariants.configureEach { variant ->
|
|
||||||
variant.outputs.configureEach {
|
|
||||||
outputFileName = "linphone-android-${variant.buildType.name}-${versionName}.apk"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
debug {
|
|
||||||
if (useDifferentPackageNameForDebugBuild) {
|
|
||||||
applicationIdSuffix ".debug"
|
|
||||||
}
|
|
||||||
debuggable true
|
|
||||||
jniDebuggable true
|
|
||||||
|
|
||||||
if (useDifferentPackageNameForDebugBuild) {
|
|
||||||
resValue "string", "file_provider", packageName + ".debug.fileprovider"
|
|
||||||
} else {
|
|
||||||
resValue "string", "file_provider", packageName + ".fileprovider"
|
|
||||||
}
|
|
||||||
resValue "string", "linphone_app_version", gitVersion.toString().trim()
|
|
||||||
resValue "string", "linphone_app_branch", gitBranch.toString().trim()
|
|
||||||
|
|
||||||
if (crashlyticsAvailable) {
|
|
||||||
firebaseCrashlytics {
|
|
||||||
nativeSymbolUploadEnabled true
|
|
||||||
unstrippedNativeLibsDir file(LinphoneSdkBuildDir + '/libs-debug/').toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
release {
|
|
||||||
minifyEnabled true
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
||||||
|
|
||||||
resValue "string", "file_provider", packageName + ".fileprovider"
|
|
||||||
resValue "string", "linphone_app_version", gitVersion.toString().trim()
|
|
||||||
resValue "string", "linphone_app_branch", gitBranch.toString().trim()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
compileOptions {
|
|
||||||
sourceCompatibility = 17
|
|
||||||
targetCompatibility = 17
|
|
||||||
}
|
|
||||||
kotlinOptions {
|
|
||||||
jvmTarget = '17'
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFeatures {
|
|
||||||
dataBinding true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace 'org.linphone'
|
|
||||||
lint {
|
|
||||||
abortOnError false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation 'androidx.annotation:annotation:1.8.0'
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.7.0-rc01'
|
|
||||||
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
|
|
||||||
implementation "androidx.core:core-ktx:1.13.1"
|
|
||||||
implementation 'androidx.core:core-splashscreen:1.2.0-alpha01'
|
|
||||||
implementation "androidx.core:core-telecom:1.0.0-alpha03"
|
|
||||||
implementation "androidx.media:media:1.7.0"
|
|
||||||
implementation "androidx.recyclerview:recyclerview:1.3.2"
|
|
||||||
implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
|
|
||||||
implementation "androidx.window:window:1.2.0"
|
|
||||||
implementation 'androidx.gridlayout:gridlayout:1.0.0'
|
|
||||||
// For VFS
|
|
||||||
implementation "androidx.security:security-crypto-ktx:1.1.0-alpha06"
|
|
||||||
|
|
||||||
def nav_version = "2.7.7"
|
|
||||||
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-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.11.0'
|
|
||||||
|
|
||||||
// https://github.com/coil-kt/coil/blob/main/LICENSE.txt Apache v2.0
|
|
||||||
def coil_version = "2.6.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.8.1')
|
|
||||||
implementation 'com.google.firebase:firebase-messaging'
|
|
||||||
implementation 'com.google.firebase:firebase-crashlytics-ndk'
|
|
||||||
|
|
||||||
// https://github.com/openid/AppAuth-Android/blob/master/LICENSE Apache v2.0
|
|
||||||
implementation 'net.openid:appauth:0.11.1'
|
|
||||||
//noinspection GroovyConstructorNamedArguments
|
|
||||||
android.defaultConfig.manifestPlaceholders = [appAuthRedirectScheme: 'org.linphone']
|
|
||||||
|
|
||||||
// To be able to parse native crash tombstone and print them with SDK logs the next time the app will start
|
|
||||||
implementation "com.google.protobuf:protobuf-javalite:3.22.3"
|
|
||||||
|
|
||||||
//noinspection GradleDynamicVersion
|
|
||||||
implementation 'org.linphone:linphone-sdk-android:5.4.+'
|
|
||||||
}
|
|
||||||
|
|
||||||
ktlint {
|
|
||||||
android = true
|
|
||||||
ignoreFailures = true
|
|
||||||
}
|
|
||||||
|
|
||||||
project.tasks.preBuild.dependsOn 'ktlintFormat'
|
|
||||||
|
|
||||||
if (crashlyticsAvailable) {
|
|
||||||
afterEvaluate {
|
|
||||||
assembleDebug.finalizedBy(uploadCrashlyticsSymbolFileDebug)
|
|
||||||
packageDebug.finalizedBy(uploadCrashlyticsSymbolFileDebug)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
218
app/build.gradle.kts
Normal file
218
app/build.gradle.kts
Normal file
|
|
@ -0,0 +1,218 @@
|
||||||
|
import com.android.build.gradle.internal.tasks.factory.dependsOn
|
||||||
|
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.androidApplication)
|
||||||
|
alias(libs.plugins.kapt)
|
||||||
|
alias(libs.plugins.ktlint)
|
||||||
|
alias(libs.plugins.jetbrainsKotlinAndroid)
|
||||||
|
alias(libs.plugins.navigation)
|
||||||
|
alias(libs.plugins.googleGmsServices)
|
||||||
|
alias(libs.plugins.crashlytics)
|
||||||
|
}
|
||||||
|
|
||||||
|
val packageName = "org.linphone"
|
||||||
|
val useDifferentPackageNameForDebugBuild = false
|
||||||
|
|
||||||
|
val sdkPath = providers.gradleProperty("LinphoneSdkBuildDir").get()
|
||||||
|
val googleServices = File(projectDir.absolutePath + "/google-services.json")
|
||||||
|
val linphoneLibs = File("$sdkPath/libs/")
|
||||||
|
val linphoneDebugLibs = File("$sdkPath/libs-debug/")
|
||||||
|
val crashlyticsAvailable = googleServices.exists() && linphoneLibs.exists() && linphoneDebugLibs.exists()
|
||||||
|
|
||||||
|
var gitBranch = ByteArrayOutputStream()
|
||||||
|
var gitVersion = "6.0.0"
|
||||||
|
|
||||||
|
task("getGitVersion") {
|
||||||
|
val gitVersionStream = ByteArrayOutputStream()
|
||||||
|
val gitCommitsCount = ByteArrayOutputStream()
|
||||||
|
val gitCommitHash = ByteArrayOutputStream()
|
||||||
|
|
||||||
|
try {
|
||||||
|
exec {
|
||||||
|
commandLine("git", "describe", "--abbrev=0")
|
||||||
|
standardOutput = gitVersionStream
|
||||||
|
}
|
||||||
|
exec {
|
||||||
|
commandLine(
|
||||||
|
"git",
|
||||||
|
"rev-list",
|
||||||
|
gitVersionStream.toString().trim() + "..HEAD",
|
||||||
|
"--count"
|
||||||
|
)
|
||||||
|
standardOutput = gitCommitsCount
|
||||||
|
}
|
||||||
|
exec {
|
||||||
|
commandLine("git", "rev-parse", "--short", "HEAD")
|
||||||
|
standardOutput = gitCommitHash
|
||||||
|
}
|
||||||
|
exec {
|
||||||
|
commandLine("git", "name-rev", "--name-only", "HEAD")
|
||||||
|
standardOutput = gitBranch
|
||||||
|
}
|
||||||
|
|
||||||
|
gitVersion = if (gitCommitsCount.toString().trim().toInt() == 0) {
|
||||||
|
gitVersionStream.toString().trim()
|
||||||
|
} else {
|
||||||
|
gitVersionStream.toString().trim() + "." + gitCommitsCount.toString()
|
||||||
|
.trim() + "+" + gitCommitHash.toString().trim()
|
||||||
|
}
|
||||||
|
println("Git version: $gitVersion")
|
||||||
|
} catch (e: Exception) {
|
||||||
|
println("Git not found [$e], using $gitVersion")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
project.tasks.preBuild.dependsOn("getGitVersion")
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
implementation { isCanBeResolved = true }
|
||||||
|
}
|
||||||
|
task("linphoneSdkSource") {
|
||||||
|
doLast {
|
||||||
|
configurations.implementation.get().incoming.resolutionResult.allComponents.forEach {
|
||||||
|
if (it.id.displayName.contains("linphone-sdk-android")) {
|
||||||
|
println("Linphone SDK used is ${it.moduleVersion?.version}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
project.tasks.preBuild.dependsOn("linphoneSdkSource")
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "org.linphone"
|
||||||
|
compileSdk = 34
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
applicationId = packageName
|
||||||
|
minSdk = 28
|
||||||
|
targetSdk = 34
|
||||||
|
versionCode = 60000
|
||||||
|
versionName = "6.0.0"
|
||||||
|
|
||||||
|
manifestPlaceholders["appAuthRedirectScheme"] = "org.linphone"
|
||||||
|
}
|
||||||
|
|
||||||
|
applicationVariants.all {
|
||||||
|
val variant = this
|
||||||
|
variant.outputs
|
||||||
|
.map { it as com.android.build.gradle.internal.api.BaseVariantOutputImpl }
|
||||||
|
.forEach { output ->
|
||||||
|
output.outputFileName = "linphone-android-${variant.buildType.name}-$versionName.apk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
getByName("debug") {
|
||||||
|
if (useDifferentPackageNameForDebugBuild) {
|
||||||
|
applicationIdSuffix = ".debug"
|
||||||
|
}
|
||||||
|
isDebuggable = true
|
||||||
|
isJniDebuggable = true
|
||||||
|
|
||||||
|
if (useDifferentPackageNameForDebugBuild) {
|
||||||
|
resValue("string", "file_provider", "$packageName.debug.fileprovider")
|
||||||
|
} else {
|
||||||
|
resValue("string", "file_provider", "$packageName.fileprovider")
|
||||||
|
}
|
||||||
|
resValue("string", "linphone_app_version", gitVersion.trim())
|
||||||
|
resValue("string", "linphone_app_branch", gitBranch.toString().trim())
|
||||||
|
|
||||||
|
if (crashlyticsAvailable) {
|
||||||
|
configure<CrashlyticsExtension> {
|
||||||
|
nativeSymbolUploadEnabled = true
|
||||||
|
unstrippedNativeLibsDir = File("$sdkPath/libs-debug/").toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getByName("release") {
|
||||||
|
isMinifyEnabled = true
|
||||||
|
proguardFiles(
|
||||||
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||||
|
"proguard-rules.pro"
|
||||||
|
)
|
||||||
|
|
||||||
|
resValue("string", "file_provider", "$packageName.fileprovider")
|
||||||
|
resValue("string", "linphone_app_version", gitVersion.trim())
|
||||||
|
resValue("string", "linphone_app_branch", gitBranch.toString().trim())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = "17"
|
||||||
|
}
|
||||||
|
|
||||||
|
buildFeatures {
|
||||||
|
dataBinding = true
|
||||||
|
}
|
||||||
|
|
||||||
|
lint {
|
||||||
|
abortOnError = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(libs.androidx.annotations)
|
||||||
|
implementation(libs.androidx.appcompat)
|
||||||
|
implementation(libs.androidx.constraint.layout)
|
||||||
|
implementation(libs.androidx.core.ktx)
|
||||||
|
implementation(libs.androidx.splashscreen)
|
||||||
|
implementation(libs.androidx.telecom)
|
||||||
|
implementation(libs.androidx.media)
|
||||||
|
implementation(libs.androidx.recyclerview)
|
||||||
|
implementation(libs.androidx.slidingpanelayout)
|
||||||
|
implementation(libs.androidx.window)
|
||||||
|
implementation(libs.androidx.gridlayout)
|
||||||
|
implementation(libs.androidx.security.crypto.ktx)
|
||||||
|
implementation(libs.androidx.navigation.fragment.ktx)
|
||||||
|
implementation(libs.androidx.navigation.ui.ktx)
|
||||||
|
implementation(libs.androidx.emoji2)
|
||||||
|
|
||||||
|
// https://github.com/google/flexbox-layout/blob/main/LICENSE Apache v2.0
|
||||||
|
implementation(libs.google.flexbox)
|
||||||
|
// https://github.com/material-components/material-components-android/blob/master/LICENSE Apache v2.0
|
||||||
|
implementation(libs.google.material)
|
||||||
|
// To be able to parse native crash tombstone and print them with SDK logs the next time the app will start
|
||||||
|
implementation(libs.google.protobuf)
|
||||||
|
|
||||||
|
implementation(platform(libs.google.firebase.bom))
|
||||||
|
implementation(libs.google.firebase.messaging)
|
||||||
|
implementation(libs.google.firebase.crashlytics)
|
||||||
|
|
||||||
|
// https://github.com/coil-kt/coil/blob/main/LICENSE.txt Apache v2.0
|
||||||
|
implementation(libs.coil)
|
||||||
|
implementation(libs.coil.gif)
|
||||||
|
implementation(libs.coil.svg)
|
||||||
|
implementation(libs.coil.video)
|
||||||
|
// https://github.com/tommybuonomo/dotsindicator/blob/master/LICENSE Apache v2.0
|
||||||
|
implementation(libs.dots.indicator)
|
||||||
|
// https://github.com/Baseflow/PhotoView/blob/master/LICENSE Apache v2.0
|
||||||
|
implementation(libs.photoview)
|
||||||
|
// https://github.com/openid/AppAuth-Android/blob/master/LICENSE Apache v2.0
|
||||||
|
implementation(libs.openid.appauth)
|
||||||
|
|
||||||
|
implementation(libs.linphone)
|
||||||
|
}
|
||||||
|
|
||||||
|
ktlint {
|
||||||
|
android = true
|
||||||
|
ignoreFailures = true
|
||||||
|
}
|
||||||
|
project.tasks.preBuild.dependsOn("ktlintFormat")
|
||||||
|
|
||||||
|
if (crashlyticsAvailable) {
|
||||||
|
afterEvaluate {
|
||||||
|
tasks.getByName("assembleDebug").finalizedBy(
|
||||||
|
tasks.getByName("uploadCrashlyticsSymbolFileDebug")
|
||||||
|
)
|
||||||
|
tasks.getByName("packageDebug").finalizedBy(
|
||||||
|
tasks.getByName("uploadCrashlyticsSymbolFileDebug")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
2
app/proguard-rules.pro
vendored
2
app/proguard-rules.pro
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
# Add project specific ProGuard rules here.
|
# Add project specific ProGuard rules here.
|
||||||
# You can control the set of applied configuration files using the
|
# You can control the set of applied configuration files using the
|
||||||
# proguardFiles setting in build.gradle.
|
# proguardFiles setting in build.gradle.kts.
|
||||||
#
|
#
|
||||||
# For more details, see
|
# For more details, see
|
||||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||||
|
|
|
||||||
22
build.gradle
22
build.gradle
|
|
@ -1,22 +0,0 @@
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
def nav_version = "2.7.7"
|
|
||||||
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
|
|
||||||
|
|
||||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
||||||
plugins {
|
|
||||||
id 'com.android.application' version '8.4.0' apply false
|
|
||||||
id 'com.android.library' version '8.4.0' apply false
|
|
||||||
id 'org.jetbrains.kotlin.android' version '1.9.23' apply false
|
|
||||||
id 'com.google.gms.google-services' version '4.4.1' apply false
|
|
||||||
}
|
|
||||||
|
|
||||||
task clean(type: Delete) {
|
|
||||||
delete rootProject.buildDir
|
|
||||||
}
|
|
||||||
8
build.gradle.kts
Normal file
8
build.gradle.kts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.androidApplication) apply false
|
||||||
|
alias(libs.plugins.jetbrainsKotlinAndroid) apply false
|
||||||
|
alias(libs.plugins.kapt) apply false
|
||||||
|
alias(libs.plugins.navigation) apply false
|
||||||
|
alias(libs.plugins.googleGmsServices) apply false
|
||||||
|
alias(libs.plugins.crashlytics) apply false
|
||||||
|
}
|
||||||
73
gradle/libs.versions.toml
Normal file
73
gradle/libs.versions.toml
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
[versions]
|
||||||
|
agp = "8.4.0"
|
||||||
|
kotlin = "1.9.23"
|
||||||
|
gmsGoogleServices = "4.4.1"
|
||||||
|
firebaseCrashlytics = "2.9.9"
|
||||||
|
firebaseBomVersion = "32.8.1"
|
||||||
|
ktlint = "11.3.1"
|
||||||
|
|
||||||
|
annotations = "1.8.0"
|
||||||
|
appcompat = "1.7.0-rc01"
|
||||||
|
constraintLayout = "2.1.4"
|
||||||
|
coreKtx = "1.13.1"
|
||||||
|
splashscreen = "1.2.0-alpha01"
|
||||||
|
telecom = "1.0.0-alpha03"
|
||||||
|
media = "1.7.0"
|
||||||
|
recyclerview = "1.3.2"
|
||||||
|
slidingpanelayout = "1.2.0"
|
||||||
|
window = "1.2.0"
|
||||||
|
gridlayout = "1.0.0"
|
||||||
|
securityCryptoKtx = "1.1.0-alpha06"
|
||||||
|
navigation = "2.7.7"
|
||||||
|
emoji2 = "1.4.0"
|
||||||
|
flexbox = "3.0.0"
|
||||||
|
material = "1.11.0"
|
||||||
|
protobuf = "3.22.3"
|
||||||
|
coil = "2.6.0"
|
||||||
|
dotsIndicator = "5.0"
|
||||||
|
photoview = "2.3.0"
|
||||||
|
openidAppauth = "0.11.1"
|
||||||
|
linphone = "5.4.+"
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
androidx-annotations = { group = "androidx.annotation", name = "annotation", version.ref = "annotations" }
|
||||||
|
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
||||||
|
androidx-constraint-layout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintLayout" }
|
||||||
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
||||||
|
androidx-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "splashscreen" }
|
||||||
|
androidx-telecom = { group = "androidx.core", name = "core-telecom", version.ref = "telecom" }
|
||||||
|
androidx-media = { group = "androidx.media", name = "media", version.ref = "media" }
|
||||||
|
androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
|
||||||
|
androidx-slidingpanelayout = { group = "androidx.slidingpanelayout", name = "slidingpanelayout", version.ref = "slidingpanelayout" }
|
||||||
|
androidx-window = { group = "androidx.window", name = "window", version.ref = "window" }
|
||||||
|
androidx-gridlayout = { group = "androidx.gridlayout", name = "gridlayout", version.ref = "gridlayout" }
|
||||||
|
androidx-security-crypto-ktx = { group = "androidx.security", name = "security-crypto-ktx", version.ref = "securityCryptoKtx" }
|
||||||
|
androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigation" }
|
||||||
|
androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigation" }
|
||||||
|
androidx-emoji2 = { group = "androidx.emoji2", name = "emoji2-emojipicker", version.ref = "emoji2" }
|
||||||
|
|
||||||
|
google-firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBomVersion" }
|
||||||
|
google-firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" }
|
||||||
|
google-firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ndk" }
|
||||||
|
google-flexbox = { group = "com.google.android.flexbox", name = "flexbox", version.ref = "flexbox" }
|
||||||
|
google-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||||
|
google-protobuf = { group = "com.google.protobuf", name = "protobuf-javalite", version.ref = "protobuf" }
|
||||||
|
|
||||||
|
coil = { group = "io.coil-kt", name = "coil", version.ref = "coil" }
|
||||||
|
coil-gif = { group = "io.coil-kt", name = "coil-gif", version.ref = "coil" }
|
||||||
|
coil-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" }
|
||||||
|
coil-video = { group = "io.coil-kt", name = "coil-video", version.ref = "coil" }
|
||||||
|
dots-indicator = { group = "com.tbuonomo", name = "dotsindicator", version.ref = "dotsIndicator" }
|
||||||
|
photoview = { group = "com.github.chrisbanes", name = "PhotoView", version.ref = "photoview" }
|
||||||
|
openid-appauth = { group = "net.openid", name = "appauth", version.ref = "openidAppauth" }
|
||||||
|
|
||||||
|
linphone = { group = "org.linphone", name = "linphone-sdk-android", version.ref = "linphone" }
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
||||||
|
jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||||||
|
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
|
||||||
|
navigation = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navigation" }
|
||||||
|
crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlytics" }
|
||||||
|
googleGmsServices = { id = "com.google.gms.google-services", version.ref = "gmsGoogleServices" }
|
||||||
|
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
pluginManagement {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
mavenCentral()
|
|
||||||
gradlePluginPortal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dependencyResolutionManagement {
|
|
||||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
mavenCentral()
|
|
||||||
maven { url "https://www.jitpack.io" } // for com.github.chrisbanes:PhotoView
|
|
||||||
|
|
||||||
maven {
|
|
||||||
name "local linphone-sdk maven repository"
|
|
||||||
url file(LinphoneSdkBuildDir + '/maven_repository/')
|
|
||||||
content {
|
|
||||||
includeGroup "org.linphone"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
maven {
|
|
||||||
name "linphone.org maven repository"
|
|
||||||
url "https://linphone.org/maven_repository"
|
|
||||||
content {
|
|
||||||
includeGroup "org.linphone"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
rootProject.name = "Linphone"
|
|
||||||
include ':app'
|
|
||||||
37
settings.gradle.kts
Normal file
37
settings.gradle.kts
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencyResolutionManagement {
|
||||||
|
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
maven { // for com.github.chrisbanes:PhotoView
|
||||||
|
url = uri("https://www.jitpack.io")
|
||||||
|
}
|
||||||
|
|
||||||
|
maven {
|
||||||
|
name = "local linphone-sdk maven repository"
|
||||||
|
url = uri("file://${providers.gradleProperty("LinphoneSdkBuildDir").get()}/maven_repository/")
|
||||||
|
content {
|
||||||
|
includeGroup ("org.linphone")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
maven {
|
||||||
|
name = "linphone.org maven repository"
|
||||||
|
url = uri("https://linphone.org/maven_repository")
|
||||||
|
content {
|
||||||
|
includeGroup ("org.linphone")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rootProject.name = "Linphone"
|
||||||
|
include(":app")
|
||||||
Loading…
Add table
Reference in a new issue