1
0
mirror of https://github.com/KokaKiwi/BarInsta synced 2024-11-22 14:47:29 +00:00

Read emojis json with context

This commit is contained in:
Ammar Githam 2021-03-23 00:00:29 +09:00
parent 0d58aac9b9
commit 58a69f2da6
2 changed files with 15 additions and 11 deletions

View File

@ -171,7 +171,7 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage
getSupportFragmentManager().addOnBackStackChangedListener(this);
// Initialise the internal map
AppExecutors.getInstance().tasksThread().execute(() -> {
EmojiParser.getInstance();
EmojiParser.setup(this);
EmojiVariantManager.getInstance();
});
initEmojiCompat();

View File

@ -1,7 +1,10 @@
package awais.instagrabber.utils.emoji;
import android.content.Context;
import android.util.Log;
import androidx.annotation.NonNull;
import com.google.common.collect.ImmutableList;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
@ -18,6 +21,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import awais.instagrabber.R;
import awais.instagrabber.customviews.emoji.Emoji;
import awais.instagrabber.customviews.emoji.EmojiCategory;
import awais.instagrabber.customviews.emoji.EmojiCategoryType;
@ -33,25 +37,25 @@ public final class EmojiParser {
private Map<EmojiCategoryType, EmojiCategory> categoryMap = Collections.emptyMap();
private ImmutableList<EmojiCategory> categories;
public static EmojiParser getInstance() {
public static void setup(@NonNull final Context context) {
if (instance == null) {
synchronized (LOCK) {
if (instance == null) {
instance = new EmojiParser();
instance = new EmojiParser(context);
}
}
}
}
public static EmojiParser getInstance() {
if (instance == null) {
throw new RuntimeException("Setup not done!");
}
return instance;
}
private EmojiParser() {
final String file = "res/raw/emojis.json";
final ClassLoader classLoader = getClass().getClassLoader();
if (classLoader == null) {
Log.e(TAG, "Emoji: classLoader is null");
return;
}
try (final InputStream in = classLoader.getResourceAsStream(file)) {
private EmojiParser(final Context context) {
try (final InputStream in = context.getResources().openRawResource(R.raw.emojis)) {
final String json = NetworkUtils.readFromInputStream(in);
final Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)