From 712dc4f2f61124aa2ea2f684c483f54d1ee883c7 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Wed, 13 Jun 2018 22:16:48 +0200 Subject: [PATCH] First preparations for embedding content in messages --- .../kuschku/quasseldroid/util/embed/EmbedApi.kt | 10 ++++++++++ .../quasseldroid/util/embed/EmbedHelper.kt | 16 ++++++++++++++++ .../quasseldroid/util/embed/EmbedResponse.kt | 7 +++++++ .../viewmodel/data/FormattedMessage.kt | 3 +++ 4 files changed, 36 insertions(+) create mode 100644 app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedApi.kt create mode 100644 app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedHelper.kt create mode 100644 app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedResponse.kt diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedApi.kt b/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedApi.kt new file mode 100644 index 000000000..899ff8f59 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedApi.kt @@ -0,0 +1,10 @@ +package de.kuschku.quasseldroid.util.embed + +import io.reactivex.Observable +import retrofit2.http.GET +import retrofit2.http.Query + +interface EmbedApi { + @GET() + fun embedData(@Query("url") url: String): Observable<EmbedResponse> +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedHelper.kt new file mode 100644 index 000000000..472e5aef7 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedHelper.kt @@ -0,0 +1,16 @@ +package de.kuschku.quasseldroid.util.embed + +import com.google.gson.GsonBuilder +import io.reactivex.Observable +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + +class EmbedHelper(baseUrl: String) { + private val api = Retrofit.Builder() + .baseUrl(baseUrl) + .addConverterFactory(GsonConverterFactory.create(GsonBuilder().setLenient().create())) + .build() + .create(EmbedApi::class.java) + + fun embedCode(url: String): Observable<EmbedResponse> = api.embedData(url) +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedResponse.kt b/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedResponse.kt new file mode 100644 index 000000000..ec45c32e1 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/util/embed/EmbedResponse.kt @@ -0,0 +1,7 @@ +package de.kuschku.quasseldroid.util.embed + +data class EmbedResponse( + val result: Boolean, + val type: String, + val code: String +) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/FormattedMessage.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/FormattedMessage.kt index 773111d66..c348fc30c 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/FormattedMessage.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/FormattedMessage.kt @@ -32,6 +32,7 @@ class FormattedMessage( val fallbackDrawable: Drawable? = null, val realName: CharSequence? = null, val avatarUrls: List<Avatar> = emptyList(), + val urls: List<String> = emptyList(), val hasDayChange: Boolean, val isSelected: Boolean, val isExpanded: Boolean, @@ -51,6 +52,7 @@ class FormattedMessage( if (combined != other.combined) return false if (realName != other.realName) return false if (avatarUrls != other.avatarUrls) return false + if (urls != other.urls) return false if (hasDayChange != other.hasDayChange) return false if (isSelected != other.isSelected) return false if (isExpanded != other.isExpanded) return false @@ -68,6 +70,7 @@ class FormattedMessage( result = 31 * result + combined.hashCode() result = 31 * result + (realName?.hashCode() ?: 0) result = 31 * result + avatarUrls.hashCode() + result = 31 * result + urls.hashCode() result = 31 * result + hasDayChange.hashCode() result = 31 * result + isSelected.hashCode() result = 31 * result + isExpanded.hashCode() -- GitLab