7881b56b77
# 1.12.0 (2022-04-02) ### Bug Fixes * **lang:** Weblate translation (Albanian)faa840a
* **lang:** Weblate translation (Albanian)e312176
* **lang:** Weblate translation (French)a2f5882
* **lang:** Weblate translation (Portuguese (Brazil))527c385
* **lang:** Weblate translation (Portuguese)33e6fbb
* **lang:** Weblate translation (Portuguese)530b979
* **lang:** Weblate translation (Albanian)ca6c4da
* **lang:** Weblate translation (Arabic)89f978e
* **lang:** Weblate translation (Bengali)dba93fa
* **lang:** Weblate translation (Chinese (Traditional))e1be0e8
* **lang:** Weblate translation (English)90b99c2
* **lang:** Weblate translation (French)797fe99
* **lang:** Weblate translation (Gaelic)80e67ee
* **lang:** Weblate translation (German)8a2782a
* **lang:** Weblate translation (Italian)5e28585
* **lang:** Weblate translation (Norwegian Bokmål)7aee682
* **lang:** Weblate translation (Norwegian Bokmål)1468d9c
* **lang:** Weblate translation (Norwegian Bokmål)0c51070
* **lang:** Weblate translation (Polish)db39e94
* **lang:** Weblate translation (Polish)270da31
* **lang:** Weblate translation (Portuguese (Brazil))78adff6
* **lang:** Weblate translation (Portuguese)aee7c1e
* **lang:** Weblate translation (Portuguese)abdcb87
* **lang:** Weblate translation (Russian)5f16f19
* **lang:** Weblate translation (Ukrainian)0153ff1
* Remove unsupported play store language pta31cd54
* set required (im)mutable flag when creating pending intent0a48cb5
* Shortened too long title fr-FR2401de9
### Features * **lang:** Added translation using Weblate (Interlingua)699da52
* weblate merge21261b0
176 lines
6.4 KiB
Groovy
176 lines
6.4 KiB
Groovy
plugins {
|
|
id 'com.android.application'
|
|
id 'kotlin-android'
|
|
id 'kotlin-parcelize'
|
|
id 'kotlin-kapt'
|
|
}
|
|
|
|
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')}")
|
|
}
|
|
|
|
apply plugin: 'kotlin-kapt'
|
|
|
|
android {
|
|
compileSdkVersion 32
|
|
buildToolsVersion "30.0.2"
|
|
|
|
defaultConfig {
|
|
applicationId "net.schueller.peertube"
|
|
minSdkVersion 21
|
|
targetSdkVersion 32
|
|
versionCode 1078
|
|
versionName "1.12.0"
|
|
buildConfigField "long", "BUILD_TIME", readPropertyWithDefault('buildTimestamp', System.currentTimeMillis()) + 'L'
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
javaCompileOptions {
|
|
annotationProcessorOptions {
|
|
arguments = [
|
|
"room.schemaLocation" : "$projectDir/schemas".toString(),
|
|
"room.incremental" : "true",
|
|
"room.expandProjection": "true"]
|
|
}
|
|
}
|
|
}
|
|
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
|
|
}
|
|
|
|
buildFeatures{
|
|
viewBinding true
|
|
}
|
|
|
|
}
|
|
|
|
def room_version = "2.4.0"
|
|
def lifecycleVersion = '2.4.0'
|
|
def exoplayer = '2.16.1'
|
|
def fragment_version = "1.4.0"
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
|
|
|
// Layouts and design
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
|
|
implementation 'androidx.appcompat:appcompat:1.4.0'
|
|
implementation 'com.google.android.material:material:1.4.0'
|
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
|
|
implementation "androidx.fragment:fragment-ktx:$fragment_version"
|
|
|
|
implementation 'de.hdodenhof:circleimageview:3.1.0'
|
|
|
|
// font awesome
|
|
implementation 'com.mikepenz:iconics-core:5.2.4'
|
|
implementation 'com.mikepenz:fontawesome-typeface:5.9.0.2-kotlin@aar'
|
|
|
|
// http client / REST
|
|
implementation 'com.squareup.okhttp3:okhttp:4.9.2'
|
|
implementation 'com.squareup.retrofit2:retrofit:2.9.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.9.0'
|
|
|
|
// Torrents and WebRTC
|
|
implementation 'com.github.TorrentStream:TorrentStream-Android:2.7.0'
|
|
// 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:$exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-dash:$exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-ui:$exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-hls:$exoplayer"
|
|
implementation "com.google.android.exoplayer:exoplayer-smoothstreaming:$exoplayer"
|
|
implementation "com.google.android.exoplayer:extension-mediasession:$exoplayer"
|
|
implementation "com.google.android.exoplayer:extension-okhttp:$exoplayer"
|
|
|
|
// date formatter, do not update past 4.0.4 https://github.com/sschueller/peertube-android/issues/262
|
|
implementation 'org.ocpsoft.prettytime:prettytime:4.0.4.Final'
|
|
|
|
// Version comparison
|
|
implementation 'org.apache.maven:maven-artifact:3.6.3'
|
|
|
|
// database lib
|
|
implementation "androidx.room:room-runtime:$room_version"
|
|
implementation "androidx.room:room-ktx:$room_version"
|
|
kapt "androidx.room:room-compiler:$room_version"
|
|
|
|
// Lifecycle components
|
|
kapt "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
|
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
|
|
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"
|
|
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
|
|
|
|
implementation 'androidx.preference:preference-ktx:1.1.1'
|
|
|
|
// testing
|
|
testImplementation 'junit:junit:4.13.1'
|
|
androidTestImplementation 'androidx.test:runner:1.4.0'
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
|
androidTestImplementation "androidx.room:room-testing:$room_version"
|
|
}
|
|
|
|
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
|
kotlinOptions {
|
|
jvmTarget = "1.8"
|
|
}
|
|
}
|