Fixes: When removing audio it doesn't remove the best audio Make app only get the link part from Pinterest in share menu. Look at this video... 👀 https://pin.it/... add beta functionality to the app updating If you are in beta and want to go to release allow downgrading Language change doesnt restart activity
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 'com.google.devtools.ksp'
|
|
id "org.jetbrains.kotlin.plugin.serialization" version "1.8.10"
|
|
}
|
|
|
|
def properties = new Properties()
|
|
def versionMajor = 1
|
|
def versionMinor = 6
|
|
def versionPatch = 6
|
|
def versionBuild = 1 // 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
|
|
}
|
|
|
|
ksp {
|
|
arg("room.schemaLocation", "$projectDir/schemas")
|
|
}
|
|
|
|
}
|
|
|
|
sourceSets {
|
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
manifestPlaceholders = [appName: RELEASE_NAME]
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
debuggable false
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
|
|
beta {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
manifestPlaceholders = [appName: BETA_NAME]
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
debuggable false
|
|
signingConfig signingConfigs.debug
|
|
versionNameSuffix '-beta'
|
|
}
|
|
|
|
debug {
|
|
minifyEnabled false
|
|
manifestPlaceholders = [appName: RELEASE_NAME]
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
debuggable true
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
|
|
benchmark {
|
|
initWith release
|
|
manifestPlaceholders = [appName: RELEASE_NAME]
|
|
proguardFiles 'baseline-profiles-rules.pro'
|
|
debuggable false
|
|
matchingFallbacks ['release']
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
}
|
|
|
|
lintOptions{
|
|
disable 'MissingTranslation'
|
|
}
|
|
|
|
android.applicationVariants.configureEach { 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.1'
|
|
implementation 'androidx.preference:preference-ktx:1.2.1'
|
|
implementation "androidx.navigation:navigation-fragment-ktx:$navVer"
|
|
implementation "androidx.navigation:navigation-ui-ktx:$navVer"
|
|
implementation 'androidx.core:core-ktx:1.10.1'
|
|
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"
|
|
|
|
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"
|
|
ksp "androidx.room:room-compiler:2.5.2"
|
|
implementation 'androidx.paging:paging-runtime-ktx:3.2.0'
|
|
implementation "androidx.room:room-paging: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.5'
|
|
|
|
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutineVer"
|
|
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVer"
|
|
|
|
implementation 'com.google.code.gson:gson:2.10.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 "com.anggrayudi:storage:1.5.5"
|
|
implementation 'me.zhanghai.android.fastscroll:library:1.3.0'
|
|
}
|