Skip to content

Commit

Permalink
fixed getValue null bug and gradle cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
XilinJia committed Mar 13, 2024
1 parent 8225b6a commit 0b75b4c
Show file tree
Hide file tree
Showing 14 changed files with 227 additions and 259 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ contributers.py
# View hierarchy captures
captures
# other
.directory
*.odg#
proguard
libs
Expand Down
227 changes: 170 additions & 57 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ plugins {
id('com.android.application')
id 'kotlin-android'
id 'kotlin-kapt'
id 'com.google.devtools.ksp'
id('com.github.triplet.play') version '3.8.3' apply false
}
apply from: "../common.gradle"
apply from: "../playFlavor.gradle"

android {
namespace "ac.mdiq.podcini"
lint {
lintOptions {
disable 'ObsoleteLintCustomCheck', 'CheckResult', 'UnusedAttribute', 'BatteryLife', 'InflateParams',
'RestrictedApi', 'TrustAllX509TrustManager', 'ExportedReceiver', 'AllowBackup', 'VectorDrawableCompat',
'StaticFieldLeak', 'UseCompoundDrawables', 'NestedWeights', 'Overdraw', 'UselessParent', 'TextFields',
Expand All @@ -22,11 +21,25 @@ android {
buildConfig true
}
defaultConfig {
// Version code schema:
minSdk 21
compileSdk 34
targetSdk 34

kotlinOptions {
jvmTarget = '17'
}

vectorDrawables.useSupportLibrary false
vectorDrawables.generatedDensities = []

testApplicationId "ac.mdiq.podcini.tests"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

// Version code schema (not used):
// "1.2.3-beta4" -> 1020304
// "1.2.3" -> 1020395
versionCode 3020106
versionName "4.2.3"
versionCode 3020107
versionName "4.2.4"

def commit = ""
try {
Expand Down Expand Up @@ -65,33 +78,129 @@ android {
keyPassword project.getProperties().getOrDefault("releaseKeyPassword", "password")
}
}

buildTypes {
debug {
applicationIdSuffix ".debug"
resValue "string", "app_name", "Podcini Debug"
resValue "string", "provider_authority", "ac.mdiq.podcini.debug.provider"
}
release {
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard.cfg"
resValue "string", "app_name", "Podcini"
resValue "string", "provider_authority", "ac.mdiq.podcini.provider"
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.releaseConfig
}
}
applicationVariants.all { variant ->
variant.outputs.all { output ->

flavorDimensions += ["market"]
productFlavors {
free {
dimension "market"
}
play {
dimension "market"
}
}

applicationVariants.configureEach { variant ->
variant.outputs.configureEach { output ->
def applicationName = "Podcini"
outputFileName = "${applicationName}_${variant.buildType.name}_${defaultConfig.versionName}.apk"
}
}

packagingOptions {
resources {
excludes += ["META-INF/LICENSE.txt",
"META-INF/NOTICE.txt",
"META-INF/CHANGES",
"META-INF/README.md"]
}
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}

testOptions {
animationsDisabled = true
unitTests {
includeAndroidResources = true
}
}

lint {
disable "GradleDependency"
checkDependencies true
warningsAsErrors true
abortOnError true
checkGeneratedSources = true
}

buildFeatures {
viewBinding true
}

androidResources {
additionalParameters "--no-version-vectors"
}
}

tasks.withType(Test).configureEach {
testLogging {
exceptionFormat "full"
events "skipped", "passed", "failed"
showStandardStreams true
displayGranularity 2
}
}

gradle.projectsEvaluated {
tasks.withType(JavaCompile).tap {
configureEach {
options.compilerArgs << "-Xlint"
}
}
}

apply plugin: 'com.github.spotbugs'

spotbugs {
effort = 'max'
reportLevel = 'medium'
excludeFilter = rootProject.file('config/spotbugs/exclude.xml')
ignoreFailures = true // Handled by printing task
}

gradle.taskGraph.beforeTask { task ->
if (task.name.toLowerCase().contains('spotbugs')) {
task.doLast {
def reportFile = task.project.file("build/reports/spotbugs/playDebug.xml")
if (!reportFile.exists()) return
def slurped = new groovy.xml.XmlSlurper().parse(reportFile)

def foundErrors = false
slurped['BugInstance'].each { bug ->
logger.error "[SpotBugs] ${bug['LongMessage']} [${bug.@'type'}]"
bug['SourceLine'].each { line ->
logger.error "[SpotBugs] ${line['Message']}"
foundErrors = true
}
}
if (foundErrors) {
throw new TaskExecutionException(task,
new Exception("SpotBugs violations were found. See output above for details."))
}
}
}
}

dependencies {
implementation "androidx.core:core-ktx:$coreVersion"
implementation "androidx.core:core-ktx:1.12.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

constraints {
Expand All @@ -103,83 +212,87 @@ dependencies {
}
}

kapt "androidx.annotation:annotation:$annotationVersion"
ksp "androidx.annotation:annotation:1.7.1"

implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation "androidx.appcompat:appcompat:1.6.1"
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
implementation "androidx.fragment:fragment-ktx:$fragmentVersion"
implementation "androidx.fragment:fragment-ktx:1.6.2"
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation "androidx.media:media:$mediaVersion"
implementation "androidx.media3:media3-exoplayer:$media3Version"
implementation "androidx.media3:media3-ui:$media3Version"
implementation "androidx.media3:media3-datasource-okhttp:$media3Version"
implementation "androidx.media3:media3-common:$media3Version"
implementation "androidx.palette:palette-ktx:$paletteVersion"
implementation "androidx.preference:preference-ktx:$preferenceVersion"
implementation "androidx.recyclerview:recyclerview:$recyclerViewVersion"
implementation "androidx.viewpager2:viewpager2:$viewPager2Version"
implementation "androidx.work:work-runtime:$workManagerVersion"
implementation "androidx.media:media:1.7.0"
implementation "androidx.media3:media3-exoplayer:1.2.1"
implementation "androidx.media3:media3-ui:1.2.1"
implementation "androidx.media3:media3-datasource-okhttp:1.2.1"
implementation "androidx.media3:media3-common:1.2.1"
implementation "androidx.palette:palette-ktx:1.0.0"
implementation "androidx.preference:preference-ktx:1.2.1"
implementation "androidx.recyclerview:recyclerview:1.3.2"
implementation "androidx.viewpager2:viewpager2:1.1.0-beta02"
implementation "androidx.work:work-runtime:2.9.0"
implementation "androidx.core:core-splashscreen:1.0.1"
implementation 'androidx.documentfile:documentfile:1.0.1'

implementation "com.google.android.material:material:$googleMaterialVersion"
implementation "com.google.android.material:material:1.11.0"

implementation "org.apache.commons:commons-lang3:3.14.0"
implementation "commons-io:commons-io:2.15.1"
implementation "org.jsoup:jsoup:1.17.2"

implementation "com.github.bumptech.glide:glide:4.16.0"
implementation "com.github.bumptech.glide:okhttp3-integration:4.16.0@aar"
ksp "com.github.bumptech.glide:ksp:4.16.0"

implementation "com.squareup.okhttp3:okhttp:4.12.0"
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.12.0"

implementation "org.apache.commons:commons-lang3:$commonslangVersion"
implementation "commons-io:commons-io:$commonsioVersion"
implementation "org.jsoup:jsoup:$jsoupVersion"
implementation "com.squareup.okio:okio:3.7.0"

implementation "com.github.bumptech.glide:glide:$glideVersion"
implementation "com.github.bumptech.glide:okhttp3-integration:$glideVersion@aar"
kapt "com.github.bumptech.glide:compiler:$glideVersion"
implementation "org.greenrobot:eventbus:3.3.1"
kapt "org.greenrobot:eventbus-annotation-processor:3.3.1"

implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
implementation "com.squareup.okio:okio:$okioVersion"
implementation "org.greenrobot:eventbus:$eventbusVersion"
kapt "org.greenrobot:eventbus-annotation-processor:$eventbusVersion"
implementation "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion"
implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion"
implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
implementation "io.reactivex.rxjava2:rxjava:2.2.21"

implementation "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion"
implementation "com.joanzapata.iconify:android-iconify-material:$iconifyVersion"
implementation 'com.leinardi.android:speed-dial:3.2.0'
implementation "com.joanzapata.iconify:android-iconify-fontawesome:2.2.2"
implementation "com.joanzapata.iconify:android-iconify-material:2.2.2"
implementation 'com.leinardi.android:speed-dial:3.3.0'
implementation 'com.github.ByteHamster:SearchPreference:v2.5.0'
implementation 'com.github.skydoves:balloon:1.5.3'
implementation 'com.github.skydoves:balloon:1.6.4'
implementation 'com.github.xabaras:RecyclerViewSwipeDecorator:1.3'
implementation "com.annimon:stream:$annimonStreamVersion"
implementation "com.annimon:stream:1.2.2"

// Non-free dependencies:
playImplementation 'com.google.android.play:core-ktx:1.8.0'
compileOnly "com.google.android.wearable:wearable:$wearableSupportVersion"
playImplementation 'com.google.android.play:core-ktx:1.8.1'
compileOnly "com.google.android.wearable:wearable:2.9.0"

// this one can not be updated?
androidTestImplementation 'com.nanohttpd:nanohttpd:2.1.1'
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
androidTestImplementation "androidx.test:runner:$runnerVersion"
androidTestImplementation "androidx.test:rules:$rulesVersion"
androidTestImplementation "androidx.test.espresso:espresso-core:3.5.1"
androidTestImplementation "androidx.test.espresso:espresso-contrib:3.5.1"
androidTestImplementation "androidx.test.espresso:espresso-intents:3.5.1"
androidTestImplementation "androidx.test:runner:1.5.2"
androidTestImplementation "androidx.test:rules:1.5.0"
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation "org.awaitility:awaitility:$awaitilityVersion"
androidTestImplementation "org.awaitility:awaitility:4.2.0"

implementation "com.annimon:stream:$annimonStreamVersion"
implementation "com.annimon:stream:1.2.2"
implementation 'com.github.mfietz:fyydlin:v0.5.0'

// Non-free dependencies:

testImplementation "androidx.test:core:$testCoreVersion"
testImplementation "org.awaitility:awaitility:$awaitilityVersion"
testImplementation "junit:junit:$junitVersion"
testImplementation "androidx.test:core:1.5.0"
testImplementation "org.awaitility:awaitility:4.2.0"
testImplementation "junit:junit:4.13.2"
testImplementation 'org.mockito:mockito-inline:5.2.0'
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation "org.robolectric:robolectric:4.11.1"
testImplementation 'javax.inject:javax.inject:1'


playImplementation 'com.google.android.gms:play-services-base:17.5.0'
playImplementation 'com.google.android.gms:play-services-base:18.3.0'
freeImplementation 'org.conscrypt:conscrypt-android:2.5.2'

playApi 'androidx.mediarouter:mediarouter:1.6.0'
playApi "com.google.android.support:wearable:$wearableSupportVersion"
playApi 'com.google.android.gms:play-services-cast-framework:21.2.0'
playApi "com.google.android.support:wearable:2.9.0"
playApi 'com.google.android.gms:play-services-cast-framework:21.4.0'
}

kapt {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package de.test.podcini.util.service.download

import ac.mdiq.podcini.BuildConfig
import android.util.Base64
import android.util.Log
import ac.mdiq.podcini.BuildConfig
import fi.iki.elonen.NanoHTTPD
import fi.iki.elonen.NanoHTTPD.Response.IStatus
import org.apache.commons.io.IOUtils
Expand Down
Loading

0 comments on commit 0b75b4c

Please sign in to comment.