summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/client/GNUAPI.java
diff options
context:
space:
mode:
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.java28
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);