summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java
diff options
context:
space:
mode:
authorstom79 <tschneider.ac@gmail.com>2018-12-15 17:13:06 +0100
committerstom79 <tschneider.ac@gmail.com>2018-12-15 17:13:06 +0100
commitcf1dc7518c4988ab54b78ef3d78741e53cc2de5f (patch)
treea43d0a81ac7255dd28c2d8d788a759539ff20641 /app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java
parentdd7695f1c1f679bb28d3f6ac395af1995adf2227 (diff)
Change frontend
Diffstat (limited to 'app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java')
-rw-r--r--app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java
index aeb041c2a..863b58997 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java
@@ -52,6 +52,7 @@ import fr.gouv.etalab.mastodon.client.Entities.Conversation;
import fr.gouv.etalab.mastodon.client.Entities.Peertube;
import fr.gouv.etalab.mastodon.client.Entities.RemoteInstance;
import fr.gouv.etalab.mastodon.client.Entities.Status;
+import fr.gouv.etalab.mastodon.client.Entities.TagTimeline;
import fr.gouv.etalab.mastodon.drawers.PeertubeAdapter;
import fr.gouv.etalab.mastodon.drawers.StatusListAdapter;
import fr.gouv.etalab.mastodon.helper.Helper;
@@ -61,6 +62,7 @@ import fr.gouv.etalab.mastodon.services.StreamingFederatedTimelineService;
import fr.gouv.etalab.mastodon.services.StreamingLocalTimelineService;
import fr.gouv.etalab.mastodon.sqlite.AccountDAO;
import fr.gouv.etalab.mastodon.sqlite.InstancesDAO;
+import fr.gouv.etalab.mastodon.sqlite.SearchDAO;
import fr.gouv.etalab.mastodon.sqlite.Sqlite;
import fr.gouv.etalab.mastodon.sqlite.TempMuteDAO;
@@ -100,6 +102,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
private String search_peertube, remote_channel_name;
private String initialBookMark;
private boolean fetchMoreButtonDisplayed;
+ private TagTimeline tagTimeline;
public DisplayStatusFragment(){
}
@@ -117,6 +120,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
fetchMoreButtonDisplayed = false;
showPinned = false;
showReply = false;
+ tagTimeline = null;
if (bundle != null) {
type = (RetrieveFeedsAsyncTask.Type) bundle.get("type");
targetedId = bundle.getString("targetedId", null);
@@ -156,7 +160,15 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
Account account = new AccountDAO(context, db).getAccountByID(userId);
mutedAccount = new TempMuteDAO(context, db).getAllTimeMuted(account);
- if( search_peertube == null && (instanceType == null || instanceType.equals("MASTODON"))) {
+ if( type == RetrieveFeedsAsyncTask.Type.TAG && tag != null) {
+ BaseMainActivity.displayPeertube = null;
+ List<TagTimeline> tagTimelines = new SearchDAO(context, db).getTimelineInfo(tag);
+ if( tagTimelines != null && tagTimelines.size() > 0) {
+ tagTimeline = tagTimelines.get(0);
+ statusListAdapter = new StatusListAdapter(context, tagTimeline, targetedId, isOnWifi, behaviorWithAttachments, positionSpinnerTrans, this.statuses);
+ lv_status.setAdapter(statusListAdapter);
+ }
+ }else if( search_peertube == null && (instanceType == null || instanceType.equals("MASTODON"))) {
BaseMainActivity.displayPeertube = null;
statusListAdapter = new StatusListAdapter(context, type, targetedId, isOnWifi, behaviorWithAttachments, positionSpinnerTrans, this.statuses);
lv_status.setAdapter(statusListAdapter);
@@ -474,8 +486,18 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
}
}else {
- this.statuses.addAll(statuses);
- statusListAdapter.notifyItemRangeInserted(previousPosition, statuses.size());
+ if( tagTimeline == null || !tagTimeline.isART() || (tagTimeline.isART() && tagTimeline.isNSFW())) {
+ this.statuses.addAll(statuses);
+ statusListAdapter.notifyItemRangeInserted(previousPosition, statuses.size());
+ }else { //If it's an Art timeline not allowing NSFW
+ ArrayList<Status> safeStatuses = new ArrayList<>();
+ for(Status status: statuses){
+ if( !status.isSensitive())
+ safeStatuses.add(status);
+ }
+ this.statuses.addAll(safeStatuses);
+ statusListAdapter.notifyItemRangeInserted(previousPosition, safeStatuses.size());
+ }
}
if( type == RetrieveFeedsAsyncTask.Type.HOME ) {
//Update the id of the last toot retrieved