2023-09-12 15:16:58 +05:30
|
|
|
plugins {
|
|
|
|
id("com.android.application")
|
|
|
|
id("kotlin-android")
|
|
|
|
id("kotlinx-serialization")
|
|
|
|
id("kotlin-parcelize")
|
2023-02-19 18:42:42 +05:30
|
|
|
id("androidx.navigation.safeargs.kotlin")
|
2024-01-01 11:56:58 +05:30
|
|
|
alias(libs.plugins.baselineprofile)
|
2024-03-12 17:18:46 +05:30
|
|
|
alias(libs.plugins.ksp)
|
2023-09-12 15:16:58 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
|
|
|
compileSdk = 34
|
|
|
|
|
|
|
|
defaultConfig {
|
|
|
|
applicationId = "com.github.libretube"
|
|
|
|
minSdk = 21
|
2024-02-26 17:03:30 +05:30
|
|
|
targetSdk = 34
|
2024-09-05 14:56:23 +05:30
|
|
|
versionCode = 57
|
|
|
|
versionName = "0.25.2"
|
2023-09-12 15:16:58 +05:30
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
resValue("string", "app_name", "LibreTube")
|
|
|
|
|
|
|
|
ksp {
|
|
|
|
arg("room.schemaLocation", "$projectDir/schemas")
|
|
|
|
arg("exportSchema", "true")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
viewBinding {
|
|
|
|
enable = true
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
getByName("release") {
|
|
|
|
isMinifyEnabled = true
|
2023-09-17 20:00:03 +05:30
|
|
|
isShrinkResources = true
|
2023-09-12 15:16:58 +05:30
|
|
|
proguardFiles(
|
|
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
|
|
"proguard-rules.pro"
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
getByName("debug") {
|
|
|
|
isDebuggable = true
|
|
|
|
applicationIdSuffix = ".debug"
|
|
|
|
resValue("string", "app_name", "LibreTube Debug")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
compileOptions {
|
|
|
|
isCoreLibraryDesugaringEnabled = true
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
|
|
}
|
|
|
|
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = "17"
|
|
|
|
}
|
|
|
|
|
2024-01-02 16:48:44 +05:30
|
|
|
// Comment this block if issues occur while generating the baseline profile
|
2024-08-23 17:37:46 +05:30
|
|
|
splits {
|
|
|
|
abi {
|
|
|
|
isEnable = true
|
|
|
|
reset()
|
|
|
|
include("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
|
|
|
isUniversalApk = true
|
|
|
|
}
|
|
|
|
}
|
2023-09-12 15:16:58 +05:30
|
|
|
|
2023-09-12 18:35:46 +05:30
|
|
|
packaging {
|
|
|
|
jniLibs.excludes.add("lib/armeabi-v7a/*_neon.so")
|
2023-09-12 15:16:58 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
tasks.register("testClasses")
|
2023-11-28 17:52:20 +05:30
|
|
|
|
|
|
|
lint {
|
|
|
|
abortOnError = false
|
|
|
|
checkReleaseBuilds = false
|
|
|
|
}
|
2023-12-21 21:04:08 +05:30
|
|
|
|
|
|
|
buildFeatures {
|
|
|
|
buildConfig = true
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace = "com.github.libretube"
|
2023-09-12 15:16:58 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
/* Android Core */
|
|
|
|
implementation(libs.androidx.activity)
|
|
|
|
implementation(libs.androidx.appcompat)
|
|
|
|
implementation(libs.androidx.core)
|
|
|
|
implementation(libs.androidx.constraintlayout)
|
|
|
|
implementation(libs.androidx.fragment)
|
|
|
|
implementation(libs.androidx.navigation.fragment)
|
|
|
|
implementation(libs.androidx.navigation.ui)
|
|
|
|
implementation(libs.androidx.preference)
|
|
|
|
implementation(libs.androidx.work.runtime)
|
2024-01-29 05:27:39 +05:30
|
|
|
implementation(libs.androidx.collection)
|
2024-02-01 07:28:17 +05:30
|
|
|
implementation(libs.androidx.media)
|
|
|
|
implementation(libs.androidx.swiperefreshlayout)
|
2023-09-12 15:16:58 +05:30
|
|
|
|
|
|
|
/* Android Lifecycle */
|
|
|
|
implementation(libs.lifecycle.viewmodel)
|
|
|
|
implementation(libs.lifecycle.runtime)
|
|
|
|
implementation(libs.lifecycle.livedata)
|
|
|
|
implementation(libs.lifecycle.service)
|
|
|
|
|
|
|
|
/* Design */
|
|
|
|
implementation(libs.material)
|
|
|
|
|
|
|
|
/* ExoPlayer */
|
|
|
|
implementation(libs.androidx.media3.exoplayer)
|
|
|
|
implementation(libs.androidx.media3.ui)
|
|
|
|
implementation(libs.androidx.media3.exoplayer.hls)
|
|
|
|
implementation(libs.androidx.media3.exoplayer.dash)
|
|
|
|
implementation(libs.androidx.media3.session)
|
|
|
|
implementation(libs.androidx.media3.datasource.cronet) {
|
|
|
|
exclude(group = "com.google.android.gms")
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Retrofit and Kotlinx Serialization */
|
|
|
|
implementation(libs.square.retrofit)
|
2024-04-01 23:31:07 +05:30
|
|
|
implementation(libs.logging.interceptor)
|
2023-09-12 15:16:58 +05:30
|
|
|
implementation(libs.kotlinx.serialization)
|
|
|
|
implementation(libs.kotlinx.datetime)
|
|
|
|
implementation(libs.kotlinx.serialization.retrofit)
|
|
|
|
|
2024-08-23 16:01:20 +05:30
|
|
|
/* NewPipe Extractor */
|
|
|
|
implementation(libs.newpipeextractor)
|
|
|
|
|
2023-09-12 15:16:58 +05:30
|
|
|
/* Cronet and Coil */
|
|
|
|
coreLibraryDesugaring(libs.desugaring)
|
|
|
|
implementation(libs.cronet.embedded)
|
|
|
|
implementation(libs.cronet.okhttp)
|
|
|
|
implementation(libs.coil)
|
|
|
|
|
|
|
|
/* Room */
|
|
|
|
ksp(libs.room.compiler)
|
|
|
|
implementation(libs.room)
|
2024-01-01 11:56:58 +05:30
|
|
|
|
|
|
|
/* Baseline profile generation */
|
|
|
|
implementation(libs.androidx.profileinstaller)
|
2024-03-18 03:51:11 +05:30
|
|
|
baselineProfile(project(":baselineprofile"))
|
2024-01-25 15:30:40 +05:30
|
|
|
|
|
|
|
/* AndroidX Paging */
|
|
|
|
implementation(libs.androidx.paging)
|
2024-06-21 21:50:53 +05:30
|
|
|
|
|
|
|
/* Testing */
|
2024-07-15 18:02:46 +05:30
|
|
|
testImplementation(libs.junit)
|
2023-09-12 15:16:58 +05:30
|
|
|
}
|