Browse Source

fix sensitive media in search and notifications (#2335)

pull/2336/head
Konrad Pozniak 4 years ago committed by GitHub
parent
commit
329df1280b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt
  2. 4
      app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java

18
app/src/main/java/com/keylesspalace/tusky/components/search/SearchViewModel.kt

@ -56,10 +56,17 @@ class SearchViewModel @Inject constructor(
private val loadedStatuses: MutableList<Pair<Status, StatusViewData.Concrete>> = mutableListOf()
private val statusesPagingSourceFactory = SearchPagingSourceFactory(mastodonApi, SearchType.Status, loadedStatuses) {
it.statuses.map { status -> Pair(status, status.toViewData(alwaysShowSensitiveMedia, alwaysOpenSpoiler, true)) }
.apply {
loadedStatuses.addAll(this)
}
it.statuses.map { status ->
val statusViewData = status.toViewData(
isShowingContent = alwaysShowSensitiveMedia || !status.actionableStatus.sensitive,
isExpanded = alwaysOpenSpoiler,
isCollapsed = true
)
Pair(status, statusViewData)
}.apply {
loadedStatuses.addAll(this)
}
}
private val accountsPagingSourceFactory = SearchPagingSourceFactory(mastodonApi, SearchType.Account) {
it.accounts
@ -100,8 +107,7 @@ class SearchViewModel @Inject constructor(
if (loadedStatuses.remove(status))
statusesPagingSourceFactory.invalidate()
},
{
err ->
{ err ->
Log.d(TAG, "Failed to delete status", err)
}
)

4
app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java

@ -185,9 +185,11 @@ public class NotificationsFragment extends SFragment implements
Notification notification = input.asRight()
.rewriteToStatusTypeIfNeeded(accountManager.getActiveAccount().getAccountId());
boolean sensitiveStatus = notification.getStatus() != null && notification.getStatus().getActionableStatus().getSensitive();
return ViewDataUtils.notificationToViewData(
notification,
alwaysShowSensitiveMedia,
alwaysShowSensitiveMedia || !sensitiveStatus,
alwaysOpenSpoiler,
true
);

Loading…
Cancel
Save