mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-12 10:32:36 +00:00
Merge pull request #2025 from nextcloud/chore/download-webrtc-task
build: Improve handling of webrtc download
This commit is contained in:
commit
e14c110b22
@ -24,6 +24,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
import com.github.spotbugs.snom.SpotBugsTask
|
import com.github.spotbugs.snom.SpotBugsTask
|
||||||
|
import com.nextcloud.talk.gradle.DownloadWebRtcTask
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
@ -33,20 +34,6 @@ apply plugin: 'com.github.spotbugs'
|
|||||||
apply plugin: 'io.gitlab.arturbosch.detekt'
|
apply plugin: 'io.gitlab.arturbosch.detekt'
|
||||||
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
||||||
|
|
||||||
def urlFile = { url, fileName ->
|
|
||||||
File file = new File("$buildDir/download/${fileName}")
|
|
||||||
file.parentFile.mkdirs()
|
|
||||||
if (!file.exists()) {
|
|
||||||
new URL(url).withInputStream { downloadStream ->
|
|
||||||
file.withOutputStream { fileOut ->
|
|
||||||
fileOut << downloadStream
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
files(file.absolutePath)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 30
|
compileSdkVersion 30
|
||||||
buildToolsVersion '30.0.3'
|
buildToolsVersion '30.0.3'
|
||||||
@ -147,7 +134,6 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check.dependsOn 'spotbugsGplayDebug', 'lint', 'ktlintCheck', 'detekt'
|
check.dependsOn 'spotbugsGplayDebug', 'lint', 'ktlintCheck', 'detekt'
|
||||||
lint.dependsOn 'preBuild'
|
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
@ -180,6 +166,12 @@ ext {
|
|||||||
espressoVersion = "3.4.0"
|
espressoVersion = "3.4.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def webRtcVersion = "96.4664.0"
|
||||||
|
tasks.register('downloadWebRtc', DownloadWebRtcTask){
|
||||||
|
version = webRtcVersion
|
||||||
|
}
|
||||||
|
preBuild.dependsOn('downloadWebRtc')
|
||||||
|
|
||||||
configurations.all {
|
configurations.all {
|
||||||
exclude group: 'com.google.firebase', module: 'firebase-core'
|
exclude group: 'com.google.firebase', module: 'firebase-core'
|
||||||
exclude group: 'com.google.firebase', module: 'firebase-analytics'
|
exclude group: 'com.google.firebase', module: 'firebase-analytics'
|
||||||
@ -253,8 +245,7 @@ dependencies {
|
|||||||
kapt "com.jakewharton:butterknife-compiler:${butterknifeVersion}"
|
kapt "com.jakewharton:butterknife-compiler:${butterknifeVersion}"
|
||||||
implementation 'eu.davidea:flexible-adapter:5.1.0'
|
implementation 'eu.davidea:flexible-adapter:5.1.0'
|
||||||
implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
|
implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
|
||||||
implementation urlFile('https://github.com/nextcloud-releases/talk-clients-webrtc/releases/download/96.4664.0-RC1/libwebrtc-96.4664.0.aar',
|
implementation fileTree(downloadWebRtc.getOutputPath())
|
||||||
'libwebrtc-96.4664.0.aar')
|
|
||||||
implementation 'com.yarolegovich:lovely-dialog:1.1.1'
|
implementation 'com.yarolegovich:lovely-dialog:1.1.1'
|
||||||
implementation 'com.yarolegovich:mp:1.1.6'
|
implementation 'com.yarolegovich:mp:1.1.6'
|
||||||
implementation 'me.zhanghai.android.effortlesspermissions:library:1.1.0'
|
implementation 'me.zhanghai.android.effortlesspermissions:library:1.1.0'
|
||||||
|
22
buildSrc/build.gradle
Normal file
22
buildSrc/build.gradle
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Nextcloud Talk application
|
||||||
|
*
|
||||||
|
* @author Álvaro Brey
|
||||||
|
* Copyright (C) 2022 Álvaro Brey
|
||||||
|
* Copyright (C) 2022 Nextcloud GmbH
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
apply plugin: 'groovy'
|
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
* Nextcloud Talk application
|
||||||
|
*
|
||||||
|
* @author Álvaro Brey
|
||||||
|
* Copyright (C) 2022 Álvaro Brey
|
||||||
|
* Copyright (C) 2022 Nextcloud GmbH
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.nextcloud.talk.gradle
|
||||||
|
|
||||||
|
import org.gradle.api.DefaultTask
|
||||||
|
import org.gradle.api.provider.Property
|
||||||
|
import org.gradle.api.tasks.CacheableTask
|
||||||
|
import org.gradle.api.tasks.Input
|
||||||
|
import org.gradle.api.tasks.OutputFile
|
||||||
|
import org.gradle.api.tasks.TaskAction
|
||||||
|
|
||||||
|
@CacheableTask
|
||||||
|
abstract class DownloadWebRtcTask extends DefaultTask {
|
||||||
|
@Input
|
||||||
|
abstract Property<String> getVersion()
|
||||||
|
|
||||||
|
@OutputFile
|
||||||
|
File getLibFile() {
|
||||||
|
return new File(getOutputPath())
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getFileName() {
|
||||||
|
def webRtcVersion = version.get()
|
||||||
|
return "libwebrtc-${webRtcVersion}.aar"
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getDownloadUrl() {
|
||||||
|
def webRtcVersion = version.get()
|
||||||
|
return "https://github.com/nextcloud-releases/talk-clients-webrtc/releases/download/${webRtcVersion}-RC1/${getFileName()}"
|
||||||
|
}
|
||||||
|
|
||||||
|
String getOutputPath() {
|
||||||
|
return "${project.buildDir}/download/${getFileName()}"
|
||||||
|
}
|
||||||
|
|
||||||
|
@TaskAction
|
||||||
|
def run() {
|
||||||
|
libFile.parentFile.mkdirs()
|
||||||
|
if (!libFile.exists()) {
|
||||||
|
logger.lifecycle("Downloading libWebRTC ${version.get()} from ${getDownloadUrl()}")
|
||||||
|
new URL(getDownloadUrl()).withInputStream { downloadStream ->
|
||||||
|
libFile.withOutputStream { fileOut ->
|
||||||
|
fileOut << downloadStream
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user