mirror of
https://github.com/sschueller/peertube-android
synced 2024-12-08 14:36:21 +01:00
160 lines
6.6 KiB
Groovy
160 lines
6.6 KiB
Groovy
apply plugin: 'com.android.application'
|
|
|
|
ext.readProperty = { paramName -> readPropertyWithDefault(paramName, null) }
|
|
ext.readPropertyWithDefault = { paramName, defaultValue ->
|
|
if (project.hasProperty(paramName)) {
|
|
return project.getProperties().get(paramName)
|
|
} else {
|
|
Properties properties = new Properties()
|
|
if (project.rootProject.file('local.properties').exists()) {
|
|
properties.load(project.rootProject.file('local.properties').newDataInputStream())
|
|
}
|
|
if (properties.getProperty(paramName) != null) {
|
|
return properties.getProperty(paramName)
|
|
} else {
|
|
return defaultValue
|
|
}
|
|
}
|
|
}
|
|
|
|
// Try reading secrets from file
|
|
def secretsPropertiesFile = rootProject.file("secrets.properties")
|
|
def secretProperties = new Properties()
|
|
|
|
if (secretsPropertiesFile.exists()) {
|
|
secretProperties.load(new FileInputStream(secretsPropertiesFile))
|
|
}
|
|
// Otherwise read from environment variables, this happens in CI
|
|
else {
|
|
secretProperties.setProperty("signing_keystore_password", "${System.getenv('signing_keystore_password')}")
|
|
secretProperties.setProperty("signing_key_password", "${System.getenv('signing_key_password')}")
|
|
secretProperties.setProperty("signing_key_alias", "${System.getenv('signing_key_alias')}")
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 29
|
|
defaultConfig {
|
|
applicationId "net.schueller.peertube"
|
|
minSdkVersion 21
|
|
targetSdkVersion 29
|
|
versionCode Integer.valueOf(System.env.VERSION_CODE ?: 1)
|
|
versionName "1.1.0-${System.env.VERSION_SHA}"
|
|
buildConfigField "long", "BUILD_TIME", readPropertyWithDefault('buildTimestamp', System.currentTimeMillis()) + 'L'
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
ext {
|
|
libVersions = [
|
|
exoplayer: '2.11.6'
|
|
]
|
|
}
|
|
javaCompileOptions {
|
|
annotationProcessorOptions {
|
|
arguments = [
|
|
"room.schemaLocation" : "$projectDir/schemas".toString(),
|
|
"room.incremental" : "true",
|
|
"room.expandProjection": "true"]
|
|
}
|
|
}
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
|
|
// Layouts and design
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
|
implementation 'androidx.cardview:cardview:1.0.0'
|
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
|
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
|
|
implementation 'com.google.android.material:material:1.1.0'
|
|
implementation 'de.hdodenhof:circleimageview:3.0.0'
|
|
|
|
// font awesome
|
|
implementation "com.mikepenz:iconics-core:3.1.0"
|
|
implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar'
|
|
|
|
// http client / REST
|
|
implementation 'com.squareup.okhttp3:okhttp:4.3.1'
|
|
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
|
|
|
|
// image downloading and caching library
|
|
implementation 'com.squareup.picasso:picasso:2.71828'
|
|
|
|
// json decoder/encoder
|
|
implementation 'com.google.code.gson:gson:2.8.6'
|
|
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
|
|
|
|
// Torrents and WebRTC
|
|
implementation 'com.github.TorrentStream:TorrentStream-Android:2.6.1'
|
|
// implementation "com.github.TorrentStream:TorrentStreamServer-Android:1.0.1"
|
|
// implementation 'org.webrtc:google-webrtc:1.0.+'
|
|
|
|
// video player repo:jcenter()
|
|
implementation "com.google.android.exoplayer:exoplayer-core:$libVersions.exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-dash:$libVersions.exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-ui:$libVersions.exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-hls:$libVersions.exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-smoothstreaming:$libVersions.exoplayer"
|
|
implementation "com.google.android.exoplayer:extension-mediasession:$libVersions.exoplayer"
|
|
|
|
// date formatter
|
|
implementation 'org.ocpsoft.prettytime:prettytime:4.0.4.Final'
|
|
|
|
// Version comparison
|
|
implementation 'org.apache.maven:maven-artifact:3.5.0'
|
|
|
|
// testing
|
|
testImplementation 'junit:junit:4.12'
|
|
androidTestImplementation 'androidx.test:runner:1.2.0'
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
|
}
|
|
}
|
|
signingConfigs {
|
|
release {
|
|
// You need to specify either an absolute path or include the
|
|
// keystore file in the same directory as the build.gradle file.
|
|
storeFile file("../android-signing-keystore.jks")
|
|
storePassword "${secretProperties['signing_keystore_password']}"
|
|
keyAlias "${secretProperties['signing_key_alias']}"
|
|
keyPassword "${secretProperties['signing_key_password']}"
|
|
}
|
|
}
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
testCoverageEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
signingConfig signingConfigs.release
|
|
}
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
applicationVariants.all { variant ->
|
|
variant.resValue "string", "versionName", variant.versionName
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
|
|
def room_version = "2.2.5"
|
|
def archLifecycleVersion = '2.1.0'
|
|
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta7'
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
implementation 'com.google.android.material:material:1.1.0'
|
|
|
|
// database lib
|
|
implementation "androidx.room:room-runtime:$room_version"
|
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
|
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
|
annotationProcessor "androidx.room:room-compiler:$room_version"
|
|
androidTestImplementation "androidx.room:room-testing:$room_version"
|
|
|
|
// Lifecycle components
|
|
implementation "androidx.lifecycle:lifecycle-extensions:$archLifecycleVersion"
|
|
annotationProcessor "androidx.lifecycle:lifecycle-common-java8:$archLifecycleVersion"
|
|
|
|
implementation 'androidx.preference:preference:1.1.1'
|
|
}
|