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 } } } android { compileSdkVersion 29 defaultConfig { applicationId "net.schueller.peertube" minSdkVersion 21 targetSdkVersion 29 versionCode 1047 versionName "1.0.47" 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' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 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' }