Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Commit

Permalink
network: Bump retrofit to 2.11.0
Browse files Browse the repository at this point in the history
- Explicity generate type adapter for all json classes instead of using reflection

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
  • Loading branch information
theimpulson committed May 2, 2024
1 parent 99a5b8f commit 0cc26e8
Show file tree
Hide file tree
Showing 40 changed files with 105 additions and 4 deletions.
3 changes: 2 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@ dependencies {
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")

// Retrofit
val retrofitVersion = "2.9.0"
val retrofitVersion = "2.11.0"
ksp("com.squareup.moshi:moshi-kotlin-codegen:1.15.1")
implementation("com.squareup.retrofit2:retrofit:$retrofitVersion")
implementation("com.squareup.retrofit2:converter-moshi:$retrofitVersion")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.alert

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.Pagination

@JsonClass(generateAdapter = true)
data class Alerts(
val alerts: List<UserAlert> = emptyList(),
val pagination: Pagination = Pagination()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.aayush.relabs.network.data.alert

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.DateTime
import io.aayush.relabs.network.data.user.User

@JsonClass(generateAdapter = true)
data class UserAlert(
val action: Action = Action.REACTION,
val content_id: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.common

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Avatar(
val data: Data = Data(),
val type: String = String()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package io.aayush.relabs.network.data.common

import androidx.compose.ui.graphics.Color
import androidx.core.graphics.toColorInt
import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Data(
val background_color: String? = String(),
val large: String = String(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.aayush.relabs.network.data.common

import com.squareup.moshi.JsonClass
import java.text.SimpleDateFormat
import java.util.Locale

@JsonClass(generateAdapter = true)
data class DateTime(
val atomic: String = "1970-01-01T00:00:00+00:00",
val formatted: String = "January 1, 1970 at 0:00 AM"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.common

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Pagination(
val current_page: Int = 0,
val last_page: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.common

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Success(
val success: Boolean = false,
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.devices

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.node.Node

@JsonClass(generateAdapter = true)
data class Device(
val Node: Node = Node(),
val description: String = String(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.devices

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Devices(
val devices: List<Device> = listOf()
)
3 changes: 3 additions & 0 deletions app/src/main/java/io/aayush/relabs/network/data/expo/Data.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.expo

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Data(
val expoPushToken: String = String(),
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.expo

import com.squareup.moshi.JsonClass
import java.util.UUID

@JsonClass(generateAdapter = true)
data class ExpoData(
val deviceToken: String,
val deviceId: String = UUID.randomUUID().toString(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.expo

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class PostData(
val data: Data = Data(),
)
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package io.aayush.relabs.network.data.node

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Breadcrumb(
val depth: Int = 0,
val lft: Int = 0,
val node_id: Int = 0,
val node_name: Any = Any(),
val node_name: Any? = Any(),
val node_type_id: String = String(),
val title: String = String()
)
2 changes: 2 additions & 0 deletions app/src/main/java/io/aayush/relabs/network/data/node/Node.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.node

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.adapter.singletoarray.SingleToArray

@JsonClass(generateAdapter = true)
data class Node(
val depth: Int = 0,
val description: String = String(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.node

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class NodeData(
val discussion_count: Int = 0,
val isUnread: Boolean = false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.aayush.relabs.network.data.node

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.Avatar
import io.aayush.relabs.network.data.common.DateTime

@JsonClass(generateAdapter = true)
data class NodeTypeData(
val canCreateThread: Boolean = false,
val canIgnore: Boolean = false,
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/io/aayush/relabs/network/data/node/Nodes.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.node

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Nodes(
val nodes: List<Node> = emptyList()
)
3 changes: 3 additions & 0 deletions app/src/main/java/io/aayush/relabs/network/data/node/XDA.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.node

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class XDA(
val coverUrl: String? = String(),
val iconUrl: String? = String(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.post

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.DateTime

@JsonClass(generateAdapter = true)
data class Attachment(
val canView: Boolean = false,
val created_at: DateTime = DateTime(),
Expand All @@ -11,6 +13,6 @@ data class Attachment(
val id: Int = 0,
val isImage: Boolean = false,
val permalink: String = String(),
val thumbnail: String = String(),
val thumbnail: String? = String(),
val width: Int? = 0
)
2 changes: 2 additions & 0 deletions app/src/main/java/io/aayush/relabs/network/data/post/Post.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package io.aayush.relabs.network.data.post

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.DateTime
import io.aayush.relabs.network.data.react.ReactionCount
import io.aayush.relabs.network.data.react.ReactionUser
import io.aayush.relabs.network.data.user.User

@JsonClass(generateAdapter = true)
data class Post(
val apiVoteUrl: String = String(),
val attach_count: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.post

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class PostInfo(
val post: Post = Post()
)
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.post

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class PostReply(
val success: Boolean = false,
val post: Post = Post()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.react

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Image(
val `2x`: String = String(),
val normal: String = String()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.react

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class PostReact(
val success: Boolean = false,
val action: String = String()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.react

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Reaction(
val color: String = String(),
val id: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.react

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class ReactionCount(
val count: Int = 0,
val reaction: Reaction = Reaction(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.react

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class ReactionUser(
val reaction: Reaction = Reaction(),
val reaction_id: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.react

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Sprite(
val bs: String = String(),
val h: String = String(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.search

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class PostSearch(
val search: Search = Search()
)
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.search

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.DateTime

@JsonClass(generateAdapter = true)
data class Search(
val created_at: DateTime = DateTime(),
val id: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.aayush.relabs.network.data.search

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.Pagination
import io.aayush.relabs.network.data.node.Node

@JsonClass(generateAdapter = true)
data class SearchResultNode(
val search: Search = Search(),
val results: List<Node> = emptyList(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.aayush.relabs.network.data.search

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.Pagination
import io.aayush.relabs.network.data.thread.Thread

@JsonClass(generateAdapter = true)
data class SearchResultThread(
val search: Search = Search(),
val results: List<Thread> = emptyList(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.thread

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Choice(
val response: String = String(),
val vote_count: Int? = null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.aayush.relabs.network.data.thread

import com.squareup.moshi.JsonClass

@JsonClass(generateAdapter = true)
data class Poll(
val choices: List<Choice> = listOf(),
val id: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package io.aayush.relabs.network.data.thread

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.DateTime
import io.aayush.relabs.network.data.node.Node
import io.aayush.relabs.network.data.post.Post
import io.aayush.relabs.network.data.user.User

@JsonClass(generateAdapter = true)
data class Thread(
val apiVoteUrl: String = String(),
val canDelete: Boolean = false,
Expand Down Expand Up @@ -32,7 +34,7 @@ data class Thread(
val node: Node = Node(),
val permalink: String = String(),
val prefix: Prefix? = Prefix.UNAVAILABLE,
val poll: Poll = Poll(),
val poll: Poll? = Poll(),
val replyUrl: String = String(),
val reply_count: Int = 0,
val reportUrl: String = String(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.aayush.relabs.network.data.thread

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.Pagination
import io.aayush.relabs.network.data.post.Post

@JsonClass(generateAdapter = true)
data class ThreadInfo(
val first_unread: Post = Post(),
val pagination: Pagination = Pagination(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.aayush.relabs.network.data.thread

import com.squareup.moshi.JsonClass
import io.aayush.relabs.network.data.common.Pagination

@JsonClass(generateAdapter = true)
data class Threads(
val pagination: Pagination = Pagination(),
val threads: List<Thread> = listOf(),
Expand Down
Loading

0 comments on commit 0cc26e8

Please sign in to comment.