From 98a61954a3a16ad0ce6431ec3444d804917f7b25 Mon Sep 17 00:00:00 2001 From: birdbird <6892457-tzugen@users.noreply.gitlab.com> Date: Thu, 18 May 2023 20:28:13 +0000 Subject: [PATCH] Release 4.4.1 --- .../metadata/android/en-US/changelogs/120.txt | 10 +++++ gradle.properties | 3 ++ ultrasonic/build.gradle | 4 +- ultrasonic/minify/proguard-retrofit.pro | 41 ++++++++++++++++--- 4 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/120.txt diff --git a/fastlane/metadata/android/en-US/changelogs/120.txt b/fastlane/metadata/android/en-US/changelogs/120.txt new file mode 100644 index 00000000..be4a20f9 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/120.txt @@ -0,0 +1,10 @@ +Features: +- This releases focuses on shuffled playback. The view of the playlist will now present itself in the order it will actually play. You can toggle the shuffle mode to create a new order, while the past playback history will be preserved. +- Use Coroutines for triggering the download or playback of music through the context menus +- Enable Artists pictures by Default + +Bug fixes: +- Remove an unhelpful popup that "ID must be set" +- Shuffle mode doesn't always play all tracks +- Shuffle mode starts with the first track most of the time + diff --git a/gradle.properties b/gradle.properties index 7ab3793a..e2c4770f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,3 +20,6 @@ android.nonFinalResIds=true # It can be removed if it makes problems org.gradle.unsafe.configuration-cache=true +# TODO Renable on day (check that Retrofit, Jackson, and Imageloader are working) +android.enableR8.fullMode=false + diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle index 365c50b7..8213981d 100644 --- a/ultrasonic/build.gradle +++ b/ultrasonic/build.gradle @@ -9,8 +9,8 @@ android { defaultConfig { applicationId "org.moire.ultrasonic" - versionCode 119 - versionName "4.4.0" + versionCode 120 + versionName "4.4.1" minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk diff --git a/ultrasonic/minify/proguard-retrofit.pro b/ultrasonic/minify/proguard-retrofit.pro index f6dd5b8f..8e85c3d0 100644 --- a/ultrasonic/minify/proguard-retrofit.pro +++ b/ultrasonic/minify/proguard-retrofit.pro @@ -1,10 +1,41 @@ -#### From retrofit +# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and +# EnclosingMethod is required to use InnerClasses. +-keepattributes Signature, InnerClasses, EnclosingMethod -# Retain generic type information for use by reflection by converters and adapters. --keepattributes Signature -# Retain service method parameters. --keepclassmembernames,allowobfuscation interface * { +# Retrofit does reflection on method and parameter annotations. +-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations + +# Keep annotation default values (e.g., retrofit2.http.Field.encoded). +-keepattributes AnnotationDefault + +# Retain service method parameters when optimizing. +-keepclassmembers,allowshrinking,allowobfuscation interface * { @retrofit2.http.* ; } + # Ignore annotation used for build tooling. -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement + +# Ignore JSR 305 annotations for embedding nullability information. +-dontwarn javax.annotation.** + +# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. +-dontwarn kotlin.Unit + +# Top-level functions that can only be used by Kotlin. +-dontwarn retrofit2.KotlinExtensions +-dontwarn retrofit2.KotlinExtensions$* + +# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy +# and replaces all potential values with null. Explicitly keeping the interfaces prevents this. +-if interface * { @retrofit2.http.* ; } +-keep,allowobfuscation interface <1> + +# Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items). +-keep,allowobfuscation,allowshrinking interface retrofit2.Call +-keep,allowobfuscation,allowshrinking class retrofit2.Response + +# With R8 full mode generic signatures are stripped for classes that are not +# kept. Suspend functions are wrapped in continuations where the type argument +# is used. +-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation \ No newline at end of file