summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2020-04-11 15:37:26 +0200
committertom79 <tschneider.ac@gmail.com>2020-04-11 15:37:26 +0200
commitfd6028eaf904fe9a8bc78950db504b0547653c04 (patch)
tree7fd395cb268dc98f8ea270445e766a2bed4ac243
parent62fd00c871020c5983dc02c4c1b26505f97630f3 (diff)
Fix announcements
-rw-r--r--app/src/main/assets/changelogs/359.txt3
-rw-r--r--app/src/main/java/app/fedilab/android/client/API.java3
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Status.java1
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java4
-rw-r--r--app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java4
5 files changed, 9 insertions, 6 deletions
diff --git a/app/src/main/assets/changelogs/359.txt b/app/src/main/assets/changelogs/359.txt
index b237b22a1..6ec945165 100644
--- a/app/src/main/assets/changelogs/359.txt
+++ b/app/src/main/assets/changelogs/359.txt
@@ -2,4 +2,5 @@ Changed:
Fixed:
-- Crash when Youtube videos in timelines \ No newline at end of file
+- Crash when Youtube videos in timelines
+- Announcements not displayed \ No newline at end of file
diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java
index a1baf7657..ec2f9520b 100644
--- a/app/src/main/java/app/fedilab/android/client/API.java
+++ b/app/src/main/java/app/fedilab/android/client/API.java
@@ -19,7 +19,6 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
-
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.google.gson.JsonArray;
@@ -652,6 +651,7 @@ public class API {
}
List<Mention> mentions = new ArrayList<>();
+
try {
JSONArray arrayMention = resobj.getJSONArray("mentions");
for (int j = 0; j < arrayMention.length(); j++) {
@@ -671,6 +671,7 @@ public class API {
} catch (JSONException | ParseException e) {
e.printStackTrace();
}
+ Status.fillSpan(context, announcement);
return announcement;
}
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Status.java b/app/src/main/java/app/fedilab/android/client/Entities/Status.java
index d698508d0..1b690e369 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Status.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Status.java
@@ -859,7 +859,6 @@ public class Status implements Parcelable {
return;
final List<Emojis> emojis = status.getReblog() != null ? status.getReblog().getEmojis() : status.getEmojis();
-
SpannableString contentSpan = status.getContentSpan();
SpannableString contentSpanCW = status.getContentSpanCW();
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
index a31920fa0..d1027c085 100644
--- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
@@ -568,13 +568,13 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
show_account_boosts = sharedpreferences.getBoolean(Helper.SHOW_ACCOUNT_BOOSTS, true);
show_account_replies = sharedpreferences.getBoolean(Helper.SHOW_ACCOUNT_REPLIES, true);
}
- if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS && !Helper.filterToots(statuses.get(position), type, context instanceof ShowAccountActivity, show_account_boosts, show_account_replies)) {
+ if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS && type != RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS && !Helper.filterToots(statuses.get(position), type, context instanceof ShowAccountActivity, show_account_boosts, show_account_replies)) {
return HIDDEN_STATUS;
}
if (statuses.get(position).isFocused() && type == RetrieveFeedsAsyncTask.Type.CONTEXT && statuses.get(position).getViewType() != CONSOLE_STATUS)
return FOCUSED_STATUS;
else {
- if (social == UpdateAccountInfoAsyncTask.SOCIAL.PIXELFED && type == RetrieveFeedsAsyncTask.Type.CONTEXT) {
+ if ((social == UpdateAccountInfoAsyncTask.SOCIAL.PIXELFED && type == RetrieveFeedsAsyncTask.Type.CONTEXT) || type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS) {
return COMPACT_STATUS;
} else {
if (instanceType == null || instanceType.compareTo("NITTER") != 0) {
diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java
index b7ef6c417..e10b1e494 100644
--- a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java
@@ -612,14 +612,15 @@ public class DisplayStatusFragment extends Fragment implements OnPostActionInter
} else if (type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS) {
if (apiResponse.getAnnouncements() != null && apiResponse.getAnnouncements().size() > 0) {
List<Status> statusesAnnouncements = new ArrayList<>();
- apiResponse.setStatuses(statusesAnnouncements);
for (Announcement announcement : apiResponse.getAnnouncements()) {
statusesAnnouncements.add(0, announcement);
if (!announcement.isRead()) {
new PostActionAsyncTask(context, API.StatusAction.DISMISS_ANNOUNCEMENT, announcement.getId(), DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}
+ apiResponse.setStatuses(statusesAnnouncements);
}
+
final NavigationView navigationView = ((MainActivity) context).findViewById(R.id.nav_view);
MenuItem item = navigationView.getMenu().findItem(R.id.nav_announcements);
TextView actionView = item.getActionView().findViewById(R.id.counter);
@@ -634,6 +635,7 @@ public class DisplayStatusFragment extends Fragment implements OnPostActionInter
statuses = apiResponse.getResults().getStatuses();
else
statuses = apiResponse.getStatuses();
+
//At this point all statuses are in "List<Status> statuses"
//Pagination for Pixelfed
if (instanceType.equals("PIXELFED")) {