Browse Source

Read emojis json with context

renovate/org.robolectric-robolectric-4.x
Ammar Githam 4 years ago
parent
commit
58a69f2da6
  1. 2
      app/src/main/java/awais/instagrabber/activities/MainActivity.java
  2. 24
      app/src/main/java/awais/instagrabber/utils/emoji/EmojiParser.java

2
app/src/main/java/awais/instagrabber/activities/MainActivity.java

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

24
app/src/main/java/awais/instagrabber/utils/emoji/EmojiParser.java

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

Loading…
Cancel
Save