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 0000000000000000000000000000000000000000..899ff8f5975ed947e0c76747ac6502f486a1ff1a --- /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 0000000000000000000000000000000000000000..472e5aef71186061fc4ab91e1bcb3ea1cb663870 --- /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 0000000000000000000000000000000000000000..ec45c32e166bd3a097191e5c2f26c082d8da3a93 --- /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 773111d6608c06f3c4e914fe507aa744d4954136..c348fc30c528d53e88371788255af782f6791e2c 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()