summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-12-22 16:49:01 +0100
committerThomas <tschneider.ac@gmail.com>2023-12-22 16:49:01 +0100
commitfadf3fb78892bc6918de7d74b123bb10cd9d8236 (patch)
treeb7357247f6ade46f1b5d0449e64c5ea7f97827c5
parent6ee9601e2310e07b2211d7f0a22532cb426adfa2 (diff)
Emoji not displayed in the picker
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/EmojiInstance.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/EmojiInstance.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/EmojiInstance.java
index 71955a3d2..5cc9b4076 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/EmojiInstance.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/EmojiInstance.java
@@ -17,18 +17,32 @@ package app.fedilab.android.mastodon.client.entities.api;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
+import android.database.sqlite.SQLiteBlobTooBigException;
import android.database.sqlite.SQLiteDatabase;
+import androidx.lifecycle.ViewModelProvider;
+
import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
import java.io.Serializable;
+import java.net.IDN;
import java.util.ArrayList;
import java.util.List;
+import app.fedilab.android.BaseMainActivity;
+import app.fedilab.android.mastodon.client.endpoints.MastodonInstanceService;
import app.fedilab.android.mastodon.exception.DBException;
+import app.fedilab.android.mastodon.helper.Helper;
+import app.fedilab.android.mastodon.viewmodel.mastodon.InstancesVM;
import app.fedilab.android.sqlite.Sqlite;
+import okhttp3.OkHttpClient;
+import retrofit2.Call;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
public class EmojiInstance implements Serializable {
@@ -170,6 +184,17 @@ public class EmojiInstance implements Serializable {
}
}
+
+ private MastodonInstanceService init(String instance) {
+ final OkHttpClient okHttpClient = Helper.myOkHttpClient(context);
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("https://" + (instance != null ? IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) : null) + "/api/v1/")
+ .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder()))
+ .client(okHttpClient)
+ .build();
+ return retrofit.create(MastodonInstanceService.class);
+ }
+
/**
* Returns the emojis for an instance
*
@@ -184,6 +209,18 @@ public class EmojiInstance implements Serializable {
Cursor c = db.query(Sqlite.TABLE_EMOJI_INSTANCE, null, Sqlite.COL_INSTANCE + " = '" + instance + "'", null, null, null, null, "1");
return cursorToEmojiList(c);
} catch (Exception e) {
+ MastodonInstanceService mastodonInstanceService = init(instance);
+ Call<List<Emoji>> emojiCall = mastodonInstanceService.customEmoji();
+ if (emojiCall != null) {
+ try {
+ Response<List<Emoji>> emojiResponse = emojiCall.execute();
+ if (emojiResponse.isSuccessful()) {
+ return emojiResponse.body();
+ }
+ } catch (Exception err) {
+ err.printStackTrace();
+ }
+ }
return null;
}
}