diff --git a/app/src/main/java/de/kuschku/quasseldroid/defaults/DefaultNetworks.kt b/app/src/main/java/de/kuschku/quasseldroid/defaults/DefaultNetworks.kt
index bd6b22942d43e4c19c9f25ff15aca38dac6e137d..b0f559d82bb20f2e9e95bb483640951e8e63120e 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/defaults/DefaultNetworks.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/defaults/DefaultNetworks.kt
@@ -21,7 +21,7 @@ package de.kuschku.quasseldroid.defaults
 
 import android.content.Context
 import com.google.gson.Gson
-import de.kuschku.quasseldroid.util.helper.fromJson
+import de.kuschku.quasseldroid.util.helper.fromJsonList
 import java.io.IOException
 import javax.inject.Inject
 
@@ -29,7 +29,7 @@ class DefaultNetworks @Inject constructor(context: Context, gson: Gson) {
   val networks: List<DefaultNetwork> by lazy {
     try {
       context.assets.open("networks.json").use {
-        gson.fromJson(it.bufferedReader(Charsets.UTF_8))
+        gson.fromJsonList(it.bufferedReader(Charsets.UTF_8))
       }
     } catch (e: IOException) {
       throw IllegalStateException("networks.json missing from assets.", e)
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/AndroidEmojiProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/util/AndroidEmojiProvider.kt
index e0eea29ac6c6712f68f80dcd56863462b4cffabb..a7510c71aa210e7928346def1de61134c1666554 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/AndroidEmojiProvider.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/AndroidEmojiProvider.kt
@@ -23,13 +23,13 @@ import android.content.Context
 import com.google.gson.Gson
 import de.kuschku.quasseldroid.util.emoji.EmojiHandler
 import de.kuschku.quasseldroid.util.emoji.EmojiProvider
-import de.kuschku.quasseldroid.util.helper.fromJson
+import de.kuschku.quasseldroid.util.helper.fromJsonList
 import java.io.IOException
 
 class AndroidEmojiProvider(context: Context, gson: Gson) : EmojiProvider {
   override val emoji: List<EmojiHandler.Emoji> = try {
     context.assets.open("emoji.json").use {
-      gson.fromJson(it.bufferedReader(Charsets.UTF_8))
+      gson.fromJsonList(it.bufferedReader(Charsets.UTF_8))
     }
   } catch (e: IOException) {
     throw IllegalStateException("emoji.json missing from assets.", e)
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt
index 0c7657f404ad09c3ee90991dd675a5b5022a65a3..6789a0c30689db87f847473e1fc2a48af16adf38 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/helper/GsonHelper.kt
@@ -24,26 +24,20 @@ import com.google.gson.JsonElement
 import com.google.gson.reflect.TypeToken
 import java.io.Reader
 
+inline fun <reified T> Gson.fromJsonList(jsonElement: JsonElement): T =
+  this.fromJson(jsonElement, object : TypeToken<T>() {}.type)
+
+inline fun <reified T> Gson.fromJsonList(reader: Reader): T =
+  this.fromJson(reader, object : TypeToken<T>() {}.type)
+
+inline fun <reified T> Gson.fromJsonList(text: String): T =
+  this.fromJson(text, object : TypeToken<T>() {}.type)
+
 inline fun <reified T> Gson.fromJson(jsonElement: JsonElement): T =
-  if (T::class.java.typeParameters.isEmpty()) {
-    this.fromJson(jsonElement, T::class.java)
-  } else {
-    val type = object : TypeToken<T>() {}.type
-    this.fromJson(jsonElement, type)
-  }
+  this.fromJson(jsonElement, T::class.java)
 
 inline fun <reified T> Gson.fromJson(reader: Reader): T =
-  if (T::class.java.typeParameters.isEmpty()) {
-    this.fromJson(reader, T::class.java)
-  } else {
-    val type = object : TypeToken<T>() {}.type
-    this.fromJson(reader, type)
-  }
+  this.fromJson(reader, T::class.java)
 
 inline fun <reified T> Gson.fromJson(text: String): T =
-  if (T::class.java.typeParameters.isEmpty()) {
-    this.fromJson(text, T::class.java)
-  } else {
-    val type = object : TypeToken<T>() {}.type
-    this.fromJson(text, type)
-  }
+  this.fromJson(text, T::class.java)