diff options
Diffstat (limited to 'app/src/main/java/app/fedilab/android/client/GNUAPI.java')
-rw-r--r-- | app/src/main/java/app/fedilab/android/client/GNUAPI.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/app/src/main/java/app/fedilab/android/client/GNUAPI.java b/app/src/main/java/app/fedilab/android/client/GNUAPI.java index 648d23ce8..981f7ddd5 100644 --- a/app/src/main/java/app/fedilab/android/client/GNUAPI.java +++ b/app/src/main/java/app/fedilab/android/client/GNUAPI.java @@ -212,14 +212,24 @@ public class GNUAPI { return statuses; } + /** * Parse json response for unique status * * @param resobj JSONObject * @return Status */ - @SuppressWarnings("InfiniteRecursion") private static Status parseStatuses(Context context, JSONObject resobj) { + return parseStatuses(context, resobj, true); + } + + /** + * Parse json response for unique status + * + * @param resobj JSONObject + * @return Status + */ + private static Status parseStatuses(Context context, JSONObject resobj, boolean recursive) { Status status = new Status(); try { status.setId(resobj.get("id").toString()); @@ -337,7 +347,9 @@ public class GNUAPI { status.setMuted(false); status.setPinned(false); try { - status.setReblog(parseStatuses(context, resobj.getJSONObject("retweeted_status"))); + if (recursive) { + status.setReblog(parseStatuses(context, resobj.getJSONObject("retweeted_status"), false)); + } } catch (Exception ignored) { status.setReblog(null); } @@ -1476,24 +1488,20 @@ public class GNUAPI { case FAVOURITE: if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.GNU) { action = "/favorites/create.json"; - params = new HashMap<>(); - params.put("id", targetedId); } else { action = "/friendica/activity/like.json"; - params = new HashMap<>(); - params.put("id", targetedId); } + params = new HashMap<>(); + params.put("id", targetedId); break; case UNFAVOURITE: if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.GNU) { action = "/favorites/destroy.json"; - params = new HashMap<>(); - params.put("id", targetedId); } else { action = "/friendica/activity/unlike.json"; - params = new HashMap<>(); - params.put("id", targetedId); } + params = new HashMap<>(); + params.put("id", targetedId); break; case REBLOG: action = String.format("/statuses/retweet/%s.json", targetedId); |