diff --git a/.gitignore b/.gitignore
index 13a14ee3e..1b94dd9f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,7 +14,7 @@ default.properties
doc
gen
liblinphone-junit-report.xml
-liblinphone-sdk
+liblinphone-sdk/android-*
liblinphonetester_*.zip
libs
libs-debug
@@ -29,8 +29,6 @@ proguard-project.txt
project.properties
res/.DS_Store
res/raw/lpconfig.xsd
-res/raw/rootca.pem
-res/raw/*_grammar
submodules/externals/build/cunit/CUnit/
submodules/externals/build/ffmpeg/arm/
submodules/externals/build/ffmpeg/x86
diff --git a/build.gradle b/build.gradle
index 393558930..a388ff7d6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -48,16 +48,13 @@ dependencies {
implementation 'com.google.firebase:firebase-messaging:15.0.2'
}
implementation 'com.android.support:support-v4:26.0.1'
+ implementation project(':liblinphone-sdk')
}
if (firebaseEnable()) {
apply plugin: 'com.google.gms.google-services'
}
-//// Submodule Dir /////
-def submoduleDir = ['submodules/mediastreamer2/java/src']
-////////////////////////
-
///// Exclude Files /////
def excludeFiles = []
// Exclude firebase file if not enable
@@ -68,7 +65,7 @@ if (!firebaseEnable()) {
excludeFiles.add('**/gcm*')
println '[Push Notification] Firebase enabled'
}
-excludeFiles.add('**/mediastream/MediastreamerActivity.java')
+
excludeFiles.add('src/android/org/linphone/tutorials/*.java')
def excludePackage = []
@@ -110,20 +107,19 @@ android {
packaged {
initWith release
signingConfig null
+ matchingFallbacks = ['debug', 'release']
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
- def srcDirs = submoduleDir
- srcDirs.addAll(['src/linphone-wrapper', 'src/android'])
+ def srcDirs = ['src/android']
java.srcDirs = srcDirs
resources.srcDirs = srcDirs
aidl.srcDirs = srcDirs
renderscript.srcDirs = srcDirs
res.srcDirs = ['res']
assets.srcDirs = ['assets']
- jniLibs.srcDirs = ['libs']
java.excludes = excludeFiles
// Exclude some useless files
@@ -138,16 +134,13 @@ android {
sourceSets {
androidTest {
manifest.srcFile 'AndroidManifest.xml'
- def srcDirs = submoduleDir
- srcDirs.addAll(['src/android',
- 'src/androidTest'])
+ def srcDirs = ['src/android', 'src/androidTest']
java.srcDirs = srcDirs
resources.srcDirs = srcDirs
aidl.srcDirs = srcDirs
renderscript.srcDirs = srcDirs
res.srcDirs = ['res']
assets.srcDirs = ['assets']
- jniLibs.srcDirs = ['libs']
java.excludes = excludeFiles
// Exclude some useless files
diff --git a/AndroidManifestLibrary.xml b/liblinphone-sdk/AndroidManifestLibrary.xml
similarity index 100%
rename from AndroidManifestLibrary.xml
rename to liblinphone-sdk/AndroidManifestLibrary.xml
diff --git a/libLinphoneAndroidSdk.gradle b/liblinphone-sdk/build.gradle
similarity index 64%
rename from libLinphoneAndroidSdk.gradle
rename to liblinphone-sdk/build.gradle
index c50010b49..811af8468 100644
--- a/libLinphoneAndroidSdk.gradle
+++ b/liblinphone-sdk/build.gradle
@@ -21,18 +21,36 @@ allprojects {
}
}
+
configurations {
javadocDeps
}
+
+
+
apply plugin: 'com.android.library'
+
dependencies {
compile 'org.apache.commons:commons-compress:1.16.1'
javadocDeps 'org.apache.commons:commons-compress:1.16.1'
}
-def srcDir = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper']
+def srcDir = ['../submodules/mediastreamer2/java/src']
+def rootSdk
+
+if (file('android-arm64/share/linphonej/java/org/linphone/core/Factory.java').exists() )
+ rootSdk = 'android-arm64'
+else if (file('android-arm/share/linphonej/java/org/linphone/core/Factory.java').exists() )
+ rootSdk = 'android-arm'
+else if (file('android-armv7/share/linphonej/java/org/linphone/core/Factory.java').exists() )
+ rootSdk = 'android-armv7'
+else if (file('android-x86/share/linphonej/java/org/linphone/core/Factory.java').exists() )
+ rootSdk = 'android-x86'
+
+srcDir += [rootSdk+'/share/linphonej/java/org/linphone/core/']
+
def excludePackage = []
@@ -42,6 +60,13 @@ excludePackage.add('**/**tester**')
excludePackage.add('**/LICENSE.txt')
android {
+
+
+ buildTypes {
+ release {}
+ debug{}
+ }
+
defaultConfig {
compileSdkVersion 26
buildToolsVersion "26.0.0"
@@ -59,10 +84,10 @@ android {
main {
manifest.srcFile 'AndroidManifestLibrary.xml'
java.srcDirs = srcDir
- resources.srcDirs = srcDir
aidl.srcDirs = srcDir
+ assets.srcDirs = ["${buildDir}/sdk-assets/assets/"]
renderscript.srcDirs = srcDir
- jniLibs.srcDirs = ['libs']
+ jniLibs.srcDirs = ['../libs']
java.excludes = ['**/mediastream/MediastreamerActivity.java']
@@ -79,7 +104,7 @@ android {
///////////// Task /////////////
task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") {
- source = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper']
+ source = srcDir
excludes = ['**/mediastream/MediastreamerActivity.java',
'**/**.html',
'**/**.aidl']
@@ -109,3 +134,26 @@ task sdkZip(type: Zip) {
include '*'
archiveName newSdkName
}
+
+task copyAssets(type: Sync) {
+ from rootSdk
+ into "${buildDir}/sdk-assets/assets/org.linphone.core"
+ include '**/*.png'
+ include '**/*.pem'
+ include '**/*.mkv'
+ include '**/*.wav'
+ include '**/*_grammar'
+
+ //rename '(.*)', '$1'.toLowerCase()
+ eachFile {
+ path = path.toLowerCase() //to workaround case insensitive fs (macosx)
+ println("Syncing sdk asset ${sourcePath} to ${path}")
+ }
+ doFirst {
+ println("Syncing sdk assets into root dir ${destinationDir}")
+ }
+ // do not copy those
+ includeEmptyDirs = false
+
+}
+project.tasks['preBuild'].dependsOn 'copyAssets'
\ No newline at end of file
diff --git a/liblinphone_tester/AndroidManifest.xml b/liblinphone_tester/AndroidManifest.xml
index c733b0e01..b465b495e 100644
--- a/liblinphone_tester/AndroidManifest.xml
+++ b/liblinphone_tester/AndroidManifest.xml
@@ -20,7 +20,7 @@
-
+