mirror of https://github.com/deniscerri/ytdlnis
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.9 KiB
Kotlin
54 lines
1.9 KiB
Kotlin
package com.deniscerri.ytdlnis.database
|
|
|
|
import androidx.room.TypeConverter
|
|
import com.deniscerri.ytdlnis.database.models.AudioPreferences
|
|
import com.deniscerri.ytdlnis.database.models.Format
|
|
import com.deniscerri.ytdlnis.database.models.VideoPreferences
|
|
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
|
import com.google.gson.Gson
|
|
import com.google.gson.reflect.TypeToken
|
|
import java.lang.reflect.Type
|
|
import java.util.Calendar
|
|
|
|
|
|
class Converters {
|
|
@TypeConverter
|
|
fun stringToListOfFormats(value: String?): ArrayList<Format> {
|
|
val listType: Type = object : TypeToken<ArrayList<Format?>?>() {}.type
|
|
return Gson().fromJson(value, listType)
|
|
}
|
|
|
|
@TypeConverter
|
|
fun listOfFormatsToString(list: ArrayList<Format?>?): String {
|
|
val gson = Gson()
|
|
return gson.toJson(list)
|
|
}
|
|
|
|
@TypeConverter
|
|
fun formatToString(format: Format): String = Gson().toJson(format)
|
|
|
|
@TypeConverter
|
|
fun stringToFormat(string: String): Format = Gson().fromJson(string, Format::class.java)
|
|
|
|
|
|
@TypeConverter
|
|
fun typeToString(type: DownloadViewModel.Type) : String = type.toString()
|
|
@TypeConverter
|
|
fun stringToType(string: String) : DownloadViewModel.Type {
|
|
return when(string){
|
|
"audio" -> DownloadViewModel.Type.audio
|
|
"video" -> DownloadViewModel.Type.video
|
|
else -> DownloadViewModel.Type.command
|
|
}
|
|
}
|
|
|
|
@TypeConverter
|
|
fun audioPreferencesToString(audioPreferences: AudioPreferences): String = Gson().toJson(audioPreferences)
|
|
@TypeConverter
|
|
fun stringToAudioPreferences(string: String): AudioPreferences = Gson().fromJson(string, AudioPreferences::class.java)
|
|
|
|
@TypeConverter
|
|
fun videoPreferencesToString(videoPreferences: VideoPreferences): String = Gson().toJson(videoPreferences)
|
|
@TypeConverter
|
|
fun stringToVideoPreferences(string: String): VideoPreferences = Gson().fromJson(string, VideoPreferences::class.java)
|
|
} |