mirror of
https://github.com/TeamNewPipe/NewPipe/
synced 2025-01-31 19:14:53 +01:00
6a9a0f1e73
Doing this increase the level of reliability of migrations, as we can be pretty much more confident of avoiding problems with them.
170 lines
6.0 KiB
Groovy
170 lines
6.0 KiB
Groovy
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
apply plugin: 'kotlin-kapt'
|
|
|
|
|
|
static String getGitWorkingBranch() {
|
|
try {
|
|
def gitProcess = "git rev-parse --abbrev-ref HEAD".execute()
|
|
gitProcess.waitFor()
|
|
if (gitProcess.exitValue() == 0) {
|
|
return gitProcess.text.trim()
|
|
} else {
|
|
// not a git repository
|
|
return ""
|
|
}
|
|
} catch (IOException ignored) {
|
|
// git was not found
|
|
return ""
|
|
}
|
|
}
|
|
|
|
|
|
android {
|
|
compileSdkVersion 28
|
|
buildToolsVersion '28.0.3'
|
|
|
|
defaultConfig {
|
|
applicationId "org.schabi.newpipe"
|
|
resValue "string", "app_name", "NewPipe"
|
|
minSdkVersion 19
|
|
targetSdkVersion 28
|
|
versionCode 860
|
|
versionName "0.18.6"
|
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
vectorDrawables.useSupportLibrary = true
|
|
|
|
javaCompileOptions {
|
|
annotationProcessorOptions {
|
|
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
|
|
debug {
|
|
multiDexEnabled true
|
|
debuggable true
|
|
|
|
// suffix the app id and the app name with git branch name
|
|
def workingBranch = getGitWorkingBranch()
|
|
def normalizedWorkingBranch = workingBranch.replaceAll("[^A-Za-z]+", "").toLowerCase()
|
|
if (normalizedWorkingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") {
|
|
// default values when branch name could not be determined or is master or dev
|
|
applicationIdSuffix ".debug"
|
|
resValue "string", "app_name", "NewPipe Debug"
|
|
} else {
|
|
applicationIdSuffix ".debug." + normalizedWorkingBranch
|
|
resValue "string", "app_name", "NewPipe " + workingBranch
|
|
}
|
|
}
|
|
}
|
|
|
|
lintOptions {
|
|
checkReleaseBuilds false
|
|
// Or, if you prefer, you can continue to check for errors in release builds,
|
|
// but continue the build even when errors are found:
|
|
abortOnError false
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
// Required and used only by groupie
|
|
androidExtensions {
|
|
experimental = true
|
|
}
|
|
|
|
sourceSets {
|
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
|
|
}
|
|
}
|
|
|
|
ext {
|
|
androidxLibVersion = '1.0.0'
|
|
exoPlayerLibVersion = '2.10.8'
|
|
roomDbLibVersion = '2.1.0'
|
|
leakCanaryLibVersion = '1.5.4' //1.6.1
|
|
okHttpLibVersion = '3.12.6'
|
|
icepickLibVersion = '3.2.0'
|
|
stethoLibVersion = '1.5.0'
|
|
markwonVersion = '4.2.1'
|
|
}
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
|
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
|
androidTestImplementation "android.arch.persistence.room:testing:1.1.1"
|
|
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
|
|
exclude module: 'support-annotations'
|
|
})
|
|
|
|
implementation 'com.github.TeamNewPipe:NewPipeExtractor:6446abc6d'
|
|
testImplementation 'junit:junit:4.12'
|
|
testImplementation 'org.mockito:mockito-core:2.23.0'
|
|
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
|
implementation "androidx.legacy:legacy-support-v4:${androidxLibVersion}"
|
|
implementation "com.google.android.material:material:${androidxLibVersion}"
|
|
implementation "androidx.recyclerview:recyclerview:${androidxLibVersion}"
|
|
implementation "androidx.legacy:legacy-preference-v14:${androidxLibVersion}"
|
|
implementation "androidx.cardview:cardview:${androidxLibVersion}"
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
|
|
implementation 'com.xwray:groupie:2.7.0'
|
|
implementation 'com.xwray:groupie-kotlin-android-extensions:2.7.0'
|
|
|
|
implementation 'androidx.lifecycle:lifecycle-livedata:2.0.0'
|
|
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0'
|
|
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
|
|
|
|
// Originally in NewPipeExtractor
|
|
implementation 'com.grack:nanojson:1.1'
|
|
implementation 'org.jsoup:jsoup:1.9.2'
|
|
|
|
implementation 'ch.acra:acra:4.9.2' //4.11
|
|
|
|
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
|
|
implementation 'de.hdodenhof:circleimageview:2.2.0'
|
|
implementation 'com.nononsenseapps:filepicker:4.2.1'
|
|
|
|
implementation "com.google.android.exoplayer:exoplayer:${exoPlayerLibVersion}"
|
|
implementation "com.google.android.exoplayer:extension-mediasession:${exoPlayerLibVersion}"
|
|
|
|
debugImplementation "com.facebook.stetho:stetho:${stethoLibVersion}"
|
|
debugImplementation "com.facebook.stetho:stetho-urlconnection:${stethoLibVersion}"
|
|
debugImplementation 'androidx.multidex:multidex:2.0.1'
|
|
|
|
implementation 'io.reactivex.rxjava2:rxjava:2.2.2'
|
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
|
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
|
|
implementation 'org.ocpsoft.prettytime:prettytime:4.0.3.Final'
|
|
|
|
implementation "androidx.room:room-runtime:${roomDbLibVersion}"
|
|
implementation "androidx.room:room-rxjava2:${roomDbLibVersion}"
|
|
kapt "androidx.room:room-compiler:${roomDbLibVersion}"
|
|
|
|
implementation "frankiesardo:icepick:${icepickLibVersion}"
|
|
kapt "frankiesardo:icepick-processor:${icepickLibVersion}"
|
|
|
|
debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakCanaryLibVersion}"
|
|
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:${leakCanaryLibVersion}"
|
|
|
|
implementation "com.squareup.okhttp3:okhttp:${okHttpLibVersion}"
|
|
debugImplementation "com.facebook.stetho:stetho-okhttp3:${stethoLibVersion}"
|
|
|
|
implementation "io.noties.markwon:core:${markwonVersion}"
|
|
implementation "io.noties.markwon:linkify:${markwonVersion}"
|
|
}
|