From 3fa86984dce075f7646bdc6a83abf062c007c2aa Mon Sep 17 00:00:00 2001 From: Docile-Alligator Date: Sat, 23 Apr 2022 21:36:25 +0800 Subject: Fix NullPointerException in Utils.parseInlineEmotes. --- .../infinityforreddit/utils/Utils.java | 46 +++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'app/src/main/java/ml') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java index 604188b8..7a4c584a 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java @@ -190,30 +190,32 @@ public final class Utils { public static String parseInlineEmotes(String markdown, JSONObject mediaMetadataObject) throws JSONException { JSONArray mediaMetadataNames = mediaMetadataObject.names(); - for (int i = 0; i < mediaMetadataNames.length(); i++) { - if (!mediaMetadataNames.isNull(i)) { - String mediaMetadataKey = mediaMetadataNames.getString(i); - if (mediaMetadataObject.isNull(mediaMetadataKey)) { - continue; - } - JSONObject item = mediaMetadataObject.getJSONObject(mediaMetadataKey); - if (item.isNull(JSONUtils.STATUS_KEY) - || !item.getString(JSONUtils.STATUS_KEY).equals("valid") - || item.isNull(JSONUtils.ID_KEY) - || item.isNull(JSONUtils.T_KEY) - || item.isNull(JSONUtils.S_KEY)) { - continue; - } - String emote_type = item.getString(JSONUtils.T_KEY); - String emote_id = item.getString(JSONUtils.ID_KEY); + if (mediaMetadataNames != null) { + for (int i = 0; i < mediaMetadataNames.length(); i++) { + if (!mediaMetadataNames.isNull(i)) { + String mediaMetadataKey = mediaMetadataNames.getString(i); + if (mediaMetadataObject.isNull(mediaMetadataKey)) { + continue; + } + JSONObject item = mediaMetadataObject.getJSONObject(mediaMetadataKey); + if (item.isNull(JSONUtils.STATUS_KEY) + || !item.getString(JSONUtils.STATUS_KEY).equals("valid") + || item.isNull(JSONUtils.ID_KEY) + || item.isNull(JSONUtils.T_KEY) + || item.isNull(JSONUtils.S_KEY)) { + continue; + } + String emote_type = item.getString(JSONUtils.T_KEY); + String emote_id = item.getString(JSONUtils.ID_KEY); - JSONObject s_key = item.getJSONObject(JSONUtils.S_KEY); - if (s_key.isNull(JSONUtils.U_KEY)) { - continue; - } - String emote_url = s_key.getString(JSONUtils.U_KEY); + JSONObject s_key = item.getJSONObject(JSONUtils.S_KEY); + if (s_key.isNull(JSONUtils.U_KEY)) { + continue; + } + String emote_url = s_key.getString(JSONUtils.U_KEY); - markdown = markdown.replace("![img](" + emote_id + ")", "[" + emote_type + "](" + emote_url + ") "); + markdown = markdown.replace("![img](" + emote_id + ")", "[" + emote_type + "](" + emote_url + ") "); + } } } return markdown; -- cgit v1.2.3