made from and to textboxes wider in the cut video screen added search engines in the search view removed filename template override if the user leaves it empty. Now it follows the yt-dlp default fixed app crashing when its tablet added drag handle to scrolling content added pause functionality made video player faster to load for youtube videos
211 lines
7.7 KiB
Groovy
211 lines
7.7 KiB
Groovy
plugins {
|
|
id 'com.android.application'
|
|
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1'
|
|
id 'org.jetbrains.kotlin.android'
|
|
id 'kotlin-kapt'
|
|
id "org.jetbrains.kotlin.plugin.serialization" version "1.8.10"
|
|
}
|
|
|
|
def properties = new Properties()
|
|
def versionMajor = 1
|
|
def versionMinor = 6
|
|
def versionPatch = 3
|
|
def versionBuild = 10 // bump for dogfood builds, public betas, etc.
|
|
def versionExt = ""
|
|
|
|
if (versionBuild > 0){
|
|
versionExt = ".${versionBuild}"
|
|
}
|
|
|
|
android {
|
|
namespace 'com.deniscerri.ytdlnis'
|
|
compileSdk 33
|
|
|
|
try {
|
|
def propertiesFile = rootProject.file("local.properties")
|
|
if(propertiesFile.text != ""){
|
|
properties.load(new FileInputStream(propertiesFile))
|
|
|
|
properties.load(new FileInputStream(propertiesFile))
|
|
signingConfigs {
|
|
debug {
|
|
storeFile file(properties["signingConfig.storeFile"])
|
|
storePassword properties["signingConfig.storePassword"]
|
|
keyAlias properties["signingConfig.keyAlias"]
|
|
keyPassword properties["signingConfig.keyPassword"]
|
|
}
|
|
}
|
|
}
|
|
}catch(IOException ignored){}
|
|
defaultConfig {
|
|
applicationId "com.deniscerri.ytdl"
|
|
minSdk 23
|
|
targetSdk 33
|
|
versionCode versionMajor * 1000000 + versionMinor * 10000 + versionPatch * 100 + versionBuild
|
|
versionName "${versionMajor}.${versionMinor}.${versionPatch}${versionExt}"
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
archivesBaseName = "YTDLnis-$versionName"
|
|
vectorDrawables {
|
|
useSupportLibrary true
|
|
}
|
|
|
|
kapt {
|
|
arguments {
|
|
arg("room.schemaLocation", "$projectDir/schemas")
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
sourceSets {
|
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
debuggable false
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
|
|
beta {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
debuggable false
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
|
|
debug {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
debuggable true
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
|
|
benchmark {
|
|
initWith release
|
|
proguardFiles 'baseline-profiles-rules.pro'
|
|
debuggable false
|
|
matchingFallbacks ['release']
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
}
|
|
|
|
lintOptions{
|
|
disable 'MissingTranslation'
|
|
}
|
|
|
|
android.applicationVariants.all { variant ->
|
|
variant.outputs.each { output ->
|
|
def baseAbiVersionCode = project.abiCodes.get(output.getFilter(com.android.build.OutputFile.ABI))
|
|
if (baseAbiVersionCode != null) {
|
|
output.versionCodeOverride = (100 * project.android.defaultConfig.versionCode) + baseAbiVersionCode
|
|
} else {
|
|
output.versionCodeOverride = 100 * project.android.defaultConfig.versionCode
|
|
}
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
viewBinding true
|
|
compose true
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_17
|
|
targetCompatibility JavaVersion.VERSION_17
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = '17'
|
|
}
|
|
|
|
splits {
|
|
abi {
|
|
enable true
|
|
reset()
|
|
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
|
|
universalApk true
|
|
}
|
|
}
|
|
composeOptions {
|
|
kotlinCompilerExtensionVersion composeVer
|
|
}
|
|
}
|
|
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
|
|
implementation "com.github.yausername.youtubedl-android:library:$youtubedlAndroidVer"
|
|
implementation "com.github.yausername.youtubedl-android:ffmpeg:$youtubedlAndroidVer"
|
|
implementation "com.github.yausername.youtubedl-android:aria2c:$youtubedlAndroidVer"
|
|
|
|
implementation "androidx.appcompat:appcompat:$appCompatVer"
|
|
implementation "androidx.constraintlayout:constraintlayout:2.1.4"
|
|
implementation 'com.google.android.material:material:1.9.0-rc01'
|
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
|
implementation 'androidx.recyclerview:recyclerview:1.3.0'
|
|
implementation 'androidx.preference:preference:1.2.0'
|
|
implementation "androidx.navigation:navigation-fragment-ktx:$navVer"
|
|
implementation "androidx.navigation:navigation-ui-ktx:$navVer"
|
|
implementation 'androidx.core:core-ktx:1.10.0'
|
|
implementation 'androidx.test.ext:junit-ktx:1.1.5'
|
|
implementation 'androidx.benchmark:benchmark-macro:1.1.1'
|
|
testImplementation "junit:junit:$junitVer"
|
|
androidTestImplementation "junit:junit:$junitVer"
|
|
androidTestImplementation "androidx.test.ext:junit:$androidJunitVer"
|
|
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVer"
|
|
androidTestImplementation "androidx.benchmark:benchmark-macro-junit4:1.2.0-alpha16"
|
|
androidTestImplementation "androidx.test:runner:1.5.2"
|
|
androidTestImplementation "androidx.test:core:1.5.0"
|
|
androidTestImplementation "androidx.test:rules:1.5.0"
|
|
androidTestImplementation "androidx.navigation:navigation-testing:$navVer"
|
|
|
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
|
implementation "com.devbrackets.android:exomedia:4.3.0"
|
|
|
|
implementation("androidx.cardview:cardview:1.0.0")
|
|
implementation("com.squareup.picasso:picasso:2.71828")
|
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
|
|
|
|
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
|
|
implementation 'com.facebook.shimmer:shimmer:0.5.0'
|
|
|
|
implementation "androidx.work:work-runtime-ktx:$workVer"
|
|
|
|
implementation "androidx.room:room-runtime:2.5.2"
|
|
implementation "androidx.room:room-ktx:2.5.2"
|
|
kapt "androidx.room:room-compiler:2.5.2"
|
|
androidTestImplementation "androidx.room:room-testing:2.5.2"
|
|
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
|
|
implementation "androidx.compose.runtime:runtime:$composeVer"
|
|
androidTestImplementation "com.google.truth:truth:1.1.3"
|
|
|
|
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutineVer"
|
|
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVer"
|
|
|
|
implementation 'com.google.code.gson:gson:2.9.1'
|
|
implementation "com.squareup.okhttp3:okhttp:5.0.0-alpha.10"
|
|
|
|
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0'
|
|
implementation 'it.xabaras.android:recyclerview-swipedecorator:1.4'
|
|
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.1"
|
|
implementation "com.github.Irineu333:Highlight-KT:1.0.4"
|
|
|
|
// For media playback using ExoPlayer
|
|
implementation("androidx.media3:media3-exoplayer:$media3_version")
|
|
// For DASH playback support with ExoPlayer
|
|
implementation("androidx.media3:media3-exoplayer-dash:$media3_version")
|
|
// For HLS playback support with ExoPlayer
|
|
implementation("androidx.media3:media3-exoplayer-hls:$media3_version")
|
|
implementation("androidx.media3:media3-ui:$media3_version")
|
|
// For RTSP playback support with ExoPlayer
|
|
implementation("androidx.media3:media3-exoplayer-rtsp:$media3_version")
|
|
implementation("androidx.media3:media3-datasource-cronet:$media3_version")
|
|
|
|
implementation "com.anggrayudi:storage:1.5.5"
|
|
}
|