Skip to content

Commit

Permalink
3 update to moshi (#8)
Browse files Browse the repository at this point in the history
Migrate to [moshi](https://github.com/square/moshi) instead of gson to
have better compatibility with kotlin.
  • Loading branch information
StaehliJ committed Jun 26, 2023
1 parent 301bc0e commit 74f4e42
Show file tree
Hide file tree
Showing 89 changed files with 762 additions and 763 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ tasks.register("clean", Delete::class) {
allprojects {
apply(plugin = "io.gitlab.arturbosch.detekt")
detekt {
buildUponDefaultConfig = true // preconfigure defaults
buildUponDefaultConfig = false // preconfigure defaults
allRules = false // activate all available (even unstable) rules.
source.setFrom("src/main/java", "src/main/kotlin")
config.setFrom("../config/detekt.yml") // point to your custom config defining rules to run, overwriting default behavior
Expand Down
6 changes: 4 additions & 2 deletions buildSrc/src/main/kotlin/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ object Versions {
const val coreKtx = "1.8.0"
const val lifecycle = "2.5.1"
const val dagger = "2.44.2"
const val retrofit = "2.9.0"
const val retrofit = "2.9.0"
const val okHttp = "4.9.1"
const val gson = "2.10.1"
const val datetime = "0.4.0"
const val moshi = "1.14.0"
const val detekt = "1.22.0"
const val paging = "3.1.1"

}
6 changes: 5 additions & 1 deletion data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.kapt")
`maven-publish`
}

Expand Down Expand Up @@ -38,7 +39,10 @@ android {

dependencies {
implementation("androidx.core:core-ktx:${Versions.coreKtx}")
implementation("com.google.code.gson:gson:${Versions.gson}")

api("com.squareup.moshi:moshi:${Versions.moshi}")
api("com.squareup.moshi:moshi-adapters:${Versions.moshi}")
kapt("com.squareup.moshi:moshi-kotlin-codegen:${Versions.moshi}")

testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ch.srg.dataProvider.integrationlayer.data

import ch.srg.dataProvider.integrationlayer.data.gson.BlockReasonJSonDeserializer
import ch.srg.dataProvider.integrationlayer.data.remote.BlockReason
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.JsonObject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@
import java.util.Date;
import java.util.GregorianCalendar;

import ch.srg.dataProvider.integrationlayer.data.gson.DateJsonSerializer;
import ch.srg.dataProvider.integrationlayer.data.gson.RationalSerializer;

/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
Expand Down Expand Up @@ -56,4 +53,4 @@ public void testRational() throws ParseException {
Rational result = gson.fromJson(ilJson, Rational.class);
Assert.assertEquals(rational, result);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package ch.srg.dataProvider.integrationlayer.data

import ch.srg.dataProvider.integrationlayer.data.adapter.AspectRatioAdapter
import ch.srg.dataProvider.integrationlayer.data.adapter.BlockReasonAdapter
import ch.srg.dataProvider.integrationlayer.data.adapter.ImageUrlAdapter
import com.squareup.moshi.Moshi
import com.squareup.moshi.adapters.Rfc3339DateJsonAdapter
import com.squareup.moshi.addAdapter

object DataProviderMoshi {

@OptIn(ExperimentalStdlibApi::class)
val moshi: Moshi = Moshi.Builder()
.add(BlockReasonAdapter())
.add(AspectRatioAdapter())
.add(ImageUrlAdapter())
.addAdapter(Rfc3339DateJsonAdapter())
.build()
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package ch.srg.dataProvider.integrationlayer.data

/**
* Copyright (c) SRG SSR. All rights reserved.
*
*
* License information is available from the LICENSE file.
*/
data class IlImage @JvmOverloads constructor(val url: String, val scaling: Scaling = Scaling.Default) {
enum class Scaling {
Default, PreserveAspectRatio
}

@Suppress("MagicNumber")
enum class Size(val sizePixels: Int) {
W240(240), W320(320), W480(480), W960(960), W1920(1920);

companion object {
fun getClosest(pixels: Int): Size {
if (pixels >= W1920.sizePixels) {
return W1920
}
if (pixels <= W240.sizePixels) {
return W240
}
val sizes = values()
var closestSize = 0
var minDist = Int.MAX_VALUE
for (i in sizes.indices) {
val dist = Math.abs(sizes[i].sizePixels - pixels)
if (dist <= minDist) {
minDist = dist
closestSize = i
}
}
return sizes[closestSize]
}
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
@file:Suppress("MemberVisibilityCanBePrivate")

package ch.srg.dataProvider.integrationlayer.data

import ch.srg.dataProvider.integrationlayer.data.IlImage.Scaling
import java.io.Serializable

/**
* Copyright (c) SRG SSR. All rights reserved.
*
*
* License information is available from the LICENSE file.
*/
@Suppress("SerialVersionUIDInSerializableClass")
data class ImageUrl(
/**
* Only for internal use!
*
* @return the undecorated url
*/
val rawUrl: String
) : Serializable {

@JvmOverloads
fun getIlImage(scaling: Scaling = Scaling.Default): IlImage {
return IlImage(rawUrl, scaling)
}

override fun toString(): String {
return rawUrl
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package ch.srg.dataProvider.integrationlayer.data.adapter

import ch.srg.dataProvider.integrationlayer.data.remote.AspectRatio
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson

class AspectRatioAdapter {

@ToJson
fun toJson(aspectRatio: AspectRatio): String {
return aspectRatio.toString()
}

@FromJson
fun fromJson(json: String): AspectRatio {
return AspectRatio.parse(json)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ch.srg.dataProvider.integrationlayer.data.adapter

import ch.srg.dataProvider.integrationlayer.data.remote.BlockReason
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson

class BlockReasonAdapter {

@FromJson fun fromJson(json: String): BlockReason {
return BlockReason.parseValue(json)
}

@ToJson fun toJson(blockReason: BlockReason): String {
return blockReason.toString()
}
}
Loading

0 comments on commit 74f4e42

Please sign in to comment.