[Android] Prepare the queries for equalizers backup/restore

Nicolas Pomepuy git at videolan.org
Fri Jul 25 11:46:43 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon Jun 30 08:00:03 2025 +0200| [0a7163324f9678855b94bc0be1faf697ae66a849] | committer: Nicolas Pomepuy

Prepare the queries for equalizers backup/restore

> https://code.videolan.org/videolan/vlc-android/commit/0a7163324f9678855b94bc0be1faf697ae66a849
---

 .../java/org/videolan/vlc/database/EqualizerDao.kt     |  3 +++
 .../org/videolan/vlc/repository/EqualizerRepository.kt |  1 +
 .../vlc-android/src/org/videolan/vlc/util/JsonUtil.kt  | 18 ++++++++++++++++++
 3 files changed, 22 insertions(+)

diff --git a/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt b/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt
index 56499deea6..46ff121b4d 100644
--- a/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt
+++ b/application/mediadb/src/main/java/org/videolan/vlc/database/EqualizerDao.kt
@@ -59,4 +59,7 @@ interface EqualizerDao {
     @Query("SELECT * FROM equalizer_entry WHERE id = :id")
     fun getCurrentEqualizer(id: Long): EqualizerWithBands?
 
+    @Query("SELECT * FROM equalizer_entry WHERE preset_index == -1")
+    fun getCustomEqualizers(): List<EqualizerWithBands>
+
 }
diff --git a/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt b/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt
index 6665b1caf2..9c50d439ff 100644
--- a/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt
+++ b/application/vlc-android/src/org/videolan/vlc/repository/EqualizerRepository.kt
@@ -68,6 +68,7 @@ class EqualizerRepository(private val equalizerDao: EqualizerDao, private val co
         equalizerDao.delete(equalizerEntry)
     }
 
+    fun getCustomEqualizers(): List<EqualizerWithBands> = equalizerDao.getCustomEqualizers()
 
     companion object : SingletonHolder<EqualizerRepository, Context>({ EqualizerRepository(MediaDatabase.getInstance(it).equalizerDao()) })
 }
\ No newline at end of file
diff --git a/application/vlc-android/src/org/videolan/vlc/util/JsonUtil.kt b/application/vlc-android/src/org/videolan/vlc/util/JsonUtil.kt
index 145f82bcc8..31cb77d981 100644
--- a/application/vlc-android/src/org/videolan/vlc/util/JsonUtil.kt
+++ b/application/vlc-android/src/org/videolan/vlc/util/JsonUtil.kt
@@ -46,6 +46,13 @@ object JsonUtil {
         return adapter.toJson(data)
     }
 
+    inline fun <reified T> convertToJson(data: List<T>?): String {
+        val moshi = Moshi.Builder().build()
+        val type = Types.newParameterizedType(MutableList::class.java, Any::class.java)
+        val adapter = moshi.adapter<List<T>>(type).nullSafe()
+        return adapter.toJson(data)
+    }
+
     fun getEqualizerFromJson(string: String): EqualizerWithBands? {
         val moshi: Moshi = Moshi.Builder().build()
         val type = Types.newParameterizedType(EqualizerWithBands::class.java)
@@ -56,5 +63,16 @@ object JsonUtil {
         }
         return null
     }
+
+    fun getEqualizersFromJson(string: String): List<EqualizerWithBands>? {
+        val moshi: Moshi = Moshi.Builder().build()
+        val type = Types.newParameterizedType(MutableList::class.java, EqualizerWithBands::class.java)
+
+        val adapter: JsonAdapter<List<EqualizerWithBands>> = moshi.adapter(type)
+        adapter.fromJson(string)?.let {
+            return it
+        }
+        return null
+    }
 }
 



More information about the Android mailing list