From 2c026f039ecfb0497d4d1e5710c40a987fe97c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20=C3=87erri?= <64997243+deniscerri@users.noreply.github.com> Date: Sun, 5 Mar 2023 19:30:40 +0100 Subject: [PATCH] fixed templates backup importing duplicates --- app/build.gradle | 2 +- app/proguard-rules.pro | 38 +++++++++++++++++++ .../viewmodel/CommandTemplateViewModel.kt | 4 +- .../SelectPlaylistItemsBottomSheetDialog.kt | 4 +- build.gradle | 4 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 6 files changed, 48 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5f327079..1c832a7e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -126,7 +126,7 @@ dependencies { implementation "androidx.appcompat:appcompat:$appCompatVer" implementation "androidx.constraintlayout:constraintlayout:2.1.4" - implementation 'com.google.android.material:material:1.7.0' + implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.core:core:1.9.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f1b42451..4e7d61b6 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -19,3 +19,41 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile +-if @kotlinx.serialization.Serializable class ** +-keepclassmembers class <1> { + static <1>$Companion Companion; +} + +# Keep `serializer()` on companion objects (both default and named) of serializable classes. +-if @kotlinx.serialization.Serializable class ** { + static **$* *; +} +-keepclassmembers class <2>$<3> { + kotlinx.serialization.KSerializer serializer(...); +} + +# Keep `INSTANCE.serializer()` of serializable objects. +-if @kotlinx.serialization.Serializable class ** { + public static ** INSTANCE; +} +-keepclassmembers class <1> { + public static <1> INSTANCE; + kotlinx.serialization.KSerializer serializer(...); +} + +# @Serializable and @Polymorphic are used at runtime for polymorphic serialization. +-keepattributes RuntimeVisibleAnnotations,AnnotationDefault + +# Serializer for classes with named companion objects are retrieved using `getDeclaredClasses`. +# If you have any, uncomment and replace classes with those containing named companion objects. +#-keepattributes InnerClasses # Needed for `getDeclaredClasses`. +#-if @kotlinx.serialization.Serializable class +#com.example.myapplication.HasNamedCompanion, # <-- List serializable classes with named companions. +#com.example.myapplication.HasNamedCompanion2 +#{ +# static **$* *; +#} +#-keepnames class <1>$$serializer { # -keepnames suffices; class is kept when serializer() is kept. +# static <1>$$serializer INSTANCE; +#} +-keepclassmembers enum * { *; } \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/CommandTemplateViewModel.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/CommandTemplateViewModel.kt index 93af94b5..5e1ad861 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/CommandTemplateViewModel.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/CommandTemplateViewModel.kt @@ -79,8 +79,8 @@ class CommandTemplateViewModel(private val application: Application) : AndroidVi val clip = clipboard.primaryClip!!.getItemAt(0).text.toString() try{ jsonFormat.decodeFromString(clip).run { - templates.filterNot { - allTemplates.contains(it) + templates.filterNot {t -> + allTemplates.find { it.content == t.content} != null }.run { this.forEach { repository.insert(it.copy(id=0)) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/SelectPlaylistItemsBottomSheetDialog.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/SelectPlaylistItemsBottomSheetDialog.kt index 4410fe99..b5fe4594 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/SelectPlaylistItemsBottomSheetDialog.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/downloadcard/SelectPlaylistItemsBottomSheetDialog.kt @@ -104,7 +104,9 @@ class SelectPlaylistItemsBottomSheetDialog(private val items: List, val downloadItems = mutableListOf() checkedResultItems.forEach {c -> val i = downloadViewModel.createDownloadItemFromResult(c,type) - i.format = downloadViewModel.getLatestCommandTemplateAsFormat() + if (type == DownloadViewModel.Type.command){ + i.format = downloadViewModel.getLatestCommandTemplateAsFormat() + } downloadItems.add(i) } if (downloadItems.size == 1){ diff --git a/build.gradle b/build.gradle index 8a2953d1..b6a68a2a 100644 --- a/build.gradle +++ b/build.gradle @@ -37,8 +37,8 @@ buildscript { } plugins { - id 'com.android.application' version '7.4.1' apply false - id 'com.android.library' version '7.4.1' apply false + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false id 'org.jetbrains.kotlin.android' version '1.7.21' apply false id "org.jetbrains.kotlin.plugin.serialization" version "1.7.21" apply false } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cc892dd9..65205869 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Jan 03 22:34:47 CET 2023 +#Sun Mar 05 19:03:41 CET 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME