diff options
author | stom79 <tschneider.ac@gmail.com> | 2018-12-15 17:13:06 +0100 |
---|---|---|
committer | stom79 <tschneider.ac@gmail.com> | 2018-12-15 17:13:06 +0100 |
commit | cf1dc7518c4988ab54b78ef3d78741e53cc2de5f (patch) | |
tree | a43d0a81ac7255dd28c2d8d788a759539ff20641 /app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java | |
parent | dd7695f1c1f679bb28d3f6ac395af1995adf2227 (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.java | 28 |
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 |